'''OpenGL extension ATI.fragment_shader

Overview (from the spec)
	
	This extension exposes a powerful fragment shading model which
	provides a very general means of expressing fragment color blending
	and dependent texture address modification.  The programming is
	a register-based model in which there is a fixed number of 
	instructions, texture lookups, read/write registers, and constants.
	
	The fragment shader extension provides a unified instruction set
	for operating on address or color data and eliminates the 
	distinction between the two.  This extension provides all the 
	interfaces necessary to fully expose this programmable fragment 
	shader in GL.
	
	Although conceived as a device-independent extension which would 
	expose the capabilities of future generations of hardware, changing 
	trends in programmable hardware have affected the lifespan of this 
	extension.  For this reason you will now find a fixed set of 
	features and resources exposed, and the queries to determine this 
	set have been deprecated.

The official definition of this extension is available here:
	http://oss.sgi.com/projects/ogl-sample/registry/ATI/fragment_shader.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_ATI_fragment_shader'
GL_FRAGMENT_SHADER_ATI = constant.Constant( 'GL_FRAGMENT_SHADER_ATI', 0x8920 )
glget.addGLGetConstant( GL_FRAGMENT_SHADER_ATI, (1,) )
GL_REG_0_ATI = constant.Constant( 'GL_REG_0_ATI', 0x8921 )
GL_REG_1_ATI = constant.Constant( 'GL_REG_1_ATI', 0x8922 )
GL_REG_2_ATI = constant.Constant( 'GL_REG_2_ATI', 0x8923 )
GL_REG_3_ATI = constant.Constant( 'GL_REG_3_ATI', 0x8924 )
GL_REG_4_ATI = constant.Constant( 'GL_REG_4_ATI', 0x8925 )
GL_REG_5_ATI = constant.Constant( 'GL_REG_5_ATI', 0x8926 )
GL_REG_6_ATI = constant.Constant( 'GL_REG_6_ATI', 0x8927 )
GL_REG_7_ATI = constant.Constant( 'GL_REG_7_ATI', 0x8928 )
GL_REG_8_ATI = constant.Constant( 'GL_REG_8_ATI', 0x8929 )
GL_REG_9_ATI = constant.Constant( 'GL_REG_9_ATI', 0x892A )
GL_REG_10_ATI = constant.Constant( 'GL_REG_10_ATI', 0x892B )
GL_REG_11_ATI = constant.Constant( 'GL_REG_11_ATI', 0x892C )
GL_REG_12_ATI = constant.Constant( 'GL_REG_12_ATI', 0x892D )
GL_REG_13_ATI = constant.Constant( 'GL_REG_13_ATI', 0x892E )
GL_REG_14_ATI = constant.Constant( 'GL_REG_14_ATI', 0x892F )
GL_REG_15_ATI = constant.Constant( 'GL_REG_15_ATI', 0x8930 )
GL_REG_16_ATI = constant.Constant( 'GL_REG_16_ATI', 0x8931 )
GL_REG_17_ATI = constant.Constant( 'GL_REG_17_ATI', 0x8932 )
GL_REG_18_ATI = constant.Constant( 'GL_REG_18_ATI', 0x8933 )
GL_REG_19_ATI = constant.Constant( 'GL_REG_19_ATI', 0x8934 )
GL_REG_20_ATI = constant.Constant( 'GL_REG_20_ATI', 0x8935 )
GL_REG_21_ATI = constant.Constant( 'GL_REG_21_ATI', 0x8936 )
GL_REG_22_ATI = constant.Constant( 'GL_REG_22_ATI', 0x8937 )
GL_REG_23_ATI = constant.Constant( 'GL_REG_23_ATI', 0x8938 )
GL_REG_24_ATI = constant.Constant( 'GL_REG_24_ATI', 0x8939 )
GL_REG_25_ATI = constant.Constant( 'GL_REG_25_ATI', 0x893A )
GL_REG_26_ATI = constant.Constant( 'GL_REG_26_ATI', 0x893B )
GL_REG_27_ATI = constant.Constant( 'GL_REG_27_ATI', 0x893C )
GL_REG_28_ATI = constant.Constant( 'GL_REG_28_ATI', 0x893D )
GL_REG_29_ATI = constant.Constant( 'GL_REG_29_ATI', 0x893E )
GL_REG_30_ATI = constant.Constant( 'GL_REG_30_ATI', 0x893F )
GL_REG_31_ATI = constant.Constant( 'GL_REG_31_ATI', 0x8940 )
GL_CON_0_ATI = constant.Constant( 'GL_CON_0_ATI', 0x8941 )
GL_CON_1_ATI = constant.Constant( 'GL_CON_1_ATI', 0x8942 )
GL_CON_2_ATI = constant.Constant( 'GL_CON_2_ATI', 0x8943 )
GL_CON_3_ATI = constant.Constant( 'GL_CON_3_ATI', 0x8944 )
GL_CON_4_ATI = constant.Constant( 'GL_CON_4_ATI', 0x8945 )
GL_CON_5_ATI = constant.Constant( 'GL_CON_5_ATI', 0x8946 )
GL_CON_6_ATI = constant.Constant( 'GL_CON_6_ATI', 0x8947 )
GL_CON_7_ATI = constant.Constant( 'GL_CON_7_ATI', 0x8948 )
GL_CON_8_ATI = constant.Constant( 'GL_CON_8_ATI', 0x8949 )
GL_CON_9_ATI = constant.Constant( 'GL_CON_9_ATI', 0x894A )
GL_CON_10_ATI = constant.Constant( 'GL_CON_10_ATI', 0x894B )
GL_CON_11_ATI = constant.Constant( 'GL_CON_11_ATI', 0x894C )
GL_CON_12_ATI = constant.Constant( 'GL_CON_12_ATI', 0x894D )
GL_CON_13_ATI = constant.Constant( 'GL_CON_13_ATI', 0x894E )
GL_CON_14_ATI = constant.Constant( 'GL_CON_14_ATI', 0x894F )
GL_CON_15_ATI = constant.Constant( 'GL_CON_15_ATI', 0x8950 )
GL_CON_16_ATI = constant.Constant( 'GL_CON_16_ATI', 0x8951 )
GL_CON_17_ATI = constant.Constant( 'GL_CON_17_ATI', 0x8952 )
GL_CON_18_ATI = constant.Constant( 'GL_CON_18_ATI', 0x8953 )
GL_CON_19_ATI = constant.Constant( 'GL_CON_19_ATI', 0x8954 )
GL_CON_20_ATI = constant.Constant( 'GL_CON_20_ATI', 0x8955 )
GL_CON_21_ATI = constant.Constant( 'GL_CON_21_ATI', 0x8956 )
GL_CON_22_ATI = constant.Constant( 'GL_CON_22_ATI', 0x8957 )
GL_CON_23_ATI = constant.Constant( 'GL_CON_23_ATI', 0x8958 )
GL_CON_24_ATI = constant.Constant( 'GL_CON_24_ATI', 0x8959 )
GL_CON_25_ATI = constant.Constant( 'GL_CON_25_ATI', 0x895A )
GL_CON_26_ATI = constant.Constant( 'GL_CON_26_ATI', 0x895B )
GL_CON_27_ATI = constant.Constant( 'GL_CON_27_ATI', 0x895C )
GL_CON_28_ATI = constant.Constant( 'GL_CON_28_ATI', 0x895D )
GL_CON_29_ATI = constant.Constant( 'GL_CON_29_ATI', 0x895E )
GL_CON_30_ATI = constant.Constant( 'GL_CON_30_ATI', 0x895F )
GL_CON_31_ATI = constant.Constant( 'GL_CON_31_ATI', 0x8960 )
GL_MOV_ATI = constant.Constant( 'GL_MOV_ATI', 0x8961 )
GL_ADD_ATI = constant.Constant( 'GL_ADD_ATI', 0x8963 )
GL_MUL_ATI = constant.Constant( 'GL_MUL_ATI', 0x8964 )
GL_SUB_ATI = constant.Constant( 'GL_SUB_ATI', 0x8965 )
GL_DOT3_ATI = constant.Constant( 'GL_DOT3_ATI', 0x8966 )
GL_DOT4_ATI = constant.Constant( 'GL_DOT4_ATI', 0x8967 )
GL_MAD_ATI = constant.Constant( 'GL_MAD_ATI', 0x8968 )
GL_LERP_ATI = constant.Constant( 'GL_LERP_ATI', 0x8969 )
GL_CND_ATI = constant.Constant( 'GL_CND_ATI', 0x896A )
GL_CND0_ATI = constant.Constant( 'GL_CND0_ATI', 0x896B )
GL_DOT2_ADD_ATI = constant.Constant( 'GL_DOT2_ADD_ATI', 0x896C )
GL_SECONDARY_INTERPOLATOR_ATI = constant.Constant( 'GL_SECONDARY_INTERPOLATOR_ATI', 0x896D )
GL_NUM_FRAGMENT_REGISTERS_ATI = constant.Constant( 'GL_NUM_FRAGMENT_REGISTERS_ATI', 0x896E )
GL_NUM_FRAGMENT_CONSTANTS_ATI = constant.Constant( 'GL_NUM_FRAGMENT_CONSTANTS_ATI', 0x896F )
GL_NUM_PASSES_ATI = constant.Constant( 'GL_NUM_PASSES_ATI', 0x8970 )
GL_NUM_INSTRUCTIONS_PER_PASS_ATI = constant.Constant( 'GL_NUM_INSTRUCTIONS_PER_PASS_ATI', 0x8971 )
GL_NUM_INSTRUCTIONS_TOTAL_ATI = constant.Constant( 'GL_NUM_INSTRUCTIONS_TOTAL_ATI', 0x8972 )
GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = constant.Constant( 'GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI', 0x8973 )
GL_NUM_LOOPBACK_COMPONENTS_ATI = constant.Constant( 'GL_NUM_LOOPBACK_COMPONENTS_ATI', 0x8974 )
GL_COLOR_ALPHA_PAIRING_ATI = constant.Constant( 'GL_COLOR_ALPHA_PAIRING_ATI', 0x8975 )
GL_SWIZZLE_STR_ATI = constant.Constant( 'GL_SWIZZLE_STR_ATI', 0x8976 )
GL_SWIZZLE_STQ_ATI = constant.Constant( 'GL_SWIZZLE_STQ_ATI', 0x8977 )
GL_SWIZZLE_STR_DR_ATI = constant.Constant( 'GL_SWIZZLE_STR_DR_ATI', 0x8978 )
GL_SWIZZLE_STQ_DQ_ATI = constant.Constant( 'GL_SWIZZLE_STQ_DQ_ATI', 0x8979 )
GL_SWIZZLE_STRQ_ATI = constant.Constant( 'GL_SWIZZLE_STRQ_ATI', 0x897A )
GL_SWIZZLE_STRQ_DQ_ATI = constant.Constant( 'GL_SWIZZLE_STRQ_DQ_ATI', 0x897B )
GL_RED_BIT_ATI = constant.Constant( 'GL_RED_BIT_ATI', 0x1 )
GL_GREEN_BIT_ATI = constant.Constant( 'GL_GREEN_BIT_ATI', 0x2 )
GL_BLUE_BIT_ATI = constant.Constant( 'GL_BLUE_BIT_ATI', 0x4 )
GL_2X_BIT_ATI = constant.Constant( 'GL_2X_BIT_ATI', 0x1 )
GL_4X_BIT_ATI = constant.Constant( 'GL_4X_BIT_ATI', 0x2 )
GL_8X_BIT_ATI = constant.Constant( 'GL_8X_BIT_ATI', 0x4 )
GL_HALF_BIT_ATI = constant.Constant( 'GL_HALF_BIT_ATI', 0x8 )
GL_QUARTER_BIT_ATI = constant.Constant( 'GL_QUARTER_BIT_ATI', 0x10 )
GL_EIGHTH_BIT_ATI = constant.Constant( 'GL_EIGHTH_BIT_ATI', 0x20 )
GL_SATURATE_BIT_ATI = constant.Constant( 'GL_SATURATE_BIT_ATI', 0x40 )
GL_COMP_BIT_ATI = constant.Constant( 'GL_COMP_BIT_ATI', 0x2 )
GL_NEGATE_BIT_ATI = constant.Constant( 'GL_NEGATE_BIT_ATI', 0x4 )
GL_BIAS_BIT_ATI = constant.Constant( 'GL_BIAS_BIT_ATI', 0x8 )
glGenFragmentShadersATI = platform.createExtensionFunction( 
	'glGenFragmentShadersATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=constants.GLuint, 
	argTypes=(constants.GLuint,),
	doc = 'glGenFragmentShadersATI( GLuint(range) ) -> constants.GLuint',
	argNames = ('range',),
)

glBindFragmentShaderATI = platform.createExtensionFunction( 
	'glBindFragmentShaderATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLuint,),
	doc = 'glBindFragmentShaderATI( GLuint(id) ) -> None',
	argNames = ('id',),
)

glDeleteFragmentShaderATI = platform.createExtensionFunction( 
	'glDeleteFragmentShaderATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLuint,),
	doc = 'glDeleteFragmentShaderATI( GLuint(id) ) -> None',
	argNames = ('id',),
)

glBeginFragmentShaderATI = platform.createExtensionFunction( 
	'glBeginFragmentShaderATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(),
	doc = 'glBeginFragmentShaderATI(  ) -> None',
	argNames = (),
)

glEndFragmentShaderATI = platform.createExtensionFunction( 
	'glEndFragmentShaderATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(),
	doc = 'glEndFragmentShaderATI(  ) -> None',
	argNames = (),
)

glPassTexCoordATI = platform.createExtensionFunction( 
	'glPassTexCoordATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLuint, constants.GLuint, constants.GLenum,),
	doc = 'glPassTexCoordATI( GLuint(dst), GLuint(coord), GLenum(swizzle) ) -> None',
	argNames = ('dst', 'coord', 'swizzle',),
)

glSampleMapATI = platform.createExtensionFunction( 
	'glSampleMapATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLuint, constants.GLuint, constants.GLenum,),
	doc = 'glSampleMapATI( GLuint(dst), GLuint(interp), GLenum(swizzle) ) -> None',
	argNames = ('dst', 'interp', 'swizzle',),
)

glColorFragmentOp1ATI = platform.createExtensionFunction( 
	'glColorFragmentOp1ATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint,),
	doc = 'glColorFragmentOp1ATI( GLenum(op), GLuint(dst), GLuint(dstMask), GLuint(dstMod), GLuint(arg1), GLuint(arg1Rep), GLuint(arg1Mod) ) -> None',
	argNames = ('op', 'dst', 'dstMask', 'dstMod', 'arg1', 'arg1Rep', 'arg1Mod',),
)

glColorFragmentOp2ATI = platform.createExtensionFunction( 
	'glColorFragmentOp2ATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint,),
	doc = 'glColorFragmentOp2ATI( GLenum(op), GLuint(dst), GLuint(dstMask), GLuint(dstMod), GLuint(arg1), GLuint(arg1Rep), GLuint(arg1Mod), GLuint(arg2), GLuint(arg2Rep), GLuint(arg2Mod) ) -> None',
	argNames = ('op', 'dst', 'dstMask', 'dstMod', 'arg1', 'arg1Rep', 'arg1Mod', 'arg2', 'arg2Rep', 'arg2Mod',),
)

glColorFragmentOp3ATI = platform.createExtensionFunction( 
	'glColorFragmentOp3ATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint,),
	doc = 'glColorFragmentOp3ATI( GLenum(op), GLuint(dst), GLuint(dstMask), GLuint(dstMod), GLuint(arg1), GLuint(arg1Rep), GLuint(arg1Mod), GLuint(arg2), GLuint(arg2Rep), GLuint(arg2Mod), GLuint(arg3), GLuint(arg3Rep), GLuint(arg3Mod) ) -> None',
	argNames = ('op', 'dst', 'dstMask', 'dstMod', 'arg1', 'arg1Rep', 'arg1Mod', 'arg2', 'arg2Rep', 'arg2Mod', 'arg3', 'arg3Rep', 'arg3Mod',),
)

glAlphaFragmentOp1ATI = platform.createExtensionFunction( 
	'glAlphaFragmentOp1ATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint,),
	doc = 'glAlphaFragmentOp1ATI( GLenum(op), GLuint(dst), GLuint(dstMod), GLuint(arg1), GLuint(arg1Rep), GLuint(arg1Mod) ) -> None',
	argNames = ('op', 'dst', 'dstMod', 'arg1', 'arg1Rep', 'arg1Mod',),
)

glAlphaFragmentOp2ATI = platform.createExtensionFunction( 
	'glAlphaFragmentOp2ATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint,),
	doc = 'glAlphaFragmentOp2ATI( GLenum(op), GLuint(dst), GLuint(dstMod), GLuint(arg1), GLuint(arg1Rep), GLuint(arg1Mod), GLuint(arg2), GLuint(arg2Rep), GLuint(arg2Mod) ) -> None',
	argNames = ('op', 'dst', 'dstMod', 'arg1', 'arg1Rep', 'arg1Mod', 'arg2', 'arg2Rep', 'arg2Mod',),
)

glAlphaFragmentOp3ATI = platform.createExtensionFunction( 
	'glAlphaFragmentOp3ATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint, constants.GLuint,),
	doc = 'glAlphaFragmentOp3ATI( GLenum(op), GLuint(dst), GLuint(dstMod), GLuint(arg1), GLuint(arg1Rep), GLuint(arg1Mod), GLuint(arg2), GLuint(arg2Rep), GLuint(arg2Mod), GLuint(arg3), GLuint(arg3Rep), GLuint(arg3Mod) ) -> None',
	argNames = ('op', 'dst', 'dstMod', 'arg1', 'arg1Rep', 'arg1Mod', 'arg2', 'arg2Rep', 'arg2Mod', 'arg3', 'arg3Rep', 'arg3Mod',),
)

glSetFragmentShaderConstantATI = platform.createExtensionFunction( 
	'glSetFragmentShaderConstantATI', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLuint, arrays.GLfloatArray,),
	doc = 'glSetFragmentShaderConstantATI( GLuint(dst), GLfloatArray(value) ) -> None',
	argNames = ('dst', 'value',),
)


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