1 #ifndef APIENTRY 2 #define APIENTRY 3 #endif 4 #ifndef APIENTRYP 5 #define APIENTRYP APIENTRY * 6 #endif 7 8 // OpenGL deprecated functionality 9 #ifndef GL_QUADS 10 #define GL_QUADS 0x0007 11 #endif 12 13 #ifndef GL_ALPHA 14 #define GL_ALPHA 0x1906 15 #endif 16 #ifndef GL_ALPHA8 17 #define GL_ALPHA8 0x803C 18 #endif 19 #ifndef GL_ALPHA16 20 #define GL_ALPHA16 0x803E 21 #endif 22 #ifndef GL_COMPRESSED_ALPHA 23 #define GL_COMPRESSED_ALPHA 0x84E9 24 #endif 25 26 #ifndef GL_LUMINANCE 27 #define GL_LUMINANCE 0x1909 28 #endif 29 #ifndef GL_LUMINANCE8 30 #define GL_LUMINANCE8 0x8040 31 #endif 32 #ifndef GL_LUMINANCE16 33 #define GL_LUMINANCE16 0x8042 34 #endif 35 #ifndef GL_COMPRESSED_LUMINANCE 36 #define GL_COMPRESSED_LUMINANCE 0x84EA 37 #endif 38 39 #ifndef GL_LUMINANCE_ALPHA 40 #define GL_LUMINANCE_ALPHA 0x190A 41 #endif 42 #ifndef GL_LUMINANCE8_ALPHA8 43 #define GL_LUMINANCE8_ALPHA8 0x8045 44 #endif 45 #ifndef GL_LUMINANCE16_ALPHA16 46 #define GL_LUMINANCE16_ALPHA16 0x8048 47 #endif 48 #ifndef GL_COMPRESSED_LUMINANCE_ALPHA 49 #define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB 50 #endif 51 52 // OpenGL 1.3 53 #ifndef WIN32 54 #define glActiveTexture_ glActiveTexture 55 56 #define glBlendEquation_ glBlendEquation 57 #define glBlendColor_ glBlendColor 58 59 #define glTexImage3D_ glTexImage3D 60 #define glTexSubImage3D_ glTexSubImage3D 61 #define glCopyTexSubImage3D_ glCopyTexSubImage3D 62 63 #define glCompressedTexImage3D_ glCompressedTexImage3D 64 #define glCompressedTexImage2D_ glCompressedTexImage2D 65 #define glCompressedTexImage1D_ glCompressedTexImage1D 66 #define glCompressedTexSubImage3D_ glCompressedTexSubImage3D 67 #define glCompressedTexSubImage2D_ glCompressedTexSubImage2D 68 #define glCompressedTexSubImage1D_ glCompressedTexSubImage1D 69 #define glGetCompressedTexImage_ glGetCompressedTexImage 70 71 #define glDrawRangeElements_ glDrawRangeElements 72 #else 73 extern PFNGLACTIVETEXTUREPROC glActiveTexture_; 74 75 extern PFNGLBLENDEQUATIONPROC glBlendEquation_; 76 extern PFNGLBLENDCOLORPROC glBlendColor_; 77 78 extern PFNGLTEXIMAGE3DPROC glTexImage3D_; 79 extern PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D_; 80 extern PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D_; 81 82 extern PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D_; 83 extern PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D_; 84 extern PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D_; 85 extern PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D_; 86 extern PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D_; 87 extern PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D_; 88 extern PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage_; 89 90 extern PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements_; 91 #endif 92 93 // OpenGL 2.0 94 #ifdef __APPLE__ 95 #define glMultiDrawArrays_ glMultiDrawArrays 96 #define glMultiDrawElements_ glMultiDrawElements 97 98 #define glBlendFuncSeparate_ glBlendFuncSeparate 99 #define glBlendEquationSeparate_ glBlendEquationSeparate 100 #define glStencilOpSeparate_ glStencilOpSeparate 101 #define glStencilFuncSeparate_ glStencilFuncSeparate 102 #define glStencilMaskSeparate_ glStencilMaskSeparate 103 104 #define glGenBuffers_ glGenBuffers 105 #define glBindBuffer_ glBindBuffer 106 #define glMapBuffer_ glMapBuffer 107 #define glUnmapBuffer_ glUnmapBuffer 108 #define glBufferData_ glBufferData 109 #define glBufferSubData_ glBufferSubData 110 #define glDeleteBuffers_ glDeleteBuffers 111 #define glGetBufferSubData_ glGetBufferSubData 112 113 #define glGenQueries_ glGenQueries 114 #define glDeleteQueries_ glDeleteQueries 115 #define glBeginQuery_ glBeginQuery 116 #define glEndQuery_ glEndQuery 117 #define glGetQueryiv_ glGetQueryiv 118 #define glGetQueryObjectiv_ glGetQueryObjectiv 119 #define glGetQueryObjectuiv_ glGetQueryObjectuiv 120 121 #define glCreateProgram_ glCreateProgram 122 #define glDeleteProgram_ glDeleteProgram 123 #define glUseProgram_ glUseProgram 124 #define glCreateShader_ glCreateShader 125 #define glDeleteShader_ glDeleteShader 126 #define glShaderSource_ glShaderSource 127 #define glCompileShader_ glCompileShader 128 #define glGetShaderiv_ glGetShaderiv 129 #define glGetProgramiv_ glGetProgramiv 130 #define glAttachShader_ glAttachShader 131 #define glGetProgramInfoLog_ glGetProgramInfoLog 132 #define glGetShaderInfoLog_ glGetShaderInfoLog 133 #define glLinkProgram_ glLinkProgram 134 #define glGetUniformLocation_ glGetUniformLocation 135 #define glUniform1f_ glUniform1f 136 #define glUniform2f_ glUniform2f 137 #define glUniform3f_ glUniform3f 138 #define glUniform4f_ glUniform4f 139 #define glUniform1fv_ glUniform1fv 140 #define glUniform2fv_ glUniform2fv 141 #define glUniform3fv_ glUniform3fv 142 #define glUniform4fv_ glUniform4fv 143 #define glUniform1i_ glUniform1i 144 #define glUniform2i_ glUniform2i 145 #define glUniform3i_ glUniform3i 146 #define glUniform4i_ glUniform4i 147 #define glUniform1iv_ glUniform1iv 148 #define glUniform2iv_ glUniform2iv 149 #define glUniform3iv_ glUniform3iv 150 #define glUniform4iv_ glUniform4iv 151 #define glUniformMatrix2fv_ glUniformMatrix2fv 152 #define glUniformMatrix3fv_ glUniformMatrix3fv 153 #define glUniformMatrix4fv_ glUniformMatrix4fv 154 #define glBindAttribLocation_ glBindAttribLocation 155 #define glGetActiveUniform_ glGetActiveUniform 156 #define glEnableVertexAttribArray_ glEnableVertexAttribArray 157 #define glDisableVertexAttribArray_ glDisableVertexAttribArray 158 159 #define glVertexAttrib1f_ glVertexAttrib1f 160 #define glVertexAttrib1fv_ glVertexAttrib1fv 161 #define glVertexAttrib1s_ glVertexAttrib1s 162 #define glVertexAttrib1sv_ glVertexAttrib1sv 163 #define glVertexAttrib2f_ glVertexAttrib2f 164 #define glVertexAttrib2fv_ glVertexAttrib2fv 165 #define glVertexAttrib2s_ glVertexAttrib2s 166 #define glVertexAttrib2sv_ glVertexAttrib2sv 167 #define glVertexAttrib3f_ glVertexAttrib3f 168 #define glVertexAttrib3fv_ glVertexAttrib3fv 169 #define glVertexAttrib3s_ glVertexAttrib3s 170 #define glVertexAttrib3sv_ glVertexAttrib3sv 171 #define glVertexAttrib4f_ glVertexAttrib4f 172 #define glVertexAttrib4fv_ glVertexAttrib4fv 173 #define glVertexAttrib4s_ glVertexAttrib4s 174 #define glVertexAttrib4sv_ glVertexAttrib4sv 175 #define glVertexAttrib4bv_ glVertexAttrib4bv 176 #define glVertexAttrib4iv_ glVertexAttrib4iv 177 #define glVertexAttrib4ubv_ glVertexAttrib4ubv 178 #define glVertexAttrib4uiv_ glVertexAttrib4uiv 179 #define glVertexAttrib4usv_ glVertexAttrib4usv 180 #define glVertexAttrib4Nbv_ glVertexAttrib4Nbv 181 #define glVertexAttrib4Niv_ glVertexAttrib4Niv 182 #define glVertexAttrib4Nub_ glVertexAttrib4Nub 183 #define glVertexAttrib4Nubv_ glVertexAttrib4Nubv 184 #define glVertexAttrib4Nuiv_ glVertexAttrib4Nuiv 185 #define glVertexAttrib4Nusv_ glVertexAttrib4Nusv 186 #define glVertexAttribPointer_ glVertexAttribPointer 187 188 #define glDrawBuffers_ glDrawBuffers 189 #else 190 extern PFNGLMULTIDRAWARRAYSPROC glMultiDrawArrays_; 191 extern PFNGLMULTIDRAWELEMENTSPROC glMultiDrawElements_; 192 193 extern PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate_; 194 extern PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate_; 195 extern PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate_; 196 extern PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate_; 197 extern PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate_; 198 199 extern PFNGLGENBUFFERSPROC glGenBuffers_; 200 extern PFNGLBINDBUFFERPROC glBindBuffer_; 201 extern PFNGLMAPBUFFERPROC glMapBuffer_; 202 extern PFNGLUNMAPBUFFERPROC glUnmapBuffer_; 203 extern PFNGLBUFFERDATAPROC glBufferData_; 204 extern PFNGLBUFFERSUBDATAPROC glBufferSubData_; 205 extern PFNGLDELETEBUFFERSPROC glDeleteBuffers_; 206 extern PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData_; 207 208 extern PFNGLGENQUERIESPROC glGenQueries_; 209 extern PFNGLDELETEQUERIESPROC glDeleteQueries_; 210 extern PFNGLBEGINQUERYPROC glBeginQuery_; 211 extern PFNGLENDQUERYPROC glEndQuery_; 212 extern PFNGLGETQUERYIVPROC glGetQueryiv_; 213 extern PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv_; 214 extern PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv_; 215 216 extern PFNGLCREATEPROGRAMPROC glCreateProgram_; 217 extern PFNGLDELETEPROGRAMPROC glDeleteProgram_; 218 extern PFNGLUSEPROGRAMPROC glUseProgram_; 219 extern PFNGLCREATESHADERPROC glCreateShader_; 220 extern PFNGLDELETESHADERPROC glDeleteShader_; 221 extern PFNGLSHADERSOURCEPROC glShaderSource_; 222 extern PFNGLCOMPILESHADERPROC glCompileShader_; 223 extern PFNGLGETSHADERIVPROC glGetShaderiv_; 224 extern PFNGLGETPROGRAMIVPROC glGetProgramiv_; 225 extern PFNGLATTACHSHADERPROC glAttachShader_; 226 extern PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog_; 227 extern PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog_; 228 extern PFNGLLINKPROGRAMPROC glLinkProgram_; 229 extern PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation_; 230 extern PFNGLUNIFORM1FPROC glUniform1f_; 231 extern PFNGLUNIFORM2FPROC glUniform2f_; 232 extern PFNGLUNIFORM3FPROC glUniform3f_; 233 extern PFNGLUNIFORM4FPROC glUniform4f_; 234 extern PFNGLUNIFORM1FVPROC glUniform1fv_; 235 extern PFNGLUNIFORM2FVPROC glUniform2fv_; 236 extern PFNGLUNIFORM3FVPROC glUniform3fv_; 237 extern PFNGLUNIFORM4FVPROC glUniform4fv_; 238 extern PFNGLUNIFORM1IPROC glUniform1i_; 239 extern PFNGLUNIFORM2IPROC glUniform2i_; 240 extern PFNGLUNIFORM3IPROC glUniform3i_; 241 extern PFNGLUNIFORM4IPROC glUniform4i_; 242 extern PFNGLUNIFORM1IVPROC glUniform1iv_; 243 extern PFNGLUNIFORM2IVPROC glUniform2iv_; 244 extern PFNGLUNIFORM3IVPROC glUniform3iv_; 245 extern PFNGLUNIFORM4IVPROC glUniform4iv_; 246 extern PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv_; 247 extern PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv_; 248 extern PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv_; 249 extern PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation_; 250 extern PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform_; 251 extern PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray_; 252 extern PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray_; 253 254 extern PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f_; 255 extern PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv_; 256 extern PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s_; 257 extern PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv_; 258 extern PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f_; 259 extern PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv_; 260 extern PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s_; 261 extern PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv_; 262 extern PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f_; 263 extern PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv_; 264 extern PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s_; 265 extern PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv_; 266 extern PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f_; 267 extern PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv_; 268 extern PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s_; 269 extern PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv_; 270 extern PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv_; 271 extern PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv_; 272 extern PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv_; 273 extern PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv_; 274 extern PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv_; 275 extern PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv_; 276 extern PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv_; 277 extern PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub_; 278 extern PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv_; 279 extern PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv_; 280 extern PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv_; 281 extern PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer_; 282 283 extern PFNGLDRAWBUFFERSPROC glDrawBuffers_; 284 #endif 285 286 #ifndef GL_VERSION_2_1 287 #define GL_VERSION_2_1 1 288 #define GL_PIXEL_PACK_BUFFER 0x88EB 289 #define GL_PIXEL_UNPACK_BUFFER 0x88EC 290 #endif 291 292 #ifndef GL_EXT_texture_filter_anisotropic 293 #define GL_EXT_texture_filter_anisotropic 1 294 #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE 295 #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF 296 #endif 297 298 #ifndef GL_EXT_texture_compression_s3tc 299 #define GL_EXT_texture_compression_s3tc 1 300 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 301 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 302 #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 303 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 304 #endif 305 306 #ifndef GL_ARB_framebuffer_object 307 #define GL_ARB_framebuffer_object 1 308 #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A 309 #define GL_DEPTH_STENCIL 0x84F9 310 #define GL_UNSIGNED_INT_24_8 0x84FA 311 #define GL_DEPTH24_STENCIL8 0x88F0 312 #define GL_READ_FRAMEBUFFER 0x8CA8 313 #define GL_DRAW_FRAMEBUFFER 0x8CA9 314 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5 315 #define GL_COLOR_ATTACHMENT0 0x8CE0 316 #define GL_COLOR_ATTACHMENT1 0x8CE1 317 #define GL_DEPTH_ATTACHMENT 0x8D00 318 #define GL_STENCIL_ATTACHMENT 0x8D20 319 #define GL_FRAMEBUFFER 0x8D40 320 #define GL_RENDERBUFFER 0x8D41 321 typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); 322 typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); 323 typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); 324 typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); 325 typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); 326 typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); 327 typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); 328 typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); 329 typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); 330 typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); 331 typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); 332 typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); 333 #endif 334 335 // GL_EXT_framebuffer_object 336 extern PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer_; 337 extern PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers_; 338 extern PFNGLGENFRAMEBUFFERSPROC glGenRenderbuffers_; 339 extern PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage_; 340 extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus_; 341 extern PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer_; 342 extern PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers_; 343 extern PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers_; 344 extern PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D_; 345 extern PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer_; 346 extern PFNGLGENERATEMIPMAPPROC glGenerateMipmap_; 347 348 // GL_EXT_framebuffer_blit 349 extern PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer_; 350 351 #ifndef GL_ARB_texture_rg 352 #define GL_ARB_texture_rg 1 353 #define GL_RG 0x8227 354 #define GL_R8 0x8229 355 #define GL_R16 0x822A 356 #define GL_RG8 0x822B 357 #define GL_RG16 0x822C 358 #define GL_R16F 0x822D 359 #define GL_R32F 0x822E 360 #define GL_RG16F 0x822F 361 #define GL_RG32F 0x8230 362 #endif 363 364 #ifndef GL_EXT_texture_compression_latc 365 #define GL_EXT_texture_compression_latc 1 366 #define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 367 #define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 368 #endif 369 370 #ifndef GL_ARB_texture_compression_rgtc 371 #define GL_ARB_texture_compression_rgtc 1 372 #define GL_COMPRESSED_RED_RGTC1 0x8DBB 373 #define GL_COMPRESSED_RG_RGTC2 0x8DBD 374 #endif 375 376 #ifndef GL_ARB_map_buffer_range 377 #define GL_ARB_map_buffer_range 1 378 #define GL_MAP_READ_BIT 0x0001 379 #define GL_MAP_WRITE_BIT 0x0002 380 #define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 381 #define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 382 #define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 383 #define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 384 typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); 385 typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); 386 #endif 387 extern PFNGLMAPBUFFERRANGEPROC glMapBufferRange_; 388 extern PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange_; 389 390 #ifndef GL_ARB_uniform_buffer_object 391 #define GL_ARB_uniform_buffer_object 1 392 #define GL_UNIFORM_BUFFER 0x8A11 393 #define GL_UNIFORM_BUFFER_BINDING 0x8A28 394 #define GL_UNIFORM_BUFFER_START 0x8A29 395 #define GL_UNIFORM_BUFFER_SIZE 0x8A2A 396 #define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B 397 #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C 398 #define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D 399 #define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E 400 #define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F 401 #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 402 #define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 403 #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 404 #define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 405 #define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 406 #define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 407 #define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 408 #define GL_UNIFORM_TYPE 0x8A37 409 #define GL_UNIFORM_SIZE 0x8A38 410 #define GL_UNIFORM_NAME_LENGTH 0x8A39 411 #define GL_UNIFORM_BLOCK_INDEX 0x8A3A 412 #define GL_UNIFORM_OFFSET 0x8A3B 413 #define GL_UNIFORM_ARRAY_STRIDE 0x8A3C 414 #define GL_UNIFORM_MATRIX_STRIDE 0x8A3D 415 #define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E 416 #define GL_UNIFORM_BLOCK_BINDING 0x8A3F 417 #define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 418 #define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 419 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 420 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 421 #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 422 #define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 423 #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 424 #define GL_INVALID_INDEX 0xFFFFFFFFu 425 typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices); 426 typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); 427 typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); 428 typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); 429 typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); 430 #endif 431 #ifndef GL_INVALID_INDEX 432 #define GL_INVALID_INDEX 0xFFFFFFFFu 433 #endif 434 extern PFNGLGETUNIFORMINDICESPROC glGetUniformIndices_; 435 extern PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv_; 436 extern PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex_; 437 extern PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv_; 438 extern PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding_; 439 440 #ifndef GL_VERSION_3_0 441 #define GL_VERSION_3_0 1 442 #define GL_NUM_EXTENSIONS 0x821D 443 #define GL_COMPARE_REF_TO_TEXTURE 0x884E 444 #define GL_MAX_VARYING_COMPONENTS 0x8B4B 445 #define GL_RGBA32F 0x8814 446 #define GL_RGB32F 0x8815 447 #define GL_RGBA16F 0x881A 448 #define GL_RGB16F 0x881B 449 #define GL_COMPRESSED_RED 0x8225 450 #define GL_COMPRESSED_RG 0x8226 451 typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); 452 typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); 453 typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); 454 typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); 455 #elif GL_GLEXT_VERSION < 43 456 typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); 457 typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); 458 #endif 459 460 extern PFNGLGETSTRINGIPROC glGetStringi_; 461 extern PFNGLBINDFRAGDATALOCATIONPROC glBindFragDataLocation_; 462 extern PFNGLBINDBUFFERBASEPROC glBindBufferBase_; 463 extern PFNGLBINDBUFFERRANGEPROC glBindBufferRange_; 464 465 #ifndef GL_VERSION_3_1 466 #define GL_VERSION_3_1 1 467 #define GL_TEXTURE_RECTANGLE 0x84F5 468 #endif 469 470 #ifndef GL_ARB_vertex_array_object 471 #define GL_ARB_vertex_array_object 1 472 #define GL_VERTEX_ARRAY_BINDING 0x85B5 473 typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); 474 typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); 475 typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); 476 typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); 477 #endif 478 extern PFNGLBINDVERTEXARRAYPROC glBindVertexArray_; 479 extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays_; 480 extern PFNGLGENVERTEXARRAYSPROC glGenVertexArrays_; 481 extern PFNGLISVERTEXARRAYPROC glIsVertexArray_; 482 483 #ifndef GL_ARB_texture_swizzle 484 #define GL_ARB_texture_swizzle 1 485 #define GL_TEXTURE_SWIZZLE_R 0x8E42 486 #define GL_TEXTURE_SWIZZLE_G 0x8E43 487 #define GL_TEXTURE_SWIZZLE_B 0x8E44 488 #define GL_TEXTURE_SWIZZLE_A 0x8E45 489 #define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 490 #endif 491 492