home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Multimedia / k3d-setup-0.7.11.0.exe / lib / site-packages / OpenGL / raw / GL / ARB / shader_objects.py < prev    next >
Encoding:
Python Source  |  2008-12-07  |  18.4 KB  |  437 lines

  1. '''OpenGL extension ARB.shader_objects
  2.  
  3. Overview (from the spec)
  4.     
  5.     This extension adds API calls that are necessary to manage shader
  6.     objects and program objects as defined in the OpenGL 2.0 white papers by
  7.     3Dlabs.
  8.     
  9.     The generation of an executable that runs on one of OpenGL's
  10.     programmable units is modeled to that of developing a typical C/C++
  11.     application. There are one or more source files, each of which are
  12.     stored by OpenGL in a shader object. Each shader object (source file)
  13.     needs to be compiled and attached to a program object. Once all shader
  14.     objects are compiled successfully, the program object needs to be linked
  15.     to produce an executable. This executable is part of the program object,
  16.     and can now be loaded onto the programmable units to make it part of the
  17.     current OpenGL state. Both the compile and link stages generate a text
  18.     string that can be queried to get more information. This information
  19.     could be, but is not limited to, compile errors, link errors,
  20.     optimization hints, etc. Values for uniform variables, declared in a
  21.     shader, can be set by the application and used to control a shader's
  22.     behavior.
  23.     
  24.     This extension defines functions for creating shader objects and program
  25.     objects, for compiling shader objects, for linking program objects, for
  26.     attaching shader objects to program objects, and for using a program
  27.     object as part of current state. Functions to load uniform values are
  28.     also defined. Some house keeping functions, like deleting an object and
  29.     querying object state, are also provided.
  30.     
  31.     Although this extension defines the API for creating shader objects, it
  32.     does not define any specific types of shader objects. It is assumed that
  33.     this extension will be implemented along with at least one such
  34.     additional extension for creating a specific type of OpenGL 2.0 shader
  35.     (e.g., the ARB_fragment_shader extension or the ARB_vertex_shader
  36.     extension).
  37.  
  38. The official definition of this extension is available here:
  39.     http://oss.sgi.com/projects/ogl-sample/registry/ARB/shader_objects.txt
  40.  
  41. Automatically generated by the get_gl_extensions script, do not edit!
  42. '''
  43. from OpenGL import platform, constants, constant, arrays
  44. from OpenGL import extensions
  45. from OpenGL.GL import glget
  46. import ctypes
  47. EXTENSION_NAME = 'GL_ARB_shader_objects'
  48. GL_PROGRAM_OBJECT_ARB = constant.Constant( 'GL_PROGRAM_OBJECT_ARB', 0x8B40 )
  49. GL_SHADER_OBJECT_ARB = constant.Constant( 'GL_SHADER_OBJECT_ARB', 0x8B48 )
  50. GL_OBJECT_TYPE_ARB = constant.Constant( 'GL_OBJECT_TYPE_ARB', 0x8B4E )
  51. GL_OBJECT_SUBTYPE_ARB = constant.Constant( 'GL_OBJECT_SUBTYPE_ARB', 0x8B4F )
  52. GL_FLOAT_VEC2_ARB = constant.Constant( 'GL_FLOAT_VEC2_ARB', 0x8B50 )
  53. GL_FLOAT_VEC3_ARB = constant.Constant( 'GL_FLOAT_VEC3_ARB', 0x8B51 )
  54. GL_FLOAT_VEC4_ARB = constant.Constant( 'GL_FLOAT_VEC4_ARB', 0x8B52 )
  55. GL_INT_VEC2_ARB = constant.Constant( 'GL_INT_VEC2_ARB', 0x8B53 )
  56. GL_INT_VEC3_ARB = constant.Constant( 'GL_INT_VEC3_ARB', 0x8B54 )
  57. GL_INT_VEC4_ARB = constant.Constant( 'GL_INT_VEC4_ARB', 0x8B55 )
  58. GL_BOOL_ARB = constant.Constant( 'GL_BOOL_ARB', 0x8B56 )
  59. GL_BOOL_VEC2_ARB = constant.Constant( 'GL_BOOL_VEC2_ARB', 0x8B57 )
  60. GL_BOOL_VEC3_ARB = constant.Constant( 'GL_BOOL_VEC3_ARB', 0x8B58 )
  61. GL_BOOL_VEC4_ARB = constant.Constant( 'GL_BOOL_VEC4_ARB', 0x8B59 )
  62. GL_FLOAT_MAT2_ARB = constant.Constant( 'GL_FLOAT_MAT2_ARB', 0x8B5A )
  63. GL_FLOAT_MAT3_ARB = constant.Constant( 'GL_FLOAT_MAT3_ARB', 0x8B5B )
  64. GL_FLOAT_MAT4_ARB = constant.Constant( 'GL_FLOAT_MAT4_ARB', 0x8B5C )
  65. GL_SAMPLER_1D_ARB = constant.Constant( 'GL_SAMPLER_1D_ARB', 0x8B5D )
  66. GL_SAMPLER_2D_ARB = constant.Constant( 'GL_SAMPLER_2D_ARB', 0x8B5E )
  67. GL_SAMPLER_3D_ARB = constant.Constant( 'GL_SAMPLER_3D_ARB', 0x8B5F )
  68. GL_SAMPLER_CUBE_ARB = constant.Constant( 'GL_SAMPLER_CUBE_ARB', 0x8B60 )
  69. GL_SAMPLER_1D_SHADOW_ARB = constant.Constant( 'GL_SAMPLER_1D_SHADOW_ARB', 0x8B61 )
  70. GL_SAMPLER_2D_SHADOW_ARB = constant.Constant( 'GL_SAMPLER_2D_SHADOW_ARB', 0x8B62 )
  71. GL_SAMPLER_2D_RECT_ARB = constant.Constant( 'GL_SAMPLER_2D_RECT_ARB', 0x8B63 )
  72. GL_SAMPLER_2D_RECT_SHADOW_ARB = constant.Constant( 'GL_SAMPLER_2D_RECT_SHADOW_ARB', 0x8B64 )
  73. GL_OBJECT_DELETE_STATUS_ARB = constant.Constant( 'GL_OBJECT_DELETE_STATUS_ARB', 0x8B80 )
  74. GL_OBJECT_COMPILE_STATUS_ARB = constant.Constant( 'GL_OBJECT_COMPILE_STATUS_ARB', 0x8B81 )
  75. GL_OBJECT_LINK_STATUS_ARB = constant.Constant( 'GL_OBJECT_LINK_STATUS_ARB', 0x8B82 )
  76. GL_OBJECT_VALIDATE_STATUS_ARB = constant.Constant( 'GL_OBJECT_VALIDATE_STATUS_ARB', 0x8B83 )
  77. GL_OBJECT_INFO_LOG_LENGTH_ARB = constant.Constant( 'GL_OBJECT_INFO_LOG_LENGTH_ARB', 0x8B84 )
  78. GL_OBJECT_ATTACHED_OBJECTS_ARB = constant.Constant( 'GL_OBJECT_ATTACHED_OBJECTS_ARB', 0x8B85 )
  79. GL_OBJECT_ACTIVE_UNIFORMS_ARB = constant.Constant( 'GL_OBJECT_ACTIVE_UNIFORMS_ARB', 0x8B86 )
  80. GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = constant.Constant( 'GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB', 0x8B87 )
  81. GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = constant.Constant( 'GL_OBJECT_SHADER_SOURCE_LENGTH_ARB', 0x8B88 )
  82. glDeleteObjectARB = platform.createExtensionFunction( 
  83.     'glDeleteObjectARB', dll=platform.GL,
  84.     extension=EXTENSION_NAME,
  85.     resultType=None, 
  86.     argTypes=(constants.GLhandleARB,),
  87.     doc = 'glDeleteObjectARB( GLhandleARB(obj) ) -> None',
  88.     argNames = ('obj',),
  89. )
  90.  
  91. glGetHandleARB = platform.createExtensionFunction( 
  92.     'glGetHandleARB', dll=platform.GL,
  93.     extension=EXTENSION_NAME,
  94.     resultType=constants.GLhandleARB, 
  95.     argTypes=(constants.GLenum,),
  96.     doc = 'glGetHandleARB( GLenum(pname) ) -> constants.GLhandleARB',
  97.     argNames = ('pname',),
  98. )
  99.  
  100. glDetachObjectARB = platform.createExtensionFunction( 
  101.     'glDetachObjectARB', dll=platform.GL,
  102.     extension=EXTENSION_NAME,
  103.     resultType=None, 
  104.     argTypes=(constants.GLhandleARB, constants.GLhandleARB,),
  105.     doc = 'glDetachObjectARB( GLhandleARB(containerObj), GLhandleARB(attachedObj) ) -> None',
  106.     argNames = ('containerObj', 'attachedObj',),
  107. )
  108.  
  109. glCreateShaderObjectARB = platform.createExtensionFunction( 
  110.     'glCreateShaderObjectARB', dll=platform.GL,
  111.     extension=EXTENSION_NAME,
  112.     resultType=constants.GLhandleARB, 
  113.     argTypes=(constants.GLenum,),
  114.     doc = 'glCreateShaderObjectARB( GLenum(shaderType) ) -> constants.GLhandleARB',
  115.     argNames = ('shaderType',),
  116. )
  117.  
  118. glShaderSourceARB = platform.createExtensionFunction( 
  119.     'glShaderSourceARB', dll=platform.GL,
  120.     extension=EXTENSION_NAME,
  121.     resultType=None, 
  122.     argTypes=(constants.GLhandleARB, constants.GLsizei, ctypes.POINTER(arrays.GLcharARBArray), arrays.GLintArray,),
  123.     doc = 'glShaderSourceARB( GLhandleARB(shaderObj), GLsizei(count), POINTER(arrays.GLcharARBArray)(string), GLintArray(length) ) -> None',
  124.     argNames = ('shaderObj', 'count', 'string', 'length',),
  125. )
  126.  
  127. glCompileShaderARB = platform.createExtensionFunction( 
  128.     'glCompileShaderARB', dll=platform.GL,
  129.     extension=EXTENSION_NAME,
  130.     resultType=None, 
  131.     argTypes=(constants.GLhandleARB,),
  132.     doc = 'glCompileShaderARB( GLhandleARB(shaderObj) ) -> None',
  133.     argNames = ('shaderObj',),
  134. )
  135.  
  136. glCreateProgramObjectARB = platform.createExtensionFunction( 
  137.     'glCreateProgramObjectARB', dll=platform.GL,
  138.     extension=EXTENSION_NAME,
  139.     resultType=constants.GLhandleARB, 
  140.     argTypes=(),
  141.     doc = 'glCreateProgramObjectARB(  ) -> constants.GLhandleARB',
  142.     argNames = (),
  143. )
  144.  
  145. glAttachObjectARB = platform.createExtensionFunction( 
  146.     'glAttachObjectARB', dll=platform.GL,
  147.     extension=EXTENSION_NAME,
  148.     resultType=None, 
  149.     argTypes=(constants.GLhandleARB, constants.GLhandleARB,),
  150.     doc = 'glAttachObjectARB( GLhandleARB(containerObj), GLhandleARB(obj) ) -> None',
  151.     argNames = ('containerObj', 'obj',),
  152. )
  153.  
  154. glLinkProgramARB = platform.createExtensionFunction( 
  155.     'glLinkProgramARB', dll=platform.GL,
  156.     extension=EXTENSION_NAME,
  157.     resultType=None, 
  158.     argTypes=(constants.GLhandleARB,),
  159.     doc = 'glLinkProgramARB( GLhandleARB(programObj) ) -> None',
  160.     argNames = ('programObj',),
  161. )
  162.  
  163. glUseProgramObjectARB = platform.createExtensionFunction( 
  164.     'glUseProgramObjectARB', dll=platform.GL,
  165.     extension=EXTENSION_NAME,
  166.     resultType=None, 
  167.     argTypes=(constants.GLhandleARB,),
  168.     doc = 'glUseProgramObjectARB( GLhandleARB(programObj) ) -> None',
  169.     argNames = ('programObj',),
  170. )
  171.  
  172. glValidateProgramARB = platform.createExtensionFunction( 
  173.     'glValidateProgramARB', dll=platform.GL,
  174.     extension=EXTENSION_NAME,
  175.     resultType=None, 
  176.     argTypes=(constants.GLhandleARB,),
  177.     doc = 'glValidateProgramARB( GLhandleARB(programObj) ) -> None',
  178.     argNames = ('programObj',),
  179. )
  180.  
  181. glUniform1fARB = platform.createExtensionFunction( 
  182.     'glUniform1fARB', dll=platform.GL,
  183.     extension=EXTENSION_NAME,
  184.     resultType=None, 
  185.     argTypes=(constants.GLint, constants.GLfloat,),
  186.     doc = 'glUniform1fARB( GLint(location), GLfloat(v0) ) -> None',
  187.     argNames = ('location', 'v0',),
  188. )
  189.  
  190. glUniform2fARB = platform.createExtensionFunction( 
  191.     'glUniform2fARB', dll=platform.GL,
  192.     extension=EXTENSION_NAME,
  193.     resultType=None, 
  194.     argTypes=(constants.GLint, constants.GLfloat, constants.GLfloat,),
  195.     doc = 'glUniform2fARB( GLint(location), GLfloat(v0), GLfloat(v1) ) -> None',
  196.     argNames = ('location', 'v0', 'v1',),
  197. )
  198.  
  199. glUniform3fARB = platform.createExtensionFunction( 
  200.     'glUniform3fARB', dll=platform.GL,
  201.     extension=EXTENSION_NAME,
  202.     resultType=None, 
  203.     argTypes=(constants.GLint, constants.GLfloat, constants.GLfloat, constants.GLfloat,),
  204.     doc = 'glUniform3fARB( GLint(location), GLfloat(v0), GLfloat(v1), GLfloat(v2) ) -> None',
  205.     argNames = ('location', 'v0', 'v1', 'v2',),
  206. )
  207.  
  208. glUniform4fARB = platform.createExtensionFunction( 
  209.     'glUniform4fARB', dll=platform.GL,
  210.     extension=EXTENSION_NAME,
  211.     resultType=None, 
  212.     argTypes=(constants.GLint, constants.GLfloat, constants.GLfloat, constants.GLfloat, constants.GLfloat,),
  213.     doc = 'glUniform4fARB( GLint(location), GLfloat(v0), GLfloat(v1), GLfloat(v2), GLfloat(v3) ) -> None',
  214.     argNames = ('location', 'v0', 'v1', 'v2', 'v3',),
  215. )
  216.  
  217. glUniform1iARB = platform.createExtensionFunction( 
  218.     'glUniform1iARB', dll=platform.GL,
  219.     extension=EXTENSION_NAME,
  220.     resultType=None, 
  221.     argTypes=(constants.GLint, constants.GLint,),
  222.     doc = 'glUniform1iARB( GLint(location), GLint(v0) ) -> None',
  223.     argNames = ('location', 'v0',),
  224. )
  225.  
  226. glUniform2iARB = platform.createExtensionFunction( 
  227.     'glUniform2iARB', dll=platform.GL,
  228.     extension=EXTENSION_NAME,
  229.     resultType=None, 
  230.     argTypes=(constants.GLint, constants.GLint, constants.GLint,),
  231.     doc = 'glUniform2iARB( GLint(location), GLint(v0), GLint(v1) ) -> None',
  232.     argNames = ('location', 'v0', 'v1',),
  233. )
  234.  
  235. glUniform3iARB = platform.createExtensionFunction( 
  236.     'glUniform3iARB', dll=platform.GL,
  237.     extension=EXTENSION_NAME,
  238.     resultType=None, 
  239.     argTypes=(constants.GLint, constants.GLint, constants.GLint, constants.GLint,),
  240.     doc = 'glUniform3iARB( GLint(location), GLint(v0), GLint(v1), GLint(v2) ) -> None',
  241.     argNames = ('location', 'v0', 'v1', 'v2',),
  242. )
  243.  
  244. glUniform4iARB = platform.createExtensionFunction( 
  245.     'glUniform4iARB', dll=platform.GL,
  246.     extension=EXTENSION_NAME,
  247.     resultType=None, 
  248.     argTypes=(constants.GLint, constants.GLint, constants.GLint, constants.GLint, constants.GLint,),
  249.     doc = 'glUniform4iARB( GLint(location), GLint(v0), GLint(v1), GLint(v2), GLint(v3) ) -> None',
  250.     argNames = ('location', 'v0', 'v1', 'v2', 'v3',),
  251. )
  252.  
  253. glUniform1fvARB = platform.createExtensionFunction( 
  254.     'glUniform1fvARB', dll=platform.GL,
  255.     extension=EXTENSION_NAME,
  256.     resultType=None, 
  257.     argTypes=(constants.GLint, constants.GLsizei, arrays.GLfloatArray,),
  258.     doc = 'glUniform1fvARB( GLint(location), GLsizei(count), GLfloatArray(value) ) -> None',
  259.     argNames = ('location', 'count', 'value',),
  260. )
  261.  
  262. glUniform2fvARB = platform.createExtensionFunction( 
  263.     'glUniform2fvARB', dll=platform.GL,
  264.     extension=EXTENSION_NAME,
  265.     resultType=None, 
  266.     argTypes=(constants.GLint, constants.GLsizei, arrays.GLfloatArray,),
  267.     doc = 'glUniform2fvARB( GLint(location), GLsizei(count), GLfloatArray(value) ) -> None',
  268.     argNames = ('location', 'count', 'value',),
  269. )
  270.  
  271. glUniform3fvARB = platform.createExtensionFunction( 
  272.     'glUniform3fvARB', dll=platform.GL,
  273.     extension=EXTENSION_NAME,
  274.     resultType=None, 
  275.     argTypes=(constants.GLint, constants.GLsizei, arrays.GLfloatArray,),
  276.     doc = 'glUniform3fvARB( GLint(location), GLsizei(count), GLfloatArray(value) ) -> None',
  277.     argNames = ('location', 'count', 'value',),
  278. )
  279.  
  280. glUniform4fvARB = platform.createExtensionFunction( 
  281.     'glUniform4fvARB', dll=platform.GL,
  282.     extension=EXTENSION_NAME,
  283.     resultType=None, 
  284.     argTypes=(constants.GLint, constants.GLsizei, arrays.GLfloatArray,),
  285.     doc = 'glUniform4fvARB( GLint(location), GLsizei(count), GLfloatArray(value) ) -> None',
  286.     argNames = ('location', 'count', 'value',),
  287. )
  288.  
  289. glUniform1ivARB = platform.createExtensionFunction( 
  290.     'glUniform1ivARB', dll=platform.GL,
  291.     extension=EXTENSION_NAME,
  292.     resultType=None, 
  293.     argTypes=(constants.GLint, constants.GLsizei, arrays.GLintArray,),
  294.     doc = 'glUniform1ivARB( GLint(location), GLsizei(count), GLintArray(value) ) -> None',
  295.     argNames = ('location', 'count', 'value',),
  296. )
  297.  
  298. glUniform2ivARB = platform.createExtensionFunction( 
  299.     'glUniform2ivARB', dll=platform.GL,
  300.     extension=EXTENSION_NAME,
  301.     resultType=None, 
  302.     argTypes=(constants.GLint, constants.GLsizei, arrays.GLintArray,),
  303.     doc = 'glUniform2ivARB( GLint(location), GLsizei(count), GLintArray(value) ) -> None',
  304.     argNames = ('location', 'count', 'value',),
  305. )
  306.  
  307. glUniform3ivARB = platform.createExtensionFunction( 
  308.     'glUniform3ivARB', dll=platform.GL,
  309.     extension=EXTENSION_NAME,
  310.     resultType=None, 
  311.     argTypes=(constants.GLint, constants.GLsizei, arrays.GLintArray,),
  312.     doc = 'glUniform3ivARB( GLint(location), GLsizei(count), GLintArray(value) ) -> None',
  313.     argNames = ('location', 'count', 'value',),
  314. )
  315.  
  316. glUniform4ivARB = platform.createExtensionFunction( 
  317.     'glUniform4ivARB', dll=platform.GL,
  318.     extension=EXTENSION_NAME,
  319.     resultType=None, 
  320.     argTypes=(constants.GLint, constants.GLsizei, arrays.GLintArray,),
  321.     doc = 'glUniform4ivARB( GLint(location), GLsizei(count), GLintArray(value) ) -> None',
  322.     argNames = ('location', 'count', 'value',),
  323. )
  324.  
  325. glUniformMatrix2fvARB = platform.createExtensionFunction( 
  326.     'glUniformMatrix2fvARB', dll=platform.GL,
  327.     extension=EXTENSION_NAME,
  328.     resultType=None, 
  329.     argTypes=(constants.GLint, constants.GLsizei, constants.GLboolean, arrays.GLfloatArray,),
  330.     doc = 'glUniformMatrix2fvARB( GLint(location), GLsizei(count), GLboolean(transpose), GLfloatArray(value) ) -> None',
  331.     argNames = ('location', 'count', 'transpose', 'value',),
  332. )
  333.  
  334. glUniformMatrix3fvARB = platform.createExtensionFunction( 
  335.     'glUniformMatrix3fvARB', dll=platform.GL,
  336.     extension=EXTENSION_NAME,
  337.     resultType=None, 
  338.     argTypes=(constants.GLint, constants.GLsizei, constants.GLboolean, arrays.GLfloatArray,),
  339.     doc = 'glUniformMatrix3fvARB( GLint(location), GLsizei(count), GLboolean(transpose), GLfloatArray(value) ) -> None',
  340.     argNames = ('location', 'count', 'transpose', 'value',),
  341. )
  342.  
  343. glUniformMatrix4fvARB = platform.createExtensionFunction( 
  344.     'glUniformMatrix4fvARB', dll=platform.GL,
  345.     extension=EXTENSION_NAME,
  346.     resultType=None, 
  347.     argTypes=(constants.GLint, constants.GLsizei, constants.GLboolean, arrays.GLfloatArray,),
  348.     doc = 'glUniformMatrix4fvARB( GLint(location), GLsizei(count), GLboolean(transpose), GLfloatArray(value) ) -> None',
  349.     argNames = ('location', 'count', 'transpose', 'value',),
  350. )
  351.  
  352. glGetObjectParameterfvARB = platform.createExtensionFunction( 
  353.     'glGetObjectParameterfvARB', dll=platform.GL,
  354.     extension=EXTENSION_NAME,
  355.     resultType=None, 
  356.     argTypes=(constants.GLhandleARB, constants.GLenum, arrays.GLfloatArray,),
  357.     doc = 'glGetObjectParameterfvARB( GLhandleARB(obj), GLenum(pname), GLfloatArray(params) ) -> None',
  358.     argNames = ('obj', 'pname', 'params',),
  359. )
  360.  
  361. glGetObjectParameterivARB = platform.createExtensionFunction( 
  362.     'glGetObjectParameterivARB', dll=platform.GL,
  363.     extension=EXTENSION_NAME,
  364.     resultType=None, 
  365.     argTypes=(constants.GLhandleARB, constants.GLenum, arrays.GLintArray,),
  366.     doc = 'glGetObjectParameterivARB( GLhandleARB(obj), GLenum(pname), GLintArray(params) ) -> None',
  367.     argNames = ('obj', 'pname', 'params',),
  368. )
  369.  
  370. glGetInfoLogARB = platform.createExtensionFunction( 
  371.     'glGetInfoLogARB', dll=platform.GL,
  372.     extension=EXTENSION_NAME,
  373.     resultType=None, 
  374.     argTypes=(constants.GLhandleARB, constants.GLsizei, arrays.GLsizeiArray, arrays.GLcharARBArray,),
  375.     doc = 'glGetInfoLogARB( GLhandleARB(obj), GLsizei(maxLength), GLsizeiArray(length), GLcharARBArray(infoLog) ) -> None',
  376.     argNames = ('obj', 'maxLength', 'length', 'infoLog',),
  377. )
  378.  
  379. glGetAttachedObjectsARB = platform.createExtensionFunction( 
  380.     'glGetAttachedObjectsARB', dll=platform.GL,
  381.     extension=EXTENSION_NAME,
  382.     resultType=None, 
  383.     argTypes=(constants.GLhandleARB, constants.GLsizei, arrays.GLsizeiArray, arrays.GLuintArray,),
  384.     doc = 'glGetAttachedObjectsARB( GLhandleARB(containerObj), GLsizei(maxCount), GLsizeiArray(count), GLuintArray(obj) ) -> None',
  385.     argNames = ('containerObj', 'maxCount', 'count', 'obj',),
  386. )
  387.  
  388. glGetUniformLocationARB = platform.createExtensionFunction( 
  389.     'glGetUniformLocationARB', dll=platform.GL,
  390.     extension=EXTENSION_NAME,
  391.     resultType=constants.GLint, 
  392.     argTypes=(constants.GLhandleARB, arrays.GLcharARBArray,),
  393.     doc = 'glGetUniformLocationARB( GLhandleARB(programObj), GLcharARBArray(name) ) -> constants.GLint',
  394.     argNames = ('programObj', 'name',),
  395. )
  396.  
  397. glGetActiveUniformARB = platform.createExtensionFunction( 
  398.     'glGetActiveUniformARB', dll=platform.GL,
  399.     extension=EXTENSION_NAME,
  400.     resultType=None, 
  401.     argTypes=(constants.GLhandleARB, constants.GLuint, constants.GLsizei, arrays.GLsizeiArray, arrays.GLintArray, arrays.GLuintArray, arrays.GLcharARBArray,),
  402.     doc = 'glGetActiveUniformARB( GLhandleARB(programObj), GLuint(index), GLsizei(maxLength), GLsizeiArray(length), GLintArray(size), GLuintArray(type), GLcharARBArray(name) ) -> None',
  403.     argNames = ('programObj', 'index', 'maxLength', 'length', 'size', 'type', 'name',),
  404. )
  405.  
  406. glGetUniformfvARB = platform.createExtensionFunction( 
  407.     'glGetUniformfvARB', dll=platform.GL,
  408.     extension=EXTENSION_NAME,
  409.     resultType=None, 
  410.     argTypes=(constants.GLhandleARB, constants.GLint, arrays.GLfloatArray,),
  411.     doc = 'glGetUniformfvARB( GLhandleARB(programObj), GLint(location), GLfloatArray(params) ) -> None',
  412.     argNames = ('programObj', 'location', 'params',),
  413. )
  414.  
  415. glGetUniformivARB = platform.createExtensionFunction( 
  416.     'glGetUniformivARB', dll=platform.GL,
  417.     extension=EXTENSION_NAME,
  418.     resultType=None, 
  419.     argTypes=(constants.GLhandleARB, constants.GLint, arrays.GLintArray,),
  420.     doc = 'glGetUniformivARB( GLhandleARB(programObj), GLint(location), GLintArray(params) ) -> None',
  421.     argNames = ('programObj', 'location', 'params',),
  422. )
  423.  
  424. glGetShaderSourceARB = platform.createExtensionFunction( 
  425.     'glGetShaderSourceARB', dll=platform.GL,
  426.     extension=EXTENSION_NAME,
  427.     resultType=None, 
  428.     argTypes=(constants.GLhandleARB, constants.GLsizei, arrays.GLsizeiArray, arrays.GLcharARBArray,),
  429.     doc = 'glGetShaderSourceARB( GLhandleARB(obj), GLsizei(maxLength), GLsizeiArray(length), GLcharARBArray(source) ) -> None',
  430.     argNames = ('obj', 'maxLength', 'length', 'source',),
  431. )
  432.  
  433.  
  434. def glInitShaderObjectsARB():
  435.     '''Return boolean indicating whether this extension is available'''
  436.     return extensions.hasGLExtension( EXTENSION_NAME )
  437.