'''OpenGL extension EXT.texture3D

Overview (from the spec)
	
	This extension defines 3-dimensional texture mapping.  In order to
	define a 3D texture image conveniently, this extension also defines the
	in-memory formats for 3D images, and adds pixel storage modes to support
	them.
	
	One important application of 3D textures is rendering volumes of image
	data.

The official definition of this extension is available here:
	http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture3D.txt

Automatically generated by the get_gl_extensions script, do not edit!
'''
from OpenGL import platform, constants, constant, arrays
from OpenGL import extensions
from OpenGL.GL import glget
import ctypes
EXTENSION_NAME = 'GL_EXT_texture3D'
GL_PACK_SKIP_IMAGES_EXT = constant.Constant( 'GL_PACK_SKIP_IMAGES_EXT', 0x806B )
glget.addGLGetConstant( GL_PACK_SKIP_IMAGES_EXT, (1,) )
GL_PACK_IMAGE_HEIGHT_EXT = constant.Constant( 'GL_PACK_IMAGE_HEIGHT_EXT', 0x806C )
glget.addGLGetConstant( GL_PACK_IMAGE_HEIGHT_EXT, (1,) )
GL_UNPACK_SKIP_IMAGES_EXT = constant.Constant( 'GL_UNPACK_SKIP_IMAGES_EXT', 0x806D )
glget.addGLGetConstant( GL_UNPACK_SKIP_IMAGES_EXT, (1,) )
GL_UNPACK_IMAGE_HEIGHT_EXT = constant.Constant( 'GL_UNPACK_IMAGE_HEIGHT_EXT', 0x806E )
glget.addGLGetConstant( GL_UNPACK_IMAGE_HEIGHT_EXT, (1,) )
GL_TEXTURE_3D_EXT = constant.Constant( 'GL_TEXTURE_3D_EXT', 0x806F )
glget.addGLGetConstant( GL_TEXTURE_3D_EXT, (1,) )
GL_PROXY_TEXTURE_3D_EXT = constant.Constant( 'GL_PROXY_TEXTURE_3D_EXT', 0x8070 )
GL_TEXTURE_DEPTH_EXT = constant.Constant( 'GL_TEXTURE_DEPTH_EXT', 0x8071 )
GL_TEXTURE_WRAP_R_EXT = constant.Constant( 'GL_TEXTURE_WRAP_R_EXT', 0x8072 )
GL_MAX_3D_TEXTURE_SIZE_EXT = constant.Constant( 'GL_MAX_3D_TEXTURE_SIZE_EXT', 0x8073 )
glget.addGLGetConstant( GL_MAX_3D_TEXTURE_SIZE_EXT, (1,) )
glTexImage3DEXT = platform.createExtensionFunction( 
	'glTexImage3DEXT', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLint, constants.GLenum, constants.GLsizei, constants.GLsizei, constants.GLsizei, constants.GLint, constants.GLenum, constants.GLenum, ctypes.c_void_p,),
	doc = 'glTexImage3DEXT( GLenum(target), GLint(level), GLenum(internalformat), GLsizei(width), GLsizei(height), GLsizei(depth), GLint(border), GLenum(format), GLenum(type), c_void_p(pixels) ) -> None',
	argNames = ('target', 'level', 'internalformat', 'width', 'height', 'depth', 'border', 'format', 'type', 'pixels',),
)

glTexSubImage3DEXT = platform.createExtensionFunction( 
	'glTexSubImage3DEXT', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLint, constants.GLint, constants.GLint, constants.GLint, constants.GLsizei, constants.GLsizei, constants.GLsizei, constants.GLenum, constants.GLenum, ctypes.c_void_p,),
	doc = 'glTexSubImage3DEXT( GLenum(target), GLint(level), GLint(xoffset), GLint(yoffset), GLint(zoffset), GLsizei(width), GLsizei(height), GLsizei(depth), GLenum(format), GLenum(type), c_void_p(pixels) ) -> None',
	argNames = ('target', 'level', 'xoffset', 'yoffset', 'zoffset', 'width', 'height', 'depth', 'format', 'type', 'pixels',),
)


def glInitTexture3DEXT():
	'''Return boolean indicating whether this extension is available'''
	return extensions.hasGLExtension( EXTENSION_NAME )
