{-# LANGUAGE ForeignFunctionInterface, CPP #-} -------------------------------------------------------------------------------- -- | -- Module : Graphics.Rendering.OpenGL.Raw.EXT.VertexShader -- Copyright : (c) Sven Panne 2009 -- License : BSD-style (see the file LICENSE) -- -- Maintainer : sven.panne@aedion.de -- Stability : stable -- Portability : portable -- -- All raw functions and tokens from the EXT_vertex_shader extension, see -- . -- -------------------------------------------------------------------------------- module Graphics.Rendering.OpenGL.Raw.EXT.VertexShader ( -- * Functions glBeginVertexShader, glEndVertexShader, glBindVertexShader, glGenVertexShaders, glDeleteVertexShader, glShaderOp1, glShaderOp2, glShaderOp3, glSwizzle, glWriteMask, glInsertComponent, glExtractComponent, glGenSymbols, glSetInvariant, glSetLocalConstant, glVariantbv, glVariantsv, glVariantiv, glVariantfv, glVariantdv, glVariantubv, glVariantusv, glVariantuiv, glVariantPointer, glEnableVariantClientState, glDisableVariantClientState, glBindLightParameter, glBindMaterialParameter, glBindTexGenParameter, glBindTextureUnitParameter, glBindParameter, glIsVariantEnabled, glGetVariantBooleanv, glGetVariantIntegerv, glGetVariantFloatv, glGetVariantPointerv, glGetInvariantBooleanv, glGetInvariantIntegerv, glGetInvariantFloatv, glGetLocalConstantBooleanv, glGetLocalConstantIntegerv, glGetLocalConstantFloatv, -- * Tokens gl_VERTEX_SHADER, gl_VARIANT_VALUE, gl_VARIANT_DATATYPE, gl_VARIANT_ARRAY_STRIDE, gl_VARIANT_ARRAY_TYPE, gl_VARIANT_ARRAY, gl_VARIANT_ARRAY_POINTER, gl_INVARIANT_VALUE, gl_INVARIANT_DATATYPE, gl_LOCAL_CONSTANT_VALUE, gl_LOCAL_CONSTANT_DATATYPE, gl_OP_INDEX, gl_OP_NEGATE, gl_OP_DOT3, gl_OP_DOT4, gl_OP_MUL, gl_OP_ADD, gl_OP_MADD, gl_OP_FRAC, gl_OP_MAX, gl_OP_MIN, gl_OP_SET_GE, gl_OP_SET_LT, gl_OP_CLAMP, gl_OP_FLOOR, gl_OP_ROUND, gl_OP_EXP_BASE_2, gl_OP_LOG_BASE_2, gl_OP_POWER, gl_OP_RECIP, gl_OP_RECIP_SQRT, gl_OP_SUB, gl_OP_CROSS_PRODUCT, gl_OP_MULTIPLY_MATRIX, gl_OP_MOV, gl_OUTPUT_VERTEX, gl_OUTPUT_COLOR0, gl_OUTPUT_COLOR1, gl_OUTPUT_TEXTURE_COORD0, gl_OUTPUT_TEXTURE_COORD1, gl_OUTPUT_TEXTURE_COORD2, gl_OUTPUT_TEXTURE_COORD3, gl_OUTPUT_TEXTURE_COORD4, gl_OUTPUT_TEXTURE_COORD5, gl_OUTPUT_TEXTURE_COORD6, gl_OUTPUT_TEXTURE_COORD7, gl_OUTPUT_TEXTURE_COORD8, gl_OUTPUT_TEXTURE_COORD9, gl_OUTPUT_TEXTURE_COORD10, gl_OUTPUT_TEXTURE_COORD11, gl_OUTPUT_TEXTURE_COORD12, gl_OUTPUT_TEXTURE_COORD13, gl_OUTPUT_TEXTURE_COORD14, gl_OUTPUT_TEXTURE_COORD15, gl_OUTPUT_TEXTURE_COORD16, gl_OUTPUT_TEXTURE_COORD17, gl_OUTPUT_TEXTURE_COORD18, gl_OUTPUT_TEXTURE_COORD19, gl_OUTPUT_TEXTURE_COORD20, gl_OUTPUT_TEXTURE_COORD21, gl_OUTPUT_TEXTURE_COORD22, gl_OUTPUT_TEXTURE_COORD23, gl_OUTPUT_TEXTURE_COORD24, gl_OUTPUT_TEXTURE_COORD25, gl_OUTPUT_TEXTURE_COORD26, gl_OUTPUT_TEXTURE_COORD27, gl_OUTPUT_TEXTURE_COORD28, gl_OUTPUT_TEXTURE_COORD29, gl_OUTPUT_TEXTURE_COORD30, gl_OUTPUT_TEXTURE_COORD31, gl_OUTPUT_FOG, gl_SCALAR, gl_VECTOR, gl_MATRIX, gl_VARIANT, gl_INVARIANT, gl_LOCAL_CONSTANT, gl_LOCAL, gl_MAX_VERTEX_SHADER_INSTRUCTIONS, gl_MAX_VERTEX_SHADER_VARIANTS, gl_MAX_VERTEX_SHADER_INVARIANTS, gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS, gl_MAX_VERTEX_SHADER_LOCALS, gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS, gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS, gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS, gl_MAX_OPTIMIZED_VERTEX_SHADER_INARIANTS, gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS, gl_VERTEX_SHADER_INSTRUCTIONS, gl_VERTEX_SHADER_VARIANTS, gl_VERTEX_SHADER_INVARIANTS, gl_VERTEX_SHADER_LOCAL_CONSTANTS, gl_VERTEX_SHADER_LOCALS, gl_VERTEX_SHADER_BINDING, gl_VERTEX_SHADER_OPTIMIZED, gl_X, gl_Y, gl_Z, gl_W, gl_NEGATIVE_X, gl_NEGATIVE_Y, gl_NEGATIVE_Z, gl_NEGATIVE_W, gl_ZERO, gl_ONE, gl_NEGATIVE_ONE, gl_NORMALIZED_RANGE, gl_FULL_RANGE, gl_CURRENT_VERTEX, gl_MVP_MATRIX ) where import Foreign.Ptr import Graphics.Rendering.OpenGL.Raw.Core32 import Graphics.Rendering.OpenGL.Raw.Extensions #include "HsOpenGLRaw.h" extensionNameString :: String extensionNameString = "GL_EXT_vertex_shader" EXTENSION_ENTRY(glBeginVertexShader,IO ()) EXTENSION_ENTRY(glEndVertexShader,IO ()) EXTENSION_ENTRY(glBindVertexShader,GLuint -> IO ()) EXTENSION_ENTRY(glGenVertexShaders,GLuint -> IO GLuint) EXTENSION_ENTRY(glDeleteVertexShader,GLuint -> IO ()) EXTENSION_ENTRY(glShaderOp1,GLenum -> GLuint -> GLuint -> IO ()) EXTENSION_ENTRY(glShaderOp2,GLenum -> GLuint -> GLuint -> GLuint -> IO ()) EXTENSION_ENTRY(glShaderOp3,GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) EXTENSION_ENTRY(glSwizzle,GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) EXTENSION_ENTRY(glWriteMask,GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) EXTENSION_ENTRY(glInsertComponent,GLuint -> GLuint -> GLuint -> IO ()) EXTENSION_ENTRY(glExtractComponent,GLuint -> GLuint -> GLuint -> IO ()) EXTENSION_ENTRY(glGenSymbols,GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint) EXTENSION_ENTRY(glSetInvariant,GLuint -> GLenum -> Ptr () -> IO ()) EXTENSION_ENTRY(glSetLocalConstant,GLuint -> GLenum -> Ptr () -> IO ()) EXTENSION_ENTRY(glVariantbv,GLuint -> Ptr GLbyte -> IO ()) EXTENSION_ENTRY(glVariantsv,GLuint -> Ptr GLshort -> IO ()) EXTENSION_ENTRY(glVariantiv,GLuint -> Ptr GLint -> IO ()) EXTENSION_ENTRY(glVariantfv,GLuint -> Ptr GLfloat -> IO ()) EXTENSION_ENTRY(glVariantdv,GLuint -> Ptr GLdouble -> IO ()) EXTENSION_ENTRY(glVariantubv,GLuint -> Ptr GLubyte -> IO ()) EXTENSION_ENTRY(glVariantusv,GLuint -> Ptr GLushort -> IO ()) EXTENSION_ENTRY(glVariantuiv,GLuint -> Ptr GLuint -> IO ()) EXTENSION_ENTRY(glVariantPointer,GLuint -> GLenum -> GLuint -> Ptr () -> IO ()) EXTENSION_ENTRY(glEnableVariantClientState,GLuint-> IO ()) EXTENSION_ENTRY(glDisableVariantClientState,GLuint-> IO ()) EXTENSION_ENTRY(glBindLightParameter,GLenum -> GLenum-> IO GLuint) EXTENSION_ENTRY(glBindMaterialParameter,GLenum -> GLenum-> IO GLuint) EXTENSION_ENTRY(glBindTexGenParameter,GLenum -> GLenum -> GLenum-> IO GLuint) EXTENSION_ENTRY(glBindTextureUnitParameter,GLenum -> GLenum-> IO GLuint) EXTENSION_ENTRY(glBindParameter,GLenum -> IO GLuint) EXTENSION_ENTRY(glIsVariantEnabled,GLuint -> GLenum -> IO GLboolean) EXTENSION_ENTRY(glGetVariantBooleanv,GLuint -> GLenum -> Ptr GLboolean -> IO ()) EXTENSION_ENTRY(glGetVariantIntegerv,GLuint -> GLenum -> Ptr GLint -> IO ()) EXTENSION_ENTRY(glGetVariantFloatv,GLuint -> GLenum -> Ptr GLfloat -> IO ()) EXTENSION_ENTRY(glGetVariantPointerv,GLuint -> GLenum -> Ptr (Ptr a) -> IO ()) EXTENSION_ENTRY(glGetInvariantBooleanv,GLuint -> GLenum -> Ptr GLboolean -> IO ()) EXTENSION_ENTRY(glGetInvariantIntegerv,GLuint -> GLenum -> Ptr GLint -> IO ()) EXTENSION_ENTRY(glGetInvariantFloatv,GLuint -> GLenum -> Ptr GLfloat -> IO ()) EXTENSION_ENTRY(glGetLocalConstantBooleanv,GLuint -> GLenum -> Ptr GLboolean -> IO ()) EXTENSION_ENTRY(glGetLocalConstantIntegerv,GLuint -> GLenum -> Ptr GLint -> IO ()) EXTENSION_ENTRY(glGetLocalConstantFloatv,GLuint -> GLenum -> Ptr GLfloat -> IO ()) gl_VARIANT_VALUE :: GLenum gl_VARIANT_VALUE = 0x87E4 gl_VARIANT_DATATYPE :: GLenum gl_VARIANT_DATATYPE = 0x87E5 gl_VARIANT_ARRAY_STRIDE :: GLenum gl_VARIANT_ARRAY_STRIDE = 0x87E6 gl_VARIANT_ARRAY_TYPE :: GLenum gl_VARIANT_ARRAY_TYPE = 0x87E7 gl_VARIANT_ARRAY :: GLenum gl_VARIANT_ARRAY = 0x87E8 gl_VARIANT_ARRAY_POINTER :: GLenum gl_VARIANT_ARRAY_POINTER = 0x87E9 gl_INVARIANT_VALUE :: GLenum gl_INVARIANT_VALUE = 0x87EA gl_INVARIANT_DATATYPE :: GLenum gl_INVARIANT_DATATYPE = 0x87EB gl_LOCAL_CONSTANT_VALUE :: GLenum gl_LOCAL_CONSTANT_VALUE = 0x87EC gl_LOCAL_CONSTANT_DATATYPE :: GLenum gl_LOCAL_CONSTANT_DATATYPE = 0x87ED gl_OP_INDEX :: GLenum gl_OP_INDEX = 0x8782 gl_OP_NEGATE :: GLenum gl_OP_NEGATE = 0x8783 gl_OP_DOT3 :: GLenum gl_OP_DOT3 = 0x8784 gl_OP_DOT4 :: GLenum gl_OP_DOT4 = 0x8785 gl_OP_MUL :: GLenum gl_OP_MUL = 0x8786 gl_OP_ADD :: GLenum gl_OP_ADD = 0x8787 gl_OP_MADD :: GLenum gl_OP_MADD = 0x8788 gl_OP_FRAC :: GLenum gl_OP_FRAC = 0x8789 gl_OP_MAX :: GLenum gl_OP_MAX = 0x878A gl_OP_MIN :: GLenum gl_OP_MIN = 0x878B gl_OP_SET_GE :: GLenum gl_OP_SET_GE = 0x878C gl_OP_SET_LT :: GLenum gl_OP_SET_LT = 0x878D gl_OP_CLAMP :: GLenum gl_OP_CLAMP = 0x878E gl_OP_FLOOR :: GLenum gl_OP_FLOOR = 0x878F gl_OP_ROUND :: GLenum gl_OP_ROUND = 0x8790 gl_OP_EXP_BASE_2 :: GLenum gl_OP_EXP_BASE_2 = 0x8791 gl_OP_LOG_BASE_2 :: GLenum gl_OP_LOG_BASE_2 = 0x8792 gl_OP_POWER :: GLenum gl_OP_POWER = 0x8793 gl_OP_RECIP :: GLenum gl_OP_RECIP = 0x8794 gl_OP_RECIP_SQRT :: GLenum gl_OP_RECIP_SQRT = 0x8795 gl_OP_SUB :: GLenum gl_OP_SUB = 0x8796 gl_OP_CROSS_PRODUCT :: GLenum gl_OP_CROSS_PRODUCT = 0x8797 gl_OP_MULTIPLY_MATRIX :: GLenum gl_OP_MULTIPLY_MATRIX = 0x8798 gl_OP_MOV :: GLenum gl_OP_MOV = 0x8799 gl_OUTPUT_VERTEX :: GLenum gl_OUTPUT_VERTEX = 0x879A gl_OUTPUT_COLOR0 :: GLenum gl_OUTPUT_COLOR0 = 0x879B gl_OUTPUT_COLOR1 :: GLenum gl_OUTPUT_COLOR1 = 0x879C gl_OUTPUT_TEXTURE_COORD0 :: GLenum gl_OUTPUT_TEXTURE_COORD0 = 0x879D gl_OUTPUT_TEXTURE_COORD1 :: GLenum gl_OUTPUT_TEXTURE_COORD1 = 0x879E gl_OUTPUT_TEXTURE_COORD2 :: GLenum gl_OUTPUT_TEXTURE_COORD2 = 0x879F gl_OUTPUT_TEXTURE_COORD3 :: GLenum gl_OUTPUT_TEXTURE_COORD3 = 0x87A0 gl_OUTPUT_TEXTURE_COORD4 :: GLenum gl_OUTPUT_TEXTURE_COORD4 = 0x87A1 gl_OUTPUT_TEXTURE_COORD5 :: GLenum gl_OUTPUT_TEXTURE_COORD5 = 0x87A2 gl_OUTPUT_TEXTURE_COORD6 :: GLenum gl_OUTPUT_TEXTURE_COORD6 = 0x87A3 gl_OUTPUT_TEXTURE_COORD7 :: GLenum gl_OUTPUT_TEXTURE_COORD7 = 0x87A4 gl_OUTPUT_TEXTURE_COORD8 :: GLenum gl_OUTPUT_TEXTURE_COORD8 = 0x87A5 gl_OUTPUT_TEXTURE_COORD9 :: GLenum gl_OUTPUT_TEXTURE_COORD9 = 0x87A6 gl_OUTPUT_TEXTURE_COORD10 :: GLenum gl_OUTPUT_TEXTURE_COORD10 = 0x87A7 gl_OUTPUT_TEXTURE_COORD11 :: GLenum gl_OUTPUT_TEXTURE_COORD11 = 0x87A8 gl_OUTPUT_TEXTURE_COORD12 :: GLenum gl_OUTPUT_TEXTURE_COORD12 = 0x87A9 gl_OUTPUT_TEXTURE_COORD13 :: GLenum gl_OUTPUT_TEXTURE_COORD13 = 0x87AA gl_OUTPUT_TEXTURE_COORD14 :: GLenum gl_OUTPUT_TEXTURE_COORD14 = 0x87AB gl_OUTPUT_TEXTURE_COORD15 :: GLenum gl_OUTPUT_TEXTURE_COORD15 = 0x87AC gl_OUTPUT_TEXTURE_COORD16 :: GLenum gl_OUTPUT_TEXTURE_COORD16 = 0x87AD gl_OUTPUT_TEXTURE_COORD17 :: GLenum gl_OUTPUT_TEXTURE_COORD17 = 0x87AE gl_OUTPUT_TEXTURE_COORD18 :: GLenum gl_OUTPUT_TEXTURE_COORD18 = 0x87AF gl_OUTPUT_TEXTURE_COORD19 :: GLenum gl_OUTPUT_TEXTURE_COORD19 = 0x87B0 gl_OUTPUT_TEXTURE_COORD20 :: GLenum gl_OUTPUT_TEXTURE_COORD20 = 0x87B1 gl_OUTPUT_TEXTURE_COORD21 :: GLenum gl_OUTPUT_TEXTURE_COORD21 = 0x87B2 gl_OUTPUT_TEXTURE_COORD22 :: GLenum gl_OUTPUT_TEXTURE_COORD22 = 0x87B3 gl_OUTPUT_TEXTURE_COORD23 :: GLenum gl_OUTPUT_TEXTURE_COORD23 = 0x87B4 gl_OUTPUT_TEXTURE_COORD24 :: GLenum gl_OUTPUT_TEXTURE_COORD24 = 0x87B5 gl_OUTPUT_TEXTURE_COORD25 :: GLenum gl_OUTPUT_TEXTURE_COORD25 = 0x87B6 gl_OUTPUT_TEXTURE_COORD26 :: GLenum gl_OUTPUT_TEXTURE_COORD26 = 0x87B7 gl_OUTPUT_TEXTURE_COORD27 :: GLenum gl_OUTPUT_TEXTURE_COORD27 = 0x87B8 gl_OUTPUT_TEXTURE_COORD28 :: GLenum gl_OUTPUT_TEXTURE_COORD28 = 0x87B9 gl_OUTPUT_TEXTURE_COORD29 :: GLenum gl_OUTPUT_TEXTURE_COORD29 = 0x87BA gl_OUTPUT_TEXTURE_COORD30 :: GLenum gl_OUTPUT_TEXTURE_COORD30 = 0x87BB gl_OUTPUT_TEXTURE_COORD31 :: GLenum gl_OUTPUT_TEXTURE_COORD31 = 0x87BC gl_OUTPUT_FOG :: GLenum gl_OUTPUT_FOG = 0x87BD gl_SCALAR :: GLenum gl_SCALAR = 0x87BE gl_VECTOR :: GLenum gl_VECTOR = 0x87BF gl_MATRIX :: GLenum gl_MATRIX = 0x87C0 gl_VARIANT :: GLenum gl_VARIANT = 0x87C1 gl_INVARIANT :: GLenum gl_INVARIANT = 0x87C2 gl_LOCAL_CONSTANT :: GLenum gl_LOCAL_CONSTANT = 0x87C3 gl_LOCAL :: GLenum gl_LOCAL = 0x87C4 gl_MAX_VERTEX_SHADER_INSTRUCTIONS :: GLenum gl_MAX_VERTEX_SHADER_INSTRUCTIONS = 0x87C5 gl_MAX_VERTEX_SHADER_VARIANTS :: GLenum gl_MAX_VERTEX_SHADER_VARIANTS = 0x87C6 gl_MAX_VERTEX_SHADER_INVARIANTS :: GLenum gl_MAX_VERTEX_SHADER_INVARIANTS = 0x87C7 gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS :: GLenum gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS = 0x87C8 gl_MAX_VERTEX_SHADER_LOCALS :: GLenum gl_MAX_VERTEX_SHADER_LOCALS = 0x87C9 gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS :: GLenum gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS = 0x87CA gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS :: GLenum gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS = 0x87CB gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS :: GLenum gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS = 0x87CC gl_MAX_OPTIMIZED_VERTEX_SHADER_INARIANTS :: GLenum gl_MAX_OPTIMIZED_VERTEX_SHADER_INARIANTS = 0x87CD gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS :: GLenum gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS = 0x87CE gl_VERTEX_SHADER_INSTRUCTIONS :: GLenum gl_VERTEX_SHADER_INSTRUCTIONS = 0x87CF gl_VERTEX_SHADER_VARIANTS :: GLenum gl_VERTEX_SHADER_VARIANTS = 0x87D0 gl_VERTEX_SHADER_INVARIANTS :: GLenum gl_VERTEX_SHADER_INVARIANTS = 0x87D1 gl_VERTEX_SHADER_LOCAL_CONSTANTS :: GLenum gl_VERTEX_SHADER_LOCAL_CONSTANTS = 0x87D2 gl_VERTEX_SHADER_LOCALS :: GLenum gl_VERTEX_SHADER_LOCALS = 0x87D3 gl_VERTEX_SHADER_BINDING :: GLenum gl_VERTEX_SHADER_BINDING = 0x8781 gl_VERTEX_SHADER_OPTIMIZED :: GLenum gl_VERTEX_SHADER_OPTIMIZED = 0x87D4 gl_X :: GLenum gl_X = 0x87D5 gl_Y :: GLenum gl_Y = 0x87D6 gl_Z :: GLenum gl_Z = 0x87D7 gl_W :: GLenum gl_W = 0x87D8 gl_NEGATIVE_X :: GLenum gl_NEGATIVE_X = 0x87D9 gl_NEGATIVE_Y :: GLenum gl_NEGATIVE_Y = 0x87DA gl_NEGATIVE_Z :: GLenum gl_NEGATIVE_Z = 0x87DB gl_NEGATIVE_W :: GLenum gl_NEGATIVE_W = 0x87DC gl_NEGATIVE_ONE :: GLenum gl_NEGATIVE_ONE = 0x87DF gl_NORMALIZED_RANGE :: GLenum gl_NORMALIZED_RANGE = 0x87E0 gl_FULL_RANGE :: GLenum gl_FULL_RANGE = 0x87E1 gl_CURRENT_VERTEX :: GLenum gl_CURRENT_VERTEX = 0x87E2 gl_MVP_MATRIX :: GLenum gl_MVP_MATRIX = 0x87E3