'''OpenGL extension EXT.pixel_transform

Overview (from the spec)
	
	This extension provides support for scaling, rotation, translation and
	shearing of two-dimensional pixel rectangles in the pixel rasterizer.
	The transformation is defined via a 4x4 matrix, where only those entries
	which apply as a 2D affine transformation will be accepted and used.
	These matrices can be manipulated using the same functions as the other 
	OpenGL matrix stacks.
	

The official definition of this extension is available here:
	http://oss.sgi.com/projects/ogl-sample/registry/EXT/pixel_transform.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_pixel_transform'
GL_PIXEL_TRANSFORM_2D_EXT = constant.Constant( 'GL_PIXEL_TRANSFORM_2D_EXT', 0x8330 )
GL_PIXEL_MAG_FILTER_EXT = constant.Constant( 'GL_PIXEL_MAG_FILTER_EXT', 0x8331 )
GL_PIXEL_MIN_FILTER_EXT = constant.Constant( 'GL_PIXEL_MIN_FILTER_EXT', 0x8332 )
GL_PIXEL_CUBIC_WEIGHT_EXT = constant.Constant( 'GL_PIXEL_CUBIC_WEIGHT_EXT', 0x8333 )
GL_CUBIC_EXT = constant.Constant( 'GL_CUBIC_EXT', 0x8334 )
GL_AVERAGE_EXT = constant.Constant( 'GL_AVERAGE_EXT', 0x8335 )
GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = constant.Constant( 'GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT', 0x8336 )
GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = constant.Constant( 'GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT', 0x8337 )
GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = constant.Constant( 'GL_PIXEL_TRANSFORM_2D_MATRIX_EXT', 0x8338 )
glPixelTransformParameteriEXT = platform.createExtensionFunction( 
	'glPixelTransformParameteriEXT', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLenum, constants.GLint,),
	doc = 'glPixelTransformParameteriEXT( GLenum(target), GLenum(pname), GLint(param) ) -> None',
	argNames = ('target', 'pname', 'param',),
)

glPixelTransformParameterfEXT = platform.createExtensionFunction( 
	'glPixelTransformParameterfEXT', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLenum, constants.GLfloat,),
	doc = 'glPixelTransformParameterfEXT( GLenum(target), GLenum(pname), GLfloat(param) ) -> None',
	argNames = ('target', 'pname', 'param',),
)

glPixelTransformParameterivEXT = platform.createExtensionFunction( 
	'glPixelTransformParameterivEXT', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLenum, arrays.GLintArray,),
	doc = 'glPixelTransformParameterivEXT( GLenum(target), GLenum(pname), GLintArray(params) ) -> None',
	argNames = ('target', 'pname', 'params',),
)

glPixelTransformParameterfvEXT = platform.createExtensionFunction( 
	'glPixelTransformParameterfvEXT', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLenum, arrays.GLfloatArray,),
	doc = 'glPixelTransformParameterfvEXT( GLenum(target), GLenum(pname), GLfloatArray(params) ) -> None',
	argNames = ('target', 'pname', 'params',),
)


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