| 1 | /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield |
|---|
| 2 | * Copyright (C) 2003-2005 3Dlabs Inc. Ltd. |
|---|
| 3 | * Copyright (C) 2004-2005 Nathan Cournia |
|---|
| 4 | * Copyright (C) 2007 Art Tevs |
|---|
| 5 | * Copyright (C) 2008 Zebra Imaging |
|---|
| 6 | * Copyright (C) 2010 VIRES Simulationstechnologie GmbH |
|---|
| 7 | * |
|---|
| 8 | * This application is open source and may be redistributed and/or modified |
|---|
| 9 | * freely and without restriction, both in commercial and non commercial |
|---|
| 10 | * applications, as long as this copyright notice is maintained. |
|---|
| 11 | * |
|---|
| 12 | * This application is distributed in the hope that it will be useful, |
|---|
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|---|
| 15 | */ |
|---|
| 16 | |
|---|
| 17 | /* file: include/osg/GL2Extensions |
|---|
| 18 | * author: Mike Weiblen 2008-01-02 |
|---|
| 19 | * Holger Helmich 2010-10-21 |
|---|
| 20 | */ |
|---|
| 21 | |
|---|
| 22 | #ifndef OSG_GL2EXTENSIONS |
|---|
| 23 | #define OSG_GL2EXTENSIONS 1 |
|---|
| 24 | |
|---|
| 25 | #include <osg/Referenced> |
|---|
| 26 | #include <osg/GL> |
|---|
| 27 | |
|---|
| 28 | #include <string> |
|---|
| 29 | |
|---|
| 30 | #ifndef GL_SAMPLER_2D_ARRAY_EXT |
|---|
| 31 | #define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 |
|---|
| 32 | #define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 |
|---|
| 33 | #define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 |
|---|
| 34 | #define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 |
|---|
| 35 | #endif |
|---|
| 36 | |
|---|
| 37 | #if !defined(GL_VERSION_2_0) |
|---|
| 38 | typedef char GLchar; |
|---|
| 39 | #endif |
|---|
| 40 | |
|---|
| 41 | #if !defined(GL_VERSION_2_0) |
|---|
| 42 | #define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 |
|---|
| 43 | #define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 |
|---|
| 44 | #endif |
|---|
| 45 | |
|---|
| 46 | #if !defined(GL_VERSION_2_0) && !defined(GL_ES_VERSION_2_0) |
|---|
| 47 | #define GL_VERSION_2_0 1 |
|---|
| 48 | #define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION |
|---|
| 49 | #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 |
|---|
| 50 | #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 |
|---|
| 51 | #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 |
|---|
| 52 | #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 |
|---|
| 53 | #define GL_CURRENT_VERTEX_ATTRIB 0x8626 |
|---|
| 54 | #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 |
|---|
| 55 | #define GL_STENCIL_BACK_FUNC 0x8800 |
|---|
| 56 | #define GL_STENCIL_BACK_FAIL 0x8801 |
|---|
| 57 | #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 |
|---|
| 58 | #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 |
|---|
| 59 | #define GL_MAX_DRAW_BUFFERS 0x8824 |
|---|
| 60 | #define GL_DRAW_BUFFER0 0x8825 |
|---|
| 61 | #define GL_DRAW_BUFFER1 0x8826 |
|---|
| 62 | #define GL_DRAW_BUFFER2 0x8827 |
|---|
| 63 | #define GL_DRAW_BUFFER3 0x8828 |
|---|
| 64 | #define GL_DRAW_BUFFER4 0x8829 |
|---|
| 65 | #define GL_DRAW_BUFFER5 0x882A |
|---|
| 66 | #define GL_DRAW_BUFFER6 0x882B |
|---|
| 67 | #define GL_DRAW_BUFFER7 0x882C |
|---|
| 68 | #define GL_DRAW_BUFFER8 0x882D |
|---|
| 69 | #define GL_DRAW_BUFFER9 0x882E |
|---|
| 70 | #define GL_DRAW_BUFFER10 0x882F |
|---|
| 71 | #define GL_DRAW_BUFFER11 0x8830 |
|---|
| 72 | #define GL_DRAW_BUFFER12 0x8831 |
|---|
| 73 | #define GL_DRAW_BUFFER13 0x8832 |
|---|
| 74 | #define GL_DRAW_BUFFER14 0x8833 |
|---|
| 75 | #define GL_DRAW_BUFFER15 0x8834 |
|---|
| 76 | #define GL_BLEND_EQUATION_ALPHA 0x883D |
|---|
| 77 | #define GL_POINT_SPRITE 0x8861 |
|---|
| 78 | #define GL_COORD_REPLACE 0x8862 |
|---|
| 79 | #define GL_MAX_VERTEX_ATTRIBS 0x8869 |
|---|
| 80 | #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A |
|---|
| 81 | #define GL_MAX_TEXTURE_COORDS 0x8871 |
|---|
| 82 | #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 |
|---|
| 83 | #define GL_FRAGMENT_SHADER 0x8B30 |
|---|
| 84 | #define GL_VERTEX_SHADER 0x8B31 |
|---|
| 85 | #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 |
|---|
| 86 | #define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A |
|---|
| 87 | #define GL_MAX_VARYING_FLOATS 0x8B4B |
|---|
| 88 | #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C |
|---|
| 89 | #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D |
|---|
| 90 | #define GL_SHADER_TYPE 0x8B4F |
|---|
| 91 | #define GL_FLOAT_VEC2 0x8B50 |
|---|
| 92 | #define GL_FLOAT_VEC3 0x8B51 |
|---|
| 93 | #define GL_FLOAT_VEC4 0x8B52 |
|---|
| 94 | #define GL_INT_VEC2 0x8B53 |
|---|
| 95 | #define GL_INT_VEC3 0x8B54 |
|---|
| 96 | #define GL_INT_VEC4 0x8B55 |
|---|
| 97 | #define GL_BOOL 0x8B56 |
|---|
| 98 | #define GL_BOOL_VEC2 0x8B57 |
|---|
| 99 | #define GL_BOOL_VEC3 0x8B58 |
|---|
| 100 | #define GL_BOOL_VEC4 0x8B59 |
|---|
| 101 | #define GL_FLOAT_MAT2 0x8B5A |
|---|
| 102 | #define GL_FLOAT_MAT3 0x8B5B |
|---|
| 103 | #define GL_FLOAT_MAT4 0x8B5C |
|---|
| 104 | #define GL_SAMPLER_1D 0x8B5D |
|---|
| 105 | #define GL_SAMPLER_2D 0x8B5E |
|---|
| 106 | #define GL_SAMPLER_3D 0x8B5F |
|---|
| 107 | #define GL_SAMPLER_CUBE 0x8B60 |
|---|
| 108 | #define GL_SAMPLER_1D_SHADOW 0x8B61 |
|---|
| 109 | #define GL_SAMPLER_2D_SHADOW 0x8B62 |
|---|
| 110 | #define GL_DELETE_STATUS 0x8B80 |
|---|
| 111 | #define GL_COMPILE_STATUS 0x8B81 |
|---|
| 112 | #define GL_LINK_STATUS 0x8B82 |
|---|
| 113 | #define GL_VALIDATE_STATUS 0x8B83 |
|---|
| 114 | #define GL_INFO_LOG_LENGTH 0x8B84 |
|---|
| 115 | #define GL_ATTACHED_SHADERS 0x8B85 |
|---|
| 116 | #define GL_ACTIVE_UNIFORMS 0x8B86 |
|---|
| 117 | #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 |
|---|
| 118 | #define GL_SHADER_SOURCE_LENGTH 0x8B88 |
|---|
| 119 | #define GL_ACTIVE_ATTRIBUTES 0x8B89 |
|---|
| 120 | #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A |
|---|
| 121 | #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B |
|---|
| 122 | #define GL_SHADING_LANGUAGE_VERSION 0x8B8C |
|---|
| 123 | #define GL_CURRENT_PROGRAM 0x8B8D |
|---|
| 124 | #define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 |
|---|
| 125 | #define GL_LOWER_LEFT 0x8CA1 |
|---|
| 126 | #define GL_UPPER_LEFT 0x8CA2 |
|---|
| 127 | #define GL_STENCIL_BACK_REF 0x8CA3 |
|---|
| 128 | #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 |
|---|
| 129 | #define GL_STENCIL_BACK_WRITEMASK 0x8CA5 |
|---|
| 130 | #endif |
|---|
| 131 | |
|---|
| 132 | #ifndef GL_VERSION_2_1 |
|---|
| 133 | #define GL_VERSION_2_1 1 |
|---|
| 134 | #define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F |
|---|
| 135 | #define GL_PIXEL_PACK_BUFFER 0x88EB |
|---|
| 136 | #define GL_PIXEL_UNPACK_BUFFER 0x88EC |
|---|
| 137 | #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED |
|---|
| 138 | #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF |
|---|
| 139 | #define GL_FLOAT_MAT2x3 0x8B65 |
|---|
| 140 | #define GL_FLOAT_MAT2x4 0x8B66 |
|---|
| 141 | #define GL_FLOAT_MAT3x2 0x8B67 |
|---|
| 142 | #define GL_FLOAT_MAT3x4 0x8B68 |
|---|
| 143 | #define GL_FLOAT_MAT4x2 0x8B69 |
|---|
| 144 | #define GL_FLOAT_MAT4x3 0x8B6A |
|---|
| 145 | #define GL_SRGB 0x8C40 |
|---|
| 146 | #define GL_SRGB8 0x8C41 |
|---|
| 147 | #define GL_SRGB_ALPHA 0x8C42 |
|---|
| 148 | #define GL_SRGB8_ALPHA8 0x8C43 |
|---|
| 149 | #define GL_SLUMINANCE_ALPHA 0x8C44 |
|---|
| 150 | #define GL_SLUMINANCE8_ALPHA8 0x8C45 |
|---|
| 151 | #define GL_SLUMINANCE 0x8C46 |
|---|
| 152 | #define GL_SLUMINANCE8 0x8C47 |
|---|
| 153 | #define GL_COMPRESSED_SRGB 0x8C48 |
|---|
| 154 | #define GL_COMPRESSED_SRGB_ALPHA 0x8C49 |
|---|
| 155 | #define GL_COMPRESSED_SLUMINANCE 0x8C4A |
|---|
| 156 | #define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B |
|---|
| 157 | #endif |
|---|
| 158 | |
|---|
| 159 | // EXT_geometry_shader4 |
|---|
| 160 | #ifndef GL_GEOMETRY_SHADER_EXT |
|---|
| 161 | #define GL_GEOMETRY_SHADER_EXT 0x8DD9 |
|---|
| 162 | #define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA |
|---|
| 163 | #define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB |
|---|
| 164 | #define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC |
|---|
| 165 | #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 |
|---|
| 166 | #define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD |
|---|
| 167 | #define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE |
|---|
| 168 | #define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B |
|---|
| 169 | #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF |
|---|
| 170 | #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 |
|---|
| 171 | #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 |
|---|
| 172 | #define GL_LINES_ADJACENCY_EXT 0x000A |
|---|
| 173 | #define GL_LINE_STRIP_ADJACENCY_EXT 0x000B |
|---|
| 174 | #define GL_TRIANGLES_ADJACENCY_EXT 0x000C |
|---|
| 175 | #define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D |
|---|
| 176 | #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 |
|---|
| 177 | #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 |
|---|
| 178 | #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 |
|---|
| 179 | #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 |
|---|
| 180 | #define GL_PROGRAM_POINT_SIZE_EXT 0x8642 |
|---|
| 181 | #endif |
|---|
| 182 | |
|---|
| 183 | // ARB_tesselation_shader |
|---|
| 184 | #ifndef GL_TESS_EVALUATION_SHADER |
|---|
| 185 | #define GL_PATCHES 0x000E |
|---|
| 186 | #define GL_PATCH_VERTICES 0x8E72 |
|---|
| 187 | #define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 |
|---|
| 188 | #define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 |
|---|
| 189 | #define GL_MAX_PATCH_VERTICES 0x8E7D |
|---|
| 190 | #define GL_MAX_TESS_GEN_LEVEL 0x8E7E |
|---|
| 191 | #define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F |
|---|
| 192 | #define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 |
|---|
| 193 | #define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 |
|---|
| 194 | #define GL_MAX_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 |
|---|
| 195 | #define GL_MAX_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 |
|---|
| 196 | #define GL_MAX_MAX_TESS_PATCH_COMPONENTS 0x8E84 |
|---|
| 197 | #define GL_MAX_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 |
|---|
| 198 | #define GL_MAX_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 |
|---|
| 199 | #define GL_MAX_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 |
|---|
| 200 | #define GL_MAX_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A |
|---|
| 201 | #define GL_MAX_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C |
|---|
| 202 | #define GL_MAX_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D |
|---|
| 203 | #define GL_MAX_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E |
|---|
| 204 | #define GL_MAX_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F |
|---|
| 205 | #define GL_TESS_EVALUATION_SHADER 0x8E87 |
|---|
| 206 | #define GL_TESS_CONTROL_SHADER 0x8E88 |
|---|
| 207 | #define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 |
|---|
| 208 | #define GL_TESS_GEN_MODE 0x8E76 |
|---|
| 209 | #define GL_TESS_GEN_SPACING 0x8E77 |
|---|
| 210 | #define GL_TESS_GEN_VERTEX_ORDER 0x8E78 |
|---|
| 211 | #define GL_TESS_GEN_POINT_MODE 0x8E79 |
|---|
| 212 | #define GL_ISOLINES 0x8E7A |
|---|
| 213 | #define GL_FRACTIONAL_ODD 0x8E7B |
|---|
| 214 | #define GL_FRACTIONAL_EVEN 0x8E7C |
|---|
| 215 | #define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 |
|---|
| 216 | #define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 |
|---|
| 217 | #endif |
|---|
| 218 | |
|---|
| 219 | // EXT_gpu_shader4 |
|---|
| 220 | #ifndef GL_INT_SAMPLER_2D_EXT |
|---|
| 221 | #define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 |
|---|
| 222 | #define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 |
|---|
| 223 | #define GL_SAMPLER_BUFFER_EXT 0x8DC2 |
|---|
| 224 | #define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 |
|---|
| 225 | #define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 |
|---|
| 226 | #define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 |
|---|
| 227 | #define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 |
|---|
| 228 | #define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 |
|---|
| 229 | #define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 |
|---|
| 230 | #define GL_INT_SAMPLER_1D_EXT 0x8DC9 |
|---|
| 231 | #define GL_INT_SAMPLER_2D_EXT 0x8DCA |
|---|
| 232 | #define GL_INT_SAMPLER_3D_EXT 0x8DCB |
|---|
| 233 | #define GL_INT_SAMPLER_CUBE_EXT 0x8DCC |
|---|
| 234 | #define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD |
|---|
| 235 | #define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE |
|---|
| 236 | #define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF |
|---|
| 237 | #define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 |
|---|
| 238 | #define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 |
|---|
| 239 | #define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 |
|---|
| 240 | #define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 |
|---|
| 241 | #define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 |
|---|
| 242 | #define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 |
|---|
| 243 | #define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 |
|---|
| 244 | #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 |
|---|
| 245 | #define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 |
|---|
| 246 | #define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904 |
|---|
| 247 | #define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905 |
|---|
| 248 | #endif |
|---|
| 249 | |
|---|
| 250 | // ARB_uniform_buffer_object |
|---|
| 251 | #ifndef GL_UNIFORM_BUFFER |
|---|
| 252 | #define GL_UNIFORM_BUFFER 0x8A11 |
|---|
| 253 | #define GL_UNIFORM_BUFFER_BINDING 0x8A28 |
|---|
| 254 | #define GL_UNIFORM_BUFFER_START 0x8A29 |
|---|
| 255 | #define GL_UNIFORM_BUFFER_SIZE 0x8A2A |
|---|
| 256 | #define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B |
|---|
| 257 | #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C |
|---|
| 258 | #define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D |
|---|
| 259 | #define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E |
|---|
| 260 | #define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F |
|---|
| 261 | #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 |
|---|
| 262 | #define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 |
|---|
| 263 | #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 |
|---|
| 264 | #define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 |
|---|
| 265 | #define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 |
|---|
| 266 | #define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 |
|---|
| 267 | #define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 |
|---|
| 268 | #define GL_UNIFORM_TYPE 0x8A37 |
|---|
| 269 | #define GL_UNIFORM_SIZE 0x8A38 |
|---|
| 270 | #define GL_UNIFORM_NAME_LENGTH 0x8A39 |
|---|
| 271 | #define GL_UNIFORM_BLOCK_INDEX 0x8A3A |
|---|
| 272 | #define GL_UNIFORM_OFFSET 0x8A3B |
|---|
| 273 | #define GL_UNIFORM_ARRAY_STRIDE 0x8A3C |
|---|
| 274 | #define GL_UNIFORM_MATRIX_STRIDE 0x8A3D |
|---|
| 275 | #define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E |
|---|
| 276 | #define GL_UNIFORM_BLOCK_BINDING 0x8A3F |
|---|
| 277 | #define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 |
|---|
| 278 | #define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 |
|---|
| 279 | #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 |
|---|
| 280 | #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 |
|---|
| 281 | #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 |
|---|
| 282 | #define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 |
|---|
| 283 | #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 |
|---|
| 284 | #define GL_INVALID_INDEX 0xFFFFFFFFu |
|---|
| 285 | #endif |
|---|
| 286 | |
|---|
| 287 | //ARB_get_program_binary |
|---|
| 288 | #ifndef GL_PROGRAM_BINARY_RETRIEVABLE_HINT |
|---|
| 289 | #define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 |
|---|
| 290 | #define GL_PROGRAM_BINARY_LENGTH 0x8741 |
|---|
| 291 | #define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE |
|---|
| 292 | #define GL_PROGRAM_BINARY_FORMATS 0x87FF |
|---|
| 293 | #endif |
|---|
| 294 | |
|---|
| 295 | namespace osg { |
|---|
| 296 | |
|---|
| 297 | class OSG_EXPORT GL2Extensions : public osg::Referenced |
|---|
| 298 | { |
|---|
| 299 | public: |
|---|
| 300 | GL2Extensions(unsigned int contextID); |
|---|
| 301 | GL2Extensions(const GL2Extensions& rhs); |
|---|
| 302 | |
|---|
| 303 | void lowestCommonDenominator(const GL2Extensions& rhs); |
|---|
| 304 | |
|---|
| 305 | void setupGL2Extensions(unsigned int contextID); |
|---|
| 306 | |
|---|
| 307 | /** Does the GL driver support OpenGL Shading Language? */ |
|---|
| 308 | bool isGlslSupported() const; |
|---|
| 309 | |
|---|
| 310 | float getGlVersion() const { return _glVersion; } |
|---|
| 311 | float getLanguageVersion() const { return _glslLanguageVersion; } |
|---|
| 312 | |
|---|
| 313 | void setShaderObjectsSupported(bool flag) { _isShaderObjectsSupported = flag; } |
|---|
| 314 | bool isShaderObjectsSupported() const { return _isShaderObjectsSupported; } |
|---|
| 315 | |
|---|
| 316 | void setVertexShaderSupported(bool flag) { _isVertexShaderSupported = flag; } |
|---|
| 317 | bool isVertexShaderSupported() const { return _isVertexShaderSupported; } |
|---|
| 318 | |
|---|
| 319 | void setFragmentShaderSupported(bool flag) { _isFragmentShaderSupported = flag; } |
|---|
| 320 | bool isFragmentShaderSupported() const { return _isFragmentShaderSupported; } |
|---|
| 321 | |
|---|
| 322 | void setLanguage100Supported(bool flag) { _isLanguage100Supported = flag; } |
|---|
| 323 | bool isLanguage100Supported() const { return _isLanguage100Supported; } |
|---|
| 324 | |
|---|
| 325 | void setGeometryShader4Supported(bool flag) { _isGeometryShader4Supported = flag; } |
|---|
| 326 | bool isGeometryShader4Supported() const { return _isGeometryShader4Supported; } |
|---|
| 327 | |
|---|
| 328 | void setTessellationShadersSupported(bool flag) { _areTessellationShadersSupported = flag; } |
|---|
| 329 | bool areTessellationShadersSupported() const { return _areTessellationShadersSupported; } |
|---|
| 330 | |
|---|
| 331 | void setGpuShader4Supported(bool flag) { _isGpuShader4Supported = flag; } |
|---|
| 332 | bool isGpuShader4Supported() const { return _isGpuShader4Supported; } |
|---|
| 333 | |
|---|
| 334 | void setUniformBufferObjectSupported(bool flag) { _isUniformBufferObjectSupported = flag; } |
|---|
| 335 | bool isUniformBufferObjectSupported() {return _isUniformBufferObjectSupported; } |
|---|
| 336 | |
|---|
| 337 | void setGetProgramBinarySupported(bool flag) { _isGetProgramBinarySupported = flag; } |
|---|
| 338 | bool isGetProgramBinarySupported() {return _isGetProgramBinarySupported; } |
|---|
| 339 | |
|---|
| 340 | /** Function to call to get the extension of a specified context. |
|---|
| 341 | * If the Exentsion object for that context has not yet been created then |
|---|
| 342 | * and the 'createIfNotInitalized' flag been set to false then returns NULL. |
|---|
| 343 | * If 'createIfNotInitalized' is true then the Extensions object is |
|---|
| 344 | * automatically created. However, in this case the extension object |
|---|
| 345 | * only be created with the graphics context associated with ContextID..*/ |
|---|
| 346 | static GL2Extensions* Get(unsigned int contextID,bool createIfNotInitalized); |
|---|
| 347 | |
|---|
| 348 | /** allows users to override the extensions across graphics contexts. |
|---|
| 349 | * typically used when you have different extensions supported across graphics pipes |
|---|
| 350 | * but need to ensure that they all use the same low common denominator extensions.*/ |
|---|
| 351 | static void Set(unsigned int contextID, GL2Extensions* extensions); |
|---|
| 352 | |
|---|
| 353 | |
|---|
| 354 | void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) const; |
|---|
| 355 | void glDrawBuffers(GLsizei n, const GLenum *bufs) const; |
|---|
| 356 | void glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) const; |
|---|
| 357 | void glStencilFuncSeparate(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask) const; |
|---|
| 358 | void glStencilMaskSeparate(GLenum face, GLuint mask) const; |
|---|
| 359 | void glAttachShader(GLuint program, GLuint shader) const; |
|---|
| 360 | void glBindAttribLocation(GLuint program, GLuint index, const GLchar *name) const; |
|---|
| 361 | void glCompileShader(GLuint shader) const; |
|---|
| 362 | GLuint glCreateProgram(void) const; |
|---|
| 363 | GLuint glCreateShader(GLenum type) const; |
|---|
| 364 | void glDeleteProgram(GLuint program) const; |
|---|
| 365 | void glDeleteShader(GLuint shader) const; |
|---|
| 366 | void glDetachShader(GLuint program, GLuint shader) const; |
|---|
| 367 | void glDisableVertexAttribArray(GLuint index) const; |
|---|
| 368 | void glEnableVertexAttribArray(GLuint index) const; |
|---|
| 369 | void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name) const; |
|---|
| 370 | void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name) const; |
|---|
| 371 | void glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj) const; |
|---|
| 372 | GLint glGetAttribLocation(GLuint program, const GLchar *name) const; |
|---|
| 373 | void glGetProgramiv(GLuint program, GLenum pname, GLint *params) const; |
|---|
| 374 | void glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog) const; |
|---|
| 375 | void glGetShaderiv(GLuint shader, GLenum pname, GLint *params) const; |
|---|
| 376 | void glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog) const; |
|---|
| 377 | void glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source) const; |
|---|
| 378 | GLint glGetUniformLocation(GLuint program, const GLchar *name) const; |
|---|
| 379 | void glGetUniformfv(GLuint program, GLint location, GLfloat *params) const; |
|---|
| 380 | void glGetUniformiv(GLuint program, GLint location, GLint *params) const; |
|---|
| 381 | void glGetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params) const; |
|---|
| 382 | void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params) const; |
|---|
| 383 | void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params) const; |
|---|
| 384 | void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid* *pointer) const; |
|---|
| 385 | GLboolean glIsProgram(GLuint program) const; |
|---|
| 386 | GLboolean glIsShader(GLuint shader) const; |
|---|
| 387 | void glLinkProgram(GLuint program) const; |
|---|
| 388 | void glShaderSource(GLuint shader, GLsizei count, const GLchar* *string, const GLint *length) const; |
|---|
| 389 | void glUseProgram(GLuint program) const; |
|---|
| 390 | void glUniform1f(GLint location, GLfloat v0) const; |
|---|
| 391 | void glUniform2f(GLint location, GLfloat v0, GLfloat v1) const; |
|---|
| 392 | void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) const; |
|---|
| 393 | void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) const; |
|---|
| 394 | void glUniform1i(GLint location, GLint v0) const; |
|---|
| 395 | void glUniform2i(GLint location, GLint v0, GLint v1) const; |
|---|
| 396 | void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2) const; |
|---|
| 397 | void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) const; |
|---|
| 398 | void glUniform1fv(GLint location, GLsizei count, const GLfloat *value) const; |
|---|
| 399 | void glUniform2fv(GLint location, GLsizei count, const GLfloat *value) const; |
|---|
| 400 | void glUniform3fv(GLint location, GLsizei count, const GLfloat *value) const; |
|---|
| 401 | void glUniform4fv(GLint location, GLsizei count, const GLfloat *value) const; |
|---|
| 402 | void glUniform1iv(GLint location, GLsizei count, const GLint *value) const; |
|---|
| 403 | void glUniform2iv(GLint location, GLsizei count, const GLint *value) const; |
|---|
| 404 | void glUniform3iv(GLint location, GLsizei count, const GLint *value) const; |
|---|
| 405 | void glUniform4iv(GLint location, GLsizei count, const GLint *value) const; |
|---|
| 406 | void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) const; |
|---|
| 407 | void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) const; |
|---|
| 408 | void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) const; |
|---|
| 409 | void glValidateProgram(GLuint program) const; |
|---|
| 410 | void glVertexAttrib1d(GLuint index, GLdouble x) const; |
|---|
| 411 | void glVertexAttrib1dv(GLuint index, const GLdouble *v) const; |
|---|
| 412 | void glVertexAttrib1f(GLuint index, GLfloat x) const; |
|---|
| 413 | void glVertexAttrib1fv(GLuint index, const GLfloat *v) const; |
|---|
| 414 | void glVertexAttrib1s(GLuint index, GLshort x) const; |
|---|
| 415 | void glVertexAttrib1sv(GLuint index, const GLshort *v) const; |
|---|
| 416 | void glVertexAttrib2d(GLuint index, GLdouble x, GLdouble y) const; |
|---|
| 417 | void glVertexAttrib2dv(GLuint index, const GLdouble *v) const; |
|---|
| 418 | void glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y) const; |
|---|
| 419 | void glVertexAttrib2fv(GLuint index, const GLfloat *v) const; |
|---|
| 420 | void glVertexAttrib2s(GLuint index, GLshort x, GLshort y) const; |
|---|
| 421 | void glVertexAttrib2sv(GLuint index, const GLshort *v) const; |
|---|
| 422 | void glVertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z) const; |
|---|
| 423 | void glVertexAttrib3dv(GLuint index, const GLdouble *v) const; |
|---|
| 424 | void glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z) const; |
|---|
| 425 | void glVertexAttrib3fv(GLuint index, const GLfloat *v) const; |
|---|
| 426 | void glVertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z) const; |
|---|
| 427 | void glVertexAttrib3sv(GLuint index, const GLshort *v) const; |
|---|
| 428 | void glVertexAttrib4Nbv(GLuint index, const GLbyte *v) const; |
|---|
| 429 | void glVertexAttrib4Niv(GLuint index, const GLint *v) const; |
|---|
| 430 | void glVertexAttrib4Nsv(GLuint index, const GLshort *v) const; |
|---|
| 431 | void glVertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) const; |
|---|
| 432 | void glVertexAttrib4Nubv(GLuint index, const GLubyte *v) const; |
|---|
| 433 | void glVertexAttrib4Nuiv(GLuint index, const GLuint *v) const; |
|---|
| 434 | void glVertexAttrib4Nusv(GLuint index, const GLushort *v) const; |
|---|
| 435 | void glVertexAttrib4bv(GLuint index, const GLbyte *v) const; |
|---|
| 436 | void glVertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) const; |
|---|
| 437 | void glVertexAttrib4dv(GLuint index, const GLdouble *v) const; |
|---|
| 438 | void glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) const; |
|---|
| 439 | void glVertexAttrib4fv(GLuint index, const GLfloat *v) const; |
|---|
| 440 | void glVertexAttrib4iv(GLuint index, const GLint *v) const; |
|---|
| 441 | void glVertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) const; |
|---|
| 442 | void glVertexAttrib4sv(GLuint index, const GLshort *v) const; |
|---|
| 443 | void glVertexAttrib4ubv(GLuint index, const GLubyte *v) const; |
|---|
| 444 | void glVertexAttrib4uiv(GLuint index, const GLuint *v) const; |
|---|
| 445 | void glVertexAttrib4usv(GLuint index, const GLushort *v) const; |
|---|
| 446 | void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer) const; |
|---|
| 447 | |
|---|
| 448 | // C++-friendly convenience wrapper methods |
|---|
| 449 | GLuint getCurrentProgram() const; |
|---|
| 450 | bool getProgramInfoLog( GLuint program, std::string& result ) const; |
|---|
| 451 | bool getShaderInfoLog( GLuint shader, std::string& result ) const; |
|---|
| 452 | bool getAttribLocation( const char* attribName, GLuint& slot ) const; |
|---|
| 453 | bool getFragDataLocation( const char* fragDataName, GLuint& slot) const; |
|---|
| 454 | |
|---|
| 455 | // GL 2.1 |
|---|
| 456 | void glUniformMatrix2x3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ) const; |
|---|
| 457 | void glUniformMatrix3x2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ) const; |
|---|
| 458 | void glUniformMatrix2x4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ) const; |
|---|
| 459 | void glUniformMatrix4x2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ) const; |
|---|
| 460 | void glUniformMatrix3x4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ) const; |
|---|
| 461 | void glUniformMatrix4x3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ) const; |
|---|
| 462 | |
|---|
| 463 | // EXT_geometry_shader4 |
|---|
| 464 | void glProgramParameteri( GLuint program, GLenum pname, GLint value ) const; |
|---|
| 465 | void glFramebufferTexture( GLenum target, GLenum attachment, GLuint texture, GLint level ) const; |
|---|
| 466 | void glFramebufferTextureLayer( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer ) const; |
|---|
| 467 | void glFramebufferTextureFace( GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face ) const; |
|---|
| 468 | |
|---|
| 469 | // ARB_tessellation_shader |
|---|
| 470 | void glPatchParameteri(GLenum pname, GLint value) const; |
|---|
| 471 | void glPatchParameterfv(GLenum pname, const GLfloat *values) const; |
|---|
| 472 | |
|---|
| 473 | // EXT_gpu_shader4 |
|---|
| 474 | void glGetUniformuiv( GLuint program, GLint location, GLuint *params ) const; |
|---|
| 475 | void glBindFragDataLocation( GLuint program, GLuint color, const GLchar *name ) const; |
|---|
| 476 | GLint glGetFragDataLocation( GLuint program, const GLchar *name ) const; |
|---|
| 477 | void glUniform1ui( GLint location, GLuint v0 ) const; |
|---|
| 478 | void glUniform2ui( GLint location, GLuint v0, GLuint v1 ) const; |
|---|
| 479 | void glUniform3ui( GLint location, GLuint v0, GLuint v1, GLuint v2 ) const; |
|---|
| 480 | void glUniform4ui( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 ) const; |
|---|
| 481 | void glUniform1uiv( GLint location, GLsizei count, const GLuint *value ) const; |
|---|
| 482 | void glUniform2uiv( GLint location, GLsizei count, const GLuint *value ) const; |
|---|
| 483 | void glUniform3uiv( GLint location, GLsizei count, const GLuint *value ) const; |
|---|
| 484 | void glUniform4uiv( GLint location, GLsizei count, const GLuint *value ) const; |
|---|
| 485 | |
|---|
| 486 | // ARB_uniform_buffer_object |
|---|
| 487 | void glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices) const; |
|---|
| 488 | void glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params) const; |
|---|
| 489 | void glGetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName) const; |
|---|
| 490 | GLuint glGetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName) const; |
|---|
| 491 | void glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params) const; |
|---|
| 492 | void glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName) const; |
|---|
| 493 | void glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) const; |
|---|
| 494 | |
|---|
| 495 | // ARB_get_program_binary |
|---|
| 496 | void glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary) const; |
|---|
| 497 | void glProgramBinary(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length) const; |
|---|
| 498 | |
|---|
| 499 | protected: |
|---|
| 500 | ~GL2Extensions() {} |
|---|
| 501 | |
|---|
| 502 | float _glVersion; |
|---|
| 503 | float _glslLanguageVersion; |
|---|
| 504 | |
|---|
| 505 | bool _isShaderObjectsSupported; |
|---|
| 506 | bool _isVertexShaderSupported; |
|---|
| 507 | bool _isFragmentShaderSupported; |
|---|
| 508 | bool _isLanguage100Supported; |
|---|
| 509 | bool _isGeometryShader4Supported; |
|---|
| 510 | bool _areTessellationShadersSupported; |
|---|
| 511 | bool _isGpuShader4Supported; |
|---|
| 512 | bool _isUniformBufferObjectSupported; |
|---|
| 513 | bool _isGetProgramBinarySupported; |
|---|
| 514 | |
|---|
| 515 | typedef void (GL_APIENTRY * BlendEquationSeparateProc)(GLenum modeRGB, GLenum modeAlpha); |
|---|
| 516 | typedef void (GL_APIENTRY * DrawBuffersProc)(GLsizei n, const GLenum *bufs); |
|---|
| 517 | typedef void (GL_APIENTRY * StencilOpSeparateProc)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); |
|---|
| 518 | typedef void (GL_APIENTRY * StencilFuncSeparateProc)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); |
|---|
| 519 | typedef void (GL_APIENTRY * StencilMaskSeparateProc)(GLenum face, GLuint mask); |
|---|
| 520 | typedef void (GL_APIENTRY * AttachShaderProc)(GLuint program, GLuint shader); |
|---|
| 521 | typedef void (GL_APIENTRY * BindAttribLocationProc)(GLuint program, GLuint index, const GLchar *name); |
|---|
| 522 | typedef void (GL_APIENTRY * CompileShaderProc)(GLuint shader); |
|---|
| 523 | typedef GLuint (GL_APIENTRY * CreateProgramProc)(void); |
|---|
| 524 | typedef GLuint (GL_APIENTRY * CreateShaderProc)(GLenum type); |
|---|
| 525 | typedef void (GL_APIENTRY * DeleteProgramProc)(GLuint program); |
|---|
| 526 | typedef void (GL_APIENTRY * DeleteObjectARBProc)(GLuint program); |
|---|
| 527 | typedef void (GL_APIENTRY * DeleteShaderProc)(GLuint shader); |
|---|
| 528 | typedef void (GL_APIENTRY * DetachShaderProc)(GLuint program, GLuint shader); |
|---|
| 529 | typedef void (GL_APIENTRY * DisableVertexAttribArrayProc)(GLuint index); |
|---|
| 530 | typedef void (GL_APIENTRY * EnableVertexAttribArrayProc)(GLuint index); |
|---|
| 531 | typedef void (GL_APIENTRY * GetActiveAttribProc)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); |
|---|
| 532 | typedef void (GL_APIENTRY * GetActiveUniformProc)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); |
|---|
| 533 | typedef void (GL_APIENTRY * GetAttachedShadersProc)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); |
|---|
| 534 | typedef GLint (GL_APIENTRY * GetAttribLocationProc)(GLuint program, const GLchar *name); |
|---|
| 535 | typedef void (GL_APIENTRY * GetProgramivProc)(GLuint program, GLenum pname, GLint *params); |
|---|
| 536 | typedef void (GL_APIENTRY * GetObjectParameterivARBProc)(GLuint program, GLenum pname, GLint *params); |
|---|
| 537 | typedef void (GL_APIENTRY * GetProgramInfoLogProc)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); |
|---|
| 538 | typedef void (GL_APIENTRY * GetInfoLogARBProc)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); |
|---|
| 539 | typedef void (GL_APIENTRY * GetShaderivProc)(GLuint shader, GLenum pname, GLint *params); |
|---|
| 540 | typedef void (GL_APIENTRY * GetShaderInfoLogProc)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); |
|---|
| 541 | typedef void (GL_APIENTRY * GetShaderSourceProc)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); |
|---|
| 542 | typedef GLint (GL_APIENTRY * GetUniformLocationProc)(GLuint program, const GLchar *name); |
|---|
| 543 | typedef void (GL_APIENTRY * GetUniformfvProc)(GLuint program, GLint location, GLfloat *params); |
|---|
| 544 | typedef void (GL_APIENTRY * GetUniformivProc)(GLuint program, GLint location, GLint *params); |
|---|
| 545 | typedef void (GL_APIENTRY * GetVertexAttribdvProc)(GLuint index, GLenum pname, GLdouble *params); |
|---|
| 546 | typedef void (GL_APIENTRY * GetVertexAttribfvProc)(GLuint index, GLenum pname, GLfloat *params); |
|---|
| 547 | typedef void (GL_APIENTRY * GetVertexAttribivProc)(GLuint index, GLenum pname, GLint *params); |
|---|
| 548 | typedef void (GL_APIENTRY * GetVertexAttribPointervProc)(GLuint index, GLenum pname, GLvoid* *pointer); |
|---|
| 549 | typedef GLboolean (GL_APIENTRY * IsProgramProc)(GLuint program); |
|---|
| 550 | typedef GLboolean (GL_APIENTRY * IsShaderProc)(GLuint shader); |
|---|
| 551 | typedef void (GL_APIENTRY * LinkProgramProc)(GLuint program); |
|---|
| 552 | typedef void (GL_APIENTRY * ShaderSourceProc)(GLuint shader, GLsizei count, const GLchar* *string, const GLint *length); |
|---|
| 553 | typedef void (GL_APIENTRY * UseProgramProc)(GLuint program); |
|---|
| 554 | typedef void (GL_APIENTRY * Uniform1fProc)(GLint location, GLfloat v0); |
|---|
| 555 | typedef void (GL_APIENTRY * Uniform2fProc)(GLint location, GLfloat v0, GLfloat v1); |
|---|
| 556 | typedef void (GL_APIENTRY * Uniform3fProc)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); |
|---|
| 557 | typedef void (GL_APIENTRY * Uniform4fProc)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); |
|---|
| 558 | typedef void (GL_APIENTRY * Uniform1iProc)(GLint location, GLint v0); |
|---|
| 559 | typedef void (GL_APIENTRY * Uniform2iProc)(GLint location, GLint v0, GLint v1); |
|---|
| 560 | typedef void (GL_APIENTRY * Uniform3iProc)(GLint location, GLint v0, GLint v1, GLint v2); |
|---|
| 561 | typedef void (GL_APIENTRY * Uniform4iProc)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); |
|---|
| 562 | typedef void (GL_APIENTRY * Uniform1fvProc)(GLint location, GLsizei count, const GLfloat *value); |
|---|
| 563 | typedef void (GL_APIENTRY * Uniform2fvProc)(GLint location, GLsizei count, const GLfloat *value); |
|---|
| 564 | typedef void (GL_APIENTRY * Uniform3fvProc)(GLint location, GLsizei count, const GLfloat *value); |
|---|
| 565 | typedef void (GL_APIENTRY * Uniform4fvProc)(GLint location, GLsizei count, const GLfloat *value); |
|---|
| 566 | typedef void (GL_APIENTRY * Uniform1ivProc)(GLint location, GLsizei count, const GLint *value); |
|---|
| 567 | typedef void (GL_APIENTRY * Uniform2ivProc)(GLint location, GLsizei count, const GLint *value); |
|---|
| 568 | typedef void (GL_APIENTRY * Uniform3ivProc)(GLint location, GLsizei count, const GLint *value); |
|---|
| 569 | typedef void (GL_APIENTRY * Uniform4ivProc)(GLint location, GLsizei count, const GLint *value); |
|---|
| 570 | typedef void (GL_APIENTRY * UniformMatrix2fvProc)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); |
|---|
| 571 | typedef void (GL_APIENTRY * UniformMatrix3fvProc)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); |
|---|
| 572 | typedef void (GL_APIENTRY * UniformMatrix4fvProc)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); |
|---|
| 573 | typedef void (GL_APIENTRY * ValidateProgramProc)(GLuint program); |
|---|
| 574 | typedef void (GL_APIENTRY * VertexAttrib1dProc)(GLuint index, GLdouble x); |
|---|
| 575 | typedef void (GL_APIENTRY * VertexAttrib1dvProc)(GLuint index, const GLdouble *v); |
|---|
| 576 | typedef void (GL_APIENTRY * VertexAttrib1fProc)(GLuint index, GLfloat x); |
|---|
| 577 | typedef void (GL_APIENTRY * VertexAttrib1fvProc)(GLuint index, const GLfloat *v); |
|---|
| 578 | typedef void (GL_APIENTRY * VertexAttrib1sProc)(GLuint index, GLshort x); |
|---|
| 579 | typedef void (GL_APIENTRY * VertexAttrib1svProc)(GLuint index, const GLshort *v); |
|---|
| 580 | typedef void (GL_APIENTRY * VertexAttrib2dProc)(GLuint index, GLdouble x, GLdouble y); |
|---|
| 581 | typedef void (GL_APIENTRY * VertexAttrib2dvProc)(GLuint index, const GLdouble *v); |
|---|
| 582 | typedef void (GL_APIENTRY * VertexAttrib2fProc)(GLuint index, GLfloat x, GLfloat y); |
|---|
| 583 | typedef void (GL_APIENTRY * VertexAttrib2fvProc)(GLuint index, const GLfloat *v); |
|---|
| 584 | typedef void (GL_APIENTRY * VertexAttrib2sProc)(GLuint index, GLshort x, GLshort y); |
|---|
| 585 | typedef void (GL_APIENTRY * VertexAttrib2svProc)(GLuint index, const GLshort *v); |
|---|
| 586 | typedef void (GL_APIENTRY * VertexAttrib3dProc)(GLuint index, GLdouble x, GLdouble y, GLdouble z); |
|---|
| 587 | typedef void (GL_APIENTRY * VertexAttrib3dvProc)(GLuint index, const GLdouble *v); |
|---|
| 588 | typedef void (GL_APIENTRY * VertexAttrib3fProc)(GLuint index, GLfloat x, GLfloat y, GLfloat z); |
|---|
| 589 | typedef void (GL_APIENTRY * VertexAttrib3fvProc)(GLuint index, const GLfloat *v); |
|---|
| 590 | typedef void (GL_APIENTRY * VertexAttrib3sProc)(GLuint index, GLshort x, GLshort y, GLshort z); |
|---|
| 591 | typedef void (GL_APIENTRY * VertexAttrib3svProc)(GLuint index, const GLshort *v); |
|---|
| 592 | typedef void (GL_APIENTRY * VertexAttrib4NbvProc)(GLuint index, const GLbyte *v); |
|---|
| 593 | typedef void (GL_APIENTRY * VertexAttrib4NivProc)(GLuint index, const GLint *v); |
|---|
| 594 | typedef void (GL_APIENTRY * VertexAttrib4NsvProc)(GLuint index, const GLshort *v); |
|---|
| 595 | typedef void (GL_APIENTRY * VertexAttrib4NubProc)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); |
|---|
| 596 | typedef void (GL_APIENTRY * VertexAttrib4NubvProc)(GLuint index, const GLubyte *v); |
|---|
| 597 | typedef void (GL_APIENTRY * VertexAttrib4NuivProc)(GLuint index, const GLuint *v); |
|---|
| 598 | typedef void (GL_APIENTRY * VertexAttrib4NusvProc)(GLuint index, const GLushort *v); |
|---|
| 599 | typedef void (GL_APIENTRY * VertexAttrib4bvProc)(GLuint index, const GLbyte *v); |
|---|
| 600 | typedef void (GL_APIENTRY * VertexAttrib4dProc)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); |
|---|
| 601 | typedef void (GL_APIENTRY * VertexAttrib4dvProc)(GLuint index, const GLdouble *v); |
|---|
| 602 | typedef void (GL_APIENTRY * VertexAttrib4fProc)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); |
|---|
| 603 | typedef void (GL_APIENTRY * VertexAttrib4fvProc)(GLuint index, const GLfloat *v); |
|---|
| 604 | typedef void (GL_APIENTRY * VertexAttrib4ivProc)(GLuint index, const GLint *v); |
|---|
| 605 | typedef void (GL_APIENTRY * VertexAttrib4sProc)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); |
|---|
| 606 | typedef void (GL_APIENTRY * VertexAttrib4svProc)(GLuint index, const GLshort *v); |
|---|
| 607 | typedef void (GL_APIENTRY * VertexAttrib4ubvProc)(GLuint index, const GLubyte *v); |
|---|
| 608 | typedef void (GL_APIENTRY * VertexAttrib4uivProc)(GLuint index, const GLuint *v); |
|---|
| 609 | typedef void (GL_APIENTRY * VertexAttrib4usvProc)(GLuint index, const GLushort *v); |
|---|
| 610 | typedef void (GL_APIENTRY * VertexAttribPointerProc)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); |
|---|
| 611 | typedef void (GL_APIENTRY * UniformMatrix2x3fvProc)( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ); |
|---|
| 612 | typedef void (GL_APIENTRY * UniformMatrix3x2fvProc)( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ); |
|---|
| 613 | typedef void (GL_APIENTRY * UniformMatrix2x4fvProc)( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ); |
|---|
| 614 | typedef void (GL_APIENTRY * UniformMatrix4x2fvProc)( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ); |
|---|
| 615 | typedef void (GL_APIENTRY * UniformMatrix3x4fvProc)( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ); |
|---|
| 616 | typedef void (GL_APIENTRY * UniformMatrix4x3fvProc)( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ); |
|---|
| 617 | typedef void (GL_APIENTRY * ProgramParameteriProc)( GLuint program, GLenum pname, GLint value ); |
|---|
| 618 | typedef void (GL_APIENTRY * FramebufferTextureProc)( GLenum target, GLenum attachment, GLuint texture, GLint level ); |
|---|
| 619 | typedef void (GL_APIENTRY * FramebufferTextureLayerProc)( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer ); |
|---|
| 620 | typedef void (GL_APIENTRY * FramebufferTextureFaceProc)( GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face ); |
|---|
| 621 | typedef void (GL_APIENTRY * PatchParameteriProc)( GLenum pname, GLint value ); |
|---|
| 622 | typedef void (GL_APIENTRY * PatchParameterfvProc)( GLenum pname, const GLfloat* values ); |
|---|
| 623 | typedef void (GL_APIENTRY * GetUniformuivProc)( GLuint program, GLint location, GLuint* params ); |
|---|
| 624 | typedef void (GL_APIENTRY * BindFragDataLocationProc)( GLuint program, GLuint color, const GLchar* name ); |
|---|
| 625 | typedef GLint (GL_APIENTRY * GetFragDataLocationProc)( GLuint program, const GLchar* name ); |
|---|
| 626 | typedef void (GL_APIENTRY * Uniform1uiProc)( GLint location, GLuint v0 ); |
|---|
| 627 | typedef void (GL_APIENTRY * Uniform2uiProc)( GLint location, GLuint v0, GLuint v1 ); |
|---|
| 628 | typedef void (GL_APIENTRY * Uniform3uiProc)( GLint location, GLuint v0, GLuint v1, GLuint v2 ); |
|---|
| 629 | typedef void (GL_APIENTRY * Uniform4uiProc)( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 ); |
|---|
| 630 | typedef void (GL_APIENTRY * Uniform1uivProc)( GLint location, GLsizei count, const GLuint *value ); |
|---|
| 631 | typedef void (GL_APIENTRY * Uniform2uivProc)( GLint location, GLsizei count, const GLuint *value ); |
|---|
| 632 | typedef void (GL_APIENTRY * Uniform3uivProc)( GLint location, GLsizei count, const GLuint *value ); |
|---|
| 633 | typedef void (GL_APIENTRY * Uniform4uivProc)( GLint location, GLsizei count, const GLuint *value ); |
|---|
| 634 | typedef GLuint (GL_APIENTRY * GetHandleProc) (GLenum pname); |
|---|
| 635 | typedef void (GL_APIENTRY * GetUniformIndicesProc)(GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices); |
|---|
| 636 | typedef void (GL_APIENTRY * GetActiveUniformsivProc)(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); |
|---|
| 637 | typedef void (GL_APIENTRY * GetActiveUniformNameProc)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); |
|---|
| 638 | typedef GLuint (GL_APIENTRY * GetUniformBlockIndexProc)(GLuint program, const GLchar *uniformBlockName); |
|---|
| 639 | typedef void (GL_APIENTRY * GetActiveUniformBlockivProc)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); |
|---|
| 640 | typedef void (GL_APIENTRY * GetActiveUniformBlockNameProc)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); |
|---|
| 641 | typedef void (GL_APIENTRY * UniformBlockBindingProc)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); |
|---|
| 642 | typedef void (GL_APIENTRY * GetProgramBinaryProc)(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); |
|---|
| 643 | typedef void (GL_APIENTRY * ProgramBinaryProc)(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); |
|---|
| 644 | |
|---|
| 645 | BlendEquationSeparateProc _glBlendEquationSeparate; |
|---|
| 646 | DrawBuffersProc _glDrawBuffers; |
|---|
| 647 | StencilOpSeparateProc _glStencilOpSeparate; |
|---|
| 648 | StencilFuncSeparateProc _glStencilFuncSeparate; |
|---|
| 649 | StencilMaskSeparateProc _glStencilMaskSeparate; |
|---|
| 650 | AttachShaderProc _glAttachShader; |
|---|
| 651 | BindAttribLocationProc _glBindAttribLocation; |
|---|
| 652 | CompileShaderProc _glCompileShader; |
|---|
| 653 | CreateProgramProc _glCreateProgram; |
|---|
| 654 | CreateShaderProc _glCreateShader; |
|---|
| 655 | DeleteProgramProc _glDeleteProgram; |
|---|
| 656 | DeleteShaderProc _glDeleteShader; |
|---|
| 657 | DetachShaderProc _glDetachShader; |
|---|
| 658 | DisableVertexAttribArrayProc _glDisableVertexAttribArray; |
|---|
| 659 | EnableVertexAttribArrayProc _glEnableVertexAttribArray; |
|---|
| 660 | GetActiveAttribProc _glGetActiveAttrib; |
|---|
| 661 | GetActiveUniformProc _glGetActiveUniform; |
|---|
| 662 | GetAttachedShadersProc _glGetAttachedShaders; |
|---|
| 663 | GetAttribLocationProc _glGetAttribLocation; |
|---|
| 664 | GetProgramivProc _glGetProgramiv; |
|---|
| 665 | GetProgramInfoLogProc _glGetProgramInfoLog; |
|---|
| 666 | GetShaderivProc _glGetShaderiv; |
|---|
| 667 | GetShaderInfoLogProc _glGetShaderInfoLog; |
|---|
| 668 | GetShaderSourceProc _glGetShaderSource; |
|---|
| 669 | GetUniformLocationProc _glGetUniformLocation; |
|---|
| 670 | GetUniformfvProc _glGetUniformfv; |
|---|
| 671 | GetUniformivProc _glGetUniformiv; |
|---|
| 672 | GetVertexAttribdvProc _glGetVertexAttribdv; |
|---|
| 673 | GetVertexAttribfvProc _glGetVertexAttribfv; |
|---|
| 674 | GetVertexAttribivProc _glGetVertexAttribiv; |
|---|
| 675 | GetVertexAttribPointervProc _glGetVertexAttribPointerv; |
|---|
| 676 | IsProgramProc _glIsProgram; |
|---|
| 677 | IsShaderProc _glIsShader; |
|---|
| 678 | LinkProgramProc _glLinkProgram; |
|---|
| 679 | ShaderSourceProc _glShaderSource; |
|---|
| 680 | UseProgramProc _glUseProgram; |
|---|
| 681 | Uniform1fProc _glUniform1f; |
|---|
| 682 | Uniform2fProc _glUniform2f; |
|---|
| 683 | Uniform3fProc _glUniform3f; |
|---|
| 684 | Uniform4fProc _glUniform4f; |
|---|
| 685 | Uniform1iProc _glUniform1i; |
|---|
| 686 | Uniform2iProc _glUniform2i; |
|---|
| 687 | Uniform3iProc _glUniform3i; |
|---|
| 688 | Uniform4iProc _glUniform4i; |
|---|
| 689 | Uniform1fvProc _glUniform1fv; |
|---|
| 690 | Uniform2fvProc _glUniform2fv; |
|---|
| 691 | Uniform3fvProc _glUniform3fv; |
|---|
| 692 | Uniform4fvProc _glUniform4fv; |
|---|
| 693 | Uniform1ivProc _glUniform1iv; |
|---|
| 694 | Uniform2ivProc _glUniform2iv; |
|---|
| 695 | Uniform3ivProc _glUniform3iv; |
|---|
| 696 | Uniform4ivProc _glUniform4iv; |
|---|
| 697 | UniformMatrix2fvProc _glUniformMatrix2fv; |
|---|
| 698 | UniformMatrix3fvProc _glUniformMatrix3fv; |
|---|
| 699 | UniformMatrix4fvProc _glUniformMatrix4fv; |
|---|
| 700 | ValidateProgramProc _glValidateProgram; |
|---|
| 701 | VertexAttrib1dProc _glVertexAttrib1d; |
|---|
| 702 | VertexAttrib1dvProc _glVertexAttrib1dv; |
|---|
| 703 | VertexAttrib1fProc _glVertexAttrib1f; |
|---|
| 704 | VertexAttrib1fvProc _glVertexAttrib1fv; |
|---|
| 705 | VertexAttrib1sProc _glVertexAttrib1s; |
|---|
| 706 | VertexAttrib1svProc _glVertexAttrib1sv; |
|---|
| 707 | VertexAttrib2dProc _glVertexAttrib2d; |
|---|
| 708 | VertexAttrib2dvProc _glVertexAttrib2dv; |
|---|
| 709 | VertexAttrib2fProc _glVertexAttrib2f; |
|---|
| 710 | VertexAttrib2fvProc _glVertexAttrib2fv; |
|---|
| 711 | VertexAttrib2sProc _glVertexAttrib2s; |
|---|
| 712 | VertexAttrib2svProc _glVertexAttrib2sv; |
|---|
| 713 | VertexAttrib3dProc _glVertexAttrib3d; |
|---|
| 714 | VertexAttrib3dvProc _glVertexAttrib3dv; |
|---|
| 715 | VertexAttrib3fProc _glVertexAttrib3f; |
|---|
| 716 | VertexAttrib3fvProc _glVertexAttrib3fv; |
|---|
| 717 | VertexAttrib3sProc _glVertexAttrib3s; |
|---|
| 718 | VertexAttrib3svProc _glVertexAttrib3sv; |
|---|
| 719 | VertexAttrib4NbvProc _glVertexAttrib4Nbv; |
|---|
| 720 | VertexAttrib4NivProc _glVertexAttrib4Niv; |
|---|
| 721 | VertexAttrib4NsvProc _glVertexAttrib4Nsv; |
|---|
| 722 | VertexAttrib4NubProc _glVertexAttrib4Nub; |
|---|
| 723 | VertexAttrib4NubvProc _glVertexAttrib4Nubv; |
|---|
| 724 | VertexAttrib4NuivProc _glVertexAttrib4Nuiv; |
|---|
| 725 | VertexAttrib4NusvProc _glVertexAttrib4Nusv; |
|---|
| 726 | VertexAttrib4bvProc _glVertexAttrib4bv; |
|---|
| 727 | VertexAttrib4dProc _glVertexAttrib4d; |
|---|
| 728 | VertexAttrib4dvProc _glVertexAttrib4dv; |
|---|
| 729 | VertexAttrib4fProc _glVertexAttrib4f; |
|---|
| 730 | VertexAttrib4fvProc _glVertexAttrib4fv; |
|---|
| 731 | VertexAttrib4ivProc _glVertexAttrib4iv; |
|---|
| 732 | VertexAttrib4sProc _glVertexAttrib4s; |
|---|
| 733 | VertexAttrib4svProc _glVertexAttrib4sv; |
|---|
| 734 | VertexAttrib4ubvProc _glVertexAttrib4ubv; |
|---|
| 735 | VertexAttrib4uivProc _glVertexAttrib4uiv; |
|---|
| 736 | VertexAttrib4usvProc _glVertexAttrib4usv; |
|---|
| 737 | VertexAttribPointerProc _glVertexAttribPointer; |
|---|
| 738 | |
|---|
| 739 | GetInfoLogARBProc _glGetInfoLogARB; |
|---|
| 740 | GetObjectParameterivARBProc _glGetObjectParameterivARB; |
|---|
| 741 | DeleteObjectARBProc _glDeleteObjectARB; |
|---|
| 742 | GetHandleProc _glGetHandleARB; |
|---|
| 743 | |
|---|
| 744 | // GL 2.1 |
|---|
| 745 | UniformMatrix2x3fvProc _glUniformMatrix2x3fv; |
|---|
| 746 | UniformMatrix3x2fvProc _glUniformMatrix3x2fv; |
|---|
| 747 | UniformMatrix2x4fvProc _glUniformMatrix2x4fv; |
|---|
| 748 | UniformMatrix4x2fvProc _glUniformMatrix4x2fv; |
|---|
| 749 | UniformMatrix3x4fvProc _glUniformMatrix3x4fv; |
|---|
| 750 | UniformMatrix4x3fvProc _glUniformMatrix4x3fv; |
|---|
| 751 | |
|---|
| 752 | // EXT_geometry_shader4 |
|---|
| 753 | ProgramParameteriProc _glProgramParameteri; |
|---|
| 754 | FramebufferTextureProc _glFramebufferTexture; |
|---|
| 755 | FramebufferTextureLayerProc _glFramebufferTextureLayer; |
|---|
| 756 | FramebufferTextureFaceProc _glFramebufferTextureFace; |
|---|
| 757 | |
|---|
| 758 | // ARB_tesselation_shader |
|---|
| 759 | PatchParameteriProc _glPatchParameteri; |
|---|
| 760 | PatchParameterfvProc _glPatchParameterfv; |
|---|
| 761 | |
|---|
| 762 | // EXT_gpu_shader4 |
|---|
| 763 | GetUniformuivProc _glGetUniformuiv; |
|---|
| 764 | BindFragDataLocationProc _glBindFragDataLocation; |
|---|
| 765 | GetFragDataLocationProc _glGetFragDataLocation; |
|---|
| 766 | Uniform1uiProc _glUniform1ui; |
|---|
| 767 | Uniform2uiProc _glUniform2ui; |
|---|
| 768 | Uniform3uiProc _glUniform3ui; |
|---|
| 769 | Uniform4uiProc _glUniform4ui; |
|---|
| 770 | Uniform1uivProc _glUniform1uiv; |
|---|
| 771 | Uniform2uivProc _glUniform2uiv; |
|---|
| 772 | Uniform3uivProc _glUniform3uiv; |
|---|
| 773 | Uniform4uivProc _glUniform4uiv; |
|---|
| 774 | |
|---|
| 775 | // ARB_uniform_buffer_object |
|---|
| 776 | GetUniformIndicesProc _glGetUniformIndices; |
|---|
| 777 | GetActiveUniformsivProc _glGetActiveUniformsiv; |
|---|
| 778 | GetActiveUniformNameProc _glGetActiveUniformName; |
|---|
| 779 | GetUniformBlockIndexProc _glGetUniformBlockIndex; |
|---|
| 780 | GetActiveUniformBlockivProc _glGetActiveUniformBlockiv; |
|---|
| 781 | GetActiveUniformBlockNameProc _glGetActiveUniformBlockName; |
|---|
| 782 | UniformBlockBindingProc _glUniformBlockBinding; |
|---|
| 783 | |
|---|
| 784 | //ARB_get_program_binary |
|---|
| 785 | GetProgramBinaryProc _glGetProgramBinary; |
|---|
| 786 | ProgramBinaryProc _glProgramBinary; |
|---|
| 787 | }; |
|---|
| 788 | |
|---|
| 789 | } |
|---|
| 790 | |
|---|
| 791 | #endif |
|---|