'''OpenGL extension ARB.texture_view

This module customises the behaviour of the 
OpenGL.raw.GL.ARB.texture_view to provide a more 
Python-friendly API

Overview (from the spec)
	
	This extension allows a texture's data store to be "viewed" in multiple 
	ways, either reinterpreting the data format/type as a different format/
	type with the same element size, or by clamping the mipmap level range 
	or array slice range. 
	
	The goals of this extension are to avoid having these alternate views 
	become shared mutable containers of shared mutable objects, and to add 
	the views to the API in a minimally invasive way.
	
	No new object types are added. Conceptually, a texture object is split
	into the following parts:
	
	    - A data store holding texel data.
	    - State describing which portions of the data store to use, and how
	      to interpret the data elements.
	    - An embedded sampler object.
	    - Various other texture parameters.
	
	With this extension, multiple textures can share a data store and have 
	different state describing which portions of the data store to use and how
	to interpret the data elements. The data store is refcounted and not 
	destroyed until the last texture sharing it is deleted.
	
	This extension leverages the ARB_texture_storage concept of an "immutable 
	texture". Views can only be created of textures created with TexStorage.
	

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/texture_view.txt
'''
from OpenGL import platform, constant, arrays
from OpenGL import extensions, wrapper
import ctypes
from OpenGL.raw.GL import _types, _glgets
from OpenGL.raw.GL.ARB.texture_view import *
from OpenGL.raw.GL.ARB.texture_view import _EXTENSION_NAME

def glInitTextureViewARB():
    '''Return boolean indicating whether this extension is available'''
    from OpenGL import extensions
    return extensions.hasGLExtension( _EXTENSION_NAME )


### END AUTOGENERATED SECTION