1 #ifndef _EVAS_GL_H 2 #define _EVAS_GL_H 3 4 #include <Evas.h> 5 //#include <GL/gl.h> 6 7 #ifdef EAPI 8 # undef EAPI 9 #endif 10 11 #ifdef _WIN32 12 # ifdef EFL_BUILD 13 # ifdef DLL_EXPORT 14 # define EAPI __declspec(dllexport) 15 # else 16 # define EAPI 17 # endif 18 # else 19 # define EAPI __declspec(dllimport) 20 # endif 21 #else 22 # ifdef __GNUC__ 23 # if __GNUC__ >= 4 24 # define EAPI __attribute__ ((visibility("default"))) 25 # else 26 # define EAPI 27 # endif 28 # else 29 # define EAPI 30 # endif 31 #endif 32 33 #ifdef __cplusplus 34 extern "C" { 35 #endif 36 37 /* 38 Some of the remainder of this file is lifted from Khronos' public 39 EGL/glext headers. The copyright notice from a recent version of the 40 headers is reproduced here. 41 42 Much of it is from Mesa, so their copyright is included as well. 43 */ 44 45 /* 46 ** Copyright (c) 2013-2016 The Khronos Group Inc. 47 ** 48 ** Permission is hereby granted, free of charge, to any person obtaining a 49 ** copy of this software and/or associated documentation files (the 50 ** "Materials"), to deal in the Materials without restriction, including 51 ** without limitation the rights to use, copy, modify, merge, publish, 52 ** distribute, sublicense, and/or sell copies of the Materials, and to 53 ** permit persons to whom the Materials are furnished to do so, subject to 54 ** the following conditions: 55 ** 56 ** The above copyright notice and this permission notice shall be included 57 ** in all copies or substantial portions of the Materials. 58 ** 59 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 60 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 61 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 62 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 63 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 64 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 65 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 66 */ 67 /* 68 * Mesa 3-D graphics library 69 * 70 * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. 71 * Copyright (C) 2009 VMware, Inc. All Rights Reserved. 72 * 73 * Permission is hereby granted, free of charge, to any person obtaining a 74 * copy of this software and associated documentation files (the "Software"), 75 * to deal in the Software without restriction, including without limitation 76 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 77 * and/or sell copies of the Software, and to permit persons to whom the 78 * Software is furnished to do so, subject to the following conditions: 79 * 80 * The above copyright notice and this permission notice shall be included 81 * in all copies or substantial portions of the Software. 82 * 83 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 84 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 85 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 86 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 87 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 88 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 89 * OTHER DEALINGS IN THE SOFTWARE. 90 */ 91 92 93 /** 94 * @defgroup Evas_GL Rendering GL on Evas 95 * @ingroup Evas_Canvas 96 * 97 * @brief This group discusses the functions that are used to do OpenGL rendering on Evas. Evas allows you 98 * to use OpenGL to render to specially set up image objects (which act as 99 * render target surfaces). 100 * 101 * 102 * <h2> Evas GL usage example </h2> 103 * 104 * Below is an illustrative example of how to use OpenGL to render to an 105 * object in Evas. 106 * 107 * @code 108 // Simple Evas_GL example 109 #include <Ecore_Evas.h> 110 #include <Ecore.h> 111 #include <Evas_GL.h> 112 #include <stdio.h> 113 114 // GL related data here.. 115 typedef struct _GLData 116 { 117 Evas_GL_Context *ctx; 118 Evas_GL_Surface *sfc; 119 Evas_GL_Config *cfg; 120 Evas_GL *evasgl; 121 Evas_GL_API *glapi; 122 GLuint program; 123 GLuint vtx_shader; 124 GLuint fgmt_shader; 125 Eina_Bool initialized : 1; 126 } GLData; 127 128 // Callbacks we need to handle deletion on the object and updates/draws 129 static void on_del (void *data, Evas *e, Evas_Object *obj, void *event_info); 130 static void on_pixels (void *data, Evas_Object *obj); 131 // Demo - animator just to keep ticking over asking to draw the image 132 static Eina_Bool on_animate (void *data); 133 // gl stuff 134 static int init_shaders (GLData *gld); 135 static GLuint load_shader (GLData *gld, GLenum type, const char *shader_src); 136 137 int 138 main(int argc, char **argv) 139 { 140 // A size by default 141 int w = 256, h = 256; 142 // Some variables we will use 143 Ecore_Evas *ee; 144 Evas *canvas; 145 Evas_Object *r1; 146 Evas_Native_Surface ns; 147 GLData *gld = NULL; 148 149 // Regular low-level EFL (ecore+ecore-evas) init. elm is simpler 150 ecore_init(); 151 ecore_evas_init(); 152 ee = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 512, 512); 153 ecore_evas_title_set(ee, "Ecore_Evas Template"); 154 canvas = ecore_evas_get(ee); 155 156 // Alloc a data struct to hold our relevant gl info in it 157 if (!(gld = calloc(1, sizeof(GLData)))) return 0; 158 159 //-//-//-// THIS IS WHERE GL INIT STUFF HAPPENS (ALA EGL) 160 //-// 161 // get the evas gl handle for doing gl things 162 gld->evasgl = evas_gl_new(canvas); 163 gld->glapi = evas_gl_api_get(gld->evasgl); 164 165 // Set a surface config 166 gld->cfg = evas_gl_config_new(); 167 gld->cfg->color_format = EVAS_GL_RGBA_8888; 168 //gld->cfg->depth_bits = EVAS_GL_DEPTH_NONE; // Othe config options 169 //gld->cfg->stencil_bits = EVAS_GL_STENCIL_NONE; 170 //gld->cfg->options_bits = EVAS_GL_OPTIONS_NONE; 171 172 // Create a surface and context 173 gld->sfc = evas_gl_surface_create(gld->evasgl, gld->cfg, w, h); 174 gld->ctx = evas_gl_context_create(gld->evasgl, NULL); 175 //-// 176 //-//-//-// END GL INIT BLOB 177 178 // Set up the image object. A filled one by default 179 r1 = evas_object_image_filled_add(canvas); 180 // Attach important data we need to the object using key names. This just 181 // avoids some global variables which means we can do a good cleanup. You can 182 // avoid this if you are lazy 183 evas_object_data_set(r1, "..gld", gld); 184 // When the object is deleted - call the on_del callback. Like the above, 185 // this is just being clean 186 evas_object_event_callback_add(r1, EVAS_CALLBACK_DEL, on_del, NULL); 187 // Set up an actual pixel size for the buffer data. It may be different 188 // from the output size. Any windowing system has something like this, only 189 // evas has 2 sizes, a pixel size and the output object size 190 evas_object_image_size_set(r1, w, h); 191 // Set up the native surface info to use the context and surface created 192 // above 193 194 //-//-//-// THIS IS WHERE GL INIT STUFF HAPPENS (ALA EGL) 195 //-// 196 evas_gl_native_surface_get(gld->evasgl, gld->sfc, &ns); 197 evas_object_image_native_surface_set(r1, &ns); 198 evas_object_image_pixels_get_callback_set(r1, on_pixels, r1); 199 //-// 200 //-//-//-// END GL INIT BLOB 201 202 // Move the image object somewhere, resize it, and show it. Any windowing 203 // system would need this kind of thing - place a child "window" 204 evas_object_move(r1, 128, 128); 205 evas_object_resize(r1, w, h); 206 evas_object_show(r1); 207 208 // Animating - just a demo. As long as you trigger an update on the image 209 // object via evas_object_image_pixels_dirty_set(), any display system, 210 // mainloop system etc., will have something of this kind unless it's making 211 // you spin infinitely by yourself and invent your own animation mechanism 212 // 213 // NOTE: If you delete r1, this animator will keep running and trying to access 214 // r1 so you'd better delete this animator with ecore_animator_del() or 215 // structure how you do animation differently. You can also attach it like 216 // evasgl, sfc, etc., if this animator is specific to this object 217 // then delete it in the del handler for the obj. 218 ecore_animator_add(on_animate, r1); 219 220 // Finally show the window for the world to see. Windowing system generic 221 ecore_evas_show(ee); 222 223 // Begin the mainloop and tick over the animator, handle events, etc. 224 // Also windowing system generic 225 ecore_main_loop_begin(); 226 227 // Standard EFL shutdown stuff - generic for most systems, EFL or not 228 ecore_evas_shutdown(); 229 ecore_shutdown(); 230 return 0; 231 } 232 233 static void 234 on_del(void *data, Evas *e, Evas_Object *obj, void *event_info) 235 { 236 // On delete of our object clean up some things that don't get auto 237 // deleted for us as they are not intrinsically bound to the image 238 // object as such (you could use the same context and surface across 239 // multiple image objects and re-use the evasgl handle multiple times. 240 // Here we bind them to only 1 object though by doing this. 241 GLData *gld = evas_object_data_get(obj, "..gld"); 242 if (!gld) return; 243 Evas_GL_API *gl = gld->glapi; 244 245 evas_object_data_del(obj, "..gld"); 246 247 // Do a make_current before deleting all the GL stuff. 248 evas_gl_make_current(gld->evasgl, gld->sfc, gld->ctx); 249 gl->glDeleteShader(gld->vtx_shader); 250 gl->glDeleteShader(gld->fgmt_shader); 251 gl->glDeleteProgram(gld->program); 252 253 evas_gl_surface_destroy(gld->evasgl, gld->sfc); 254 evas_gl_context_destroy(gld->evasgl, gld->ctx); 255 evas_gl_config_free(gld->cfg); 256 evas_gl_free(gld->evasgl); 257 free(gld); 258 } 259 260 static void 261 on_pixels(void *data, Evas_Object *obj) 262 { 263 // Get some variable we need from the object data keys 264 GLData *gld = evas_object_data_get(obj, "..gld"); 265 if (!gld) return; 266 Evas_GL_API *gl = gld->glapi; 267 GLfloat vVertices[] = 268 { 269 0.0f, 0.5f, 0.0f, 270 -0.5f, -0.5f, 0.0f, 271 0.5f, -0.5f, 0.0f 272 }; 273 int w, h; 274 275 // Get the image size, in case it changed, with evas_object_image_size_set() 276 evas_object_image_size_get(obj, &w, &h); 277 // Set up the context and surface as the current one 278 evas_gl_make_current(gld->evasgl, gld->sfc, gld->ctx); 279 280 if (!gld->initialized) 281 { 282 if (!init_shaders(gld)) printf("Error Initializing Shaders\n"); 283 gld->initialized = EINA_TRUE; 284 } 285 286 // GL Viewport stuff. You can avoid doing this if viewport is all the 287 // same as the last frame, if you want 288 gl->glViewport(0, 0, w, h); 289 290 // Clear the buffer 291 gl->glClearColor(1.0, 0.0, 0.0, 1); 292 gl->glClear(GL_COLOR_BUFFER_BIT); 293 294 // Draw a Triangle 295 gl->glEnable(GL_BLEND); 296 297 gl->glUseProgram(gld->program); 298 299 gl->glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, vVertices); 300 gl->glEnableVertexAttribArray(0); 301 302 gl->glDrawArrays(GL_TRIANGLES, 0, 3); 303 304 // Optional - Flush the GL pipeline 305 gl->glFlush(); 306 } 307 308 static Eina_Bool 309 on_animate(void *data) 310 { 311 // Just a demo - Animate here whenever an animation tick happens and then 312 // mark the image as "dirty" meaning it needs an update the next time evas 313 // renders. It will then call the pixel get callback. 314 evas_object_image_pixels_dirty_set(data, EINA_TRUE); 315 return EINA_TRUE; // Keep looping 316 } 317 318 static GLuint 319 load_shader(GLData *gld, GLenum type, const char *shader_src) 320 { 321 Evas_GL_API *gl = gld->glapi; 322 GLuint shader; 323 GLint compiled = 0; 324 325 // Create the shader object 326 if (!(shader = gl->glCreateShader(type))) return 0; 327 gl->glShaderSource(shader, 1, &shader_src, NULL); 328 // Compile the shader 329 gl->glCompileShader(shader); 330 gl->glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); 331 332 if (!compiled) 333 { 334 GLint len = 0; 335 336 gl->glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &len); 337 if (len > 1) 338 { 339 char *info = malloc(sizeof(char) * len); 340 341 if (info) 342 { 343 gl->glGetShaderInfoLog(shader, len, NULL, info); 344 printf("Error compiling shader:\n" 345 "%s\n", info); 346 free(info); 347 } 348 } 349 gl->glDeleteShader(shader); 350 return 0; 351 } 352 return shader; 353 } 354 355 // Initialize the shader and program object 356 static int 357 init_shaders(GLData *gld) 358 { 359 Evas_GL_API *gl = gld->glapi; 360 const char vShaderStr[] = 361 "attribute vec4 vPosition; \n" 362 "void main() \n" 363 "{ \n" 364 " gl_Position = vPosition; \n" 365 "} \n"; 366 const char fShaderStr[] = 367 "precision mediump float; \n" 368 "void main() \n" 369 "{ \n" 370 " gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n" 371 "} \n"; 372 GLint linked = 0; 373 374 // Load the vertex/fragment shaders 375 gld->vtx_shader = load_shader(gld, GL_VERTEX_SHADER, vShaderStr); 376 gld->fgmt_shader = load_shader(gld, GL_FRAGMENT_SHADER, fShaderStr); 377 378 // Create the program object 379 if (!(gld->program = gl->glCreateProgram())) return 0; 380 381 gl->glAttachShader(gld->program, gld->vtx_shader); 382 gl->glAttachShader(gld->program, gld->fgmt_shader); 383 384 // Bind vPosition to attribute 0 385 gl->glBindAttribLocation(gld->program, 0, "vPosition"); 386 // Link the program 387 gl->glLinkProgram(gld->program); 388 gl->glGetProgramiv(gld->program, GL_LINK_STATUS, &linked); 389 390 if (!linked) 391 { 392 GLint len = 0; 393 394 gl->glGetProgramiv(gld->program, GL_INFO_LOG_LENGTH, &len); 395 if (len > 1) 396 { 397 char *info = malloc(sizeof(char) * len); 398 399 if (info) 400 { 401 gl->glGetProgramInfoLog(gld->program, len, NULL, info); 402 printf("Error linking program:\n" 403 "%s\n", info); 404 free(info); 405 } 406 } 407 gl->glDeleteProgram(gld->program); 408 return 0; 409 } 410 return 1; 411 } 412 * @endcode 413 * 414 * @ingroup Evas_Canvas 415 */ 416 417 /** 418 * @addtogroup Evas_GL 419 * @{ 420 */ 421 422 /** 423 * @typedef Evas_GL 424 * 425 * @brief The structure type of the Evas GL object used to render GL in Evas. 426 */ 427 typedef struct _Evas_GL Evas_GL; 428 429 /** 430 * @typedef Evas_GL_Surface 431 * 432 * @brief The structure type of the Evas GL Surface object, a GL rendering target in Evas GL. 433 */ 434 typedef struct _Evas_GL_Surface Evas_GL_Surface; 435 436 /** 437 * @typedef Evas_GL_Context 438 * 439 * @brief The structure type of the Evas GL Context object, a GL rendering context in Evas GL. 440 */ 441 typedef struct _Evas_GL_Context Evas_GL_Context; 442 443 /** 444 * @typedef Evas_GL_Config 445 * 446 * @brief The structure type of the Evas GL Surface configuration object for surface creation. 447 */ 448 typedef struct _Evas_GL_Config Evas_GL_Config; 449 450 /** 451 * @typedef Evas_GL_API 452 * 453 * @brief The structure type of the Evas GL API object that contains the GL APIs to be used in Evas GL. 454 */ 455 typedef struct _Evas_GL_API Evas_GL_API; 456 457 /** 458 * @typedef Evas_GL_Func 459 * 460 * @brief Represents a function pointer, that can be used for Evas GL extensions. 461 */ 462 typedef void *Evas_GL_Func; 463 464 /** 465 * @typedef EvasGLImage 466 * 467 * @brief Represents an Evas GL Image object used with Evas GL Image extensions. 468 */ 469 typedef void *EvasGLImage; 470 471 /** 472 * @brief Enumeration that defines the available surface color formats. 473 */ 474 typedef enum _Evas_GL_Color_Format 475 { 476 EVAS_GL_RGB_888 = 0, /**< Opaque RGB surface */ 477 EVAS_GL_RGBA_8888 = 1, /**< RGBA surface with alpha */ 478 EVAS_GL_NO_FBO = 2 /**< Special value for creating PBuffer surfaces without any attached buffer. @see evas_gl_pbuffer_surface_create. @since 1.12*/ 479 } Evas_GL_Color_Format; 480 481 /** 482 * @brief Enumeration that defines the Surface Depth Format. 483 */ 484 typedef enum _Evas_GL_Depth_Bits 485 { 486 EVAS_GL_DEPTH_NONE = 0, 487 EVAS_GL_DEPTH_BIT_8 = 1, /**< 8 bits precision surface depth */ 488 EVAS_GL_DEPTH_BIT_16 = 2, /**< 16 bits precision surface depth */ 489 EVAS_GL_DEPTH_BIT_24 = 3, /**< 24 bits precision surface depth */ 490 EVAS_GL_DEPTH_BIT_32 = 4 /**< 32 bits precision surface depth */ 491 } Evas_GL_Depth_Bits; 492 493 /** 494 * @brief Enumeration that defines the Surface Stencil Format. 495 */ 496 typedef enum _Evas_GL_Stencil_Bits 497 { 498 EVAS_GL_STENCIL_NONE = 0, 499 EVAS_GL_STENCIL_BIT_1 = 1, /**< 1 bit precision for stencil buffer */ 500 EVAS_GL_STENCIL_BIT_2 = 2, /**< 2 bits precision for stencil buffer */ 501 EVAS_GL_STENCIL_BIT_4 = 3, /**< 4 bits precision for stencil buffer */ 502 EVAS_GL_STENCIL_BIT_8 = 4, /**< 8 bits precision for stencil buffer */ 503 EVAS_GL_STENCIL_BIT_16 = 5 /**< 16 bits precision for stencil buffer */ 504 } Evas_GL_Stencil_Bits; 505 506 /** 507 * @brief Enumeration that defines the Configuration Options. 508 * 509 * @since 1.1 510 */ 511 typedef enum _Evas_GL_Options_Bits 512 { 513 EVAS_GL_OPTIONS_NONE = 0, /**< No extra options */ 514 EVAS_GL_OPTIONS_DIRECT = (1<<0),/**< Optional hint to allow rendering directly to the Evas window if possible */ 515 EVAS_GL_OPTIONS_CLIENT_SIDE_ROTATION = (1<<1) /**< Force direct rendering even if the canvas is rotated. 516 * In that case, it is the application's role to rotate the contents of 517 * the Evas_GL view. @see evas_gl_rotation_get. @since 1.12 */ 518 } Evas_GL_Options_Bits; 519 520 /** 521 * @brief Enumeration that defines the configuration options for a Multisample Anti-Aliased (MSAA) rendering surface. 522 * 523 * @since 1.2 524 * 525 * @remarks This only works on devices that support the required extensions. 526 */ 527 typedef enum _Evas_GL_Multisample_Bits 528 { 529 EVAS_GL_MULTISAMPLE_NONE = 0, /**< No multisample rendering */ 530 EVAS_GL_MULTISAMPLE_LOW = 1, /**< MSAA with minimum number of samples */ 531 EVAS_GL_MULTISAMPLE_MED = 2, /**< MSAA with half the maximum number of samples */ 532 EVAS_GL_MULTISAMPLE_HIGH = 3 /**< MSAA with maximum allowed samples */ 533 } Evas_GL_Multisample_Bits; 534 535 /** 536 * @brief Enumeration that defines the available OpenGL ES version numbers. 537 * They can be used to create OpenGL-ES 1.1 contexts. 538 * 539 * @since 1.12 540 * 541 * @see evas_gl_context_version_create 542 * 543 * @remarks This will only work with EGL/GLES (but not with desktop OpenGL). 544 */ 545 typedef enum _Evas_GL_Context_Version 546 { 547 EVAS_GL_GLES_1_X = 1, /**< OpenGL-ES 1.x */ 548 EVAS_GL_GLES_2_X = 2, /**< OpenGL-ES 2.x is the default */ 549 EVAS_GL_GLES_3_X = 3 /**< @internal OpenGL-ES 3.x, not implemented yet */ 550 } Evas_GL_Context_Version; 551 552 /** 553 * @struct _Evas_GL_Config 554 * 555 * @brief A structure used to specify the configuration of an @ref Evas_GL_Surface. 556 * 557 * This structure should be allocated with @ref evas_gl_config_new() and released 558 * with @ref evas_gl_config_free(). 559 * 560 * @see evas_gl_surface_create 561 * @see evas_gl_pbuffer_surface_create 562 */ 563 struct _Evas_GL_Config 564 { 565 Evas_GL_Color_Format color_format; /**< Surface Color Format */ 566 Evas_GL_Depth_Bits depth_bits; /**< Surface Depth Bits */ 567 Evas_GL_Stencil_Bits stencil_bits; /**< Surface Stencil Bits */ 568 Evas_GL_Options_Bits options_bits; /**< Extra Surface Options */ 569 Evas_GL_Multisample_Bits multisample_bits; /**< Optional Surface MSAA Bits */ 570 Evas_GL_Context_Version gles_version; /**< @internal Special flag for OpenGL-ES 1.1 indirect rendering surfaces (since 1.12) */ 571 }; 572 573 /** @brief Constant to use when calling @ref evas_gl_string_query to retrieve the available Evas_GL extensions. */ 574 #define EVAS_GL_EXTENSIONS 1 575 576 577 /** 578 * @brief Creates a new Evas_GL object and returns a handle for GL rendering with the EFL. 579 * 580 * @param[in] e The given Evas canvas to use 581 * 582 * @return The created Evas_GL object, or @c NULL in case of failure 583 */ 584 EAPI Evas_GL *evas_gl_new (Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 585 586 /** 587 * @brief Frees an Evas_GL object. 588 * 589 * @param[in] evas_gl The given Evas_GL object to destroy 590 * 591 * @see evas_gl_new 592 */ 593 EAPI void evas_gl_free (Evas_GL *evas_gl) EINA_ARG_NONNULL(1); 594 595 /** 596 * @brief Allocates a new config object for the user to fill out. 597 * 598 * @remarks As long as Evas creates a config object for the user, it takes care 599 * of the backward compatibility issue. 600 * 601 * @see evas_gl_config_free 602 */ 603 EAPI Evas_GL_Config *evas_gl_config_new (void); 604 605 /** 606 * @brief Frees a config object created from evas_gl_config_new. 607 * 608 * @param[in] cfg The configuration structure to free, it can not be accessed afterwards. 609 * 610 * @remarks As long as Evas creates a config object for the user, it takes care 611 * of the backward compatibility issue. 612 * 613 * @see evas_gl_config_new 614 */ 615 EAPI void evas_gl_config_free (Evas_GL_Config *cfg) EINA_ARG_NONNULL(1); 616 617 /** 618 * @brief Creates and returns a new @ref Evas_GL_Surface object for GL Rendering. 619 * 620 * @param[in] evas_gl The given Evas_GL object 621 * @param[in] cfg The pixel format and configuration of the rendering surface 622 * @param[in] w The width of the surface 623 * @param[in] h The height of the surface 624 * 625 * @return The created GL surface object, 626 * otherwise @c NULL on failure 627 * 628 * @see evas_gl_surface_destroy 629 */ 630 EAPI Evas_GL_Surface *evas_gl_surface_create (Evas_GL *evas_gl, Evas_GL_Config *cfg, int w, int h) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1,2); 631 632 /** 633 * @brief Create a pixel buffer surface 634 * 635 * @param[in] evas_gl The given Evas_GL object 636 * @param[in] cfg Pixel format and configuration of the pixel buffer surface 637 * @param[in] w Requested width of the buffer 638 * @param[in] h Requested height of the buffer 639 * @param[in] attrib_list An optional list of attribute-value pairs terminated by attribute 0, can be @c NULL. Currently, no attributes are supported. 640 * 641 * @return The created GL surface object, 642 * otherwise @c NULL on failure 643 * 644 * The surface must be released with @ref evas_gl_surface_destroy. 645 * 646 * If the color format in @a cfg is @ref EVAS_GL_RGB_888 or @ref EVAS_GL_RGBA_8888, 647 * then Evas will automatically generate a framebuffer attached to this PBuffer. 648 * Its properties can be queried using @ref evas_gl_native_surface_get. 649 * If you want to attach an FBO yourself, or create a PBuffer surface only, 650 * please use the color format @ref EVAS_GL_NO_FBO. 651 * 652 * Creating a 1x1 PBuffer surface can be useful in order to call 653 * @ref evas_gl_make_current() from another thread. 654 * 655 * @note The attribute list can be terminated by EVAS_GL_NONE or 0. 656 * As of now, no special attributes are supported yet. Also, only EGL 657 * is supported at the moment of writing. 658 * 659 * @see evas_gl_surface_destroy 660 * 661 * @since 1.12 662 */ 663 EAPI Evas_GL_Surface *evas_gl_pbuffer_surface_create(Evas_GL *evas_gl, Evas_GL_Config *cfg, int w, int h, const int *attrib_list) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1,2); 664 665 /** 666 * @brief Destroys an Evas GL Surface. 667 * 668 * @param[in] evas_gl The given Evas_GL object 669 * @param[in] surf The given GL surface object 670 * 671 * @note This function can also destroy pbuffer surfaces. 672 */ 673 EAPI void evas_gl_surface_destroy (Evas_GL *evas_gl, Evas_GL_Surface *surf) EINA_ARG_NONNULL(1,2); 674 675 /** 676 * @brief Creates and returns a new Evas GL context object. 677 * 678 * @param[in] evas_gl The given Evas_GL object 679 * @param[in] share_ctx An Evas_GL context to share with the new context 680 * 681 * @return The created context, 682 * otherwise @c NULL on failure 683 */ 684 EAPI Evas_GL_Context *evas_gl_context_create (Evas_GL *evas_gl, Evas_GL_Context *share_ctx) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 685 686 /** 687 * @brief Creates and returns a new Evas GL context object for OpenGL-ES 1.1 or 2.0. 688 * 689 * @param[in] evas_gl The given Evas_GL object 690 * @param[in] share_ctx A context to share (can be NULL) 691 * @param[in] version Major OpenGL-ES version number 692 * 693 * @return The created context, 694 * otherwise @c NULL on failure 695 * 696 * This function can be used to create OpenGL-ES 1.1 contexts, but OpenGL-ES 3.x 697 * is not supported yet. 698 * 699 * The GL API bound to the created context must be queried using 700 * @ref evas_gl_context_api_get (instead of @ref evas_gl_api_get). 701 * 702 * @note GLES 3.x is not supported yet. 703 * 704 * @see Evas_GL_Context_Version 705 * @see evas_gl_context_api_get 706 * 707 * @since 1.12 708 */ 709 EAPI Evas_GL_Context *evas_gl_context_version_create(Evas_GL *evas_gl, Evas_GL_Context *share_ctx, Evas_GL_Context_Version version) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 710 711 /** 712 * @brief Destroys the given Evas GL context object. 713 * 714 * @param[in] evas_gl The given Evas_GL object 715 * @param[in] ctx The given Evas GL context 716 * 717 * @see evas_gl_context_create 718 * @see evas_gl_context_version_create 719 */ 720 EAPI void evas_gl_context_destroy (Evas_GL *evas_gl, Evas_GL_Context *ctx) EINA_ARG_NONNULL(1,2); 721 722 /** 723 * @brief Sets the given context as the current context for the given surface. 724 * 725 * @param[in] evas_gl The given Evas_GL object 726 * @param[in] surf The given Evas GL surface 727 * @param[in] ctx The given Evas GL context 728 * @return @c EINA_TRUE if successful, 729 * otherwise @c EINA_FALSE if not 730 */ 731 EAPI Eina_Bool evas_gl_make_current (Evas_GL *evas_gl, Evas_GL_Surface *surf, Evas_GL_Context *ctx) EINA_ARG_NONNULL(1,2); 732 733 /** 734 * @brief Returns a pointer to a static, null-terminated string describing some aspect of Evas GL. 735 * 736 * @param[in] evas_gl The given Evas_GL object 737 * @param[in] name A symbolic constant, only @ref EVAS_GL_EXTENSIONS is supported for now 738 */ 739 EAPI const char *evas_gl_string_query (Evas_GL *evas_gl, int name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 740 741 /** 742 * @brief Returns a extension function from OpenGL or the Evas_GL glue layer. 743 * 744 * @param[in] evas_gl The given Evas_GL object 745 * @param[in] name The name of the function to return 746 * 747 * The available extension functions may depend on the backend engine Evas GL is 748 * running on. 749 * 750 * @return A function pointer to the Evas_GL extension. 751 */ 752 EAPI Evas_GL_Func evas_gl_proc_address_get (Evas_GL *evas_gl, const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1,2) EINA_PURE; 753 754 /** 755 * @brief Fills in the Native Surface information from a given Evas GL surface. 756 * 757 * @param[in] evas_gl The given Evas_GL object 758 * @param[in] surf The given Evas GL surface to retrieve the Native Surface information from 759 * @param[out] ns The native surface structure that the function fills in 760 * @return @c EINA_TRUE if successful, 761 * otherwise @c EINA_FALSE if not 762 * 763 * @details This function can be called to later set this native surface as 764 * source of an Evas Object Image. Please refer to 765 * @ref evas_object_image_native_surface_set. 766 * 767 * @warning Applications should not rely on the information set in @p ns 768 * since its properties are internal to Evas and are not meant to be 769 * tampered with in any way or form from outside Evas. 770 */ 771 EAPI Eina_Bool evas_gl_native_surface_get (Evas_GL *evas_gl, Evas_GL_Surface *surf, Evas_Native_Surface *ns) EINA_ARG_NONNULL(1,2,3); 772 773 /** 774 * @brief Gets the API for rendering using OpenGL. 775 * 776 * @details This returns a structure that contains all the OpenGL functions you can 777 * use to render in Evas. These functions consist of all the standard 778 * OpenGL-ES2.0 functions and any additional ones that Evas has decided to provide. 779 * This means that if you have your code ported to OpenGL-ES2.0, 780 * it is going to be easy to render to Evas. 781 * 782 * @param[in] evas_gl The given Evas_GL object 783 * 784 * @return The API to use 785 * 786 * @note This function will always return an OpenGL-ES 2.0 API, please use 787 * @ref evas_gl_context_api_get instead to get an OpenGL-ES 1.1 set of APIs. 788 * 789 * @see Evas_GL_API 790 * @see evas_gl_context_api_get 791 * 792 */ 793 EAPI Evas_GL_API *evas_gl_api_get (Evas_GL *evas_gl) EINA_ARG_NONNULL(1); 794 795 /** 796 * @brief Gets the API for rendering using OpenGL with non standard contexts. 797 * 798 * This function is similar to @ref evas_gl_api_get but takes an extra Evas GL 799 * context argument as it is used to get the real API used by special contexts, 800 * that have been instantiated with @ref evas_gl_context_version_create(). 801 * 802 * This function can be used to get the GL API for an OpenGL-ES 1.1 context. When 803 * using OpenGL-ES 1.1, applications should always use @ref evas_gl_context_api_get 804 * and never call @ref evas_gl_api_get (this will always return a OpenGL-ES 2+ API). 805 * 806 * @param[in] evas_gl The given Evas_GL object 807 * @param[in] ctx Specifies which context to use, based on this, Evas GL 808 * will return a 1.1- or a 2.0-compatible OpenGL-ES API. 809 * 810 * @return The API to use. Only the available function pointers will be set 811 * in the structure. All the non compatible functions or unsupported 812 * extension function pointers will be set to NULL. 813 * 814 * @see Evas_GL_API 815 * @see evas_gl_api_get 816 * @see evas_gl_context_version_create 817 * 818 * @since 1.12 819 */ 820 EAPI Evas_GL_API *evas_gl_context_api_get (Evas_GL *evas_gl, Evas_GL_Context *ctx) EINA_ARG_NONNULL(1); 821 822 /** 823 * @brief Get the current rotation of the view, in degrees. 824 * 825 * This function should be called in order to properly handle the current 826 * rotation of the view. It will always return 0 unless the option 827 * @ref EVAS_GL_OPTIONS_CLIENT_SIDE_ROTATION has been set. 828 * 829 * Indeed, in case of direct rendering to the back buffer, the client 830 * application is responsible for properly rotating its view. This can generally 831 * be done by applying a rotation to a view matrix. 832 * 833 * @param[in] evas_gl The current Evas_GL object 834 * 835 * @note The returned value may not be the same as the window rotation, for 836 * example if indirect rendering is used as a fallback, or if the GPU supports 837 * transparent rotation of the buffer during swap. 838 * 839 * @return 0, 90, 180 or 270 depending on the Evas canvas' orientation. 840 * 841 * @see EVAS_GL_OPTIONS_CLIENT_SIDE_ROTATION 842 * 843 * @since 1.12 844 */ 845 EAPI int evas_gl_rotation_get (Evas_GL *evas_gl) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; 846 847 /** 848 * @brief Query a surface for its properties 849 * 850 * @param[in] evas_gl The current Evas_GL object 851 * @param[in] surface An Evas_GL_Surface surface to query 852 * @param[in] attribute Specifies the attribute to query. 853 * @param[out] value Returns the requested value (usually an int) 854 * 855 * The currently accepted attributes are the following: 856 * @li @ref EVAS_GL_WIDTH, 857 * @li @ref EVAS_GL_HEIGHT, 858 * @li @ref EVAS_GL_TEXTURE_FORMAT, 859 * @li @ref EVAS_GL_TEXTURE_TARGET 860 * 861 * @return EINA_TRUE in case of success, EINA_FALSE in case of error. 862 * 863 * @since 1.12 864 */ 865 EAPI Eina_Bool evas_gl_surface_query (Evas_GL *evas_gl, Evas_GL_Surface *surface, int attribute, void *value) EINA_ARG_NONNULL(1,2); 866 867 /** 868 * @brief Returns the last error of any evas_gl function called in the current thread. 869 * Initially, the error is set to @ref EVAS_GL_SUCCESS. A call to @ref evas_gl_error_get 870 * resets the error to @ref EVAS_GL_SUCCESS. 871 * 872 * @param[in] evas_gl The given Evas_GL object 873 * 874 * @return @ref EVAS_GL_SUCCESS in case of no error, or any other @c EVAS_GL error code. 875 * 876 * Since Evas GL is a glue layer for GL imitating EGL, the error codes returned 877 * have a similar meaning as those defined in EGL, so please refer to the EGL 878 * documentation for more information about the various error codes. 879 * 880 * @note Evas GL does not specify exactly which error codes will be returned in 881 * which circumstances. This is because different backends may behave 882 * differently and Evas GL will try to give the most meaningful error code 883 * based on the backend's error. Evas GL only tries to provide some 884 * information, so an application can not expect the exact same error 885 * codes as EGL would return. 886 * 887 * @since 1.12 888 */ 889 EAPI int evas_gl_error_get (Evas_GL *evas_gl) EINA_ARG_NONNULL(1); 890 891 /** 892 * @brief Returns the Evas GL context object in use or set by @ref evas_gl_make_current. 893 * 894 * @param[in] evas_gl The given Evas_GL object 895 * 896 * @return The current context for the calling thread, or @c NULL in case of 897 * failure and when there is no current context in this thread. 898 * 899 * @since 1.12 900 */ 901 EAPI Evas_GL_Context *evas_gl_current_context_get (Evas_GL *evas_gl) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 902 903 /** 904 * @brief Returns the Evas GL surface object in use or set by @ref evas_gl_make_current 905 * 906 * @param[in] evas_gl The given Evas_GL object 907 * 908 * @return The current surface for the calling thread, or @c NULL in case of 909 * failure and when there is no current surface in this thread. 910 * 911 * This can be used to get a handle to the current surface, so as to switch 912 * between contexts back and forth. Note that the OpenGL driver may stall when 913 * doing so. 914 * 915 * @see evas_gl_make_current 916 * 917 * @since 1.12 918 */ 919 EAPI Evas_GL_Surface *evas_gl_current_surface_get (Evas_GL *evas_gl) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 920 921 /** 922 * @brief Get current Evas GL 923 * 924 * @param[out] context Optional return value for the current context 925 * @param[out] surface Optional return value for the current surface 926 * 927 * @return The current Evas GL, i.e. the last Evas GL passed to evas_gl_make_current 928 * 929 * @see evas_gl_make_current 930 * 931 * @note This can be used to restore a previous context, for instance if you 932 * are writing a library that needs to work transparently with Evas GL, 933 * and may not have control over the other Evas GL objects. 934 * 935 * @since 1.16 936 */ 937 EAPI Evas_GL *evas_gl_current_evas_gl_get (Evas_GL_Context **context, Evas_GL_Surface **surface) EINA_WARN_UNUSED_RESULT; 938 939 940 /*------------------------------------------------------------------------- 941 * Data types, definitions and values for use with Evas GL. 942 * 943 * The following definitions have been imported from the official GLES/GLES2 944 * header files. Please do not include the official GL headers along with 945 * Evas_GL.h as these will conflict. 946 *-----------------------------------------------------------------------*/ 947 948 #if !defined(__gl2_h_) 949 # define __gl2_h_ 950 951 /* 952 * This document is licensed under the SGI Free Software B License Version 953 * 2.0. For details, see https://spdx.org/licenses/SGI-B-2.0.html . 954 */ 955 956 /*------------------------------------------------------------------------- 957 * Data type definitions 958 *-----------------------------------------------------------------------*/ 959 960 typedef void GLvoid; 961 typedef char GLchar; 962 typedef unsigned int GLenum; 963 typedef unsigned char GLboolean; 964 typedef unsigned int GLbitfield; 965 typedef signed char GLbyte; // Changed khronos_int8_t 966 typedef short GLshort; 967 typedef int GLint; 968 typedef int GLsizei; 969 typedef unsigned char GLubyte; // Changed khronos_uint8_t 970 typedef unsigned short GLushort; 971 typedef unsigned int GLuint; 972 typedef float GLfloat; // Changed khronos_float_t 973 typedef float GLclampf; // Changed khronos_float_t 974 typedef signed int GLfixed; // Changed khronos_int32_t 975 976 /* OpenGL ES core versions */ 977 //#define GL_ES_VERSION_2_0 1 978 979 /* ClearBufferMask */ 980 #define GL_DEPTH_BUFFER_BIT 0x00000100 981 #define GL_STENCIL_BUFFER_BIT 0x00000400 982 #define GL_COLOR_BUFFER_BIT 0x00004000 983 984 /* Boolean */ 985 #define GL_FALSE 0 986 #define GL_TRUE 1 987 988 /* BeginMode */ 989 #define GL_POINTS 0x0000 990 #define GL_LINES 0x0001 991 #define GL_LINE_LOOP 0x0002 992 #define GL_LINE_STRIP 0x0003 993 #define GL_TRIANGLES 0x0004 994 #define GL_TRIANGLE_STRIP 0x0005 995 #define GL_TRIANGLE_FAN 0x0006 996 997 /* AlphaFunction (not supported in ES20) */ 998 /* GL_NEVER */ 999 /* GL_LESS */ 1000 /* GL_EQUAL */ 1001 /* GL_LEQUAL */ 1002 /* GL_GREATER */ 1003 /* GL_NOTEQUAL */ 1004 /* GL_GEQUAL */ 1005 /* GL_ALWAYS */ 1006 1007 /* BlendingFactorDest */ 1008 #define GL_ZERO 0 1009 #define GL_ONE 1 1010 #define GL_SRC_COLOR 0x0300 1011 #define GL_ONE_MINUS_SRC_COLOR 0x0301 1012 #define GL_SRC_ALPHA 0x0302 1013 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 1014 #define GL_DST_ALPHA 0x0304 1015 #define GL_ONE_MINUS_DST_ALPHA 0x0305 1016 1017 /* BlendingFactorSrc */ 1018 /* GL_ZERO */ 1019 /* GL_ONE */ 1020 #define GL_DST_COLOR 0x0306 1021 #define GL_ONE_MINUS_DST_COLOR 0x0307 1022 #define GL_SRC_ALPHA_SATURATE 0x0308 1023 /* GL_SRC_ALPHA */ 1024 /* GL_ONE_MINUS_SRC_ALPHA */ 1025 /* GL_DST_ALPHA */ 1026 /* GL_ONE_MINUS_DST_ALPHA */ 1027 1028 /* BlendEquationSeparate */ 1029 #define GL_FUNC_ADD 0x8006 1030 #define GL_BLEND_EQUATION 0x8009 1031 #define GL_BLEND_EQUATION_RGB 0x8009 /* same as BLEND_EQUATION */ 1032 #define GL_BLEND_EQUATION_ALPHA 0x883D 1033 1034 /* BlendSubtract */ 1035 #define GL_FUNC_SUBTRACT 0x800A 1036 #define GL_FUNC_REVERSE_SUBTRACT 0x800B 1037 1038 /* Separate Blend Functions */ 1039 #define GL_BLEND_DST_RGB 0x80C8 1040 #define GL_BLEND_SRC_RGB 0x80C9 1041 #define GL_BLEND_DST_ALPHA 0x80CA 1042 #define GL_BLEND_SRC_ALPHA 0x80CB 1043 #define GL_CONSTANT_COLOR 0x8001 1044 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 1045 #define GL_CONSTANT_ALPHA 0x8003 1046 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 1047 #define GL_BLEND_COLOR 0x8005 1048 1049 /* Buffer Objects */ 1050 #define GL_ARRAY_BUFFER 0x8892 1051 #define GL_ELEMENT_ARRAY_BUFFER 0x8893 1052 #define GL_ARRAY_BUFFER_BINDING 0x8894 1053 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 1054 1055 #define GL_STREAM_DRAW 0x88E0 1056 #define GL_STATIC_DRAW 0x88E4 1057 #define GL_DYNAMIC_DRAW 0x88E8 1058 1059 #define GL_BUFFER_SIZE 0x8764 1060 #define GL_BUFFER_USAGE 0x8765 1061 1062 #define GL_CURRENT_VERTEX_ATTRIB 0x8626 1063 1064 /* CullFaceMode */ 1065 #define GL_FRONT 0x0404 1066 #define GL_BACK 0x0405 1067 #define GL_FRONT_AND_BACK 0x0408 1068 1069 /* DepthFunction */ 1070 /* GL_NEVER */ 1071 /* GL_LESS */ 1072 /* GL_EQUAL */ 1073 /* GL_LEQUAL */ 1074 /* GL_GREATER */ 1075 /* GL_NOTEQUAL */ 1076 /* GL_GEQUAL */ 1077 /* GL_ALWAYS */ 1078 1079 /* EnableCap */ 1080 #define GL_TEXTURE_2D 0x0DE1 1081 #define GL_CULL_FACE 0x0B44 1082 #define GL_BLEND 0x0BE2 1083 #define GL_DITHER 0x0BD0 1084 #define GL_STENCIL_TEST 0x0B90 1085 #define GL_DEPTH_TEST 0x0B71 1086 #define GL_SCISSOR_TEST 0x0C11 1087 #define GL_POLYGON_OFFSET_FILL 0x8037 1088 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E 1089 #define GL_SAMPLE_COVERAGE 0x80A0 1090 1091 /* ErrorCode */ 1092 #define GL_NO_ERROR 0 1093 #define GL_INVALID_ENUM 0x0500 1094 #define GL_INVALID_VALUE 0x0501 1095 #define GL_INVALID_OPERATION 0x0502 1096 #define GL_OUT_OF_MEMORY 0x0505 1097 1098 /* FrontFaceDirection */ 1099 #define GL_CW 0x0900 1100 #define GL_CCW 0x0901 1101 1102 /* GetPName */ 1103 #define GL_LINE_WIDTH 0x0B21 1104 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D 1105 #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E 1106 #define GL_CULL_FACE_MODE 0x0B45 1107 #define GL_FRONT_FACE 0x0B46 1108 #define GL_DEPTH_RANGE 0x0B70 1109 #define GL_DEPTH_WRITEMASK 0x0B72 1110 #define GL_DEPTH_CLEAR_VALUE 0x0B73 1111 #define GL_DEPTH_FUNC 0x0B74 1112 #define GL_STENCIL_CLEAR_VALUE 0x0B91 1113 #define GL_STENCIL_FUNC 0x0B92 1114 #define GL_STENCIL_FAIL 0x0B94 1115 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 1116 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 1117 #define GL_STENCIL_REF 0x0B97 1118 #define GL_STENCIL_VALUE_MASK 0x0B93 1119 #define GL_STENCIL_WRITEMASK 0x0B98 1120 #define GL_STENCIL_BACK_FUNC 0x8800 1121 #define GL_STENCIL_BACK_FAIL 0x8801 1122 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 1123 #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 1124 #define GL_STENCIL_BACK_REF 0x8CA3 1125 #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 1126 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5 1127 #define GL_VIEWPORT 0x0BA2 1128 #define GL_SCISSOR_BOX 0x0C10 1129 /* GL_SCISSOR_TEST */ 1130 #define GL_COLOR_CLEAR_VALUE 0x0C22 1131 #define GL_COLOR_WRITEMASK 0x0C23 1132 #define GL_UNPACK_ALIGNMENT 0x0CF5 1133 #define GL_PACK_ALIGNMENT 0x0D05 1134 #define GL_MAX_TEXTURE_SIZE 0x0D33 1135 #define GL_MAX_VIEWPORT_DIMS 0x0D3A 1136 #define GL_SUBPIXEL_BITS 0x0D50 1137 #define GL_RED_BITS 0x0D52 1138 #define GL_GREEN_BITS 0x0D53 1139 #define GL_BLUE_BITS 0x0D54 1140 #define GL_ALPHA_BITS 0x0D55 1141 #define GL_DEPTH_BITS 0x0D56 1142 #define GL_STENCIL_BITS 0x0D57 1143 #define GL_POLYGON_OFFSET_UNITS 0x2A00 1144 /* GL_POLYGON_OFFSET_FILL */ 1145 #define GL_POLYGON_OFFSET_FACTOR 0x8038 1146 #define GL_TEXTURE_BINDING_2D 0x8069 1147 #define GL_SAMPLE_BUFFERS 0x80A8 1148 #define GL_SAMPLES 0x80A9 1149 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA 1150 #define GL_SAMPLE_COVERAGE_INVERT 0x80AB 1151 1152 /* GetTextureParameter */ 1153 /* GL_TEXTURE_MAG_FILTER */ 1154 /* GL_TEXTURE_MIN_FILTER */ 1155 /* GL_TEXTURE_WRAP_S */ 1156 /* GL_TEXTURE_WRAP_T */ 1157 1158 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 1159 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 1160 1161 /* HintMode */ 1162 #define GL_DONT_CARE 0x1100 1163 #define GL_FASTEST 0x1101 1164 #define GL_NICEST 0x1102 1165 1166 /* HintTarget */ 1167 #define GL_GENERATE_MIPMAP_HINT 0x8192 1168 1169 /* DataType */ 1170 #define GL_BYTE 0x1400 1171 #define GL_UNSIGNED_BYTE 0x1401 1172 #define GL_SHORT 0x1402 1173 #define GL_UNSIGNED_SHORT 0x1403 1174 #define GL_INT 0x1404 1175 #define GL_UNSIGNED_INT 0x1405 1176 #define GL_FLOAT 0x1406 1177 #define GL_FIXED 0x140C 1178 1179 /* PixelFormat */ 1180 #define GL_DEPTH_COMPONENT 0x1902 1181 #define GL_ALPHA 0x1906 1182 #define GL_RGB 0x1907 1183 #define GL_RGBA 0x1908 1184 #define GL_LUMINANCE 0x1909 1185 #define GL_LUMINANCE_ALPHA 0x190A 1186 1187 /* PixelType */ 1188 /* GL_UNSIGNED_BYTE */ 1189 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 1190 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 1191 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 1192 1193 /* Shaders */ 1194 #define GL_FRAGMENT_SHADER 0x8B30 1195 #define GL_VERTEX_SHADER 0x8B31 1196 #define GL_MAX_VERTEX_ATTRIBS 0x8869 1197 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB 1198 #define GL_MAX_VARYING_VECTORS 0x8DFC 1199 #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D 1200 #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C 1201 #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 1202 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD 1203 #define GL_SHADER_TYPE 0x8B4F 1204 #define GL_DELETE_STATUS 0x8B80 1205 #define GL_LINK_STATUS 0x8B82 1206 #define GL_VALIDATE_STATUS 0x8B83 1207 #define GL_ATTACHED_SHADERS 0x8B85 1208 #define GL_ACTIVE_UNIFORMS 0x8B86 1209 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 1210 #define GL_ACTIVE_ATTRIBUTES 0x8B89 1211 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A 1212 #define GL_SHADING_LANGUAGE_VERSION 0x8B8C 1213 #define GL_CURRENT_PROGRAM 0x8B8D 1214 1215 /* StencilFunction */ 1216 #define GL_NEVER 0x0200 1217 #define GL_LESS 0x0201 1218 #define GL_EQUAL 0x0202 1219 #define GL_LEQUAL 0x0203 1220 #define GL_GREATER 0x0204 1221 #define GL_NOTEQUAL 0x0205 1222 #define GL_GEQUAL 0x0206 1223 #define GL_ALWAYS 0x0207 1224 1225 /* StencilOp */ 1226 /* GL_ZERO */ 1227 #define GL_KEEP 0x1E00 1228 #define GL_REPLACE 0x1E01 1229 #define GL_INCR 0x1E02 1230 #define GL_DECR 0x1E03 1231 #define GL_INVERT 0x150A 1232 #define GL_INCR_WRAP 0x8507 1233 #define GL_DECR_WRAP 0x8508 1234 1235 /* StringName */ 1236 #define GL_VENDOR 0x1F00 1237 #define GL_RENDERER 0x1F01 1238 #define GL_VERSION 0x1F02 1239 #define GL_EXTENSIONS 0x1F03 1240 1241 /* TextureMagFilter */ 1242 #define GL_NEAREST 0x2600 1243 #define GL_LINEAR 0x2601 1244 1245 /* TextureMinFilter */ 1246 /* GL_NEAREST */ 1247 /* GL_LINEAR */ 1248 #define GL_NEAREST_MIPMAP_NEAREST 0x2700 1249 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 1250 #define GL_NEAREST_MIPMAP_LINEAR 0x2702 1251 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 1252 1253 /* TextureParameterName */ 1254 #define GL_TEXTURE_MAG_FILTER 0x2800 1255 #define GL_TEXTURE_MIN_FILTER 0x2801 1256 #define GL_TEXTURE_WRAP_S 0x2802 1257 #define GL_TEXTURE_WRAP_T 0x2803 1258 1259 /* TextureTarget */ 1260 /* GL_TEXTURE_2D */ 1261 #define GL_TEXTURE 0x1702 1262 1263 #define GL_TEXTURE_CUBE_MAP 0x8513 1264 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 1265 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 1266 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 1267 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 1268 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 1269 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 1270 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A 1271 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C 1272 1273 /* TextureUnit */ 1274 #define GL_TEXTURE0 0x84C0 1275 #define GL_TEXTURE1 0x84C1 1276 #define GL_TEXTURE2 0x84C2 1277 #define GL_TEXTURE3 0x84C3 1278 #define GL_TEXTURE4 0x84C4 1279 #define GL_TEXTURE5 0x84C5 1280 #define GL_TEXTURE6 0x84C6 1281 #define GL_TEXTURE7 0x84C7 1282 #define GL_TEXTURE8 0x84C8 1283 #define GL_TEXTURE9 0x84C9 1284 #define GL_TEXTURE10 0x84CA 1285 #define GL_TEXTURE11 0x84CB 1286 #define GL_TEXTURE12 0x84CC 1287 #define GL_TEXTURE13 0x84CD 1288 #define GL_TEXTURE14 0x84CE 1289 #define GL_TEXTURE15 0x84CF 1290 #define GL_TEXTURE16 0x84D0 1291 #define GL_TEXTURE17 0x84D1 1292 #define GL_TEXTURE18 0x84D2 1293 #define GL_TEXTURE19 0x84D3 1294 #define GL_TEXTURE20 0x84D4 1295 #define GL_TEXTURE21 0x84D5 1296 #define GL_TEXTURE22 0x84D6 1297 #define GL_TEXTURE23 0x84D7 1298 #define GL_TEXTURE24 0x84D8 1299 #define GL_TEXTURE25 0x84D9 1300 #define GL_TEXTURE26 0x84DA 1301 #define GL_TEXTURE27 0x84DB 1302 #define GL_TEXTURE28 0x84DC 1303 #define GL_TEXTURE29 0x84DD 1304 #define GL_TEXTURE30 0x84DE 1305 #define GL_TEXTURE31 0x84DF 1306 #define GL_ACTIVE_TEXTURE 0x84E0 1307 1308 /* TextureWrapMode */ 1309 #define GL_REPEAT 0x2901 1310 #define GL_CLAMP_TO_EDGE 0x812F 1311 #define GL_MIRRORED_REPEAT 0x8370 1312 1313 /* Uniform Types */ 1314 #define GL_FLOAT_VEC2 0x8B50 1315 #define GL_FLOAT_VEC3 0x8B51 1316 #define GL_FLOAT_VEC4 0x8B52 1317 #define GL_INT_VEC2 0x8B53 1318 #define GL_INT_VEC3 0x8B54 1319 #define GL_INT_VEC4 0x8B55 1320 #define GL_BOOL 0x8B56 1321 #define GL_BOOL_VEC2 0x8B57 1322 #define GL_BOOL_VEC3 0x8B58 1323 #define GL_BOOL_VEC4 0x8B59 1324 #define GL_FLOAT_MAT2 0x8B5A 1325 #define GL_FLOAT_MAT3 0x8B5B 1326 #define GL_FLOAT_MAT4 0x8B5C 1327 #define GL_SAMPLER_2D 0x8B5E 1328 #define GL_SAMPLER_CUBE 0x8B60 1329 1330 /* Vertex Arrays */ 1331 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 1332 #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 1333 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 1334 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 1335 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A 1336 #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 1337 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F 1338 1339 /* Read Format */ 1340 #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A 1341 #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B 1342 1343 /* Shader Source */ 1344 #define GL_COMPILE_STATUS 0x8B81 1345 #define GL_INFO_LOG_LENGTH 0x8B84 1346 #define GL_SHADER_SOURCE_LENGTH 0x8B88 1347 #define GL_SHADER_COMPILER 0x8DFA 1348 1349 /* Shader Binary */ 1350 #define GL_SHADER_BINARY_FORMATS 0x8DF8 1351 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 1352 1353 /* Shader Precision-Specified Types */ 1354 #define GL_LOW_FLOAT 0x8DF0 1355 #define GL_MEDIUM_FLOAT 0x8DF1 1356 #define GL_HIGH_FLOAT 0x8DF2 1357 #define GL_LOW_INT 0x8DF3 1358 #define GL_MEDIUM_INT 0x8DF4 1359 #define GL_HIGH_INT 0x8DF5 1360 1361 /* Framebuffer Object. */ 1362 #define GL_FRAMEBUFFER 0x8D40 1363 #define GL_RENDERBUFFER 0x8D41 1364 1365 #define GL_RGBA4 0x8056 1366 #define GL_RGB5_A1 0x8057 1367 #define GL_RGB565 0x8D62 1368 #define GL_DEPTH_COMPONENT16 0x81A5 1369 #define GL_STENCIL_INDEX 0x1901 1370 #define GL_STENCIL_INDEX8 0x8D48 1371 1372 #define GL_RENDERBUFFER_WIDTH 0x8D42 1373 #define GL_RENDERBUFFER_HEIGHT 0x8D43 1374 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 1375 #define GL_RENDERBUFFER_RED_SIZE 0x8D50 1376 #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 1377 #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 1378 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 1379 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 1380 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 1381 1382 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 1383 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 1384 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 1385 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 1386 1387 #define GL_COLOR_ATTACHMENT0 0x8CE0 1388 #define GL_DEPTH_ATTACHMENT 0x8D00 1389 #define GL_STENCIL_ATTACHMENT 0x8D20 1390 1391 #define GL_NONE 0 1392 1393 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5 1394 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 1395 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 1396 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 1397 #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD 1398 1399 #define GL_FRAMEBUFFER_BINDING 0x8CA6 1400 #define GL_RENDERBUFFER_BINDING 0x8CA7 1401 #define GL_MAX_RENDERBUFFER_SIZE 0x84E8 1402 1403 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 1404 1405 #else 1406 # ifndef EVAS_GL_NO_GL_H_CHECK 1407 # error "You may only include either Evas_GL.h OR use your native OpenGL's headers. If you use Evas to do GL, then you cannot use the native gl headers." 1408 # endif 1409 #endif 1410 1411 #ifndef __gl2ext_h_ 1412 #define __gl2ext_h_ 1 1413 1414 #ifndef GL_KHR_blend_equation_advanced 1415 #define GL_KHR_blend_equation_advanced 1 1416 #define GL_MULTIPLY_KHR 0x9294 1417 #define GL_SCREEN_KHR 0x9295 1418 #define GL_OVERLAY_KHR 0x9296 1419 #define GL_DARKEN_KHR 0x9297 1420 #define GL_LIGHTEN_KHR 0x9298 1421 #define GL_COLORDODGE_KHR 0x9299 1422 #define GL_COLORBURN_KHR 0x929A 1423 #define GL_HARDLIGHT_KHR 0x929B 1424 #define GL_SOFTLIGHT_KHR 0x929C 1425 #define GL_DIFFERENCE_KHR 0x929E 1426 #define GL_EXCLUSION_KHR 0x92A0 1427 #define GL_HSL_HUE_KHR 0x92AD 1428 #define GL_HSL_SATURATION_KHR 0x92AE 1429 #define GL_HSL_COLOR_KHR 0x92AF 1430 #define GL_HSL_LUMINOSITY_KHR 0x92B0 1431 #endif /* GL_KHR_blend_equation_advanced */ 1432 1433 #ifndef GL_KHR_blend_equation_advanced_coherent 1434 #define GL_KHR_blend_equation_advanced_coherent 1 1435 #define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 1436 #endif /* GL_KHR_blend_equation_advanced_coherent */ 1437 1438 #ifndef GL_KHR_context_flush_control 1439 #define GL_KHR_context_flush_control 1 1440 #define GL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x82FB 1441 #define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x82FC 1442 #endif /* GL_KHR_context_flush_control */ 1443 1444 #ifndef GL_KHR_debug 1445 #define GL_KHR_debug 1 1446 #define GL_SAMPLER 0x82E6 1447 #define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242 1448 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243 1449 #define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244 1450 #define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245 1451 #define GL_DEBUG_SOURCE_API_KHR 0x8246 1452 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247 1453 #define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248 1454 #define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249 1455 #define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A 1456 #define GL_DEBUG_SOURCE_OTHER_KHR 0x824B 1457 #define GL_DEBUG_TYPE_ERROR_KHR 0x824C 1458 #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D 1459 #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E 1460 #define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F 1461 #define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250 1462 #define GL_DEBUG_TYPE_OTHER_KHR 0x8251 1463 #define GL_DEBUG_TYPE_MARKER_KHR 0x8268 1464 #define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269 1465 #define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A 1466 #define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B 1467 #define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C 1468 #define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D 1469 #define GL_BUFFER_KHR 0x82E0 1470 #define GL_SHADER_KHR 0x82E1 1471 #define GL_PROGRAM_KHR 0x82E2 1472 #define GL_VERTEX_ARRAY_KHR 0x8074 1473 #define GL_QUERY_KHR 0x82E3 1474 #define GL_PROGRAM_PIPELINE_KHR 0x82E4 1475 #define GL_SAMPLER_KHR 0x82E6 1476 #define GL_MAX_LABEL_LENGTH_KHR 0x82E8 1477 #define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143 1478 #define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144 1479 #define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145 1480 #define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146 1481 #define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147 1482 #define GL_DEBUG_SEVERITY_LOW_KHR 0x9148 1483 #define GL_DEBUG_OUTPUT_KHR 0x92E0 1484 #define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002 1485 #define GL_STACK_OVERFLOW_KHR 0x0503 1486 #define GL_STACK_UNDERFLOW_KHR 0x0504 1487 #endif /* GL_KHR_debug */ 1488 1489 #ifndef GL_KHR_texture_compression_astc_hdr 1490 #define GL_KHR_texture_compression_astc_hdr 1 1491 #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 1492 #define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 1493 #define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 1494 #define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 1495 #define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 1496 #define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 1497 #define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 1498 #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 1499 #define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 1500 #define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 1501 #define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA 1502 #define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB 1503 #define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC 1504 #define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD 1505 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 1506 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 1507 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 1508 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 1509 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 1510 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 1511 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 1512 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 1513 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 1514 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 1515 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA 1516 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB 1517 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC 1518 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD 1519 #endif /* GL_KHR_texture_compression_astc_hdr */ 1520 1521 #ifndef GL_KHR_texture_compression_astc_ldr 1522 #define GL_KHR_texture_compression_astc_ldr 1 1523 #endif /* GL_KHR_texture_compression_astc_ldr */ 1524 1525 #ifndef GL_KHR_texture_compression_astc_sliced_3d 1526 #define GL_KHR_texture_compression_astc_sliced_3d 1 1527 #endif /* GL_KHR_texture_compression_astc_sliced_3d */ 1528 1529 #ifndef GL_OES_EGL_image 1530 #define GL_OES_EGL_image 1 1531 #endif /* GL_OES_EGL_image */ 1532 1533 #ifndef GL_OES_EGL_image_external 1534 #define GL_OES_EGL_image_external 1 1535 #define GL_TEXTURE_EXTERNAL_OES 0x8D65 1536 #define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 1537 #define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 1538 #define GL_SAMPLER_EXTERNAL_OES 0x8D66 1539 #endif /* GL_OES_EGL_image_external */ 1540 1541 #ifndef GL_OES_EGL_image_external_essl3 1542 #define GL_OES_EGL_image_external_essl3 1 1543 #endif /* GL_OES_EGL_image_external_essl3 */ 1544 1545 #ifndef GL_OES_compressed_ETC1_RGB8_sub_texture 1546 #define GL_OES_compressed_ETC1_RGB8_sub_texture 1 1547 #endif /* GL_OES_compressed_ETC1_RGB8_sub_texture */ 1548 1549 #ifndef GL_OES_compressed_ETC1_RGB8_texture 1550 #define GL_OES_compressed_ETC1_RGB8_texture 1 1551 #define GL_ETC1_RGB8_OES 0x8D64 1552 #endif /* GL_OES_compressed_ETC1_RGB8_texture */ 1553 1554 #ifndef GL_OES_compressed_paletted_texture 1555 #define GL_OES_compressed_paletted_texture 1 1556 #define GL_PALETTE4_RGB8_OES 0x8B90 1557 #define GL_PALETTE4_RGBA8_OES 0x8B91 1558 #define GL_PALETTE4_R5_G6_B5_OES 0x8B92 1559 #define GL_PALETTE4_RGBA4_OES 0x8B93 1560 #define GL_PALETTE4_RGB5_A1_OES 0x8B94 1561 #define GL_PALETTE8_RGB8_OES 0x8B95 1562 #define GL_PALETTE8_RGBA8_OES 0x8B96 1563 #define GL_PALETTE8_R5_G6_B5_OES 0x8B97 1564 #define GL_PALETTE8_RGBA4_OES 0x8B98 1565 #define GL_PALETTE8_RGB5_A1_OES 0x8B99 1566 #endif /* GL_OES_compressed_paletted_texture */ 1567 1568 #ifndef GL_OES_copy_image 1569 #define GL_OES_copy_image 1 1570 #endif /* GL_OES_copy_image */ 1571 1572 #ifndef GL_OES_depth24 1573 #define GL_OES_depth24 1 1574 #define GL_DEPTH_COMPONENT24_OES 0x81A6 1575 #endif /* GL_OES_depth24 */ 1576 1577 #ifndef GL_OES_depth32 1578 #define GL_OES_depth32 1 1579 #define GL_DEPTH_COMPONENT32_OES 0x81A7 1580 #endif /* GL_OES_depth32 */ 1581 1582 #ifndef GL_OES_depth_texture 1583 #define GL_OES_depth_texture 1 1584 #endif /* GL_OES_depth_texture */ 1585 1586 #ifndef GL_OES_draw_buffers_indexed 1587 #define GL_OES_draw_buffers_indexed 1 1588 #define GL_MIN 0x8007 1589 #define GL_MAX 0x8008 1590 #endif /* GL_OES_draw_buffers_indexed */ 1591 1592 #ifndef GL_OES_draw_elements_base_vertex 1593 #define GL_OES_draw_elements_base_vertex 1 1594 #endif /* GL_OES_draw_elements_base_vertex */ 1595 1596 #ifndef GL_OES_element_index_uint 1597 #define GL_OES_element_index_uint 1 1598 #endif /* GL_OES_element_index_uint */ 1599 1600 #ifndef GL_OES_fbo_render_mipmap 1601 #define GL_OES_fbo_render_mipmap 1 1602 #endif /* GL_OES_fbo_render_mipmap */ 1603 1604 #ifndef GL_OES_fragment_precision_high 1605 #define GL_OES_fragment_precision_high 1 1606 #endif /* GL_OES_fragment_precision_high */ 1607 1608 #ifndef GL_OES_geometry_point_size 1609 #define GL_OES_geometry_point_size 1 1610 #endif /* GL_OES_geometry_point_size */ 1611 1612 #ifndef GL_OES_geometry_shader 1613 #define GL_OES_geometry_shader 1 1614 #define GL_GEOMETRY_SHADER_OES 0x8DD9 1615 #define GL_GEOMETRY_SHADER_BIT_OES 0x00000004 1616 #define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916 1617 #define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917 1618 #define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918 1619 #define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F 1620 #define GL_LAYER_PROVOKING_VERTEX_OES 0x825E 1621 #define GL_LINES_ADJACENCY_OES 0x000A 1622 #define GL_LINE_STRIP_ADJACENCY_OES 0x000B 1623 #define GL_TRIANGLES_ADJACENCY_OES 0x000C 1624 #define GL_TRIANGLE_STRIP_ADJACENCY_OES 0x000D 1625 #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF 1626 #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C 1627 #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32 1628 #define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123 1629 #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124 1630 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0 1631 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1 1632 #define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A 1633 #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29 1634 #define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF 1635 #define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5 1636 #define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD 1637 #define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7 1638 #define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D 1639 #define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E 1640 #define GL_UNDEFINED_VERTEX_OES 0x8260 1641 #define GL_PRIMITIVES_GENERATED_OES 0x8C87 1642 #define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312 1643 #define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317 1644 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8 1645 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7 1646 #define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309 1647 #endif /* GL_OES_geometry_shader */ 1648 1649 #ifndef GL_OES_get_program_binary 1650 #define GL_OES_get_program_binary 1 1651 #define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 1652 #define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE 1653 #define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF 1654 #endif /* GL_OES_get_program_binary */ 1655 1656 #ifndef GL_OES_gpu_shader5 1657 #define GL_OES_gpu_shader5 1 1658 #endif /* GL_OES_gpu_shader5 */ 1659 1660 #ifndef GL_OES_mapbuffer 1661 #define GL_OES_mapbuffer 1 1662 #define GL_WRITE_ONLY_OES 0x88B9 1663 #define GL_BUFFER_ACCESS_OES 0x88BB 1664 #define GL_BUFFER_MAPPED_OES 0x88BC 1665 #define GL_BUFFER_MAP_POINTER_OES 0x88BD 1666 #endif /* GL_OES_mapbuffer */ 1667 1668 #ifndef GL_OES_packed_depth_stencil 1669 #define GL_OES_packed_depth_stencil 1 1670 #define GL_DEPTH_STENCIL_OES 0x84F9 1671 #define GL_UNSIGNED_INT_24_8_OES 0x84FA 1672 #define GL_DEPTH24_STENCIL8_OES 0x88F0 1673 #endif /* GL_OES_packed_depth_stencil */ 1674 1675 #ifndef GL_OES_primitive_bounding_box 1676 #define GL_OES_primitive_bounding_box 1 1677 #define GL_PRIMITIVE_BOUNDING_BOX_OES 0x92BE 1678 #endif /* GL_OES_primitive_bounding_box */ 1679 1680 #ifndef GL_OES_required_internalformat 1681 #define GL_OES_required_internalformat 1 1682 #define GL_ALPHA8_OES 0x803C 1683 #define GL_DEPTH_COMPONENT16_OES 0x81A5 1684 #define GL_LUMINANCE4_ALPHA4_OES 0x8043 1685 #define GL_LUMINANCE8_ALPHA8_OES 0x8045 1686 #define GL_LUMINANCE8_OES 0x8040 1687 #define GL_RGBA4_OES 0x8056 1688 #define GL_RGB5_A1_OES 0x8057 1689 #define GL_RGB565_OES 0x8D62 1690 #define GL_RGB8_OES 0x8051 1691 #define GL_RGBA8_OES 0x8058 1692 #define GL_RGB10_EXT 0x8052 1693 #define GL_RGB10_A2_EXT 0x8059 1694 #endif /* GL_OES_required_internalformat */ 1695 1696 #ifndef GL_OES_rgb8_rgba8 1697 #define GL_OES_rgb8_rgba8 1 1698 #endif /* GL_OES_rgb8_rgba8 */ 1699 1700 #ifndef GL_OES_sample_shading 1701 #define GL_OES_sample_shading 1 1702 #define GL_SAMPLE_SHADING_OES 0x8C36 1703 #define GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37 1704 #endif /* GL_OES_sample_shading */ 1705 1706 #ifndef GL_OES_sample_variables 1707 #define GL_OES_sample_variables 1 1708 #endif /* GL_OES_sample_variables */ 1709 1710 #ifndef GL_OES_shader_image_atomic 1711 #define GL_OES_shader_image_atomic 1 1712 #endif /* GL_OES_shader_image_atomic */ 1713 1714 #ifndef GL_OES_shader_io_blocks 1715 #define GL_OES_shader_io_blocks 1 1716 #endif /* GL_OES_shader_io_blocks */ 1717 1718 #ifndef GL_OES_shader_multisample_interpolation 1719 #define GL_OES_shader_multisample_interpolation 1 1720 #define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B 1721 #define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C 1722 #define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D 1723 #endif /* GL_OES_shader_multisample_interpolation */ 1724 1725 #ifndef GL_OES_standard_derivatives 1726 #define GL_OES_standard_derivatives 1 1727 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B 1728 #endif /* GL_OES_standard_derivatives */ 1729 1730 #ifndef GL_OES_stencil1 1731 #define GL_OES_stencil1 1 1732 #define GL_STENCIL_INDEX1_OES 0x8D46 1733 #endif /* GL_OES_stencil1 */ 1734 1735 #ifndef GL_OES_stencil4 1736 #define GL_OES_stencil4 1 1737 #define GL_STENCIL_INDEX4_OES 0x8D47 1738 #endif /* GL_OES_stencil4 */ 1739 1740 #ifndef GL_OES_surfaceless_context 1741 #define GL_OES_surfaceless_context 1 1742 #define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 1743 #endif /* GL_OES_surfaceless_context */ 1744 1745 #ifndef GL_OES_tessellation_point_size 1746 #define GL_OES_tessellation_point_size 1 1747 #endif /* GL_OES_tessellation_point_size */ 1748 1749 #ifndef GL_OES_tessellation_shader 1750 #define GL_OES_tessellation_shader 1 1751 #define GL_PATCHES_OES 0x000E 1752 #define GL_PATCH_VERTICES_OES 0x8E72 1753 #define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75 1754 #define GL_TESS_GEN_MODE_OES 0x8E76 1755 #define GL_TESS_GEN_SPACING_OES 0x8E77 1756 #define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78 1757 #define GL_TESS_GEN_POINT_MODE_OES 0x8E79 1758 #define GL_ISOLINES_OES 0x8E7A 1759 #define GL_QUADS_OES 0x0007 1760 #define GL_FRACTIONAL_ODD_OES 0x8E7B 1761 #define GL_FRACTIONAL_EVEN_OES 0x8E7C 1762 #define GL_MAX_PATCH_VERTICES_OES 0x8E7D 1763 #define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E 1764 #define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F 1765 #define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80 1766 #define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81 1767 #define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82 1768 #define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83 1769 #define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84 1770 #define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85 1771 #define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86 1772 #define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89 1773 #define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A 1774 #define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C 1775 #define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D 1776 #define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E 1777 #define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F 1778 #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD 1779 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE 1780 #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3 1781 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4 1782 #define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB 1783 #define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC 1784 #define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8 1785 #define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9 1786 #define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221 1787 #define GL_IS_PER_PATCH_OES 0x92E7 1788 #define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307 1789 #define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308 1790 #define GL_TESS_CONTROL_SHADER_OES 0x8E88 1791 #define GL_TESS_EVALUATION_SHADER_OES 0x8E87 1792 #define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008 1793 #define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010 1794 #endif /* GL_OES_tessellation_shader */ 1795 1796 #ifndef GL_OES_texture_3D 1797 #define GL_OES_texture_3D 1 1798 #define GL_TEXTURE_WRAP_R_OES 0x8072 1799 #define GL_TEXTURE_3D_OES 0x806F 1800 #define GL_TEXTURE_BINDING_3D_OES 0x806A 1801 #define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 1802 #define GL_SAMPLER_3D_OES 0x8B5F 1803 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 1804 #endif /* GL_OES_texture_3D */ 1805 1806 #ifndef GL_OES_texture_border_clamp 1807 #define GL_OES_texture_border_clamp 1 1808 #define GL_TEXTURE_BORDER_COLOR_OES 0x1004 1809 #define GL_CLAMP_TO_BORDER_OES 0x812D 1810 #endif /* GL_OES_texture_border_clamp */ 1811 1812 #ifndef GL_OES_texture_buffer 1813 #define GL_OES_texture_buffer 1 1814 #define GL_TEXTURE_BUFFER_OES 0x8C2A 1815 #define GL_TEXTURE_BUFFER_BINDING_OES 0x8C2A 1816 #define GL_MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B 1817 #define GL_TEXTURE_BINDING_BUFFER_OES 0x8C2C 1818 #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES 0x8C2D 1819 #define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F 1820 #define GL_SAMPLER_BUFFER_OES 0x8DC2 1821 #define GL_INT_SAMPLER_BUFFER_OES 0x8DD0 1822 #define GL_UNSIGNED_INT_SAMPLER_BUFFER_OES 0x8DD8 1823 #define GL_IMAGE_BUFFER_OES 0x9051 1824 #define GL_INT_IMAGE_BUFFER_OES 0x905C 1825 #define GL_UNSIGNED_INT_IMAGE_BUFFER_OES 0x9067 1826 #define GL_TEXTURE_BUFFER_OFFSET_OES 0x919D 1827 #define GL_TEXTURE_BUFFER_SIZE_OES 0x919E 1828 #endif /* GL_OES_texture_buffer */ 1829 1830 #ifndef GL_OES_texture_compression_astc 1831 #define GL_OES_texture_compression_astc 1 1832 #define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 1833 #define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 1834 #define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 1835 #define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 1836 #define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 1837 #define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 1838 #define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 1839 #define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 1840 #define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 1841 #define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 1842 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 1843 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 1844 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 1845 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 1846 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 1847 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 1848 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 1849 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 1850 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 1851 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 1852 #endif /* GL_OES_texture_compression_astc */ 1853 1854 #ifndef GL_OES_texture_cube_map_array 1855 #define GL_OES_texture_cube_map_array 1 1856 #define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009 1857 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES 0x900A 1858 #define GL_SAMPLER_CUBE_MAP_ARRAY_OES 0x900C 1859 #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES 0x900D 1860 #define GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900E 1861 #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900F 1862 #define GL_IMAGE_CUBE_MAP_ARRAY_OES 0x9054 1863 #define GL_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x905F 1864 #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x906A 1865 #endif /* GL_OES_texture_cube_map_array */ 1866 1867 #ifndef GL_OES_texture_float 1868 #define GL_OES_texture_float 1 1869 #endif /* GL_OES_texture_float */ 1870 1871 #ifndef GL_OES_texture_float_linear 1872 #define GL_OES_texture_float_linear 1 1873 #endif /* GL_OES_texture_float_linear */ 1874 1875 #ifndef GL_OES_texture_half_float 1876 #define GL_OES_texture_half_float 1 1877 #define GL_HALF_FLOAT_OES 0x8D61 1878 #endif /* GL_OES_texture_half_float */ 1879 1880 #ifndef GL_OES_texture_half_float_linear 1881 #define GL_OES_texture_half_float_linear 1 1882 #endif /* GL_OES_texture_half_float_linear */ 1883 1884 #ifndef GL_OES_texture_npot 1885 #define GL_OES_texture_npot 1 1886 #endif /* GL_OES_texture_npot */ 1887 1888 #ifndef GL_OES_texture_stencil8 1889 #define GL_OES_texture_stencil8 1 1890 #define GL_STENCIL_INDEX_OES 0x1901 1891 #define GL_STENCIL_INDEX8_OES 0x8D48 1892 #endif /* GL_OES_texture_stencil8 */ 1893 1894 #ifndef GL_OES_texture_storage_multisample_2d_array 1895 #define GL_OES_texture_storage_multisample_2d_array 1 1896 #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102 1897 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105 1898 #define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B 1899 #define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C 1900 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D 1901 #endif /* GL_OES_texture_storage_multisample_2d_array */ 1902 1903 #ifndef GL_OES_texture_view 1904 #define GL_OES_texture_view 1 1905 #define GL_TEXTURE_VIEW_MIN_LEVEL_OES 0x82DB 1906 #define GL_TEXTURE_VIEW_NUM_LEVELS_OES 0x82DC 1907 #define GL_TEXTURE_VIEW_MIN_LAYER_OES 0x82DD 1908 #define GL_TEXTURE_VIEW_NUM_LAYERS_OES 0x82DE 1909 #define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF 1910 #endif /* GL_OES_texture_view */ 1911 1912 #ifndef GL_OES_vertex_array_object 1913 #define GL_OES_vertex_array_object 1 1914 #define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 1915 #endif /* GL_OES_vertex_array_object */ 1916 1917 #ifndef GL_OES_vertex_half_float 1918 #define GL_OES_vertex_half_float 1 1919 #endif /* GL_OES_vertex_half_float */ 1920 1921 #ifndef GL_OES_vertex_type_10_10_10_2 1922 #define GL_OES_vertex_type_10_10_10_2 1 1923 #define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 1924 #define GL_INT_10_10_10_2_OES 0x8DF7 1925 #endif /* GL_OES_vertex_type_10_10_10_2 */ 1926 1927 #ifndef GL_AMD_compressed_3DC_texture 1928 #define GL_AMD_compressed_3DC_texture 1 1929 #define GL_3DC_X_AMD 0x87F9 1930 #define GL_3DC_XY_AMD 0x87FA 1931 #endif /* GL_AMD_compressed_3DC_texture */ 1932 1933 #ifndef GL_AMD_compressed_ATC_texture 1934 #define GL_AMD_compressed_ATC_texture 1 1935 #define GL_ATC_RGB_AMD 0x8C92 1936 #define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 1937 #define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE 1938 #endif /* GL_AMD_compressed_ATC_texture */ 1939 1940 #ifndef GL_AMD_performance_monitor 1941 #define GL_AMD_performance_monitor 1 1942 #define GL_COUNTER_TYPE_AMD 0x8BC0 1943 #define GL_COUNTER_RANGE_AMD 0x8BC1 1944 #define GL_UNSIGNED_INT64_AMD 0x8BC2 1945 #define GL_PERCENTAGE_AMD 0x8BC3 1946 #define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 1947 #define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 1948 #define GL_PERFMON_RESULT_AMD 0x8BC6 1949 #endif /* GL_AMD_performance_monitor */ 1950 1951 #ifndef GL_AMD_program_binary_Z400 1952 #define GL_AMD_program_binary_Z400 1 1953 #define GL_Z400_BINARY_AMD 0x8740 1954 #endif /* GL_AMD_program_binary_Z400 */ 1955 1956 #ifndef GL_ANDROID_extension_pack_es31a 1957 #define GL_ANDROID_extension_pack_es31a 1 1958 #endif /* GL_ANDROID_extension_pack_es31a */ 1959 1960 #ifndef GL_ANGLE_depth_texture 1961 #define GL_ANGLE_depth_texture 1 1962 #endif /* GL_ANGLE_depth_texture */ 1963 1964 #ifndef GL_ANGLE_framebuffer_blit 1965 #define GL_ANGLE_framebuffer_blit 1 1966 #define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 1967 #define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 1968 #define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 1969 #define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA 1970 #endif /* GL_ANGLE_framebuffer_blit */ 1971 1972 #ifndef GL_ANGLE_framebuffer_multisample 1973 #define GL_ANGLE_framebuffer_multisample 1 1974 #define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB 1975 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 1976 #define GL_MAX_SAMPLES_ANGLE 0x8D57 1977 #endif /* GL_ANGLE_framebuffer_multisample */ 1978 1979 #ifndef GL_ANGLE_instanced_arrays 1980 #define GL_ANGLE_instanced_arrays 1 1981 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE 1982 #endif /* GL_ANGLE_instanced_arrays */ 1983 1984 #ifndef GL_ANGLE_pack_reverse_row_order 1985 #define GL_ANGLE_pack_reverse_row_order 1 1986 #define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 1987 #endif /* GL_ANGLE_pack_reverse_row_order */ 1988 1989 #ifndef GL_ANGLE_program_binary 1990 #define GL_ANGLE_program_binary 1 1991 #define GL_PROGRAM_BINARY_ANGLE 0x93A6 1992 #endif /* GL_ANGLE_program_binary */ 1993 1994 #ifndef GL_ANGLE_texture_compression_dxt3 1995 #define GL_ANGLE_texture_compression_dxt3 1 1996 #define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 1997 #endif /* GL_ANGLE_texture_compression_dxt3 */ 1998 1999 #ifndef GL_ANGLE_texture_compression_dxt5 2000 #define GL_ANGLE_texture_compression_dxt5 1 2001 #define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 2002 #endif /* GL_ANGLE_texture_compression_dxt5 */ 2003 2004 #ifndef GL_ANGLE_texture_usage 2005 #define GL_ANGLE_texture_usage 1 2006 #define GL_TEXTURE_USAGE_ANGLE 0x93A2 2007 #define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 2008 #endif /* GL_ANGLE_texture_usage */ 2009 2010 #ifndef GL_ANGLE_translated_shader_source 2011 #define GL_ANGLE_translated_shader_source 1 2012 #define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 2013 #endif /* GL_ANGLE_translated_shader_source */ 2014 2015 #ifndef GL_APPLE_clip_distance 2016 #define GL_APPLE_clip_distance 1 2017 #define GL_MAX_CLIP_DISTANCES_APPLE 0x0D32 2018 #define GL_CLIP_DISTANCE0_APPLE 0x3000 2019 #define GL_CLIP_DISTANCE1_APPLE 0x3001 2020 #define GL_CLIP_DISTANCE2_APPLE 0x3002 2021 #define GL_CLIP_DISTANCE3_APPLE 0x3003 2022 #define GL_CLIP_DISTANCE4_APPLE 0x3004 2023 #define GL_CLIP_DISTANCE5_APPLE 0x3005 2024 #define GL_CLIP_DISTANCE6_APPLE 0x3006 2025 #define GL_CLIP_DISTANCE7_APPLE 0x3007 2026 #endif /* GL_APPLE_clip_distance */ 2027 2028 #ifndef GL_APPLE_color_buffer_packed_float 2029 #define GL_APPLE_color_buffer_packed_float 1 2030 #endif /* GL_APPLE_color_buffer_packed_float */ 2031 2032 #ifndef GL_APPLE_copy_texture_levels 2033 #define GL_APPLE_copy_texture_levels 1 2034 #endif /* GL_APPLE_copy_texture_levels */ 2035 2036 #ifndef GL_APPLE_framebuffer_multisample 2037 #define GL_APPLE_framebuffer_multisample 1 2038 #define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB 2039 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 2040 #define GL_MAX_SAMPLES_APPLE 0x8D57 2041 #define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 2042 #define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 2043 #define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 2044 #define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA 2045 #endif /* GL_APPLE_framebuffer_multisample */ 2046 2047 #ifndef GL_APPLE_rgb_422 2048 #define GL_APPLE_rgb_422 1 2049 #define GL_RGB_422_APPLE 0x8A1F 2050 #define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA 2051 #define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB 2052 #define GL_RGB_RAW_422_APPLE 0x8A51 2053 #endif /* GL_APPLE_rgb_422 */ 2054 2055 #ifndef GL_APPLE_sync 2056 #define GL_APPLE_sync 1 2057 #define GL_SYNC_OBJECT_APPLE 0x8A53 2058 #define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 2059 #define GL_OBJECT_TYPE_APPLE 0x9112 2060 #define GL_SYNC_CONDITION_APPLE 0x9113 2061 #define GL_SYNC_STATUS_APPLE 0x9114 2062 #define GL_SYNC_FLAGS_APPLE 0x9115 2063 #define GL_SYNC_FENCE_APPLE 0x9116 2064 #define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 2065 #define GL_UNSIGNALED_APPLE 0x9118 2066 #define GL_SIGNALED_APPLE 0x9119 2067 #define GL_ALREADY_SIGNALED_APPLE 0x911A 2068 #define GL_TIMEOUT_EXPIRED_APPLE 0x911B 2069 #define GL_CONDITION_SATISFIED_APPLE 0x911C 2070 #define GL_WAIT_FAILED_APPLE 0x911D 2071 #define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 2072 #define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull 2073 #endif /* GL_APPLE_sync */ 2074 2075 #ifndef GL_APPLE_texture_format_BGRA8888 2076 #define GL_APPLE_texture_format_BGRA8888 1 2077 #define GL_BGRA_EXT 0x80E1 2078 #define GL_BGRA8_EXT 0x93A1 2079 #endif /* GL_APPLE_texture_format_BGRA8888 */ 2080 2081 #ifndef GL_APPLE_texture_max_level 2082 #define GL_APPLE_texture_max_level 1 2083 #define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D 2084 #endif /* GL_APPLE_texture_max_level */ 2085 2086 #ifndef GL_APPLE_texture_packed_float 2087 #define GL_APPLE_texture_packed_float 1 2088 #define GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE 0x8C3B 2089 #define GL_UNSIGNED_INT_5_9_9_9_REV_APPLE 0x8C3E 2090 #define GL_R11F_G11F_B10F_APPLE 0x8C3A 2091 #define GL_RGB9_E5_APPLE 0x8C3D 2092 #endif /* GL_APPLE_texture_packed_float */ 2093 2094 #ifndef GL_ARM_mali_program_binary 2095 #define GL_ARM_mali_program_binary 1 2096 #define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 2097 #endif /* GL_ARM_mali_program_binary */ 2098 2099 #ifndef GL_ARM_mali_shader_binary 2100 #define GL_ARM_mali_shader_binary 1 2101 #define GL_MALI_SHADER_BINARY_ARM 0x8F60 2102 #endif /* GL_ARM_mali_shader_binary */ 2103 2104 #ifndef GL_ARM_rgba8 2105 #define GL_ARM_rgba8 1 2106 #endif /* GL_ARM_rgba8 */ 2107 2108 #ifndef GL_ARM_shader_framebuffer_fetch 2109 #define GL_ARM_shader_framebuffer_fetch 1 2110 #define GL_FETCH_PER_SAMPLE_ARM 0x8F65 2111 #define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66 2112 #endif /* GL_ARM_shader_framebuffer_fetch */ 2113 2114 #ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil 2115 #define GL_ARM_shader_framebuffer_fetch_depth_stencil 1 2116 #endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */ 2117 2118 #ifndef GL_DMP_program_binary 2119 #define GL_DMP_program_binary 1 2120 #define GL_SMAPHS30_PROGRAM_BINARY_DMP 0x9251 2121 #define GL_SMAPHS_PROGRAM_BINARY_DMP 0x9252 2122 #define GL_DMP_PROGRAM_BINARY_DMP 0x9253 2123 #endif /* GL_DMP_program_binary */ 2124 2125 #ifndef GL_DMP_shader_binary 2126 #define GL_DMP_shader_binary 1 2127 #define GL_SHADER_BINARY_DMP 0x9250 2128 #endif /* GL_DMP_shader_binary */ 2129 2130 #ifndef GL_EXT_YUV_target 2131 #define GL_EXT_YUV_target 1 2132 #define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7 2133 #endif /* GL_EXT_YUV_target */ 2134 2135 #ifndef GL_EXT_base_instance 2136 #define GL_EXT_base_instance 1 2137 #endif /* GL_EXT_base_instance */ 2138 2139 #ifndef GL_EXT_blend_func_extended 2140 #define GL_EXT_blend_func_extended 1 2141 #define GL_SRC1_COLOR_EXT 0x88F9 2142 #define GL_SRC1_ALPHA_EXT 0x8589 2143 #define GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA 2144 #define GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB 2145 #define GL_SRC_ALPHA_SATURATE_EXT 0x0308 2146 #define GL_LOCATION_INDEX_EXT 0x930F 2147 #define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC 2148 #endif /* GL_EXT_blend_func_extended */ 2149 2150 #ifndef GL_EXT_blend_minmax 2151 #define GL_EXT_blend_minmax 1 2152 #define GL_MIN_EXT 0x8007 2153 #define GL_MAX_EXT 0x8008 2154 #endif /* GL_EXT_blend_minmax */ 2155 2156 #ifndef GL_EXT_buffer_storage 2157 #define GL_EXT_buffer_storage 1 2158 #define GL_MAP_READ_BIT 0x0001 2159 #define GL_MAP_WRITE_BIT 0x0002 2160 #define GL_MAP_PERSISTENT_BIT_EXT 0x0040 2161 #define GL_MAP_COHERENT_BIT_EXT 0x0080 2162 #define GL_DYNAMIC_STORAGE_BIT_EXT 0x0100 2163 #define GL_CLIENT_STORAGE_BIT_EXT 0x0200 2164 #define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT 0x00004000 2165 #define GL_BUFFER_IMMUTABLE_STORAGE_EXT 0x821F 2166 #define GL_BUFFER_STORAGE_FLAGS_EXT 0x8220 2167 #endif /* GL_EXT_buffer_storage */ 2168 2169 #ifndef GL_EXT_color_buffer_float 2170 #define GL_EXT_color_buffer_float 1 2171 #endif /* GL_EXT_color_buffer_float */ 2172 2173 #ifndef GL_EXT_color_buffer_half_float 2174 #define GL_EXT_color_buffer_half_float 1 2175 #define GL_RGBA16F_EXT 0x881A 2176 #define GL_RGB16F_EXT 0x881B 2177 #define GL_RG16F_EXT 0x822F 2178 #define GL_R16F_EXT 0x822D 2179 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 2180 #define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 2181 #endif /* GL_EXT_color_buffer_half_float */ 2182 2183 #ifndef GL_EXT_copy_image 2184 #define GL_EXT_copy_image 1 2185 #endif /* GL_EXT_copy_image */ 2186 2187 #ifndef GL_EXT_debug_label 2188 #define GL_EXT_debug_label 1 2189 #define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F 2190 #define GL_PROGRAM_OBJECT_EXT 0x8B40 2191 #define GL_SHADER_OBJECT_EXT 0x8B48 2192 #define GL_BUFFER_OBJECT_EXT 0x9151 2193 #define GL_QUERY_OBJECT_EXT 0x9153 2194 #define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 2195 #define GL_TRANSFORM_FEEDBACK 0x8E22 2196 #endif /* GL_EXT_debug_label */ 2197 2198 #ifndef GL_EXT_debug_marker 2199 #define GL_EXT_debug_marker 1 2200 #endif /* GL_EXT_debug_marker */ 2201 2202 #ifndef GL_EXT_discard_framebuffer 2203 #define GL_EXT_discard_framebuffer 1 2204 #define GL_COLOR_EXT 0x1800 2205 #define GL_DEPTH_EXT 0x1801 2206 #define GL_STENCIL_EXT 0x1802 2207 #endif /* GL_EXT_discard_framebuffer */ 2208 2209 #ifndef GL_EXT_disjoint_timer_query 2210 #define GL_EXT_disjoint_timer_query 1 2211 #define GL_QUERY_COUNTER_BITS_EXT 0x8864 2212 #define GL_CURRENT_QUERY_EXT 0x8865 2213 #define GL_QUERY_RESULT_EXT 0x8866 2214 #define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 2215 #define GL_TIME_ELAPSED_EXT 0x88BF 2216 #define GL_TIMESTAMP_EXT 0x8E28 2217 #define GL_GPU_DISJOINT_EXT 0x8FBB 2218 #endif /* GL_EXT_disjoint_timer_query */ 2219 2220 #ifndef GL_EXT_draw_buffers 2221 #define GL_EXT_draw_buffers 1 2222 #define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF 2223 #define GL_MAX_DRAW_BUFFERS_EXT 0x8824 2224 #define GL_DRAW_BUFFER0_EXT 0x8825 2225 #define GL_DRAW_BUFFER1_EXT 0x8826 2226 #define GL_DRAW_BUFFER2_EXT 0x8827 2227 #define GL_DRAW_BUFFER3_EXT 0x8828 2228 #define GL_DRAW_BUFFER4_EXT 0x8829 2229 #define GL_DRAW_BUFFER5_EXT 0x882A 2230 #define GL_DRAW_BUFFER6_EXT 0x882B 2231 #define GL_DRAW_BUFFER7_EXT 0x882C 2232 #define GL_DRAW_BUFFER8_EXT 0x882D 2233 #define GL_DRAW_BUFFER9_EXT 0x882E 2234 #define GL_DRAW_BUFFER10_EXT 0x882F 2235 #define GL_DRAW_BUFFER11_EXT 0x8830 2236 #define GL_DRAW_BUFFER12_EXT 0x8831 2237 #define GL_DRAW_BUFFER13_EXT 0x8832 2238 #define GL_DRAW_BUFFER14_EXT 0x8833 2239 #define GL_DRAW_BUFFER15_EXT 0x8834 2240 #define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 2241 #define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 2242 #define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 2243 #define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 2244 #define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 2245 #define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 2246 #define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 2247 #define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 2248 #define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 2249 #define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 2250 #define GL_COLOR_ATTACHMENT10_EXT 0x8CEA 2251 #define GL_COLOR_ATTACHMENT11_EXT 0x8CEB 2252 #define GL_COLOR_ATTACHMENT12_EXT 0x8CEC 2253 #define GL_COLOR_ATTACHMENT13_EXT 0x8CED 2254 #define GL_COLOR_ATTACHMENT14_EXT 0x8CEE 2255 #define GL_COLOR_ATTACHMENT15_EXT 0x8CEF 2256 #endif /* GL_EXT_draw_buffers */ 2257 2258 #ifndef GL_EXT_draw_buffers_indexed 2259 #define GL_EXT_draw_buffers_indexed 1 2260 #endif /* GL_EXT_draw_buffers_indexed */ 2261 2262 #ifndef GL_EXT_draw_elements_base_vertex 2263 #define GL_EXT_draw_elements_base_vertex 1 2264 #endif /* GL_EXT_draw_elements_base_vertex */ 2265 2266 #ifndef GL_EXT_draw_instanced 2267 #define GL_EXT_draw_instanced 1 2268 #endif /* GL_EXT_draw_instanced */ 2269 2270 #ifndef GL_EXT_float_blend 2271 #define GL_EXT_float_blend 1 2272 #endif /* GL_EXT_float_blend */ 2273 2274 #ifndef GL_EXT_geometry_point_size 2275 #define GL_EXT_geometry_point_size 1 2276 #endif /* GL_EXT_geometry_point_size */ 2277 2278 #ifndef GL_EXT_geometry_shader 2279 #define GL_EXT_geometry_shader 1 2280 #define GL_GEOMETRY_SHADER_EXT 0x8DD9 2281 #define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004 2282 #define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916 2283 #define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917 2284 #define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918 2285 #define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F 2286 #define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E 2287 #define GL_LINES_ADJACENCY_EXT 0x000A 2288 #define GL_LINE_STRIP_ADJACENCY_EXT 0x000B 2289 #define GL_TRIANGLES_ADJACENCY_EXT 0x000C 2290 #define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D 2291 #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF 2292 #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C 2293 #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32 2294 #define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123 2295 #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124 2296 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 2297 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 2298 #define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A 2299 #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 2300 #define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF 2301 #define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5 2302 #define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD 2303 #define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7 2304 #define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D 2305 #define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E 2306 #define GL_UNDEFINED_VERTEX_EXT 0x8260 2307 #define GL_PRIMITIVES_GENERATED_EXT 0x8C87 2308 #define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312 2309 #define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317 2310 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 2311 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 2312 #define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309 2313 #endif /* GL_EXT_geometry_shader */ 2314 2315 #ifndef GL_EXT_gpu_shader5 2316 #define GL_EXT_gpu_shader5 1 2317 #endif /* GL_EXT_gpu_shader5 */ 2318 2319 #ifndef GL_EXT_instanced_arrays 2320 #define GL_EXT_instanced_arrays 1 2321 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE 2322 #endif /* GL_EXT_instanced_arrays */ 2323 2324 #ifndef GL_EXT_map_buffer_range 2325 #define GL_EXT_map_buffer_range 1 2326 #define GL_MAP_READ_BIT_EXT 0x0001 2327 #define GL_MAP_WRITE_BIT_EXT 0x0002 2328 #define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 2329 #define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 2330 #define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 2331 #define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 2332 #endif /* GL_EXT_map_buffer_range */ 2333 2334 #ifndef GL_EXT_multi_draw_arrays 2335 #define GL_EXT_multi_draw_arrays 1 2336 #endif /* GL_EXT_multi_draw_arrays */ 2337 2338 #ifndef GL_EXT_multi_draw_indirect 2339 #define GL_EXT_multi_draw_indirect 1 2340 #endif /* GL_EXT_multi_draw_indirect */ 2341 2342 #ifndef GL_EXT_multisampled_compatibility 2343 #define GL_EXT_multisampled_compatibility 1 2344 #define GL_MULTISAMPLE_EXT 0x809D 2345 #define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F 2346 #endif /* GL_EXT_multisampled_compatibility */ 2347 2348 #ifndef GL_EXT_multisampled_render_to_texture 2349 #define GL_EXT_multisampled_render_to_texture 1 2350 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C 2351 #define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB 2352 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 2353 #define GL_MAX_SAMPLES_EXT 0x8D57 2354 #endif /* GL_EXT_multisampled_render_to_texture */ 2355 2356 #ifndef GL_EXT_multiview_draw_buffers 2357 #define GL_EXT_multiview_draw_buffers 1 2358 #define GL_COLOR_ATTACHMENT_EXT 0x90F0 2359 #define GL_MULTIVIEW_EXT 0x90F1 2360 #define GL_DRAW_BUFFER_EXT 0x0C01 2361 #define GL_READ_BUFFER_EXT 0x0C02 2362 #define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 2363 #endif /* GL_EXT_multiview_draw_buffers */ 2364 2365 #ifndef GL_EXT_occlusion_query_boolean 2366 #define GL_EXT_occlusion_query_boolean 1 2367 #define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F 2368 #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A 2369 #endif /* GL_EXT_occlusion_query_boolean */ 2370 2371 #ifndef GL_EXT_polygon_offset_clamp 2372 #define GL_EXT_polygon_offset_clamp 1 2373 #define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B 2374 #endif /* GL_EXT_polygon_offset_clamp */ 2375 2376 #ifndef GL_EXT_post_depth_coverage 2377 #define GL_EXT_post_depth_coverage 1 2378 #endif /* GL_EXT_post_depth_coverage */ 2379 2380 #ifndef GL_EXT_primitive_bounding_box 2381 #define GL_EXT_primitive_bounding_box 1 2382 #define GL_PRIMITIVE_BOUNDING_BOX_EXT 0x92BE 2383 #endif /* GL_EXT_primitive_bounding_box */ 2384 2385 #ifndef GL_EXT_pvrtc_sRGB 2386 #define GL_EXT_pvrtc_sRGB 1 2387 #define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54 2388 #define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55 2389 #define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56 2390 #define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57 2391 #define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG 0x93F0 2392 #define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG 0x93F1 2393 #endif /* GL_EXT_pvrtc_sRGB */ 2394 2395 #ifndef GL_EXT_raster_multisample 2396 #define GL_EXT_raster_multisample 1 2397 #define GL_RASTER_MULTISAMPLE_EXT 0x9327 2398 #define GL_RASTER_SAMPLES_EXT 0x9328 2399 #define GL_MAX_RASTER_SAMPLES_EXT 0x9329 2400 #define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A 2401 #define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B 2402 #define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C 2403 #endif /* GL_EXT_raster_multisample */ 2404 2405 #ifndef GL_EXT_read_format_bgra 2406 #define GL_EXT_read_format_bgra 1 2407 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 2408 #define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 2409 #endif /* GL_EXT_read_format_bgra */ 2410 2411 #ifndef GL_EXT_render_snorm 2412 #define GL_EXT_render_snorm 1 2413 #define GL_R8_SNORM 0x8F94 2414 #define GL_RG8_SNORM 0x8F95 2415 #define GL_RGBA8_SNORM 0x8F97 2416 #define GL_R16_SNORM_EXT 0x8F98 2417 #define GL_RG16_SNORM_EXT 0x8F99 2418 #define GL_RGBA16_SNORM_EXT 0x8F9B 2419 #endif /* GL_EXT_render_snorm */ 2420 2421 #ifndef GL_EXT_robustness 2422 #define GL_EXT_robustness 1 2423 #define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 2424 #define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 2425 #define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 2426 #define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 2427 #define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 2428 #define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 2429 #define GL_NO_RESET_NOTIFICATION_EXT 0x8261 2430 #endif /* GL_EXT_robustness */ 2431 2432 #ifndef GL_EXT_sRGB 2433 #define GL_EXT_sRGB 1 2434 #define GL_SRGB_EXT 0x8C40 2435 #define GL_SRGB_ALPHA_EXT 0x8C42 2436 #define GL_SRGB8_ALPHA8_EXT 0x8C43 2437 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 2438 #endif /* GL_EXT_sRGB */ 2439 2440 #ifndef GL_EXT_sRGB_write_control 2441 #define GL_EXT_sRGB_write_control 1 2442 #define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 2443 #endif /* GL_EXT_sRGB_write_control */ 2444 2445 #ifndef GL_EXT_separate_shader_objects 2446 #define GL_EXT_separate_shader_objects 1 2447 #define GL_ACTIVE_PROGRAM_EXT 0x8259 2448 #define GL_VERTEX_SHADER_BIT_EXT 0x00000001 2449 #define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002 2450 #define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF 2451 #define GL_PROGRAM_SEPARABLE_EXT 0x8258 2452 #define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A 2453 #endif /* GL_EXT_separate_shader_objects */ 2454 2455 #ifndef GL_EXT_shader_framebuffer_fetch 2456 #define GL_EXT_shader_framebuffer_fetch 1 2457 #define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 2458 #endif /* GL_EXT_shader_framebuffer_fetch */ 2459 2460 #ifndef GL_EXT_shader_group_vote 2461 #define GL_EXT_shader_group_vote 1 2462 #endif /* GL_EXT_shader_group_vote */ 2463 2464 #ifndef GL_EXT_shader_implicit_conversions 2465 #define GL_EXT_shader_implicit_conversions 1 2466 #endif /* GL_EXT_shader_implicit_conversions */ 2467 2468 #ifndef GL_EXT_shader_integer_mix 2469 #define GL_EXT_shader_integer_mix 1 2470 #endif /* GL_EXT_shader_integer_mix */ 2471 2472 #ifndef GL_EXT_shader_io_blocks 2473 #define GL_EXT_shader_io_blocks 1 2474 #endif /* GL_EXT_shader_io_blocks */ 2475 2476 #ifndef GL_EXT_shader_pixel_local_storage 2477 #define GL_EXT_shader_pixel_local_storage 1 2478 #define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63 2479 #define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67 2480 #define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64 2481 #endif /* GL_EXT_shader_pixel_local_storage */ 2482 2483 #ifndef GL_EXT_shader_pixel_local_storage2 2484 #define GL_EXT_shader_pixel_local_storage2 1 2485 #define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT 0x9650 2486 #define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT 0x9651 2487 #define GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT 0x9652 2488 #endif /* GL_EXT_shader_pixel_local_storage2 */ 2489 2490 #ifndef GL_EXT_shader_texture_lod 2491 #define GL_EXT_shader_texture_lod 1 2492 #endif /* GL_EXT_shader_texture_lod */ 2493 2494 #ifndef GL_EXT_shadow_samplers 2495 #define GL_EXT_shadow_samplers 1 2496 #define GL_TEXTURE_COMPARE_MODE_EXT 0x884C 2497 #define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D 2498 #define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E 2499 #define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 2500 #endif /* GL_EXT_shadow_samplers */ 2501 2502 #ifndef GL_EXT_sparse_texture 2503 #define GL_EXT_sparse_texture 1 2504 #define GL_TEXTURE_SPARSE_EXT 0x91A6 2505 #define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT 0x91A7 2506 #define GL_NUM_SPARSE_LEVELS_EXT 0x91AA 2507 #define GL_NUM_VIRTUAL_PAGE_SIZES_EXT 0x91A8 2508 #define GL_VIRTUAL_PAGE_SIZE_X_EXT 0x9195 2509 #define GL_VIRTUAL_PAGE_SIZE_Y_EXT 0x9196 2510 #define GL_VIRTUAL_PAGE_SIZE_Z_EXT 0x9197 2511 #define GL_TEXTURE_2D_ARRAY 0x8C1A 2512 #define GL_TEXTURE_3D 0x806F 2513 #define GL_MAX_SPARSE_TEXTURE_SIZE_EXT 0x9198 2514 #define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT 0x9199 2515 #define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT 0x919A 2516 #define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT 0x91A9 2517 #endif /* GL_EXT_sparse_texture */ 2518 2519 #ifndef GL_EXT_tessellation_point_size 2520 #define GL_EXT_tessellation_point_size 1 2521 #endif /* GL_EXT_tessellation_point_size */ 2522 2523 #ifndef GL_EXT_tessellation_shader 2524 #define GL_EXT_tessellation_shader 1 2525 #define GL_PATCHES_EXT 0x000E 2526 #define GL_PATCH_VERTICES_EXT 0x8E72 2527 #define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75 2528 #define GL_TESS_GEN_MODE_EXT 0x8E76 2529 #define GL_TESS_GEN_SPACING_EXT 0x8E77 2530 #define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78 2531 #define GL_TESS_GEN_POINT_MODE_EXT 0x8E79 2532 #define GL_ISOLINES_EXT 0x8E7A 2533 #define GL_QUADS_EXT 0x0007 2534 #define GL_FRACTIONAL_ODD_EXT 0x8E7B 2535 #define GL_FRACTIONAL_EVEN_EXT 0x8E7C 2536 #define GL_MAX_PATCH_VERTICES_EXT 0x8E7D 2537 #define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E 2538 #define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F 2539 #define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80 2540 #define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81 2541 #define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82 2542 #define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83 2543 #define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84 2544 #define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85 2545 #define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86 2546 #define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89 2547 #define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A 2548 #define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C 2549 #define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D 2550 #define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E 2551 #define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F 2552 #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD 2553 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE 2554 #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3 2555 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4 2556 #define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB 2557 #define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC 2558 #define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8 2559 #define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9 2560 #define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 2561 #define GL_IS_PER_PATCH_EXT 0x92E7 2562 #define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307 2563 #define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308 2564 #define GL_TESS_CONTROL_SHADER_EXT 0x8E88 2565 #define GL_TESS_EVALUATION_SHADER_EXT 0x8E87 2566 #define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008 2567 #define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010 2568 #endif /* GL_EXT_tessellation_shader */ 2569 2570 #ifndef GL_EXT_texture_border_clamp 2571 #define GL_EXT_texture_border_clamp 1 2572 #define GL_TEXTURE_BORDER_COLOR_EXT 0x1004 2573 #define GL_CLAMP_TO_BORDER_EXT 0x812D 2574 #endif /* GL_EXT_texture_border_clamp */ 2575 2576 #ifndef GL_EXT_texture_buffer 2577 #define GL_EXT_texture_buffer 1 2578 #define GL_TEXTURE_BUFFER_EXT 0x8C2A 2579 #define GL_TEXTURE_BUFFER_BINDING_EXT 0x8C2A 2580 #define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B 2581 #define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C 2582 #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D 2583 #define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT 0x919F 2584 #define GL_SAMPLER_BUFFER_EXT 0x8DC2 2585 #define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 2586 #define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 2587 #define GL_IMAGE_BUFFER_EXT 0x9051 2588 #define GL_INT_IMAGE_BUFFER_EXT 0x905C 2589 #define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 2590 #define GL_TEXTURE_BUFFER_OFFSET_EXT 0x919D 2591 #define GL_TEXTURE_BUFFER_SIZE_EXT 0x919E 2592 #endif /* GL_EXT_texture_buffer */ 2593 2594 #ifndef GL_EXT_texture_compression_dxt1 2595 #define GL_EXT_texture_compression_dxt1 1 2596 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 2597 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 2598 #endif /* GL_EXT_texture_compression_dxt1 */ 2599 2600 #ifndef GL_EXT_texture_compression_s3tc 2601 #define GL_EXT_texture_compression_s3tc 1 2602 #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 2603 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 2604 #endif /* GL_EXT_texture_compression_s3tc */ 2605 2606 #ifndef GL_EXT_texture_cube_map_array 2607 #define GL_EXT_texture_cube_map_array 1 2608 #define GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009 2609 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT 0x900A 2610 #define GL_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900C 2611 #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT 0x900D 2612 #define GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900E 2613 #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900F 2614 #define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 2615 #define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F 2616 #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A 2617 #endif /* GL_EXT_texture_cube_map_array */ 2618 2619 #ifndef GL_EXT_texture_filter_anisotropic 2620 #define GL_EXT_texture_filter_anisotropic 1 2621 #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE 2622 #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF 2623 #endif /* GL_EXT_texture_filter_anisotropic */ 2624 2625 #ifndef GL_EXT_texture_filter_minmax 2626 #define GL_EXT_texture_filter_minmax 1 2627 #endif /* GL_EXT_texture_filter_minmax */ 2628 2629 #ifndef GL_EXT_texture_format_BGRA8888 2630 #define GL_EXT_texture_format_BGRA8888 1 2631 #endif /* GL_EXT_texture_format_BGRA8888 */ 2632 2633 #ifndef GL_EXT_texture_norm16 2634 #define GL_EXT_texture_norm16 1 2635 #define GL_R16_EXT 0x822A 2636 #define GL_RG16_EXT 0x822C 2637 #define GL_RGBA16_EXT 0x805B 2638 #define GL_RGB16_EXT 0x8054 2639 #define GL_RGB16_SNORM_EXT 0x8F9A 2640 #endif /* GL_EXT_texture_norm16 */ 2641 2642 #ifndef GL_EXT_texture_rg 2643 #define GL_EXT_texture_rg 1 2644 #define GL_RED_EXT 0x1903 2645 #define GL_RG_EXT 0x8227 2646 #define GL_R8_EXT 0x8229 2647 #define GL_RG8_EXT 0x822B 2648 #endif /* GL_EXT_texture_rg */ 2649 2650 #ifndef GL_EXT_texture_sRGB_R8 2651 #define GL_EXT_texture_sRGB_R8 1 2652 #define GL_SR8_EXT 0x8FBD 2653 #endif /* GL_EXT_texture_sRGB_R8 */ 2654 2655 #ifndef GL_EXT_texture_sRGB_RG8 2656 #define GL_EXT_texture_sRGB_RG8 1 2657 #define GL_SRG8_EXT 0x8FBE 2658 #endif /* GL_EXT_texture_sRGB_RG8 */ 2659 2660 #ifndef GL_EXT_texture_sRGB_decode 2661 #define GL_EXT_texture_sRGB_decode 1 2662 #define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 2663 #define GL_DECODE_EXT 0x8A49 2664 #define GL_SKIP_DECODE_EXT 0x8A4A 2665 #endif /* GL_EXT_texture_sRGB_decode */ 2666 2667 #ifndef GL_EXT_texture_storage 2668 #define GL_EXT_texture_storage 1 2669 #define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F 2670 #define GL_ALPHA8_EXT 0x803C 2671 #define GL_LUMINANCE8_EXT 0x8040 2672 #define GL_LUMINANCE8_ALPHA8_EXT 0x8045 2673 #define GL_RGBA32F_EXT 0x8814 2674 #define GL_RGB32F_EXT 0x8815 2675 #define GL_ALPHA32F_EXT 0x8816 2676 #define GL_LUMINANCE32F_EXT 0x8818 2677 #define GL_LUMINANCE_ALPHA32F_EXT 0x8819 2678 #define GL_ALPHA16F_EXT 0x881C 2679 #define GL_LUMINANCE16F_EXT 0x881E 2680 #define GL_LUMINANCE_ALPHA16F_EXT 0x881F 2681 #define GL_R32F_EXT 0x822E 2682 #define GL_RG32F_EXT 0x8230 2683 #endif /* GL_EXT_texture_storage */ 2684 2685 #ifndef GL_EXT_texture_type_2_10_10_10_REV 2686 #define GL_EXT_texture_type_2_10_10_10_REV 1 2687 #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 2688 #endif /* GL_EXT_texture_type_2_10_10_10_REV */ 2689 2690 #ifndef GL_EXT_texture_view 2691 #define GL_EXT_texture_view 1 2692 #define GL_TEXTURE_VIEW_MIN_LEVEL_EXT 0x82DB 2693 #define GL_TEXTURE_VIEW_NUM_LEVELS_EXT 0x82DC 2694 #define GL_TEXTURE_VIEW_MIN_LAYER_EXT 0x82DD 2695 #define GL_TEXTURE_VIEW_NUM_LAYERS_EXT 0x82DE 2696 #endif /* GL_EXT_texture_view */ 2697 2698 #ifndef GL_EXT_unpack_subimage 2699 #define GL_EXT_unpack_subimage 1 2700 #define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2 2701 #define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3 2702 #define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4 2703 #endif /* GL_EXT_unpack_subimage */ 2704 2705 #ifndef GL_FJ_shader_binary_GCCSO 2706 #define GL_FJ_shader_binary_GCCSO 1 2707 #define GL_GCCSO_SHADER_BINARY_FJ 0x9260 2708 #endif /* GL_FJ_shader_binary_GCCSO */ 2709 2710 #ifndef GL_IMG_framebuffer_downsample 2711 #define GL_IMG_framebuffer_downsample 1 2712 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG 0x913C 2713 #define GL_NUM_DOWNSAMPLE_SCALES_IMG 0x913D 2714 #define GL_DOWNSAMPLE_SCALES_IMG 0x913E 2715 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG 0x913F 2716 #endif /* GL_IMG_framebuffer_downsample */ 2717 2718 #ifndef GL_IMG_multisampled_render_to_texture 2719 #define GL_IMG_multisampled_render_to_texture 1 2720 #define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 2721 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 2722 #define GL_MAX_SAMPLES_IMG 0x9135 2723 #define GL_TEXTURE_SAMPLES_IMG 0x9136 2724 #endif /* GL_IMG_multisampled_render_to_texture */ 2725 2726 #ifndef GL_IMG_program_binary 2727 #define GL_IMG_program_binary 1 2728 #define GL_SGX_PROGRAM_BINARY_IMG 0x9130 2729 #endif /* GL_IMG_program_binary */ 2730 2731 #ifndef GL_IMG_read_format 2732 #define GL_IMG_read_format 1 2733 #define GL_BGRA_IMG 0x80E1 2734 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 2735 #endif /* GL_IMG_read_format */ 2736 2737 #ifndef GL_IMG_shader_binary 2738 #define GL_IMG_shader_binary 1 2739 #define GL_SGX_BINARY_IMG 0x8C0A 2740 #endif /* GL_IMG_shader_binary */ 2741 2742 #ifndef GL_IMG_texture_compression_pvrtc 2743 #define GL_IMG_texture_compression_pvrtc 1 2744 #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 2745 #define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 2746 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 2747 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 2748 #endif /* GL_IMG_texture_compression_pvrtc */ 2749 2750 #ifndef GL_IMG_texture_compression_pvrtc2 2751 #define GL_IMG_texture_compression_pvrtc2 1 2752 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137 2753 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138 2754 #endif /* GL_IMG_texture_compression_pvrtc2 */ 2755 2756 #ifndef GL_IMG_texture_filter_cubic 2757 #define GL_IMG_texture_filter_cubic 1 2758 #define GL_CUBIC_IMG 0x9139 2759 #define GL_CUBIC_MIPMAP_NEAREST_IMG 0x913A 2760 #define GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B 2761 #endif /* GL_IMG_texture_filter_cubic */ 2762 2763 #ifndef GL_INTEL_framebuffer_CMAA 2764 #define GL_INTEL_framebuffer_CMAA 1 2765 #endif /* GL_INTEL_framebuffer_CMAA */ 2766 2767 #ifndef GL_INTEL_performance_query 2768 #define GL_INTEL_performance_query 1 2769 #define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000 2770 #define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001 2771 #define GL_PERFQUERY_WAIT_INTEL 0x83FB 2772 #define GL_PERFQUERY_FLUSH_INTEL 0x83FA 2773 #define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 2774 #define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 2775 #define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 2776 #define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 2777 #define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 2778 #define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 2779 #define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 2780 #define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 2781 #define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 2782 #define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA 2783 #define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB 2784 #define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC 2785 #define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD 2786 #define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE 2787 #define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF 2788 #define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 2789 #endif /* GL_INTEL_performance_query */ 2790 2791 #ifndef GL_NV_bindless_texture 2792 #define GL_NV_bindless_texture 1 2793 #endif /* GL_NV_bindless_texture */ 2794 2795 #ifndef GL_NV_blend_equation_advanced 2796 #define GL_NV_blend_equation_advanced 1 2797 #define GL_BLEND_OVERLAP_NV 0x9281 2798 #define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 2799 #define GL_BLUE_NV 0x1905 2800 #define GL_COLORBURN_NV 0x929A 2801 #define GL_COLORDODGE_NV 0x9299 2802 #define GL_CONJOINT_NV 0x9284 2803 #define GL_CONTRAST_NV 0x92A1 2804 #define GL_DARKEN_NV 0x9297 2805 #define GL_DIFFERENCE_NV 0x929E 2806 #define GL_DISJOINT_NV 0x9283 2807 #define GL_DST_ATOP_NV 0x928F 2808 #define GL_DST_IN_NV 0x928B 2809 #define GL_DST_NV 0x9287 2810 #define GL_DST_OUT_NV 0x928D 2811 #define GL_DST_OVER_NV 0x9289 2812 #define GL_EXCLUSION_NV 0x92A0 2813 #define GL_GREEN_NV 0x1904 2814 #define GL_HARDLIGHT_NV 0x929B 2815 #define GL_HARDMIX_NV 0x92A9 2816 #define GL_HSL_COLOR_NV 0x92AF 2817 #define GL_HSL_HUE_NV 0x92AD 2818 #define GL_HSL_LUMINOSITY_NV 0x92B0 2819 #define GL_HSL_SATURATION_NV 0x92AE 2820 #define GL_INVERT_OVG_NV 0x92B4 2821 #define GL_INVERT_RGB_NV 0x92A3 2822 #define GL_LIGHTEN_NV 0x9298 2823 #define GL_LINEARBURN_NV 0x92A5 2824 #define GL_LINEARDODGE_NV 0x92A4 2825 #define GL_LINEARLIGHT_NV 0x92A7 2826 #define GL_MINUS_CLAMPED_NV 0x92B3 2827 #define GL_MINUS_NV 0x929F 2828 #define GL_MULTIPLY_NV 0x9294 2829 #define GL_OVERLAY_NV 0x9296 2830 #define GL_PINLIGHT_NV 0x92A8 2831 #define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 2832 #define GL_PLUS_CLAMPED_NV 0x92B1 2833 #define GL_PLUS_DARKER_NV 0x9292 2834 #define GL_PLUS_NV 0x9291 2835 #define GL_RED_NV 0x1903 2836 #define GL_SCREEN_NV 0x9295 2837 #define GL_SOFTLIGHT_NV 0x929C 2838 #define GL_SRC_ATOP_NV 0x928E 2839 #define GL_SRC_IN_NV 0x928A 2840 #define GL_SRC_NV 0x9286 2841 #define GL_SRC_OUT_NV 0x928C 2842 #define GL_SRC_OVER_NV 0x9288 2843 #define GL_UNCORRELATED_NV 0x9282 2844 #define GL_VIVIDLIGHT_NV 0x92A6 2845 #define GL_XOR_NV 0x1506 2846 #endif /* GL_NV_blend_equation_advanced */ 2847 2848 #ifndef GL_NV_blend_equation_advanced_coherent 2849 #define GL_NV_blend_equation_advanced_coherent 1 2850 #define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 2851 #endif /* GL_NV_blend_equation_advanced_coherent */ 2852 2853 #ifndef GL_NV_conditional_render 2854 #define GL_NV_conditional_render 1 2855 #define GL_QUERY_WAIT_NV 0x8E13 2856 #define GL_QUERY_NO_WAIT_NV 0x8E14 2857 #define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 2858 #define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 2859 #endif /* GL_NV_conditional_render */ 2860 2861 #ifndef GL_NV_conservative_raster 2862 #define GL_NV_conservative_raster 1 2863 #define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346 2864 #define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347 2865 #define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348 2866 #define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349 2867 #endif /* GL_NV_conservative_raster */ 2868 2869 #ifndef GL_NV_copy_buffer 2870 #define GL_NV_copy_buffer 1 2871 #define GL_COPY_READ_BUFFER_NV 0x8F36 2872 #define GL_COPY_WRITE_BUFFER_NV 0x8F37 2873 #endif /* GL_NV_copy_buffer */ 2874 2875 #ifndef GL_NV_coverage_sample 2876 #define GL_NV_coverage_sample 1 2877 #define GL_COVERAGE_COMPONENT_NV 0x8ED0 2878 #define GL_COVERAGE_COMPONENT4_NV 0x8ED1 2879 #define GL_COVERAGE_ATTACHMENT_NV 0x8ED2 2880 #define GL_COVERAGE_BUFFERS_NV 0x8ED3 2881 #ifdef GL_COVERAGE_SAMPLES_NV 2882 # undef GL_COVERAGE_SAMPLES_NV 2883 /* Extract from the multisample_coverage spec: 2884 * (Note: Earlier versions of this extension included a token 2885 * COVERAGE_SAMPLES_NV that was an alias for SAMPLES/SAMPLES_ARB. This was 2886 * removed to avoid a name collision with a similar COVERAGE_SAMPLES_NV 2887 * token from the NV_coverage_sample extension to OpenGL ES.) 2888 */ 2889 #endif 2890 #define GL_COVERAGE_SAMPLES_NV 0x8ED4 2891 #define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5 2892 #define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6 2893 #define GL_COVERAGE_AUTOMATIC_NV 0x8ED7 2894 #define GL_COVERAGE_BUFFER_BIT_NV 0x00008000 2895 #endif /* GL_NV_coverage_sample */ 2896 2897 #ifndef GL_NV_depth_nonlinear 2898 #define GL_NV_depth_nonlinear 1 2899 #define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C 2900 #endif /* GL_NV_depth_nonlinear */ 2901 2902 #ifndef GL_NV_draw_buffers 2903 #define GL_NV_draw_buffers 1 2904 #define GL_MAX_DRAW_BUFFERS_NV 0x8824 2905 #define GL_DRAW_BUFFER0_NV 0x8825 2906 #define GL_DRAW_BUFFER1_NV 0x8826 2907 #define GL_DRAW_BUFFER2_NV 0x8827 2908 #define GL_DRAW_BUFFER3_NV 0x8828 2909 #define GL_DRAW_BUFFER4_NV 0x8829 2910 #define GL_DRAW_BUFFER5_NV 0x882A 2911 #define GL_DRAW_BUFFER6_NV 0x882B 2912 #define GL_DRAW_BUFFER7_NV 0x882C 2913 #define GL_DRAW_BUFFER8_NV 0x882D 2914 #define GL_DRAW_BUFFER9_NV 0x882E 2915 #define GL_DRAW_BUFFER10_NV 0x882F 2916 #define GL_DRAW_BUFFER11_NV 0x8830 2917 #define GL_DRAW_BUFFER12_NV 0x8831 2918 #define GL_DRAW_BUFFER13_NV 0x8832 2919 #define GL_DRAW_BUFFER14_NV 0x8833 2920 #define GL_DRAW_BUFFER15_NV 0x8834 2921 #define GL_COLOR_ATTACHMENT0_NV 0x8CE0 2922 #define GL_COLOR_ATTACHMENT1_NV 0x8CE1 2923 #define GL_COLOR_ATTACHMENT2_NV 0x8CE2 2924 #define GL_COLOR_ATTACHMENT3_NV 0x8CE3 2925 #define GL_COLOR_ATTACHMENT4_NV 0x8CE4 2926 #define GL_COLOR_ATTACHMENT5_NV 0x8CE5 2927 #define GL_COLOR_ATTACHMENT6_NV 0x8CE6 2928 #define GL_COLOR_ATTACHMENT7_NV 0x8CE7 2929 #define GL_COLOR_ATTACHMENT8_NV 0x8CE8 2930 #define GL_COLOR_ATTACHMENT9_NV 0x8CE9 2931 #define GL_COLOR_ATTACHMENT10_NV 0x8CEA 2932 #define GL_COLOR_ATTACHMENT11_NV 0x8CEB 2933 #define GL_COLOR_ATTACHMENT12_NV 0x8CEC 2934 #define GL_COLOR_ATTACHMENT13_NV 0x8CED 2935 #define GL_COLOR_ATTACHMENT14_NV 0x8CEE 2936 #define GL_COLOR_ATTACHMENT15_NV 0x8CEF 2937 #endif /* GL_NV_draw_buffers */ 2938 2939 #ifndef GL_NV_draw_instanced 2940 #define GL_NV_draw_instanced 1 2941 #endif /* GL_NV_draw_instanced */ 2942 2943 #ifndef GL_NV_explicit_attrib_location 2944 #define GL_NV_explicit_attrib_location 1 2945 #endif /* GL_NV_explicit_attrib_location */ 2946 2947 #ifndef GL_NV_fbo_color_attachments 2948 #define GL_NV_fbo_color_attachments 1 2949 #define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF 2950 #endif /* GL_NV_fbo_color_attachments */ 2951 2952 #ifndef GL_NV_fence 2953 #define GL_NV_fence 1 2954 #define GL_ALL_COMPLETED_NV 0x84F2 2955 #define GL_FENCE_STATUS_NV 0x84F3 2956 #define GL_FENCE_CONDITION_NV 0x84F4 2957 #endif /* GL_NV_fence */ 2958 2959 #ifndef GL_NV_fill_rectangle 2960 #define GL_NV_fill_rectangle 1 2961 #define GL_FILL_RECTANGLE_NV 0x933C 2962 #endif /* GL_NV_fill_rectangle */ 2963 2964 #ifndef GL_NV_fragment_coverage_to_color 2965 #define GL_NV_fragment_coverage_to_color 1 2966 #define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD 2967 #define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE 2968 #endif /* GL_NV_fragment_coverage_to_color */ 2969 2970 #ifndef GL_NV_fragment_shader_interlock 2971 #define GL_NV_fragment_shader_interlock 1 2972 #endif /* GL_NV_fragment_shader_interlock */ 2973 2974 #ifndef GL_NV_framebuffer_blit 2975 #define GL_NV_framebuffer_blit 1 2976 #define GL_READ_FRAMEBUFFER_NV 0x8CA8 2977 #define GL_DRAW_FRAMEBUFFER_NV 0x8CA9 2978 #define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6 2979 #define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA 2980 #endif /* GL_NV_framebuffer_blit */ 2981 2982 #ifndef GL_NV_framebuffer_mixed_samples 2983 #define GL_NV_framebuffer_mixed_samples 1 2984 #define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 2985 #define GL_COLOR_SAMPLES_NV 0x8E20 2986 #define GL_DEPTH_SAMPLES_NV 0x932D 2987 #define GL_STENCIL_SAMPLES_NV 0x932E 2988 #define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F 2989 #define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 2990 #define GL_COVERAGE_MODULATION_NV 0x9332 2991 #define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 2992 #endif /* GL_NV_framebuffer_mixed_samples */ 2993 2994 #ifndef GL_NV_framebuffer_multisample 2995 #define GL_NV_framebuffer_multisample 1 2996 #define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB 2997 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56 2998 #define GL_MAX_SAMPLES_NV 0x8D57 2999 #endif /* GL_NV_framebuffer_multisample */ 3000 3001 #ifndef GL_NV_generate_mipmap_sRGB 3002 #define GL_NV_generate_mipmap_sRGB 1 3003 #endif /* GL_NV_generate_mipmap_sRGB */ 3004 3005 #ifndef GL_NV_geometry_shader_passthrough 3006 #define GL_NV_geometry_shader_passthrough 1 3007 #endif /* GL_NV_geometry_shader_passthrough */ 3008 3009 #ifndef GL_NV_image_formats 3010 #define GL_NV_image_formats 1 3011 #endif /* GL_NV_image_formats */ 3012 3013 #ifndef GL_NV_instanced_arrays 3014 #define GL_NV_instanced_arrays 1 3015 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE 3016 #endif /* GL_NV_instanced_arrays */ 3017 3018 #ifndef GL_NV_internalformat_sample_query 3019 #define GL_NV_internalformat_sample_query 1 3020 #define GL_TEXTURE_2D_MULTISAMPLE 0x9100 3021 #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 3022 #define GL_MULTISAMPLES_NV 0x9371 3023 #define GL_SUPERSAMPLE_SCALE_X_NV 0x9372 3024 #define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373 3025 #define GL_CONFORMANT_NV 0x9374 3026 #endif /* GL_NV_internalformat_sample_query */ 3027 3028 #ifndef GL_NV_non_square_matrices 3029 #define GL_NV_non_square_matrices 1 3030 #define GL_FLOAT_MAT2x3_NV 0x8B65 3031 #define GL_FLOAT_MAT2x4_NV 0x8B66 3032 #define GL_FLOAT_MAT3x2_NV 0x8B67 3033 #define GL_FLOAT_MAT3x4_NV 0x8B68 3034 #define GL_FLOAT_MAT4x2_NV 0x8B69 3035 #define GL_FLOAT_MAT4x3_NV 0x8B6A 3036 #endif /* GL_NV_non_square_matrices */ 3037 3038 #ifndef GL_NV_path_rendering 3039 #define GL_NV_path_rendering 1 3040 #define GL_PATH_FORMAT_SVG_NV 0x9070 3041 #define GL_PATH_FORMAT_PS_NV 0x9071 3042 #define GL_STANDARD_FONT_NAME_NV 0x9072 3043 #define GL_SYSTEM_FONT_NAME_NV 0x9073 3044 #define GL_FILE_NAME_NV 0x9074 3045 #define GL_PATH_STROKE_WIDTH_NV 0x9075 3046 #define GL_PATH_END_CAPS_NV 0x9076 3047 #define GL_PATH_INITIAL_END_CAP_NV 0x9077 3048 #define GL_PATH_TERMINAL_END_CAP_NV 0x9078 3049 #define GL_PATH_JOIN_STYLE_NV 0x9079 3050 #define GL_PATH_MITER_LIMIT_NV 0x907A 3051 #define GL_PATH_DASH_CAPS_NV 0x907B 3052 #define GL_PATH_INITIAL_DASH_CAP_NV 0x907C 3053 #define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D 3054 #define GL_PATH_DASH_OFFSET_NV 0x907E 3055 #define GL_PATH_CLIENT_LENGTH_NV 0x907F 3056 #define GL_PATH_FILL_MODE_NV 0x9080 3057 #define GL_PATH_FILL_MASK_NV 0x9081 3058 #define GL_PATH_FILL_COVER_MODE_NV 0x9082 3059 #define GL_PATH_STROKE_COVER_MODE_NV 0x9083 3060 #define GL_PATH_STROKE_MASK_NV 0x9084 3061 #define GL_COUNT_UP_NV 0x9088 3062 #define GL_COUNT_DOWN_NV 0x9089 3063 #define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A 3064 #define GL_CONVEX_HULL_NV 0x908B 3065 #define GL_BOUNDING_BOX_NV 0x908D 3066 #define GL_TRANSLATE_X_NV 0x908E 3067 #define GL_TRANSLATE_Y_NV 0x908F 3068 #define GL_TRANSLATE_2D_NV 0x9090 3069 #define GL_TRANSLATE_3D_NV 0x9091 3070 #define GL_AFFINE_2D_NV 0x9092 3071 #define GL_AFFINE_3D_NV 0x9094 3072 #define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 3073 #define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 3074 #define GL_UTF8_NV 0x909A 3075 #define GL_UTF16_NV 0x909B 3076 #define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C 3077 #define GL_PATH_COMMAND_COUNT_NV 0x909D 3078 #define GL_PATH_COORD_COUNT_NV 0x909E 3079 #define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F 3080 #define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 3081 #define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 3082 #define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 3083 #define GL_SQUARE_NV 0x90A3 3084 #define GL_ROUND_NV 0x90A4 3085 #define GL_TRIANGULAR_NV 0x90A5 3086 #define GL_BEVEL_NV 0x90A6 3087 #define GL_MITER_REVERT_NV 0x90A7 3088 #define GL_MITER_TRUNCATE_NV 0x90A8 3089 #define GL_SKIP_MISSING_GLYPH_NV 0x90A9 3090 #define GL_USE_MISSING_GLYPH_NV 0x90AA 3091 #define GL_PATH_ERROR_POSITION_NV 0x90AB 3092 #define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD 3093 #define GL_ADJACENT_PAIRS_NV 0x90AE 3094 #define GL_FIRST_TO_REST_NV 0x90AF 3095 #define GL_PATH_GEN_MODE_NV 0x90B0 3096 #define GL_PATH_GEN_COEFF_NV 0x90B1 3097 #define GL_PATH_GEN_COMPONENTS_NV 0x90B3 3098 #define GL_PATH_STENCIL_FUNC_NV 0x90B7 3099 #define GL_PATH_STENCIL_REF_NV 0x90B8 3100 #define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 3101 #define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD 3102 #define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE 3103 #define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF 3104 #define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 3105 #define GL_MOVE_TO_RESETS_NV 0x90B5 3106 #define GL_MOVE_TO_CONTINUES_NV 0x90B6 3107 #define GL_CLOSE_PATH_NV 0x00 3108 #define GL_MOVE_TO_NV 0x02 3109 #define GL_RELATIVE_MOVE_TO_NV 0x03 3110 #define GL_LINE_TO_NV 0x04 3111 #define GL_RELATIVE_LINE_TO_NV 0x05 3112 #define GL_HORIZONTAL_LINE_TO_NV 0x06 3113 #define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 3114 #define GL_VERTICAL_LINE_TO_NV 0x08 3115 #define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 3116 #define GL_QUADRATIC_CURVE_TO_NV 0x0A 3117 #define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B 3118 #define GL_CUBIC_CURVE_TO_NV 0x0C 3119 #define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D 3120 #define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E 3121 #define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F 3122 #define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 3123 #define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 3124 #define GL_SMALL_CCW_ARC_TO_NV 0x12 3125 #define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 3126 #define GL_SMALL_CW_ARC_TO_NV 0x14 3127 #define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 3128 #define GL_LARGE_CCW_ARC_TO_NV 0x16 3129 #define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 3130 #define GL_LARGE_CW_ARC_TO_NV 0x18 3131 #define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 3132 #define GL_RESTART_PATH_NV 0xF0 3133 #define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 3134 #define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 3135 #define GL_RECT_NV 0xF6 3136 #define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 3137 #define GL_CIRCULAR_CW_ARC_TO_NV 0xFA 3138 #define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC 3139 #define GL_ARC_TO_NV 0xFE 3140 #define GL_RELATIVE_ARC_TO_NV 0xFF 3141 #define GL_BOLD_BIT_NV 0x01 3142 #define GL_ITALIC_BIT_NV 0x02 3143 #define GL_GLYPH_WIDTH_BIT_NV 0x01 3144 #define GL_GLYPH_HEIGHT_BIT_NV 0x02 3145 #define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 3146 #define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 3147 #define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 3148 #define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 3149 #define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 3150 #define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 3151 #define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 3152 #define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 3153 #define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 3154 #define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 3155 #define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 3156 #define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 3157 #define GL_FONT_ASCENDER_BIT_NV 0x00200000 3158 #define GL_FONT_DESCENDER_BIT_NV 0x00400000 3159 #define GL_FONT_HEIGHT_BIT_NV 0x00800000 3160 #define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 3161 #define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 3162 #define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 3163 #define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 3164 #define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 3165 #define GL_ROUNDED_RECT_NV 0xE8 3166 #define GL_RELATIVE_ROUNDED_RECT_NV 0xE9 3167 #define GL_ROUNDED_RECT2_NV 0xEA 3168 #define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB 3169 #define GL_ROUNDED_RECT4_NV 0xEC 3170 #define GL_RELATIVE_ROUNDED_RECT4_NV 0xED 3171 #define GL_ROUNDED_RECT8_NV 0xEE 3172 #define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF 3173 #define GL_RELATIVE_RECT_NV 0xF7 3174 #define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368 3175 #define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369 3176 #define GL_FONT_UNAVAILABLE_NV 0x936A 3177 #define GL_FONT_UNINTELLIGIBLE_NV 0x936B 3178 #define GL_CONIC_CURVE_TO_NV 0x1A 3179 #define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B 3180 #define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000 3181 #define GL_STANDARD_FONT_FORMAT_NV 0x936C 3182 #define GL_PATH_PROJECTION_NV 0x1701 3183 #define GL_PATH_MODELVIEW_NV 0x1700 3184 #define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3 3185 #define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6 3186 #define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36 3187 #define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3 3188 #define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4 3189 #define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7 3190 #define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38 3191 #define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4 3192 #define GL_FRAGMENT_INPUT_NV 0x936D 3193 #endif /* GL_NV_path_rendering */ 3194 3195 #ifndef GL_NV_path_rendering_shared_edge 3196 #define GL_NV_path_rendering_shared_edge 1 3197 #define GL_SHARED_EDGE_NV 0xC0 3198 #endif /* GL_NV_path_rendering_shared_edge */ 3199 3200 #ifndef GL_NV_polygon_mode 3201 #define GL_NV_polygon_mode 1 3202 #define GL_POLYGON_MODE_NV 0x0B40 3203 #define GL_POLYGON_OFFSET_POINT_NV 0x2A01 3204 #define GL_POLYGON_OFFSET_LINE_NV 0x2A02 3205 #define GL_POINT_NV 0x1B00 3206 #define GL_LINE_NV 0x1B01 3207 #define GL_FILL_NV 0x1B02 3208 #endif /* GL_NV_polygon_mode */ 3209 3210 #ifndef GL_NV_read_buffer 3211 #define GL_NV_read_buffer 1 3212 #define GL_READ_BUFFER_NV 0x0C02 3213 #endif /* GL_NV_read_buffer */ 3214 3215 #ifndef GL_NV_read_buffer_front 3216 #define GL_NV_read_buffer_front 1 3217 #endif /* GL_NV_read_buffer_front */ 3218 3219 #ifndef GL_NV_read_depth 3220 #define GL_NV_read_depth 1 3221 #endif /* GL_NV_read_depth */ 3222 3223 #ifndef GL_NV_read_depth_stencil 3224 #define GL_NV_read_depth_stencil 1 3225 #endif /* GL_NV_read_depth_stencil */ 3226 3227 #ifndef GL_NV_read_stencil 3228 #define GL_NV_read_stencil 1 3229 #endif /* GL_NV_read_stencil */ 3230 3231 #ifndef GL_NV_sRGB_formats 3232 #define GL_NV_sRGB_formats 1 3233 #define GL_SLUMINANCE_NV 0x8C46 3234 #define GL_SLUMINANCE_ALPHA_NV 0x8C44 3235 #define GL_SRGB8_NV 0x8C41 3236 #define GL_SLUMINANCE8_NV 0x8C47 3237 #define GL_SLUMINANCE8_ALPHA8_NV 0x8C45 3238 #define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C 3239 #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D 3240 #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E 3241 #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F 3242 #define GL_ETC1_SRGB8_NV 0x88EE 3243 #endif /* GL_NV_sRGB_formats */ 3244 3245 #ifndef GL_NV_sample_locations 3246 #define GL_NV_sample_locations 1 3247 #define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D 3248 #define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E 3249 #define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F 3250 #define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340 3251 #define GL_SAMPLE_LOCATION_NV 0x8E50 3252 #define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341 3253 #define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342 3254 #define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343 3255 #endif /* GL_NV_sample_locations */ 3256 3257 #ifndef GL_NV_sample_mask_override_coverage 3258 #define GL_NV_sample_mask_override_coverage 1 3259 #endif /* GL_NV_sample_mask_override_coverage */ 3260 3261 #ifndef GL_NV_shader_noperspective_interpolation 3262 #define GL_NV_shader_noperspective_interpolation 1 3263 #endif /* GL_NV_shader_noperspective_interpolation */ 3264 3265 #ifndef GL_NV_shadow_samplers_array 3266 #define GL_NV_shadow_samplers_array 1 3267 #define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 3268 #endif /* GL_NV_shadow_samplers_array */ 3269 3270 #ifndef GL_NV_shadow_samplers_cube 3271 #define GL_NV_shadow_samplers_cube 1 3272 #define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 3273 #endif /* GL_NV_shadow_samplers_cube */ 3274 3275 #ifndef GL_NV_texture_border_clamp 3276 #define GL_NV_texture_border_clamp 1 3277 #define GL_TEXTURE_BORDER_COLOR_NV 0x1004 3278 #define GL_CLAMP_TO_BORDER_NV 0x812D 3279 #endif /* GL_NV_texture_border_clamp */ 3280 3281 #ifndef GL_NV_texture_compression_s3tc_update 3282 #define GL_NV_texture_compression_s3tc_update 1 3283 #endif /* GL_NV_texture_compression_s3tc_update */ 3284 3285 #ifndef GL_NV_texture_npot_2D_mipmap 3286 #define GL_NV_texture_npot_2D_mipmap 1 3287 #endif /* GL_NV_texture_npot_2D_mipmap */ 3288 3289 #ifndef GL_NV_viewport_array 3290 #define GL_NV_viewport_array 1 3291 #define GL_MAX_VIEWPORTS_NV 0x825B 3292 #define GL_VIEWPORT_SUBPIXEL_BITS_NV 0x825C 3293 #define GL_VIEWPORT_BOUNDS_RANGE_NV 0x825D 3294 #define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV 0x825F 3295 #endif /* GL_NV_viewport_array */ 3296 3297 #ifndef GL_NV_viewport_array2 3298 #define GL_NV_viewport_array2 1 3299 #endif /* GL_NV_viewport_array2 */ 3300 3301 #ifndef GL_OVR_multiview 3302 #define GL_OVR_multiview 1 3303 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630 3304 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632 3305 #define GL_MAX_VIEWS_OVR 0x9631 3306 #endif /* GL_OVR_multiview */ 3307 3308 #ifndef GL_OVR_multiview2 3309 #define GL_OVR_multiview2 1 3310 #endif /* GL_OVR_multiview2 */ 3311 3312 #ifndef GL_OVR_multiview_multisampled_render_to_texture 3313 #define GL_OVR_multiview_multisampled_render_to_texture 1 3314 #endif /* GL_OVR_multiview_multisampled_render_to_texture */ 3315 3316 #ifndef GL_QCOM_alpha_test 3317 #define GL_QCOM_alpha_test 1 3318 #define GL_ALPHA_TEST_QCOM 0x0BC0 3319 #define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 3320 #define GL_ALPHA_TEST_REF_QCOM 0x0BC2 3321 #endif /* GL_QCOM_alpha_test */ 3322 3323 #ifndef GL_QCOM_binning_control 3324 #define GL_QCOM_binning_control 1 3325 #define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 3326 #define GL_CPU_OPTIMIZED_QCOM 0x8FB1 3327 #define GL_GPU_OPTIMIZED_QCOM 0x8FB2 3328 #define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 3329 #endif /* GL_QCOM_binning_control */ 3330 3331 #ifndef GL_QCOM_driver_control 3332 #define GL_QCOM_driver_control 1 3333 #endif /* GL_QCOM_driver_control */ 3334 3335 #ifndef GL_QCOM_extended_get 3336 #define GL_QCOM_extended_get 1 3337 #define GL_TEXTURE_WIDTH_QCOM 0x8BD2 3338 #define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 3339 #define GL_TEXTURE_DEPTH_QCOM 0x8BD4 3340 #define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 3341 #define GL_TEXTURE_FORMAT_QCOM 0x8BD6 3342 #define GL_TEXTURE_TYPE_QCOM 0x8BD7 3343 #define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 3344 #define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 3345 #define GL_TEXTURE_TARGET_QCOM 0x8BDA 3346 #define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB 3347 #define GL_STATE_RESTORE 0x8BDC 3348 #endif /* GL_QCOM_extended_get */ 3349 3350 #ifndef GL_QCOM_extended_get2 3351 #define GL_QCOM_extended_get2 1 3352 #endif /* GL_QCOM_extended_get2 */ 3353 3354 #ifndef GL_QCOM_perfmon_global_mode 3355 #define GL_QCOM_perfmon_global_mode 1 3356 #define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 3357 #endif /* GL_QCOM_perfmon_global_mode */ 3358 3359 #ifndef GL_QCOM_tiled_rendering 3360 #define GL_QCOM_tiled_rendering 1 3361 #define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 3362 #define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 3363 #define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 3364 #define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 3365 #define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 3366 #define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 3367 #define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 3368 #define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 3369 #define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 3370 #define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 3371 #define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 3372 #define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 3373 #define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 3374 #define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 3375 #define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 3376 #define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 3377 #define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 3378 #define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 3379 #define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 3380 #define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 3381 #define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 3382 #define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 3383 #define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 3384 #define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 3385 #define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 3386 #define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 3387 #define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 3388 #define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 3389 #define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 3390 #define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 3391 #define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 3392 #define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 3393 #endif /* GL_QCOM_tiled_rendering */ 3394 3395 #ifndef GL_QCOM_writeonly_rendering 3396 #define GL_QCOM_writeonly_rendering 1 3397 #define GL_WRITEONLY_RENDERING_QCOM 0x8823 3398 #endif /* GL_QCOM_writeonly_rendering */ 3399 3400 #ifndef GL_VIV_shader_binary 3401 #define GL_VIV_shader_binary 1 3402 #define GL_SHADER_BINARY_VIV 0x8FC4 3403 #endif /* GL_VIV_shader_binary */ 3404 3405 #else 3406 # ifndef EVAS_GL_NO_GL_H_CHECK 3407 # error "You may only include either Evas_GL.h OR use your native GLES2 headers. If you use Evas to do GL, then you cannot use the native GLES2 headers." 3408 # endif 3409 #endif 3410 3411 3412 /* OpenGLES 1.0 */ 3413 3414 #ifndef __gl_h_ 3415 # define __gl_h_ 1 3416 3417 /* Note: This should redefine a lot of the macros already defined above, 3418 * but the compiler shouldn't raise any warning since the definitions are 3419 * exactly the same. 3420 */ 3421 3422 /* OpenGL ES core versions */ 3423 #define GL_VERSION_ES_CM_1_0 1 3424 #define GL_VERSION_ES_CL_1_0 1 3425 #define GL_VERSION_ES_CM_1_1 1 3426 #define GL_VERSION_ES_CL_1_1 1 3427 3428 /* ClearBufferMask */ 3429 #define GL_DEPTH_BUFFER_BIT 0x00000100 3430 #define GL_STENCIL_BUFFER_BIT 0x00000400 3431 #define GL_COLOR_BUFFER_BIT 0x00004000 3432 3433 /* Boolean */ 3434 #define GL_FALSE 0 3435 #define GL_TRUE 1 3436 3437 /* BeginMode */ 3438 #define GL_POINTS 0x0000 3439 #define GL_LINES 0x0001 3440 #define GL_LINE_LOOP 0x0002 3441 #define GL_LINE_STRIP 0x0003 3442 #define GL_TRIANGLES 0x0004 3443 #define GL_TRIANGLE_STRIP 0x0005 3444 #define GL_TRIANGLE_FAN 0x0006 3445 3446 /* AlphaFunction */ 3447 #define GL_NEVER 0x0200 3448 #define GL_LESS 0x0201 3449 #define GL_EQUAL 0x0202 3450 #define GL_LEQUAL 0x0203 3451 #define GL_GREATER 0x0204 3452 #define GL_NOTEQUAL 0x0205 3453 #define GL_GEQUAL 0x0206 3454 #define GL_ALWAYS 0x0207 3455 3456 /* BlendingFactorDest */ 3457 #define GL_ZERO 0 3458 #define GL_ONE 1 3459 #define GL_SRC_COLOR 0x0300 3460 #define GL_ONE_MINUS_SRC_COLOR 0x0301 3461 #define GL_SRC_ALPHA 0x0302 3462 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 3463 #define GL_DST_ALPHA 0x0304 3464 #define GL_ONE_MINUS_DST_ALPHA 0x0305 3465 3466 /* BlendingFactorSrc */ 3467 /* GL_ZERO */ 3468 /* GL_ONE */ 3469 #define GL_DST_COLOR 0x0306 3470 #define GL_ONE_MINUS_DST_COLOR 0x0307 3471 #define GL_SRC_ALPHA_SATURATE 0x0308 3472 /* GL_SRC_ALPHA */ 3473 /* GL_ONE_MINUS_SRC_ALPHA */ 3474 /* GL_DST_ALPHA */ 3475 /* GL_ONE_MINUS_DST_ALPHA */ 3476 3477 /* ClipPlaneName */ 3478 #define GL_CLIP_PLANE0 0x3000 3479 #define GL_CLIP_PLANE1 0x3001 3480 #define GL_CLIP_PLANE2 0x3002 3481 #define GL_CLIP_PLANE3 0x3003 3482 #define GL_CLIP_PLANE4 0x3004 3483 #define GL_CLIP_PLANE5 0x3005 3484 3485 /* ColorMaterialFace */ 3486 /* GL_FRONT_AND_BACK */ 3487 3488 /* ColorMaterialParameter */ 3489 /* GL_AMBIENT_AND_DIFFUSE */ 3490 3491 /* ColorPointerType */ 3492 /* GL_UNSIGNED_BYTE */ 3493 /* GL_FLOAT */ 3494 /* GL_FIXED */ 3495 3496 /* CullFaceMode */ 3497 #define GL_FRONT 0x0404 3498 #define GL_BACK 0x0405 3499 #define GL_FRONT_AND_BACK 0x0408 3500 3501 /* DepthFunction */ 3502 /* GL_NEVER */ 3503 /* GL_LESS */ 3504 /* GL_EQUAL */ 3505 /* GL_LEQUAL */ 3506 /* GL_GREATER */ 3507 /* GL_NOTEQUAL */ 3508 /* GL_GEQUAL */ 3509 /* GL_ALWAYS */ 3510 3511 /* EnableCap */ 3512 #define GL_FOG 0x0B60 3513 #define GL_LIGHTING 0x0B50 3514 #define GL_TEXTURE_2D 0x0DE1 3515 #define GL_CULL_FACE 0x0B44 3516 #define GL_ALPHA_TEST 0x0BC0 3517 #define GL_BLEND 0x0BE2 3518 #define GL_COLOR_LOGIC_OP 0x0BF2 3519 #define GL_DITHER 0x0BD0 3520 #define GL_STENCIL_TEST 0x0B90 3521 #define GL_DEPTH_TEST 0x0B71 3522 /* GL_LIGHT0 */ 3523 /* GL_LIGHT1 */ 3524 /* GL_LIGHT2 */ 3525 /* GL_LIGHT3 */ 3526 /* GL_LIGHT4 */ 3527 /* GL_LIGHT5 */ 3528 /* GL_LIGHT6 */ 3529 /* GL_LIGHT7 */ 3530 #define GL_POINT_SMOOTH 0x0B10 3531 #define GL_LINE_SMOOTH 0x0B20 3532 #define GL_SCISSOR_TEST 0x0C11 3533 #define GL_COLOR_MATERIAL 0x0B57 3534 #define GL_NORMALIZE 0x0BA1 3535 #define GL_RESCALE_NORMAL 0x803A 3536 #define GL_POLYGON_OFFSET_FILL 0x8037 3537 #define GL_VERTEX_ARRAY 0x8074 3538 #define GL_NORMAL_ARRAY 0x8075 3539 #define GL_COLOR_ARRAY 0x8076 3540 #define GL_TEXTURE_COORD_ARRAY 0x8078 3541 #define GL_MULTISAMPLE 0x809D 3542 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E 3543 #define GL_SAMPLE_ALPHA_TO_ONE 0x809F 3544 #define GL_SAMPLE_COVERAGE 0x80A0 3545 3546 /* ErrorCode */ 3547 #define GL_NO_ERROR 0 3548 #define GL_INVALID_ENUM 0x0500 3549 #define GL_INVALID_VALUE 0x0501 3550 #define GL_INVALID_OPERATION 0x0502 3551 #define GL_STACK_OVERFLOW 0x0503 3552 #define GL_STACK_UNDERFLOW 0x0504 3553 #define GL_OUT_OF_MEMORY 0x0505 3554 3555 /* FogMode */ 3556 /* GL_LINEAR */ 3557 #define GL_EXP 0x0800 3558 #define GL_EXP2 0x0801 3559 3560 /* FogParameter */ 3561 #define GL_FOG_DENSITY 0x0B62 3562 #define GL_FOG_START 0x0B63 3563 #define GL_FOG_END 0x0B64 3564 #define GL_FOG_MODE 0x0B65 3565 #define GL_FOG_COLOR 0x0B66 3566 3567 /* FrontFaceDirection */ 3568 #define GL_CW 0x0900 3569 #define GL_CCW 0x0901 3570 3571 /* GetPName */ 3572 #define GL_CURRENT_COLOR 0x0B00 3573 #define GL_CURRENT_NORMAL 0x0B02 3574 #define GL_CURRENT_TEXTURE_COORDS 0x0B03 3575 #define GL_POINT_SIZE 0x0B11 3576 #define GL_POINT_SIZE_MIN 0x8126 3577 #define GL_POINT_SIZE_MAX 0x8127 3578 #define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 3579 #define GL_POINT_DISTANCE_ATTENUATION 0x8129 3580 #define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 3581 #define GL_LINE_WIDTH 0x0B21 3582 #define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 3583 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D 3584 #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E 3585 #define GL_CULL_FACE_MODE 0x0B45 3586 #define GL_FRONT_FACE 0x0B46 3587 #define GL_SHADE_MODEL 0x0B54 3588 #define GL_DEPTH_RANGE 0x0B70 3589 #define GL_DEPTH_WRITEMASK 0x0B72 3590 #define GL_DEPTH_CLEAR_VALUE 0x0B73 3591 #define GL_DEPTH_FUNC 0x0B74 3592 #define GL_STENCIL_CLEAR_VALUE 0x0B91 3593 #define GL_STENCIL_FUNC 0x0B92 3594 #define GL_STENCIL_VALUE_MASK 0x0B93 3595 #define GL_STENCIL_FAIL 0x0B94 3596 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 3597 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 3598 #define GL_STENCIL_REF 0x0B97 3599 #define GL_STENCIL_WRITEMASK 0x0B98 3600 #define GL_MATRIX_MODE 0x0BA0 3601 #define GL_VIEWPORT 0x0BA2 3602 #define GL_MODELVIEW_STACK_DEPTH 0x0BA3 3603 #define GL_PROJECTION_STACK_DEPTH 0x0BA4 3604 #define GL_TEXTURE_STACK_DEPTH 0x0BA5 3605 #define GL_MODELVIEW_MATRIX 0x0BA6 3606 #define GL_PROJECTION_MATRIX 0x0BA7 3607 #define GL_TEXTURE_MATRIX 0x0BA8 3608 #define GL_ALPHA_TEST_FUNC 0x0BC1 3609 #define GL_ALPHA_TEST_REF 0x0BC2 3610 #define GL_BLEND_DST 0x0BE0 3611 #define GL_BLEND_SRC 0x0BE1 3612 #define GL_LOGIC_OP_MODE 0x0BF0 3613 #define GL_SCISSOR_BOX 0x0C10 3614 #define GL_SCISSOR_TEST 0x0C11 3615 #define GL_COLOR_CLEAR_VALUE 0x0C22 3616 #define GL_COLOR_WRITEMASK 0x0C23 3617 #define GL_UNPACK_ALIGNMENT 0x0CF5 3618 #define GL_PACK_ALIGNMENT 0x0D05 3619 #define GL_MAX_LIGHTS 0x0D31 3620 #define GL_MAX_CLIP_PLANES 0x0D32 3621 #define GL_MAX_TEXTURE_SIZE 0x0D33 3622 #define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 3623 #define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 3624 #define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 3625 #define GL_MAX_VIEWPORT_DIMS 0x0D3A 3626 #define GL_MAX_TEXTURE_UNITS 0x84E2 3627 #define GL_SUBPIXEL_BITS 0x0D50 3628 #define GL_RED_BITS 0x0D52 3629 #define GL_GREEN_BITS 0x0D53 3630 #define GL_BLUE_BITS 0x0D54 3631 #define GL_ALPHA_BITS 0x0D55 3632 #define GL_DEPTH_BITS 0x0D56 3633 #define GL_STENCIL_BITS 0x0D57 3634 #define GL_POLYGON_OFFSET_UNITS 0x2A00 3635 #define GL_POLYGON_OFFSET_FILL 0x8037 3636 #define GL_POLYGON_OFFSET_FACTOR 0x8038 3637 #define GL_TEXTURE_BINDING_2D 0x8069 3638 #define GL_VERTEX_ARRAY_SIZE 0x807A 3639 #define GL_VERTEX_ARRAY_TYPE 0x807B 3640 #define GL_VERTEX_ARRAY_STRIDE 0x807C 3641 #define GL_NORMAL_ARRAY_TYPE 0x807E 3642 #define GL_NORMAL_ARRAY_STRIDE 0x807F 3643 #define GL_COLOR_ARRAY_SIZE 0x8081 3644 #define GL_COLOR_ARRAY_TYPE 0x8082 3645 #define GL_COLOR_ARRAY_STRIDE 0x8083 3646 #define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 3647 #define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 3648 #define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A 3649 #define GL_VERTEX_ARRAY_POINTER 0x808E 3650 #define GL_NORMAL_ARRAY_POINTER 0x808F 3651 #define GL_COLOR_ARRAY_POINTER 0x8090 3652 #define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 3653 #define GL_SAMPLE_BUFFERS 0x80A8 3654 #define GL_SAMPLES 0x80A9 3655 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA 3656 #define GL_SAMPLE_COVERAGE_INVERT 0x80AB 3657 3658 /* GetTextureParameter */ 3659 /* GL_TEXTURE_MAG_FILTER */ 3660 /* GL_TEXTURE_MIN_FILTER */ 3661 /* GL_TEXTURE_WRAP_S */ 3662 /* GL_TEXTURE_WRAP_T */ 3663 3664 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 3665 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 3666 3667 /* HintMode */ 3668 #define GL_DONT_CARE 0x1100 3669 #define GL_FASTEST 0x1101 3670 #define GL_NICEST 0x1102 3671 3672 /* HintTarget */ 3673 #define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 3674 #define GL_POINT_SMOOTH_HINT 0x0C51 3675 #define GL_LINE_SMOOTH_HINT 0x0C52 3676 #define GL_FOG_HINT 0x0C54 3677 #define GL_GENERATE_MIPMAP_HINT 0x8192 3678 3679 /* LightModelParameter */ 3680 #define GL_LIGHT_MODEL_AMBIENT 0x0B53 3681 #define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 3682 3683 /* LightParameter */ 3684 #define GL_AMBIENT 0x1200 3685 #define GL_DIFFUSE 0x1201 3686 #define GL_SPECULAR 0x1202 3687 #define GL_POSITION 0x1203 3688 #define GL_SPOT_DIRECTION 0x1204 3689 #define GL_SPOT_EXPONENT 0x1205 3690 #define GL_SPOT_CUTOFF 0x1206 3691 #define GL_CONSTANT_ATTENUATION 0x1207 3692 #define GL_LINEAR_ATTENUATION 0x1208 3693 #define GL_QUADRATIC_ATTENUATION 0x1209 3694 3695 /* DataType */ 3696 #define GL_BYTE 0x1400 3697 #define GL_UNSIGNED_BYTE 0x1401 3698 #define GL_SHORT 0x1402 3699 #define GL_UNSIGNED_SHORT 0x1403 3700 #define GL_FLOAT 0x1406 3701 #define GL_FIXED 0x140C 3702 3703 /* LogicOp */ 3704 #define GL_CLEAR 0x1500 3705 #define GL_AND 0x1501 3706 #define GL_AND_REVERSE 0x1502 3707 #define GL_COPY 0x1503 3708 #define GL_AND_INVERTED 0x1504 3709 #define GL_NOOP 0x1505 3710 #define GL_XOR 0x1506 3711 #define GL_OR 0x1507 3712 #define GL_NOR 0x1508 3713 #define GL_EQUIV 0x1509 3714 #define GL_INVERT 0x150A 3715 #define GL_OR_REVERSE 0x150B 3716 #define GL_COPY_INVERTED 0x150C 3717 #define GL_OR_INVERTED 0x150D 3718 #define GL_NAND 0x150E 3719 #define GL_SET 0x150F 3720 3721 /* MaterialFace */ 3722 /* GL_FRONT_AND_BACK */ 3723 3724 /* MaterialParameter */ 3725 #define GL_EMISSION 0x1600 3726 #define GL_SHININESS 0x1601 3727 #define GL_AMBIENT_AND_DIFFUSE 0x1602 3728 /* GL_AMBIENT */ 3729 /* GL_DIFFUSE */ 3730 /* GL_SPECULAR */ 3731 3732 /* MatrixMode */ 3733 #define GL_MODELVIEW 0x1700 3734 #define GL_PROJECTION 0x1701 3735 #define GL_TEXTURE 0x1702 3736 3737 /* NormalPointerType */ 3738 /* GL_BYTE */ 3739 /* GL_SHORT */ 3740 /* GL_FLOAT */ 3741 /* GL_FIXED */ 3742 3743 /* PixelFormat */ 3744 #define GL_ALPHA 0x1906 3745 #define GL_RGB 0x1907 3746 #define GL_RGBA 0x1908 3747 #define GL_LUMINANCE 0x1909 3748 #define GL_LUMINANCE_ALPHA 0x190A 3749 3750 /* PixelStoreParameter */ 3751 #define GL_UNPACK_ALIGNMENT 0x0CF5 3752 #define GL_PACK_ALIGNMENT 0x0D05 3753 3754 /* PixelType */ 3755 /* GL_UNSIGNED_BYTE */ 3756 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 3757 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 3758 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 3759 3760 /* ShadingModel */ 3761 #define GL_FLAT 0x1D00 3762 #define GL_SMOOTH 0x1D01 3763 3764 /* StencilFunction */ 3765 /* GL_NEVER */ 3766 /* GL_LESS */ 3767 /* GL_EQUAL */ 3768 /* GL_LEQUAL */ 3769 /* GL_GREATER */ 3770 /* GL_NOTEQUAL */ 3771 /* GL_GEQUAL */ 3772 /* GL_ALWAYS */ 3773 3774 /* StencilOp */ 3775 /* GL_ZERO */ 3776 #define GL_KEEP 0x1E00 3777 #define GL_REPLACE 0x1E01 3778 #define GL_INCR 0x1E02 3779 #define GL_DECR 0x1E03 3780 /* GL_INVERT */ 3781 3782 /* StringName */ 3783 #define GL_VENDOR 0x1F00 3784 #define GL_RENDERER 0x1F01 3785 #define GL_VERSION 0x1F02 3786 #define GL_EXTENSIONS 0x1F03 3787 3788 /* TexCoordPointerType */ 3789 /* GL_SHORT */ 3790 /* GL_FLOAT */ 3791 /* GL_FIXED */ 3792 /* GL_BYTE */ 3793 3794 /* TextureEnvMode */ 3795 #define GL_MODULATE 0x2100 3796 #define GL_DECAL 0x2101 3797 /* GL_BLEND */ 3798 #define GL_ADD 0x0104 3799 /* GL_REPLACE */ 3800 3801 /* TextureEnvParameter */ 3802 #define GL_TEXTURE_ENV_MODE 0x2200 3803 #define GL_TEXTURE_ENV_COLOR 0x2201 3804 3805 /* TextureEnvTarget */ 3806 #define GL_TEXTURE_ENV 0x2300 3807 3808 /* TextureMagFilter */ 3809 #define GL_NEAREST 0x2600 3810 #define GL_LINEAR 0x2601 3811 3812 /* TextureMinFilter */ 3813 /* GL_NEAREST */ 3814 /* GL_LINEAR */ 3815 #define GL_NEAREST_MIPMAP_NEAREST 0x2700 3816 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 3817 #define GL_NEAREST_MIPMAP_LINEAR 0x2702 3818 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 3819 3820 /* TextureParameterName */ 3821 #define GL_TEXTURE_MAG_FILTER 0x2800 3822 #define GL_TEXTURE_MIN_FILTER 0x2801 3823 #define GL_TEXTURE_WRAP_S 0x2802 3824 #define GL_TEXTURE_WRAP_T 0x2803 3825 #define GL_GENERATE_MIPMAP 0x8191 3826 3827 /* TextureTarget */ 3828 /* GL_TEXTURE_2D */ 3829 3830 /* TextureUnit */ 3831 #define GL_TEXTURE0 0x84C0 3832 #define GL_TEXTURE1 0x84C1 3833 #define GL_TEXTURE2 0x84C2 3834 #define GL_TEXTURE3 0x84C3 3835 #define GL_TEXTURE4 0x84C4 3836 #define GL_TEXTURE5 0x84C5 3837 #define GL_TEXTURE6 0x84C6 3838 #define GL_TEXTURE7 0x84C7 3839 #define GL_TEXTURE8 0x84C8 3840 #define GL_TEXTURE9 0x84C9 3841 #define GL_TEXTURE10 0x84CA 3842 #define GL_TEXTURE11 0x84CB 3843 #define GL_TEXTURE12 0x84CC 3844 #define GL_TEXTURE13 0x84CD 3845 #define GL_TEXTURE14 0x84CE 3846 #define GL_TEXTURE15 0x84CF 3847 #define GL_TEXTURE16 0x84D0 3848 #define GL_TEXTURE17 0x84D1 3849 #define GL_TEXTURE18 0x84D2 3850 #define GL_TEXTURE19 0x84D3 3851 #define GL_TEXTURE20 0x84D4 3852 #define GL_TEXTURE21 0x84D5 3853 #define GL_TEXTURE22 0x84D6 3854 #define GL_TEXTURE23 0x84D7 3855 #define GL_TEXTURE24 0x84D8 3856 #define GL_TEXTURE25 0x84D9 3857 #define GL_TEXTURE26 0x84DA 3858 #define GL_TEXTURE27 0x84DB 3859 #define GL_TEXTURE28 0x84DC 3860 #define GL_TEXTURE29 0x84DD 3861 #define GL_TEXTURE30 0x84DE 3862 #define GL_TEXTURE31 0x84DF 3863 #define GL_ACTIVE_TEXTURE 0x84E0 3864 #define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 3865 3866 /* TextureWrapMode */ 3867 #define GL_REPEAT 0x2901 3868 #define GL_CLAMP_TO_EDGE 0x812F 3869 3870 /* VertexPointerType */ 3871 /* GL_SHORT */ 3872 /* GL_FLOAT */ 3873 /* GL_FIXED */ 3874 /* GL_BYTE */ 3875 3876 /* LightName */ 3877 #define GL_LIGHT0 0x4000 3878 #define GL_LIGHT1 0x4001 3879 #define GL_LIGHT2 0x4002 3880 #define GL_LIGHT3 0x4003 3881 #define GL_LIGHT4 0x4004 3882 #define GL_LIGHT5 0x4005 3883 #define GL_LIGHT6 0x4006 3884 #define GL_LIGHT7 0x4007 3885 3886 /* Buffer Objects */ 3887 #define GL_ARRAY_BUFFER 0x8892 3888 #define GL_ELEMENT_ARRAY_BUFFER 0x8893 3889 3890 #define GL_ARRAY_BUFFER_BINDING 0x8894 3891 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 3892 #define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 3893 #define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 3894 #define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 3895 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A 3896 3897 #define GL_STATIC_DRAW 0x88E4 3898 #define GL_DYNAMIC_DRAW 0x88E8 3899 3900 #define GL_BUFFER_SIZE 0x8764 3901 #define GL_BUFFER_USAGE 0x8765 3902 3903 /* Texture combine + dot3 */ 3904 #define GL_SUBTRACT 0x84E7 3905 #define GL_COMBINE 0x8570 3906 #define GL_COMBINE_RGB 0x8571 3907 #define GL_COMBINE_ALPHA 0x8572 3908 #define GL_RGB_SCALE 0x8573 3909 #define GL_ADD_SIGNED 0x8574 3910 #define GL_INTERPOLATE 0x8575 3911 #define GL_CONSTANT 0x8576 3912 #define GL_PRIMARY_COLOR 0x8577 3913 #define GL_PREVIOUS 0x8578 3914 #define GL_OPERAND0_RGB 0x8590 3915 #define GL_OPERAND1_RGB 0x8591 3916 #define GL_OPERAND2_RGB 0x8592 3917 #define GL_OPERAND0_ALPHA 0x8598 3918 #define GL_OPERAND1_ALPHA 0x8599 3919 #define GL_OPERAND2_ALPHA 0x859A 3920 3921 #define GL_ALPHA_SCALE 0x0D1C 3922 3923 #define GL_SRC0_RGB 0x8580 3924 #define GL_SRC1_RGB 0x8581 3925 #define GL_SRC2_RGB 0x8582 3926 #define GL_SRC0_ALPHA 0x8588 3927 #define GL_SRC1_ALPHA 0x8589 3928 #define GL_SRC2_ALPHA 0x858A 3929 3930 #define GL_DOT3_RGB 0x86AE 3931 #define GL_DOT3_RGBA 0x86AF 3932 3933 /*------------------------------------------------------------------------* 3934 * required OES extension tokens 3935 *------------------------------------------------------------------------*/ 3936 3937 /* OES_read_format */ 3938 #ifndef GL_OES_read_format 3939 #define GL_OES_read_format 1 3940 #define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A 3941 #define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B 3942 #endif 3943 3944 /* OES_point_size_array */ 3945 #ifndef GL_OES_point_size_array 3946 #define GL_OES_point_size_array 1 3947 #define GL_POINT_SIZE_ARRAY_OES 0x8B9C 3948 #define GL_POINT_SIZE_ARRAY_TYPE_OES 0x898A 3949 #define GL_POINT_SIZE_ARRAY_STRIDE_OES 0x898B 3950 #define GL_POINT_SIZE_ARRAY_POINTER_OES 0x898C 3951 #define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8B9F 3952 #endif 3953 3954 /* GL_OES_point_sprite */ 3955 #ifndef GL_OES_point_sprite 3956 #define GL_OES_point_sprite 1 3957 #define GL_POINT_SPRITE_OES 0x8861 3958 #define GL_COORD_REPLACE_OES 0x8862 3959 #endif 3960 3961 #else 3962 # ifndef EVAS_GL_NO_GL_H_CHECK 3963 # error "You may only include either Evas_GL.h OR use your native GLES headers. If you use Evas to do GL, then you cannot use the native GLES headers." 3964 # endif 3965 #endif 3966 3967 3968 #ifndef __glext_h_ 3969 #define __glext_h_ 1 3970 3971 /*------------------------------------------------------------------------* 3972 * OES extension tokens 3973 *------------------------------------------------------------------------*/ 3974 3975 /* GL_OES_blend_equation_separate */ 3976 #ifndef GL_OES_blend_equation_separate 3977 /* BLEND_EQUATION_RGB_OES same as BLEND_EQUATION_OES */ 3978 #define GL_BLEND_EQUATION_RGB_OES 0x8009 3979 #define GL_BLEND_EQUATION_ALPHA_OES 0x883D 3980 #endif 3981 3982 /* GL_OES_blend_func_separate */ 3983 #ifndef GL_OES_blend_func_separate 3984 #define GL_BLEND_DST_RGB_OES 0x80C8 3985 #define GL_BLEND_SRC_RGB_OES 0x80C9 3986 #define GL_BLEND_DST_ALPHA_OES 0x80CA 3987 #define GL_BLEND_SRC_ALPHA_OES 0x80CB 3988 #endif 3989 3990 /* GL_OES_blend_subtract */ 3991 #ifndef GL_OES_blend_subtract 3992 #define GL_BLEND_EQUATION_OES 0x8009 3993 #define GL_FUNC_ADD_OES 0x8006 3994 #define GL_FUNC_SUBTRACT_OES 0x800A 3995 #define GL_FUNC_REVERSE_SUBTRACT_OES 0x800B 3996 #endif 3997 3998 /* GL_OES_draw_texture */ 3999 #ifndef GL_OES_draw_texture 4000 #define GL_TEXTURE_CROP_RECT_OES 0x8B9D 4001 #endif 4002 4003 /* GL_OES_EGL_image */ 4004 #ifndef GL_OES_EGL_image 4005 #endif 4006 4007 /* GL_OES_fixed_point */ 4008 #ifndef GL_OES_fixed_point 4009 #define GL_FIXED_OES 0x140C 4010 #endif 4011 4012 /* GL_OES_framebuffer_object */ 4013 #ifndef GL_OES_framebuffer_object 4014 #define GL_NONE_OES 0 4015 #define GL_FRAMEBUFFER_OES 0x8D40 4016 #define GL_RENDERBUFFER_OES 0x8D41 4017 #define GL_RGBA4_OES 0x8056 4018 #define GL_RGB5_A1_OES 0x8057 4019 #define GL_RGB565_OES 0x8D62 4020 #define GL_DEPTH_COMPONENT16_OES 0x81A5 4021 #define GL_RENDERBUFFER_WIDTH_OES 0x8D42 4022 #define GL_RENDERBUFFER_HEIGHT_OES 0x8D43 4023 #define GL_RENDERBUFFER_INTERNAL_FORMAT_OES 0x8D44 4024 #define GL_RENDERBUFFER_RED_SIZE_OES 0x8D50 4025 #define GL_RENDERBUFFER_GREEN_SIZE_OES 0x8D51 4026 #define GL_RENDERBUFFER_BLUE_SIZE_OES 0x8D52 4027 #define GL_RENDERBUFFER_ALPHA_SIZE_OES 0x8D53 4028 #define GL_RENDERBUFFER_DEPTH_SIZE_OES 0x8D54 4029 #define GL_RENDERBUFFER_STENCIL_SIZE_OES 0x8D55 4030 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES 0x8CD0 4031 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES 0x8CD1 4032 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES 0x8CD2 4033 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES 0x8CD3 4034 #define GL_COLOR_ATTACHMENT0_OES 0x8CE0 4035 #define GL_DEPTH_ATTACHMENT_OES 0x8D00 4036 #define GL_STENCIL_ATTACHMENT_OES 0x8D20 4037 #define GL_FRAMEBUFFER_COMPLETE_OES 0x8CD5 4038 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES 0x8CD6 4039 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES 0x8CD7 4040 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES 0x8CD9 4041 #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES 0x8CDA 4042 #define GL_FRAMEBUFFER_UNSUPPORTED_OES 0x8CDD 4043 #define GL_FRAMEBUFFER_BINDING_OES 0x8CA6 4044 #define GL_RENDERBUFFER_BINDING_OES 0x8CA7 4045 #define GL_MAX_RENDERBUFFER_SIZE_OES 0x84E8 4046 #define GL_INVALID_FRAMEBUFFER_OPERATION_OES 0x0506 4047 #endif 4048 4049 /* GL_OES_matrix_get */ 4050 #ifndef GL_OES_matrix_get 4051 #define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 0x898D 4052 #define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898E 4053 #define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 0x898F 4054 #endif 4055 4056 /* GL_OES_matrix_palette */ 4057 #ifndef GL_OES_matrix_palette 4058 #define GL_MAX_VERTEX_UNITS_OES 0x86A4 4059 #define GL_MAX_PALETTE_MATRICES_OES 0x8842 4060 #define GL_MATRIX_PALETTE_OES 0x8840 4061 #define GL_MATRIX_INDEX_ARRAY_OES 0x8844 4062 #define GL_WEIGHT_ARRAY_OES 0x86AD 4063 #define GL_CURRENT_PALETTE_MATRIX_OES 0x8843 4064 #define GL_MATRIX_INDEX_ARRAY_SIZE_OES 0x8846 4065 #define GL_MATRIX_INDEX_ARRAY_TYPE_OES 0x8847 4066 #define GL_MATRIX_INDEX_ARRAY_STRIDE_OES 0x8848 4067 #define GL_MATRIX_INDEX_ARRAY_POINTER_OES 0x8849 4068 #define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES 0x8B9E 4069 #define GL_WEIGHT_ARRAY_SIZE_OES 0x86AB 4070 #define GL_WEIGHT_ARRAY_TYPE_OES 0x86A9 4071 #define GL_WEIGHT_ARRAY_STRIDE_OES 0x86AA 4072 #define GL_WEIGHT_ARRAY_POINTER_OES 0x86AC 4073 #define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES 0x889E 4074 #endif 4075 4076 /* GL_OES_stencil8 */ 4077 #ifndef GL_OES_stencil8 4078 #define GL_STENCIL_INDEX8_OES 0x8D48 4079 #endif 4080 4081 /* GL_OES_stencil_wrap */ 4082 #ifndef GL_OES_stencil_wrap 4083 #define GL_INCR_WRAP_OES 0x8507 4084 #define GL_DECR_WRAP_OES 0x8508 4085 #endif 4086 4087 /* GL_OES_texture_cube_map */ 4088 #ifndef GL_OES_texture_cube_map 4089 #define GL_NORMAL_MAP_OES 0x8511 4090 #define GL_REFLECTION_MAP_OES 0x8512 4091 #define GL_TEXTURE_CUBE_MAP_OES 0x8513 4092 #define GL_TEXTURE_BINDING_CUBE_MAP_OES 0x8514 4093 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES 0x8515 4094 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES 0x8516 4095 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES 0x8517 4096 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES 0x8518 4097 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES 0x8519 4098 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES 0x851A 4099 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES 0x851C 4100 #define GL_TEXTURE_GEN_MODE_OES 0x2500 4101 #define GL_TEXTURE_GEN_STR_OES 0x8D60 4102 #endif 4103 4104 /* GL_OES_texture_mirrored_repeat */ 4105 #ifndef GL_OES_texture_mirrored_repeat 4106 #define GL_MIRRORED_REPEAT_OES 0x8370 4107 #endif 4108 4109 /*------------------------------------------------------------------------* 4110 * EXT extension tokens 4111 *------------------------------------------------------------------------*/ 4112 4113 /* GL_EXT_texture_lod_bias */ 4114 #ifndef GL_EXT_texture_lod_bias 4115 #define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD 4116 #define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 4117 #define GL_TEXTURE_LOD_BIAS_EXT 0x8501 4118 #endif 4119 4120 /*------------------------------------------------------------------------* 4121 * IMG extension tokens 4122 *------------------------------------------------------------------------*/ 4123 4124 /* GL_IMG_texture_env_enhanced_fixed_function */ 4125 #ifndef GL_IMG_texture_env_enhanced_fixed_function 4126 #define GL_MODULATE_COLOR_IMG 0x8C04 4127 #define GL_RECIP_ADD_SIGNED_ALPHA_IMG 0x8C05 4128 #define GL_TEXTURE_ALPHA_MODULATE_IMG 0x8C06 4129 #define GL_FACTOR_ALPHA_MODULATE_IMG 0x8C07 4130 #define GL_FRAGMENT_ALPHA_MODULATE_IMG 0x8C08 4131 #define GL_ADD_BLEND_IMG 0x8C09 4132 #define GL_DOT3_RGBA_IMG 0x86AF 4133 #endif 4134 4135 /* GL_IMG_user_clip_plane */ 4136 #ifndef GL_IMG_user_clip_plane 4137 #define GL_CLIP_PLANE0_IMG 0x3000 4138 #define GL_CLIP_PLANE1_IMG 0x3001 4139 #define GL_CLIP_PLANE2_IMG 0x3002 4140 #define GL_CLIP_PLANE3_IMG 0x3003 4141 #define GL_CLIP_PLANE4_IMG 0x3004 4142 #define GL_CLIP_PLANE5_IMG 0x3005 4143 #define GL_MAX_CLIP_PLANES_IMG 0x0D32 4144 #endif 4145 4146 /*------------------------------------------------------------------------* 4147 * OES extension functions 4148 *------------------------------------------------------------------------*/ 4149 4150 /* GL_OES_blend_equation_separate */ 4151 #ifndef GL_OES_blend_equation_separate 4152 #define GL_OES_blend_equation_separate 1 4153 #endif 4154 4155 /* GL_OES_blend_func_separate */ 4156 #ifndef GL_OES_blend_func_separate 4157 #define GL_OES_blend_func_separate 1 4158 #endif 4159 4160 /* GL_OES_blend_subtract */ 4161 #ifndef GL_OES_blend_subtract 4162 #define GL_OES_blend_subtract 1 4163 #endif 4164 4165 /* GL_OES_byte_coordinates */ 4166 #ifndef GL_OES_byte_coordinates 4167 #define GL_OES_byte_coordinates 1 4168 #endif 4169 4170 /* GL_OES_draw_texture */ 4171 #ifndef GL_OES_draw_texture 4172 #define GL_OES_draw_texture 1 4173 #endif 4174 4175 /* GL_OES_extended_matrix_palette */ 4176 #ifndef GL_OES_extended_matrix_palette 4177 #define GL_OES_extended_matrix_palette 1 4178 #endif 4179 4180 /* GL_OES_fixed_point */ 4181 #ifndef GL_OES_fixed_point 4182 #define GL_OES_fixed_point 1 4183 #endif 4184 4185 /* GL_OES_framebuffer_object */ 4186 #ifndef GL_OES_framebuffer_object 4187 #define GL_OES_framebuffer_object 1 4188 #endif 4189 4190 /* GL_OES_matrix_get */ 4191 #ifndef GL_OES_matrix_get 4192 #define GL_OES_matrix_get 1 4193 #endif 4194 4195 /* GL_OES_matrix_palette */ 4196 #ifndef GL_OES_matrix_palette 4197 #define GL_OES_matrix_palette 1 4198 #endif 4199 4200 /* GL_OES_query_matrix */ 4201 #ifndef GL_OES_query_matrix 4202 #define GL_OES_query_matrix 1 4203 #endif 4204 4205 /* GL_OES_single_precision */ 4206 #ifndef GL_OES_single_precision 4207 #define GL_OES_single_precision 1 4208 #endif 4209 4210 /* GL_OES_stencil8 */ 4211 #ifndef GL_OES_stencil8 4212 #define GL_OES_stencil8 1 4213 #endif 4214 4215 /* GL_OES_stencil_wrap */ 4216 #ifndef GL_OES_stencil_wrap 4217 #define GL_OES_stencil_wrap 1 4218 #endif 4219 4220 /* GL_OES_texture_cube_map */ 4221 #ifndef GL_OES_texture_cube_map 4222 #define GL_OES_texture_cube_map 1 4223 #endif 4224 4225 /* GL_OES_texture_env_crossbar */ 4226 #ifndef GL_OES_texture_env_crossbar 4227 #define GL_OES_texture_env_crossbar 1 4228 #endif 4229 4230 /* GL_OES_texture_mirrored_repeat */ 4231 #ifndef GL_OES_texture_mirrored_repeat 4232 #define GL_OES_texture_mirrored_repeat 1 4233 #endif 4234 4235 /*------------------------------------------------------------------------* 4236 * APPLE extension functions 4237 *------------------------------------------------------------------------*/ 4238 4239 /* GL_APPLE_texture_2D_limited_npot */ 4240 #ifndef GL_APPLE_texture_2D_limited_npot 4241 #define GL_APPLE_texture_2D_limited_npot 1 4242 #endif 4243 4244 /*------------------------------------------------------------------------* 4245 * EXT extension functions 4246 *------------------------------------------------------------------------*/ 4247 4248 /* GL_EXT_texture_lod_bias */ 4249 #ifndef GL_EXT_texture_lod_bias 4250 #define GL_EXT_texture_lod_bias 1 4251 #endif 4252 4253 /*------------------------------------------------------------------------* 4254 * IMG extension functions 4255 *------------------------------------------------------------------------*/ 4256 4257 /* GL_IMG_texture_env_enhanced_fixed_function */ 4258 #ifndef GL_IMG_texture_env_enhanced_fixed_function 4259 #define GL_IMG_texture_env_enhanced_fixed_function 1 4260 #endif 4261 4262 /* GL_IMG_user_clip_plane */ 4263 #ifndef GL_IMG_user_clip_plane 4264 #define GL_IMG_user_clip_plane 1 4265 #endif 4266 4267 #else 4268 # ifndef EVAS_GL_NO_GL_H_CHECK 4269 # error "You may only include either Evas_GL.h OR use your native GLES headers. If you use Evas to do GL, then you cannot use the native GLES headers." 4270 # endif 4271 #endif 4272 4273 #ifndef GL_ES_VERSION_2_0 4274 /* GL types for handling large vertex buffer objects */ 4275 # ifndef GL_VERSION_1_5 4276 # include <stddef.h> 4277 typedef ptrdiff_t GLintptr; // Changed khronos_intptr_t 4278 typedef ptrdiff_t GLsizeiptr; // Changed khronos_ssize_t 4279 # endif 4280 #endif 4281 4282 /* Some definitions from GLES 3.0. 4283 * Note: Evas_GL does NOT support GLES 3. 4284 */ 4285 4286 /* Evas can use RGB8_ETC2 and RGBA8_ETC2_EAC internally, depending on the driver */ 4287 #define GL_COMPRESSED_RGB8_ETC2 0x9274 4288 #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 4289 4290 4291 // These types are required since we can't include GLES/gl.h or gl2.h 4292 typedef signed int GLclampx; // Changed khronos_int32_t 4293 typedef struct __GLsync* GLsync; 4294 4295 4296 /* OpenGLES 3.0 */ 4297 #ifndef __gl3_h_ 4298 # define __gl3_h_ 1 4299 4300 #define GL_READ_BUFFER 0x0C02 4301 #define GL_UNPACK_ROW_LENGTH 0x0CF2 4302 #define GL_UNPACK_SKIP_ROWS 0x0CF3 4303 #define GL_UNPACK_SKIP_PIXELS 0x0CF4 4304 #define GL_PACK_ROW_LENGTH 0x0D02 4305 #define GL_PACK_SKIP_ROWS 0x0D03 4306 #define GL_PACK_SKIP_PIXELS 0x0D04 4307 #define GL_COLOR 0x1800 4308 #define GL_DEPTH 0x1801 4309 #define GL_STENCIL 0x1802 4310 #define GL_RED 0x1903 4311 #define GL_RGB8 0x8051 4312 #define GL_RGBA8 0x8058 4313 #define GL_RGB10_A2 0x8059 4314 #define GL_TEXTURE_BINDING_3D 0x806A 4315 #define GL_UNPACK_SKIP_IMAGES 0x806D 4316 #define GL_UNPACK_IMAGE_HEIGHT 0x806E 4317 #define GL_TEXTURE_3D 0x806F 4318 #define GL_TEXTURE_WRAP_R 0x8072 4319 #define GL_MAX_3D_TEXTURE_SIZE 0x8073 4320 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 4321 #define GL_MAX_ELEMENTS_VERTICES 0x80E8 4322 #define GL_MAX_ELEMENTS_INDICES 0x80E9 4323 #define GL_TEXTURE_MIN_LOD 0x813A 4324 #define GL_TEXTURE_MAX_LOD 0x813B 4325 #define GL_TEXTURE_BASE_LEVEL 0x813C 4326 #define GL_TEXTURE_MAX_LEVEL 0x813D 4327 #define GL_MIN 0x8007 4328 #define GL_MAX 0x8008 4329 #define GL_DEPTH_COMPONENT24 0x81A6 4330 #define GL_MAX_TEXTURE_LOD_BIAS 0x84FD 4331 #define GL_TEXTURE_COMPARE_MODE 0x884C 4332 #define GL_TEXTURE_COMPARE_FUNC 0x884D 4333 #define GL_CURRENT_QUERY 0x8865 4334 #define GL_QUERY_RESULT 0x8866 4335 #define GL_QUERY_RESULT_AVAILABLE 0x8867 4336 #define GL_BUFFER_MAPPED 0x88BC 4337 #define GL_BUFFER_MAP_POINTER 0x88BD 4338 #define GL_STREAM_READ 0x88E1 4339 #define GL_STREAM_COPY 0x88E2 4340 #define GL_STATIC_READ 0x88E5 4341 #define GL_STATIC_COPY 0x88E6 4342 #define GL_DYNAMIC_READ 0x88E9 4343 #define GL_DYNAMIC_COPY 0x88EA 4344 #define GL_MAX_DRAW_BUFFERS 0x8824 4345 #define GL_DRAW_BUFFER0 0x8825 4346 #define GL_DRAW_BUFFER1 0x8826 4347 #define GL_DRAW_BUFFER2 0x8827 4348 #define GL_DRAW_BUFFER3 0x8828 4349 #define GL_DRAW_BUFFER4 0x8829 4350 #define GL_DRAW_BUFFER5 0x882A 4351 #define GL_DRAW_BUFFER6 0x882B 4352 #define GL_DRAW_BUFFER7 0x882C 4353 #define GL_DRAW_BUFFER8 0x882D 4354 #define GL_DRAW_BUFFER9 0x882E 4355 #define GL_DRAW_BUFFER10 0x882F 4356 #define GL_DRAW_BUFFER11 0x8830 4357 #define GL_DRAW_BUFFER12 0x8831 4358 #define GL_DRAW_BUFFER13 0x8832 4359 #define GL_DRAW_BUFFER14 0x8833 4360 #define GL_DRAW_BUFFER15 0x8834 4361 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 4362 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A 4363 #define GL_SAMPLER_3D 0x8B5F 4364 #define GL_SAMPLER_2D_SHADOW 0x8B62 4365 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B 4366 #define GL_PIXEL_PACK_BUFFER 0x88EB 4367 #define GL_PIXEL_UNPACK_BUFFER 0x88EC 4368 #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED 4369 #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF 4370 #define GL_FLOAT_MAT2x3 0x8B65 4371 #define GL_FLOAT_MAT2x4 0x8B66 4372 #define GL_FLOAT_MAT3x2 0x8B67 4373 #define GL_FLOAT_MAT3x4 0x8B68 4374 #define GL_FLOAT_MAT4x2 0x8B69 4375 #define GL_FLOAT_MAT4x3 0x8B6A 4376 #define GL_SRGB 0x8C40 4377 #define GL_SRGB8 0x8C41 4378 #define GL_SRGB8_ALPHA8 0x8C43 4379 #define GL_COMPARE_REF_TO_TEXTURE 0x884E 4380 #define GL_MAJOR_VERSION 0x821B 4381 #define GL_MINOR_VERSION 0x821C 4382 #define GL_NUM_EXTENSIONS 0x821D 4383 #define GL_RGBA32F 0x8814 4384 #define GL_RGB32F 0x8815 4385 #define GL_RGBA16F 0x881A 4386 #define GL_RGB16F 0x881B 4387 #define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD 4388 #define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF 4389 #define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 4390 #define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 4391 #define GL_MAX_VARYING_COMPONENTS 0x8B4B 4392 #define GL_TEXTURE_2D_ARRAY 0x8C1A 4393 #define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D 4394 #define GL_R11F_G11F_B10F 0x8C3A 4395 #define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B 4396 #define GL_RGB9_E5 0x8C3D 4397 #define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E 4398 #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 4399 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F 4400 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 4401 #define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 4402 #define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 4403 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 4404 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 4405 #define GL_RASTERIZER_DISCARD 0x8C89 4406 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A 4407 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B 4408 #define GL_INTERLEAVED_ATTRIBS 0x8C8C 4409 #define GL_SEPARATE_ATTRIBS 0x8C8D 4410 #define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E 4411 #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F 4412 #define GL_RGBA32UI 0x8D70 4413 #define GL_RGB32UI 0x8D71 4414 #define GL_RGBA16UI 0x8D76 4415 #define GL_RGB16UI 0x8D77 4416 #define GL_RGBA8UI 0x8D7C 4417 #define GL_RGB8UI 0x8D7D 4418 #define GL_RGBA32I 0x8D82 4419 #define GL_RGB32I 0x8D83 4420 #define GL_RGBA16I 0x8D88 4421 #define GL_RGB16I 0x8D89 4422 #define GL_RGBA8I 0x8D8E 4423 #define GL_RGB8I 0x8D8F 4424 #define GL_RED_INTEGER 0x8D94 4425 #define GL_RGB_INTEGER 0x8D98 4426 #define GL_RGBA_INTEGER 0x8D99 4427 #define GL_SAMPLER_2D_ARRAY 0x8DC1 4428 #define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 4429 #define GL_SAMPLER_CUBE_SHADOW 0x8DC5 4430 #define GL_UNSIGNED_INT_VEC2 0x8DC6 4431 #define GL_UNSIGNED_INT_VEC3 0x8DC7 4432 #define GL_UNSIGNED_INT_VEC4 0x8DC8 4433 #define GL_INT_SAMPLER_2D 0x8DCA 4434 #define GL_INT_SAMPLER_3D 0x8DCB 4435 #define GL_INT_SAMPLER_CUBE 0x8DCC 4436 #define GL_INT_SAMPLER_2D_ARRAY 0x8DCF 4437 #define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 4438 #define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 4439 #define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 4440 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 4441 #define GL_BUFFER_ACCESS_FLAGS 0x911F 4442 #define GL_BUFFER_MAP_LENGTH 0x9120 4443 #define GL_BUFFER_MAP_OFFSET 0x9121 4444 #define GL_DEPTH_COMPONENT32F 0x8CAC 4445 #define GL_DEPTH32F_STENCIL8 0x8CAD 4446 #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD 4447 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 4448 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 4449 #define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 4450 #define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 4451 #define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 4452 #define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 4453 #define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 4454 #define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 4455 #define GL_FRAMEBUFFER_DEFAULT 0x8218 4456 #define GL_FRAMEBUFFER_UNDEFINED 0x8219 4457 #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A 4458 #define GL_DEPTH_STENCIL 0x84F9 4459 #define GL_UNSIGNED_INT_24_8 0x84FA 4460 #define GL_DEPTH24_STENCIL8 0x88F0 4461 #define GL_UNSIGNED_NORMALIZED 0x8C17 4462 #define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 4463 #define GL_READ_FRAMEBUFFER 0x8CA8 4464 #define GL_DRAW_FRAMEBUFFER 0x8CA9 4465 #define GL_READ_FRAMEBUFFER_BINDING 0x8CAA 4466 #define GL_RENDERBUFFER_SAMPLES 0x8CAB 4467 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 4468 #define GL_MAX_COLOR_ATTACHMENTS 0x8CDF 4469 #define GL_COLOR_ATTACHMENT1 0x8CE1 4470 #define GL_COLOR_ATTACHMENT2 0x8CE2 4471 #define GL_COLOR_ATTACHMENT3 0x8CE3 4472 #define GL_COLOR_ATTACHMENT4 0x8CE4 4473 #define GL_COLOR_ATTACHMENT5 0x8CE5 4474 #define GL_COLOR_ATTACHMENT6 0x8CE6 4475 #define GL_COLOR_ATTACHMENT7 0x8CE7 4476 #define GL_COLOR_ATTACHMENT8 0x8CE8 4477 #define GL_COLOR_ATTACHMENT9 0x8CE9 4478 #define GL_COLOR_ATTACHMENT10 0x8CEA 4479 #define GL_COLOR_ATTACHMENT11 0x8CEB 4480 #define GL_COLOR_ATTACHMENT12 0x8CEC 4481 #define GL_COLOR_ATTACHMENT13 0x8CED 4482 #define GL_COLOR_ATTACHMENT14 0x8CEE 4483 #define GL_COLOR_ATTACHMENT15 0x8CEF 4484 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 4485 #define GL_MAX_SAMPLES 0x8D57 4486 #define GL_HALF_FLOAT 0x140B 4487 #define GL_MAP_READ_BIT 0x0001 4488 #define GL_MAP_WRITE_BIT 0x0002 4489 #define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 4490 #define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 4491 #define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 4492 #define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 4493 #define GL_RG 0x8227 4494 #define GL_RG_INTEGER 0x8228 4495 #define GL_R8 0x8229 4496 #define GL_RG8 0x822B 4497 #define GL_R16F 0x822D 4498 #define GL_R32F 0x822E 4499 #define GL_RG16F 0x822F 4500 #define GL_RG32F 0x8230 4501 #define GL_R8I 0x8231 4502 #define GL_R8UI 0x8232 4503 #define GL_R16I 0x8233 4504 #define GL_R16UI 0x8234 4505 #define GL_R32I 0x8235 4506 #define GL_R32UI 0x8236 4507 #define GL_RG8I 0x8237 4508 #define GL_RG8UI 0x8238 4509 #define GL_RG16I 0x8239 4510 #define GL_RG16UI 0x823A 4511 #define GL_RG32I 0x823B 4512 #define GL_RG32UI 0x823C 4513 #define GL_VERTEX_ARRAY_BINDING 0x85B5 4514 #define GL_R8_SNORM 0x8F94 4515 #define GL_RG8_SNORM 0x8F95 4516 #define GL_RGB8_SNORM 0x8F96 4517 #define GL_RGBA8_SNORM 0x8F97 4518 #define GL_SIGNED_NORMALIZED 0x8F9C 4519 #define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 4520 #define GL_COPY_READ_BUFFER 0x8F36 4521 #define GL_COPY_WRITE_BUFFER 0x8F37 4522 #define GL_COPY_READ_BUFFER_BINDING 0x8F36 4523 #define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 4524 #define GL_UNIFORM_BUFFER 0x8A11 4525 #define GL_UNIFORM_BUFFER_BINDING 0x8A28 4526 #define GL_UNIFORM_BUFFER_START 0x8A29 4527 #define GL_UNIFORM_BUFFER_SIZE 0x8A2A 4528 #define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B 4529 #define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D 4530 #define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E 4531 #define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F 4532 #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 4533 #define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 4534 #define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 4535 #define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 4536 #define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 4537 #define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 4538 #define GL_UNIFORM_TYPE 0x8A37 4539 #define GL_UNIFORM_SIZE 0x8A38 4540 #define GL_UNIFORM_NAME_LENGTH 0x8A39 4541 #define GL_UNIFORM_BLOCK_INDEX 0x8A3A 4542 #define GL_UNIFORM_OFFSET 0x8A3B 4543 #define GL_UNIFORM_ARRAY_STRIDE 0x8A3C 4544 #define GL_UNIFORM_MATRIX_STRIDE 0x8A3D 4545 #define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E 4546 #define GL_UNIFORM_BLOCK_BINDING 0x8A3F 4547 #define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 4548 #define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 4549 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 4550 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 4551 #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 4552 #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 4553 #define GL_INVALID_INDEX 0xFFFFFFFFu 4554 #define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 4555 #define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 4556 #define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 4557 #define GL_OBJECT_TYPE 0x9112 4558 #define GL_SYNC_CONDITION 0x9113 4559 #define GL_SYNC_STATUS 0x9114 4560 #define GL_SYNC_FLAGS 0x9115 4561 #define GL_SYNC_FENCE 0x9116 4562 #define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 4563 #define GL_UNSIGNALED 0x9118 4564 #define GL_SIGNALED 0x9119 4565 #define GL_ALREADY_SIGNALED 0x911A 4566 #define GL_TIMEOUT_EXPIRED 0x911B 4567 #define GL_CONDITION_SATISFIED 0x911C 4568 #define GL_WAIT_FAILED 0x911D 4569 #define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 4570 #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull 4571 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE 4572 #define GL_ANY_SAMPLES_PASSED 0x8C2F 4573 #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A 4574 #define GL_SAMPLER_BINDING 0x8919 4575 #define GL_RGB10_A2UI 0x906F 4576 #define GL_TEXTURE_SWIZZLE_R 0x8E42 4577 #define GL_TEXTURE_SWIZZLE_G 0x8E43 4578 #define GL_TEXTURE_SWIZZLE_B 0x8E44 4579 #define GL_TEXTURE_SWIZZLE_A 0x8E45 4580 #define GL_GREEN 0x1904 4581 #define GL_BLUE 0x1905 4582 #define GL_INT_2_10_10_10_REV 0x8D9F 4583 #define GL_TRANSFORM_FEEDBACK 0x8E22 4584 #define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 4585 #define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 4586 #define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 4587 #define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 4588 #define GL_PROGRAM_BINARY_LENGTH 0x8741 4589 #define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE 4590 #define GL_PROGRAM_BINARY_FORMATS 0x87FF 4591 #define GL_COMPRESSED_R11_EAC 0x9270 4592 #define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 4593 #define GL_COMPRESSED_RG11_EAC 0x9272 4594 #define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 4595 #define GL_COMPRESSED_RGB8_ETC2 0x9274 4596 #define GL_COMPRESSED_SRGB8_ETC2 0x9275 4597 #define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 4598 #define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 4599 #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 4600 #define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 4601 #define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F 4602 #define GL_MAX_ELEMENT_INDEX 0x8D6B 4603 #define GL_NUM_SAMPLE_COUNTS 0x9380 4604 #define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF 4605 4606 #endif 4607 4608 #ifndef __gl31_h_ 4609 #define __gl31_h_ 1 4610 4611 #define GL_COMPUTE_SHADER 0x91B9 4612 #define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB 4613 #define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC 4614 #define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD 4615 #define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 4616 #define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 4617 #define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 4618 #define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 4619 #define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 4620 #define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB 4621 #define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE 4622 #define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF 4623 #define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 4624 #define GL_DISPATCH_INDIRECT_BUFFER 0x90EE 4625 #define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF 4626 #define GL_COMPUTE_SHADER_BIT 0x00000020 4627 #define GL_DRAW_INDIRECT_BUFFER 0x8F3F 4628 #define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 4629 #define GL_MAX_UNIFORM_LOCATIONS 0x826E 4630 #define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 4631 #define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 4632 #define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 4633 #define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 4634 #define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 4635 #define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 4636 #define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 4637 #define GL_UNIFORM 0x92E1 4638 #define GL_UNIFORM_BLOCK 0x92E2 4639 #define GL_PROGRAM_INPUT 0x92E3 4640 #define GL_PROGRAM_OUTPUT 0x92E4 4641 #define GL_BUFFER_VARIABLE 0x92E5 4642 #define GL_SHADER_STORAGE_BLOCK 0x92E6 4643 #define GL_ATOMIC_COUNTER_BUFFER 0x92C0 4644 #define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 4645 #define GL_ACTIVE_RESOURCES 0x92F5 4646 #define GL_MAX_NAME_LENGTH 0x92F6 4647 #define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 4648 #define GL_NAME_LENGTH 0x92F9 4649 #define GL_TYPE 0x92FA 4650 #define GL_ARRAY_SIZE 0x92FB 4651 #define GL_OFFSET 0x92FC 4652 #define GL_BLOCK_INDEX 0x92FD 4653 #define GL_ARRAY_STRIDE 0x92FE 4654 #define GL_MATRIX_STRIDE 0x92FF 4655 #define GL_IS_ROW_MAJOR 0x9300 4656 #define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 4657 #define GL_BUFFER_BINDING 0x9302 4658 #define GL_BUFFER_DATA_SIZE 0x9303 4659 #define GL_NUM_ACTIVE_VARIABLES 0x9304 4660 #define GL_ACTIVE_VARIABLES 0x9305 4661 #define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 4662 #define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A 4663 #define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B 4664 #define GL_TOP_LEVEL_ARRAY_SIZE 0x930C 4665 #define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D 4666 #define GL_LOCATION 0x930E 4667 #define GL_VERTEX_SHADER_BIT 0x00000001 4668 #define GL_FRAGMENT_SHADER_BIT 0x00000002 4669 #define GL_ALL_SHADER_BITS 0xFFFFFFFF 4670 #define GL_PROGRAM_SEPARABLE 0x8258 4671 #define GL_ACTIVE_PROGRAM 0x8259 4672 #define GL_PROGRAM_PIPELINE_BINDING 0x825A 4673 #define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 4674 #define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 4675 #define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 4676 #define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC 4677 #define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 4678 #define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 4679 #define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 4680 #define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 4681 #define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 4682 #define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 4683 #define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC 4684 #define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 4685 #define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB 4686 #define GL_MAX_IMAGE_UNITS 0x8F38 4687 #define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA 4688 #define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE 4689 #define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF 4690 #define GL_IMAGE_BINDING_NAME 0x8F3A 4691 #define GL_IMAGE_BINDING_LEVEL 0x8F3B 4692 #define GL_IMAGE_BINDING_LAYERED 0x8F3C 4693 #define GL_IMAGE_BINDING_LAYER 0x8F3D 4694 #define GL_IMAGE_BINDING_ACCESS 0x8F3E 4695 #define GL_IMAGE_BINDING_FORMAT 0x906E 4696 #define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 4697 #define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 4698 #define GL_UNIFORM_BARRIER_BIT 0x00000004 4699 #define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 4700 #define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 4701 #define GL_COMMAND_BARRIER_BIT 0x00000040 4702 #define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 4703 #define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 4704 #define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 4705 #define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 4706 #define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 4707 #define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 4708 #define GL_ALL_BARRIER_BITS 0xFFFFFFFF 4709 #define GL_IMAGE_2D 0x904D 4710 #define GL_IMAGE_3D 0x904E 4711 #define GL_IMAGE_CUBE 0x9050 4712 #define GL_IMAGE_2D_ARRAY 0x9053 4713 #define GL_INT_IMAGE_2D 0x9058 4714 #define GL_INT_IMAGE_3D 0x9059 4715 #define GL_INT_IMAGE_CUBE 0x905B 4716 #define GL_INT_IMAGE_2D_ARRAY 0x905E 4717 #define GL_UNSIGNED_INT_IMAGE_2D 0x9063 4718 #define GL_UNSIGNED_INT_IMAGE_3D 0x9064 4719 #define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 4720 #define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 4721 #define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 4722 #define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 4723 #define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 4724 #define GL_READ_ONLY 0x88B8 4725 #define GL_WRITE_ONLY 0x88B9 4726 #define GL_READ_WRITE 0x88BA 4727 #define GL_SHADER_STORAGE_BUFFER 0x90D2 4728 #define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 4729 #define GL_SHADER_STORAGE_BUFFER_START 0x90D4 4730 #define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 4731 #define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 4732 #define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA 4733 #define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB 4734 #define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC 4735 #define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD 4736 #define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE 4737 #define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF 4738 #define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 4739 #define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 4740 #define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA 4741 #define GL_STENCIL_INDEX 0x1901 4742 #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E 4743 #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F 4744 #define GL_SAMPLE_POSITION 0x8E50 4745 #define GL_SAMPLE_MASK 0x8E51 4746 #define GL_SAMPLE_MASK_VALUE 0x8E52 4747 #define GL_TEXTURE_2D_MULTISAMPLE 0x9100 4748 #define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 4749 #define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E 4750 #define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F 4751 #define GL_MAX_INTEGER_SAMPLES 0x9110 4752 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 4753 #define GL_TEXTURE_SAMPLES 0x9106 4754 #define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 4755 #define GL_TEXTURE_WIDTH 0x1000 4756 #define GL_TEXTURE_HEIGHT 0x1001 4757 #define GL_TEXTURE_DEPTH 0x8071 4758 #define GL_TEXTURE_INTERNAL_FORMAT 0x1003 4759 #define GL_TEXTURE_RED_SIZE 0x805C 4760 #define GL_TEXTURE_GREEN_SIZE 0x805D 4761 #define GL_TEXTURE_BLUE_SIZE 0x805E 4762 #define GL_TEXTURE_ALPHA_SIZE 0x805F 4763 #define GL_TEXTURE_DEPTH_SIZE 0x884A 4764 #define GL_TEXTURE_STENCIL_SIZE 0x88F1 4765 #define GL_TEXTURE_SHARED_SIZE 0x8C3F 4766 #define GL_TEXTURE_RED_TYPE 0x8C10 4767 #define GL_TEXTURE_GREEN_TYPE 0x8C11 4768 #define GL_TEXTURE_BLUE_TYPE 0x8C12 4769 #define GL_TEXTURE_ALPHA_TYPE 0x8C13 4770 #define GL_TEXTURE_DEPTH_TYPE 0x8C16 4771 #define GL_TEXTURE_COMPRESSED 0x86A1 4772 #define GL_SAMPLER_2D_MULTISAMPLE 0x9108 4773 #define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 4774 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A 4775 #define GL_VERTEX_ATTRIB_BINDING 0x82D4 4776 #define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 4777 #define GL_VERTEX_BINDING_DIVISOR 0x82D6 4778 #define GL_VERTEX_BINDING_OFFSET 0x82D7 4779 #define GL_VERTEX_BINDING_STRIDE 0x82D8 4780 #define GL_VERTEX_BINDING_BUFFER 0x8F4F 4781 #define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 4782 #define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA 4783 #define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 4784 #endif 4785 4786 /* OpenGLES 3.2 */ 4787 #ifndef __gl32_h_ 4788 #define __gl32_h_ 1 4789 4790 typedef void (*GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); 4791 4792 #define GL_MULTISAMPLE_LINE_WIDTH_RANGE 0x9381 4793 #define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY 0x9382 4794 #define GL_MULTIPLY 0x9294 4795 #define GL_SCREEN 0x9295 4796 #define GL_OVERLAY 0x9296 4797 #define GL_DARKEN 0x9297 4798 #define GL_LIGHTEN 0x9298 4799 #define GL_COLORDODGE 0x9299 4800 #define GL_COLORBURN 0x929A 4801 #define GL_HARDLIGHT 0x929B 4802 #define GL_SOFTLIGHT 0x929C 4803 #define GL_DIFFERENCE 0x929E 4804 #define GL_EXCLUSION 0x92A0 4805 #define GL_HSL_HUE 0x92AD 4806 #define GL_HSL_SATURATION 0x92AE 4807 #define GL_HSL_COLOR 0x92AF 4808 #define GL_HSL_LUMINOSITY 0x92B0 4809 #define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 4810 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 4811 #define GL_DEBUG_CALLBACK_FUNCTION 0x8244 4812 #define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 4813 #define GL_DEBUG_SOURCE_API 0x8246 4814 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 4815 #define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 4816 #define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 4817 #define GL_DEBUG_SOURCE_APPLICATION 0x824A 4818 #define GL_DEBUG_SOURCE_OTHER 0x824B 4819 #define GL_DEBUG_TYPE_ERROR 0x824C 4820 #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D 4821 #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E 4822 #define GL_DEBUG_TYPE_PORTABILITY 0x824F 4823 #define GL_DEBUG_TYPE_PERFORMANCE 0x8250 4824 #define GL_DEBUG_TYPE_OTHER 0x8251 4825 #define GL_DEBUG_TYPE_MARKER 0x8268 4826 #define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 4827 #define GL_DEBUG_TYPE_POP_GROUP 0x826A 4828 #define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B 4829 #define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C 4830 #define GL_DEBUG_GROUP_STACK_DEPTH 0x826D 4831 #define GL_BUFFER 0x82E0 4832 #define GL_SHADER 0x82E1 4833 #define GL_PROGRAM 0x82E2 4834 #define GL_VERTEX_ARRAY 0x8074 4835 #define GL_QUERY 0x82E3 4836 #define GL_PROGRAM_PIPELINE 0x82E4 4837 #define GL_SAMPLER 0x82E6 4838 #define GL_MAX_LABEL_LENGTH 0x82E8 4839 #define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 4840 #define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 4841 #define GL_DEBUG_LOGGED_MESSAGES 0x9145 4842 #define GL_DEBUG_SEVERITY_HIGH 0x9146 4843 #define GL_DEBUG_SEVERITY_MEDIUM 0x9147 4844 #define GL_DEBUG_SEVERITY_LOW 0x9148 4845 #define GL_DEBUG_OUTPUT 0x92E0 4846 #define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 4847 #define GL_STACK_OVERFLOW 0x0503 4848 #define GL_STACK_UNDERFLOW 0x0504 4849 #define GL_GEOMETRY_SHADER 0x8DD9 4850 #define GL_GEOMETRY_SHADER_BIT 0x00000004 4851 #define GL_GEOMETRY_VERTICES_OUT 0x8916 4852 #define GL_GEOMETRY_INPUT_TYPE 0x8917 4853 #define GL_GEOMETRY_OUTPUT_TYPE 0x8918 4854 #define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F 4855 #define GL_LAYER_PROVOKING_VERTEX 0x825E 4856 #define GL_LINES_ADJACENCY 0x000A 4857 #define GL_LINE_STRIP_ADJACENCY 0x000B 4858 #define GL_TRIANGLES_ADJACENCY 0x000C 4859 #define GL_TRIANGLE_STRIP_ADJACENCY 0x000D 4860 #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF 4861 #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C 4862 #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 4863 #define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 4864 #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 4865 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 4866 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 4867 #define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A 4868 #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 4869 #define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF 4870 #define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 4871 #define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD 4872 #define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 4873 #define GL_FIRST_VERTEX_CONVENTION 0x8E4D 4874 #define GL_LAST_VERTEX_CONVENTION 0x8E4E 4875 #define GL_UNDEFINED_VERTEX 0x8260 4876 #define GL_PRIMITIVES_GENERATED 0x8C87 4877 #define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 4878 #define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 4879 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 4880 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 4881 #define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 4882 #define GL_PRIMITIVE_BOUNDING_BOX 0x92BE 4883 #define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 4884 #define GL_CONTEXT_FLAGS 0x821E 4885 #define GL_LOSE_CONTEXT_ON_RESET 0x8252 4886 #define GL_GUILTY_CONTEXT_RESET 0x8253 4887 #define GL_INNOCENT_CONTEXT_RESET 0x8254 4888 #define GL_UNKNOWN_CONTEXT_RESET 0x8255 4889 #define GL_RESET_NOTIFICATION_STRATEGY 0x8256 4890 #define GL_NO_RESET_NOTIFICATION 0x8261 4891 #define GL_CONTEXT_LOST 0x0507 4892 #define GL_SAMPLE_SHADING 0x8C36 4893 #define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 4894 #define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B 4895 #define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C 4896 #define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D 4897 #define GL_PATCHES 0x000E 4898 #define GL_PATCH_VERTICES 0x8E72 4899 #define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 4900 #define GL_TESS_GEN_MODE 0x8E76 4901 #define GL_TESS_GEN_SPACING 0x8E77 4902 #define GL_TESS_GEN_VERTEX_ORDER 0x8E78 4903 #define GL_TESS_GEN_POINT_MODE 0x8E79 4904 #define GL_ISOLINES 0x8E7A 4905 #define GL_QUADS 0x0007 4906 #define GL_FRACTIONAL_ODD 0x8E7B 4907 #define GL_FRACTIONAL_EVEN 0x8E7C 4908 #define GL_MAX_PATCH_VERTICES 0x8E7D 4909 #define GL_MAX_TESS_GEN_LEVEL 0x8E7E 4910 #define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F 4911 #define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 4912 #define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 4913 #define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 4914 #define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 4915 #define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 4916 #define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 4917 #define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 4918 #define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 4919 #define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A 4920 #define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C 4921 #define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D 4922 #define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E 4923 #define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F 4924 #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD 4925 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE 4926 #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 4927 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 4928 #define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB 4929 #define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC 4930 #define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 4931 #define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 4932 #define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 4933 #define GL_IS_PER_PATCH 0x92E7 4934 #define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 4935 #define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 4936 #define GL_TESS_CONTROL_SHADER 0x8E88 4937 #define GL_TESS_EVALUATION_SHADER 0x8E87 4938 #define GL_TESS_CONTROL_SHADER_BIT 0x00000008 4939 #define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 4940 #define GL_TEXTURE_BORDER_COLOR 0x1004 4941 #define GL_CLAMP_TO_BORDER 0x812D 4942 #define GL_TEXTURE_BUFFER 0x8C2A 4943 #define GL_TEXTURE_BUFFER_BINDING 0x8C2A 4944 #define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B 4945 #define GL_TEXTURE_BINDING_BUFFER 0x8C2C 4946 #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D 4947 #define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F 4948 #define GL_SAMPLER_BUFFER 0x8DC2 4949 #define GL_INT_SAMPLER_BUFFER 0x8DD0 4950 #define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 4951 #define GL_IMAGE_BUFFER 0x9051 4952 #define GL_INT_IMAGE_BUFFER 0x905C 4953 #define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 4954 #define GL_TEXTURE_BUFFER_OFFSET 0x919D 4955 #define GL_TEXTURE_BUFFER_SIZE 0x919E 4956 #define GL_COMPRESSED_RGBA_ASTC_4x4 0x93B0 4957 #define GL_COMPRESSED_RGBA_ASTC_5x4 0x93B1 4958 #define GL_COMPRESSED_RGBA_ASTC_5x5 0x93B2 4959 #define GL_COMPRESSED_RGBA_ASTC_6x5 0x93B3 4960 #define GL_COMPRESSED_RGBA_ASTC_6x6 0x93B4 4961 #define GL_COMPRESSED_RGBA_ASTC_8x5 0x93B5 4962 #define GL_COMPRESSED_RGBA_ASTC_8x6 0x93B6 4963 #define GL_COMPRESSED_RGBA_ASTC_8x8 0x93B7 4964 #define GL_COMPRESSED_RGBA_ASTC_10x5 0x93B8 4965 #define GL_COMPRESSED_RGBA_ASTC_10x6 0x93B9 4966 #define GL_COMPRESSED_RGBA_ASTC_10x8 0x93BA 4967 #define GL_COMPRESSED_RGBA_ASTC_10x10 0x93BB 4968 #define GL_COMPRESSED_RGBA_ASTC_12x10 0x93BC 4969 #define GL_COMPRESSED_RGBA_ASTC_12x12 0x93BD 4970 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 0x93D0 4971 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 0x93D1 4972 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 0x93D2 4973 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 0x93D3 4974 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 0x93D4 4975 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 0x93D5 4976 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 0x93D6 4977 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 0x93D7 4978 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 0x93D8 4979 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 0x93D9 4980 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 0x93DA 4981 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 0x93DB 4982 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 0x93DC 4983 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 0x93DD 4984 #define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 4985 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A 4986 #define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C 4987 #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D 4988 #define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E 4989 #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F 4990 #define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 4991 #define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F 4992 #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A 4993 #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 4994 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 4995 #define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B 4996 #define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C 4997 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D 4998 #endif 4999 5000 /* 5001 * EGL-related definitions 5002 * 5003 * Note the names have been changed from EGL to EvasGL so as to be 5004 * platform independent. Except for the error codes, the following 5005 * EVAS_GL_x definitions have the same values as their EGL_x counterparts. 5006 * Please note that the error codes have been reset to start from 0 (success). 5007 */ 5008 5009 /* EGL/EvasGL Types */ 5010 typedef void *EvasGLSync; 5011 typedef unsigned long long EvasGLTime; 5012 5013 /* @brief Attribute list terminator 5014 * 0 is also accepted as an attribute terminator. 5015 * Evas_GL will ensure that the attribute list is always properly terminated 5016 * (e.g. using EGL_NONE for EGL backends) and the values are supported by the 5017 * backends. 5018 */ 5019 #define EVAS_GL_NONE 0x3038 5020 5021 /* EGL_KHR_image_base */ 5022 #define EVAS_GL_image_base 1 5023 #define EVAS_GL_IMAGE_PRESERVED 0x30D2 /**< @brief An attribute for @ref evasglCreateImage or @ref evasglCreateImageForContext, the default is @c EINA_FALSE. Please refer to @c EGL_IMAGE_PRESERVED_KHR. */ 5024 5025 /* EGL_KHR_image */ 5026 #define EVAS_GL_image 1 5027 #define EVAS_GL_NATIVE_PIXMAP 0x30B0 /**< @internal A target for @ref evasglCreateImage or @ref evasglCreateImageForContext. Since it is X11-specific, it should not be used by Tizen applications. */ 5028 5029 /* EGL_KHR_vg_parent_image */ 5030 #define EVAS_VG_PARENT_IMAGE 0x30BA /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */ 5031 5032 /* EGL_KHR_gl_texture_2D_image */ 5033 #define EVAS_GL_TEXTURE_2D 0x30B1 /**< @brief An attribute for @ref evasglCreateImage or @ref evasglCreateImageForContext */ 5034 #define EVAS_GL_TEXTURE_LEVEL 0x30BC /**< @brief An attribute for @ref evasglCreateImage or @ref evasglCreateImageForContext */ 5035 5036 /* EGL_KHR_gl_texture_cubemap_image */ 5037 #define EVAS_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */ 5038 #define EVAS_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */ 5039 #define EVAS_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */ 5040 #define EVAS_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */ 5041 #define EVAS_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */ 5042 #define EVAS_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */ 5043 5044 /* EGL_KHR_gl_texture_3D_image */ 5045 #define EVAS_GL_TEXTURE_3D 0x30B2 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */ 5046 #define EVAS_GL_TEXTURE_ZOFFSET 0x30BD /**< @brief An attribute for @ref evasglCreateImage or @ref evasglCreateImageForContext */ 5047 5048 /* EGL_KHR_gl_renderbuffer_image */ 5049 #define EVAS_GL_RENDERBUFFER 0x30B9 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */ 5050 5051 /* Out-of-band attribute value */ 5052 #define EVAS_GL_DONT_CARE (-1) 5053 5054 /* EGL_TIZEN_image_native_surface */ 5055 #define EVAS_GL_TIZEN_image_native_surface 1 5056 #define EVAS_GL_NATIVE_SURFACE_TIZEN 0x32A1 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext. This is a Tizen specific feature. */ 5057 5058 /** 5059 * @name Evas GL error codes 5060 * 5061 * These are the possible return values of @ref evas_gl_error_get. 5062 * The values are the same as EGL error codes - @c EGL_SUCCESS. 5063 * 5064 * Some of the values may be set directly by Evas GL when an obvious error was 5065 * detected (e.g. @c NULL pointers or invalid dimensions), otherwise Evas GL will 5066 * call the backend's GetError() function and translate to a valid @c EVAS_GL_ 5067 * error code. 5068 * 5069 * @since 1.12 5070 * 5071 * @{ 5072 */ 5073 #define EVAS_GL_SUCCESS 0x0000 /**< @brief The last evas_gl_ operation succeeded. A call to @c evas_gl_error_get() will reset the error. */ 5074 #define EVAS_GL_NOT_INITIALIZED 0x0001 /**< @brief Evas GL was not initialized or a @c NULL pointer was passed */ 5075 #define EVAS_GL_BAD_ACCESS 0x0002 /**< @brief Bad access; for more information, please refer to its EGL counterpart */ 5076 #define EVAS_GL_BAD_ALLOC 0x0003 /**< @brief Bad allocation; for more information, please refer to its EGL counterpart */ 5077 #define EVAS_GL_BAD_ATTRIBUTE 0x0004 /**< @brief Bad attribute; for more information, please refer to its EGL counterpart */ 5078 #define EVAS_GL_BAD_CONFIG 0x0005 /**< @brief Bad configuration; for more information, please refer to its EGL counterpart */ 5079 #define EVAS_GL_BAD_CONTEXT 0x0006 /**< @brief Bad context; for more information, please refer to its EGL counterpart */ 5080 #define EVAS_GL_BAD_CURRENT_SURFACE 0x0007 /**< @brief Bad current surface; for more information, please refer to its EGL counterpart */ 5081 #define EVAS_GL_BAD_DISPLAY 0x0008 /**< @brief Bad display; for more information, please refer to its EGL counterpart */ 5082 #define EVAS_GL_BAD_MATCH 0x0009 /**< @brief Bad match; for more information, please refer to its EGL counterpart */ 5083 #define EVAS_GL_BAD_NATIVE_PIXMAP 0x000A /**< @internal Bad native pixmap; for more information, please refer to its EGL counterpart */ 5084 #define EVAS_GL_BAD_NATIVE_WINDOW 0x000B /**< @brief Bad native window; for more information, please refer to its EGL counterpart */ 5085 #define EVAS_GL_BAD_PARAMETER 0x000C /**< @brief Bad parameter; for more information, please refer to its EGL counterpart */ 5086 #define EVAS_GL_BAD_SURFACE 0x000D /**< @brief Bad surface; for more information, please refer to its EGL counterpart */ 5087 /* EGL 1.1 - IMG_power_management */ 5088 #define EVAS_GL_CONTEXT_LOST 0x000E /**< @brief Context lost; for more information, please refer to its EGL counterpart */ 5089 5090 /** @} */ 5091 5092 /* EGL_KHR_fence_sync - EVAS_GL_fence_sync */ 5093 #define EVAS_GL_fence_sync 1 5094 /* EGL_KHR_reusable_sync - EVAS_GL_reusable_sync */ 5095 #define EVAS_GL_reusable_sync 1 5096 /* EGL_KHR_wait_sync - EVAS_GL_wait_sync */ 5097 #define EVAS_GL_KHR_wait_sync 1 5098 5099 /** 5100 * @anchor evasgl_sync_values 5101 * @name Constants used to define and wait for Sync objects. 5102 * @{ 5103 */ 5104 #define EVAS_GL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 /**< @brief A value for @ref evasglGetSyncAttrib with @ref EVAS_GL_SYNC_CONDITION */ 5105 #define EVAS_GL_SYNC_STATUS 0x30F1 /**< @brief A attribute for @ref evasglGetSyncAttrib */ 5106 #define EVAS_GL_SIGNALED 0x30F2 /**< @brief A value for @ref evasglGetSyncAttrib with @ref EVAS_GL_SYNC_STATUS */ 5107 #define EVAS_GL_UNSIGNALED 0x30F3 /**< @brief A value for @ref evasglGetSyncAttrib with @ref EVAS_GL_SYNC_STATUS */ 5108 #define EVAS_GL_TIMEOUT_EXPIRED 0x30F5 /**< @brief A returned by @ref evasglClientWaitSync */ 5109 #define EVAS_GL_CONDITION_SATISFIED 0x30F6 /**< @brief A returned by @ref evasglClientWaitSync */ 5110 #define EVAS_GL_SYNC_TYPE 0x30F7 /**< @brief A attribute for @ref evasglGetSyncAttrib */ 5111 #define EVAS_GL_SYNC_CONDITION 0x30F8 /**< @brief A attribute for @ref evasglGetSyncAttrib */ 5112 #define EVAS_GL_SYNC_FENCE 0x30F9 /**< @brief A type for @ref evasglCreateSync */ 5113 #define EVAS_GL_SYNC_REUSABLE 0x30FA /**< @brief A type for @ref evasglCreateSync */ 5114 5115 #define EVAS_GL_SYNC_FLUSH_COMMANDS_BIT 0x0001 /**< @brief A flag for @ref evasglClientWaitSync */ 5116 #define EVAS_GL_FOREVER 0xFFFFFFFFFFFFFFFFull /**< @brief Disable wait timeout */ 5117 #define EVAS_GL_NO_SYNC ((EvasGLSync) NULL) /**< @brief Empty sync object, see @ref evasglCreateSync */ 5118 /** @} */ 5119 5120 /** 5121 * @name Surface attributes 5122 * The attributes can be queried using @ref evas_gl_surface_query 5123 * @{ 5124 */ 5125 #define EVAS_GL_HEIGHT 0x3056 /**< @brief Attribute for @ref evas_gl_surface_query, returns the surface width in pixels (@c value should be an @c int) */ 5126 #define EVAS_GL_WIDTH 0x3057 /**< @brief Attribute for @ref evas_gl_surface_query, returns the surface width in pixels (@c value should be an @c int) */ 5127 #define EVAS_GL_TEXTURE_FORMAT 0x3080 /**< @brief Attribute for @ref evas_gl_surface_query, returns an @ref Evas_GL_Color_Format */ 5128 #define EVAS_GL_TEXTURE_TARGET 0x3081 /**< @brief Attribute for @ref evas_gl_surface_query, returns @ref EVAS_GL_TEXTURE_2D (if format is @c EVAS_GL_RGB_888 or @c EVAS_GL_RGBA_8888) or 0 (meaning @c NO_TEXTURE, from @c EVAS_GL_NO_FBO) (@c value should be an @c int) */ 5129 /** @} */ 5130 5131 5132 /** 5133 * @brief Defines the version of the API structure. 5134 * 5135 * This helps applications know at runtime whether a function pointer exists 5136 * or not. 5137 * 5138 * Version 1: GLES 2.0 + GLES2 extensions only 5139 * Version 2: GLES 2.0 + GLES2 extensions + GLES1 + GLES1.1 extensions 5140 * Version 3: [version 2] + Wayland extensions 5141 * Version 4: [version 3] + GLES3.0 + GLES3.0 extensions 5142 * Version 5: [version 4] + GLES3.1 5143 * Version 6: [version 5] + GLES3.2 5144 */ 5145 #define EVAS_GL_API_VERSION 6 5146 5147 /** 5148 * @brief The Evas GL API 5149 * This structure contains function pointers to the available GL functions. 5150 * Some of these functions may be wrapped internally by Evas GL. 5151 */ 5152 struct _Evas_GL_API 5153 { 5154 /** 5155 * The current version number is @c EVAS_GL_API_VERSION (4). 5156 * This should not be confused with the OpenGL-ES context version. 5157 */ 5158 int version; 5159 5160 /** 5161 * @anchor gles2 5162 * @name OpenGL-ES 2.0. 5163 * 5164 * Evas_GL_API version 1. 5165 * 5166 * The following functions are supported in all OpenGL-ES 2.0 contexts. 5167 * @{ 5168 */ 5169 void (*glActiveTexture) (GLenum texture); 5170 void (*glAttachShader) (GLuint program, GLuint shader); 5171 void (*glBindAttribLocation) (GLuint program, GLuint index, const char* name); 5172 void (*glBindBuffer) (GLenum target, GLuint buffer); 5173 void (*glBindFramebuffer) (GLenum target, GLuint framebuffer); 5174 void (*glBindRenderbuffer) (GLenum target, GLuint renderbuffer); 5175 void (*glBindTexture) (GLenum target, GLuint texture); 5176 void (*glBlendColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); 5177 void (*glBlendEquation) ( GLenum mode ); 5178 void (*glBlendEquationSeparate) (GLenum modeRGB, GLenum modeAlpha); 5179 void (*glBlendFunc) (GLenum sfactor, GLenum dfactor); 5180 void (*glBlendFuncSeparate) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); 5181 void (*glBufferData) (GLenum target, GLsizeiptr size, const void* data, GLenum usage); 5182 void (*glBufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, const void* data); 5183 GLenum (*glCheckFramebufferStatus) (GLenum target); 5184 void (*glClear) (GLbitfield mask); 5185 void (*glClearColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); 5186 void (*glClearDepthf) (GLclampf depth); 5187 void (*glClearStencil) (GLint s); 5188 void (*glColorMask) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); 5189 void (*glCompileShader) (GLuint shader); 5190 void (*glCompressedTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); 5191 void (*glCompressedTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); 5192 void (*glCopyTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); 5193 void (*glCopyTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); 5194 GLuint (*glCreateProgram) (void); 5195 GLuint (*glCreateShader) (GLenum type); 5196 void (*glCullFace) (GLenum mode); 5197 void (*glDeleteBuffers) (GLsizei n, const GLuint* buffers); 5198 void (*glDeleteFramebuffers) (GLsizei n, const GLuint* framebuffers); 5199 void (*glDeleteProgram) (GLuint program); 5200 void (*glDeleteRenderbuffers) (GLsizei n, const GLuint* renderbuffers); 5201 void (*glDeleteShader) (GLuint shader); 5202 void (*glDeleteTextures) (GLsizei n, const GLuint* textures); 5203 void (*glDepthFunc) (GLenum func); 5204 void (*glDepthMask) (GLboolean flag); 5205 void (*glDepthRangef) (GLclampf zNear, GLclampf zFar); 5206 void (*glDetachShader) (GLuint program, GLuint shader); 5207 void (*glDisable) (GLenum cap); 5208 void (*glDisableVertexAttribArray) (GLuint index); 5209 void (*glDrawArrays) (GLenum mode, GLint first, GLsizei count); 5210 void (*glDrawElements) (GLenum mode, GLsizei count, GLenum type, const void* indices); 5211 void (*glEnable) (GLenum cap); 5212 void (*glEnableVertexAttribArray) (GLuint index); 5213 void (*glFinish) (void); 5214 void (*glFlush) (void); 5215 void (*glFramebufferRenderbuffer) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); 5216 void (*glFramebufferTexture2D) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); 5217 void (*glFrontFace) (GLenum mode); 5218 void (*glGenBuffers) (GLsizei n, GLuint* buffers); 5219 void (*glGenerateMipmap) (GLenum target); 5220 void (*glGenFramebuffers) (GLsizei n, GLuint* framebuffers); 5221 void (*glGenRenderbuffers) (GLsizei n, GLuint* renderbuffers); 5222 void (*glGenTextures) (GLsizei n, GLuint* textures); 5223 void (*glGetActiveAttrib) (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name); 5224 void (*glGetActiveUniform) (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name); 5225 void (*glGetAttachedShaders) (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); 5226 int (*glGetAttribLocation) (GLuint program, const char* name); 5227 void (*glGetBooleanv) (GLenum pname, GLboolean* params); 5228 void (*glGetBufferParameteriv) (GLenum target, GLenum pname, GLint* params); 5229 GLenum (*glGetError) (void); 5230 void (*glGetFloatv) (GLenum pname, GLfloat* params); 5231 void (*glGetFramebufferAttachmentParameteriv) (GLenum target, GLenum attachment, GLenum pname, GLint* params); 5232 void (*glGetIntegerv) (GLenum pname, GLint* params); 5233 void (*glGetProgramiv) (GLuint program, GLenum pname, GLint* params); 5234 void (*glGetProgramInfoLog) (GLuint program, GLsizei bufsize, GLsizei* length, char* infolog); 5235 void (*glGetRenderbufferParameteriv) (GLenum target, GLenum pname, GLint* params); 5236 void (*glGetShaderiv) (GLuint shader, GLenum pname, GLint* params); 5237 void (*glGetShaderInfoLog) (GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog); 5238 void (*glGetShaderPrecisionFormat) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); 5239 void (*glGetShaderSource) (GLuint shader, GLsizei bufsize, GLsizei* length, char* source); 5240 const GLubyte* (*glGetString) (GLenum name); 5241 void (*glGetTexParameterfv) (GLenum target, GLenum pname, GLfloat* params); 5242 void (*glGetTexParameteriv) (GLenum target, GLenum pname, GLint* params); 5243 void (*glGetUniformfv) (GLuint program, GLint location, GLfloat* params); 5244 void (*glGetUniformiv) (GLuint program, GLint location, GLint* params); 5245 int (*glGetUniformLocation) (GLuint program, const char* name); 5246 void (*glGetVertexAttribfv) (GLuint index, GLenum pname, GLfloat* params); 5247 void (*glGetVertexAttribiv) (GLuint index, GLenum pname, GLint* params); 5248 void (*glGetVertexAttribPointerv) (GLuint index, GLenum pname, void** pointer); 5249 void (*glHint) (GLenum target, GLenum mode); 5250 GLboolean (*glIsBuffer) (GLuint buffer); 5251 GLboolean (*glIsEnabled) (GLenum cap); 5252 GLboolean (*glIsFramebuffer) (GLuint framebuffer); 5253 GLboolean (*glIsProgram) (GLuint program); 5254 GLboolean (*glIsRenderbuffer) (GLuint renderbuffer); 5255 GLboolean (*glIsShader) (GLuint shader); 5256 GLboolean (*glIsTexture) (GLuint texture); 5257 void (*glLineWidth) (GLfloat width); 5258 void (*glLinkProgram) (GLuint program); 5259 void (*glPixelStorei) (GLenum pname, GLint param); 5260 void (*glPolygonOffset) (GLfloat factor, GLfloat units); 5261 void (*glReadPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels); 5262 void (*glReleaseShaderCompiler) (void); 5263 void (*glRenderbufferStorage) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); 5264 void (*glSampleCoverage) (GLclampf value, GLboolean invert); 5265 void (*glScissor) (GLint x, GLint y, GLsizei width, GLsizei height); 5266 void (*glShaderBinary) (GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length); 5267 void (*glShaderSource) (GLuint shader, GLsizei count, const char* const * string, const GLint* length); 5268 void (*glStencilFunc) (GLenum func, GLint ref, GLuint mask); 5269 void (*glStencilFuncSeparate) (GLenum face, GLenum func, GLint ref, GLuint mask); 5270 void (*glStencilMask) (GLuint mask); 5271 void (*glStencilMaskSeparate) (GLenum face, GLuint mask); 5272 void (*glStencilOp) (GLenum fail, GLenum zfail, GLenum zpass); 5273 void (*glStencilOpSeparate) (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); 5274 void (*glTexImage2D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); 5275 void (*glTexParameterf) (GLenum target, GLenum pname, GLfloat param); 5276 void (*glTexParameterfv) (GLenum target, GLenum pname, const GLfloat* params); 5277 void (*glTexParameteri) (GLenum target, GLenum pname, GLint param); 5278 void (*glTexParameteriv) (GLenum target, GLenum pname, const GLint* params); 5279 void (*glTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); 5280 void (*glUniform1f) (GLint location, GLfloat x); 5281 void (*glUniform1fv) (GLint location, GLsizei count, const GLfloat* v); 5282 void (*glUniform1i) (GLint location, GLint x); 5283 void (*glUniform1iv) (GLint location, GLsizei count, const GLint* v); 5284 void (*glUniform2f) (GLint location, GLfloat x, GLfloat y); 5285 void (*glUniform2fv) (GLint location, GLsizei count, const GLfloat* v); 5286 void (*glUniform2i) (GLint location, GLint x, GLint y); 5287 void (*glUniform2iv) (GLint location, GLsizei count, const GLint* v); 5288 void (*glUniform3f) (GLint location, GLfloat x, GLfloat y, GLfloat z); 5289 void (*glUniform3fv) (GLint location, GLsizei count, const GLfloat* v); 5290 void (*glUniform3i) (GLint location, GLint x, GLint y, GLint z); 5291 void (*glUniform3iv) (GLint location, GLsizei count, const GLint* v); 5292 void (*glUniform4f) (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); 5293 void (*glUniform4fv) (GLint location, GLsizei count, const GLfloat* v); 5294 void (*glUniform4i) (GLint location, GLint x, GLint y, GLint z, GLint w); 5295 void (*glUniform4iv) (GLint location, GLsizei count, const GLint* v); 5296 void (*glUniformMatrix2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 5297 void (*glUniformMatrix3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 5298 void (*glUniformMatrix4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 5299 void (*glUseProgram) (GLuint program); 5300 void (*glValidateProgram) (GLuint program); 5301 void (*glVertexAttrib1f) (GLuint indx, GLfloat x); 5302 void (*glVertexAttrib1fv) (GLuint indx, const GLfloat* values); 5303 void (*glVertexAttrib2f) (GLuint indx, GLfloat x, GLfloat y); 5304 void (*glVertexAttrib2fv) (GLuint indx, const GLfloat* values); 5305 void (*glVertexAttrib3f) (GLuint indx, GLfloat x, GLfloat y, GLfloat z); 5306 void (*glVertexAttrib3fv) (GLuint indx, const GLfloat* values); 5307 void (*glVertexAttrib4f) (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); 5308 void (*glVertexAttrib4fv) (GLuint indx, const GLfloat* values); 5309 void (*glVertexAttribPointer) (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr); 5310 void (*glViewport) (GLint x, GLint y, GLsizei width, GLsizei height); 5311 /** @} */ 5312 5313 /** 5314 * @name OpenGL-ES 2.0 extensions. 5315 * 5316 * Evas_GL_API version 1 5317 * 5318 * The following functions may be supported in OpenGL-ES 2.0 contexts, 5319 * depending on which extensions Evas has decided to support. 5320 * 5321 * @{ 5322 */ 5323 5324 /* GL_OES_EGL_image */ 5325 // Notice these two names have been changed to fit Evas GL and not EGL! 5326 /** @brief Requires the @c GL_OES_EGL_image extension, similar to @c glEGLImageTargetTexture2DOES. */ 5327 void (*glEvasGLImageTargetTexture2DOES) (GLenum target, EvasGLImage image); 5328 /** @brief Requires the @c GL_OES_EGL_image extension, similar to @c glEGLImageTargetRenderbufferStorageOES. */ 5329 void (*glEvasGLImageTargetRenderbufferStorageOES) (GLenum target, EvasGLImage image); 5330 5331 /* GL_OES_get_program_binary */ 5332 void (*glGetProgramBinaryOES) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); 5333 void (*glProgramBinaryOES) (GLuint program, GLenum binaryFormat, const void *binary, GLint length); 5334 /* GL_OES_mapbuffer */ 5335 void* (*glMapBufferOES) (GLenum target, GLenum access); 5336 GLboolean (*glUnmapBufferOES) (GLenum target); 5337 void (*glGetBufferPointervOES) (GLenum target, GLenum pname, void** params); 5338 /* GL_OES_texture_3D */ 5339 void (*glTexImage3DOES) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); 5340 void (*glTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); 5341 void (*glCopyTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); 5342 void (*glCompressedTexImage3DOES) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); 5343 void (*glCompressedTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); 5344 void (*glFramebufferTexture3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); 5345 5346 /* AMD_performance_monitor */ 5347 void (*glGetPerfMonitorGroupsAMD) (GLint* numGroups, GLsizei groupsSize, GLuint* groups); 5348 void (*glGetPerfMonitorCountersAMD) (GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters); 5349 void (*glGetPerfMonitorGroupStringAMD) (GLuint group, GLsizei bufSize, GLsizei* length, char* groupString); 5350 void (*glGetPerfMonitorCounterStringAMD) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, char* counterString); 5351 void (*glGetPerfMonitorCounterInfoAMD) (GLuint group, GLuint counter, GLenum pname, void* data); 5352 void (*glGenPerfMonitorsAMD) (GLsizei n, GLuint* monitors); 5353 void (*glDeletePerfMonitorsAMD) (GLsizei n, GLuint* monitors); 5354 void (*glSelectPerfMonitorCountersAMD) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList); 5355 void (*glBeginPerfMonitorAMD) (GLuint monitor); 5356 void (*glEndPerfMonitorAMD) (GLuint monitor); 5357 void (*glGetPerfMonitorCounterDataAMD) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten); 5358 5359 /* GL_EXT_discard_framebuffer */ 5360 void (*glDiscardFramebufferEXT) (GLenum target, GLsizei numAttachments, const GLenum* attachments); 5361 5362 /* GL_EXT_multi_draw_arrays */ 5363 void (*glMultiDrawArraysEXT) (GLenum mode, GLint* first, GLsizei* count, GLsizei primcount); 5364 void (*glMultiDrawElementsEXT) (GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount); 5365 5366 /* GL_NV_fence */ 5367 void (*glDeleteFencesNV) (GLsizei n, const GLuint* fences); 5368 void (*glGenFencesNV) (GLsizei n, GLuint* fences); 5369 GLboolean (*glIsFenceNV) (GLuint fence); 5370 GLboolean (*glTestFenceNV) (GLuint fence); 5371 void (*glGetFenceivNV) (GLuint fence, GLenum pname, GLint* params); 5372 void (*glFinishFenceNV) (GLuint fence); 5373 void (*glSetFenceNV) (GLuint, GLenum); 5374 5375 /* GL_QCOM_driver_control */ 5376 void (*glGetDriverControlsQCOM) (GLint* num, GLsizei size, GLuint* driverControls); 5377 void (*glGetDriverControlStringQCOM) (GLuint driverControl, GLsizei bufSize, GLsizei* length, char* driverControlString); 5378 void (*glEnableDriverControlQCOM) (GLuint driverControl); 5379 void (*glDisableDriverControlQCOM) (GLuint driverControl); 5380 5381 /* GL_QCOM_extended_get */ 5382 void (*glExtGetTexturesQCOM) (GLuint* textures, GLint maxTextures, GLint* numTextures); 5383 void (*glExtGetBuffersQCOM) (GLuint* buffers, GLint maxBuffers, GLint* numBuffers); 5384 void (*glExtGetRenderbuffersQCOM) (GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers); 5385 void (*glExtGetFramebuffersQCOM) (GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers); 5386 void (*glExtGetTexLevelParameterivQCOM) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params); 5387 void (*glExtTexObjectStateOverrideiQCOM) (GLenum target, GLenum pname, GLint param); 5388 void (*glExtGetTexSubImageQCOM) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void* texels); 5389 void (*glExtGetBufferPointervQCOM) (GLenum target, void** params); 5390 5391 /* GL_QCOM_extended_get2 */ 5392 void (*glExtGetShadersQCOM) (GLuint* shaders, GLint maxShaders, GLint* numShaders); 5393 void (*glExtGetProgramsQCOM) (GLuint* programs, GLint maxPrograms, GLint* numPrograms); 5394 GLboolean (*glExtIsProgramBinaryQCOM) (GLuint program); 5395 void (*glExtGetProgramBinarySourceQCOM) (GLuint program, GLenum shadertype, char* source, GLint* length); 5396 /** @} */ 5397 5398 /** 5399 * @name EGL-related extensions 5400 * 5401 * Evas_GL_API version 1. 5402 * 5403 * @{ 5404 */ 5405 5406 /* EGL_KHR_image - #ifdef EVAS_GL_image */ 5407 /** 5408 * @anchor evasglCreateImage 5409 * @brief Create an EvasGLImage for the current context. 5410 * 5411 * Common targets are: 5412 * @li @c EVAS_GL_TEXTURE_2D:<br/> 5413 * In case of @c EVAS_GL_TEXTURE_2D on EGL, the currently bound EGLContext 5414 * will be used to create the image. The buffer argument must be a texture 5415 * ID cast down to a void* pointer.<br/> 5416 * Requires the @c EVAS_GL_image extension. 5417 * 5418 * @li @c EVAS_GL_NATIVE_SURFACE_TIZEN (Tizen platform only):<br/> 5419 * Requires the @c EVAS_GL_TIZEN_image_native_surface extension. 5420 * 5421 * @deprecated 5422 * @note Please consider using @ref evasglCreateImageForContext instead. 5423 */ 5424 EvasGLImage (*evasglCreateImage) (int target, void* buffer, const int* attrib_list) EINA_WARN_UNUSED_RESULT EINA_DEPRECATED; 5425 5426 /** 5427 * @anchor evasglDestroyImage 5428 * @brief Destroys an EvasGLImage. 5429 * Destroy an image created by either @ref evasglCreateImage or @ref evasglCreateImageForContext. 5430 * 5431 * Requires the @c EVAS_GL_image extension. 5432 * 5433 * @note Unlike in pure EGL, the display pointer doesn't need to be 5434 * passed in, as Evas GL will use the same EGLDisplay as used in the 5435 * create function. 5436 */ 5437 void (*evasglDestroyImage) (EvasGLImage image); 5438 /** @} */ 5439 5440 // ---------------------------------------------------------------------- // 5441 /* Evas_GL_API version 2: */ 5442 5443 5444 /** 5445 * @anchor evasglCreateImageForContext 5446 * @brief Create an EvasGLImage for a given context. 5447 * 5448 * @param[in] evas_gl The current Evas GL object, 5449 * @param[in] ctx A context to create this image for, 5450 * @param[in] target One of @c EVAS_GL_TEXTURE_2D and @c EVAS_GL_NATIVE_SURFACE_TIZEN, 5451 * @param[in] buffer A pointer to a buffer, see below, 5452 * @param[in] attrib_list An array of key-value pairs terminated by 0 (see @ref EVAS_GL_IMAGE_PRESERVED) 5453 * 5454 * Common targets are: 5455 * @li @c EVAS_GL_TEXTURE_2D:<br/> 5456 * In case of @c EVAS_GL_TEXTURE_2D, the buffer argument must be a texture 5457 * ID cast down to a void* pointer.<br/> 5458 * Requires the @c EVAS_GL_image extension. 5459 * 5460 * @code 5461 EvasGLImage *img = glapi->evasglCreateImageForContext 5462 (evasgl, ctx, EVAS_GL_TEXTURE_2D, (void*)(intptr_t)texture_id, NULL); 5463 * @endcode 5464 * 5465 * @li @c EVAS_GL_NATIVE_SURFACE_TIZEN (Tizen platform only):<br/> 5466 * Requires the @c EVAS_GL_TIZEN_image_native_surface extension. 5467 * 5468 * @note Evas_GL_API must have version 2 or higher. 5469 * 5470 * @since 1.12 5471 */ 5472 EvasGLImage (*evasglCreateImageForContext) (Evas_GL *evas_gl, Evas_GL_Context *ctx, int target, void* buffer, const int* attrib_list) EINA_WARN_UNUSED_RESULT; 5473 5474 /* This defines shows that Evas_GL_API supports GLES1 APIs */ 5475 #define EVAS_GL_GLES1 1 5476 /** 5477 * @name OpenGL-ES 1.1 5478 * 5479 * Evas_GL_API version 2 or higher. 5480 * 5481 * The following functions are some of the standard OpenGL-ES 1.0 functions, 5482 * that are not also present in the @ref gles2 "OpenGL-ES 2.0 APIs". 5483 * @{ 5484 */ 5485 /* Available only in Common profile */ 5486 void (*glAlphaFunc) (GLenum func, GLclampf ref); 5487 void (*glClipPlanef) (GLenum plane, const GLfloat *equation); 5488 void (*glColor4f) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); 5489 void (*glFogf) (GLenum pname, GLfloat param); 5490 void (*glFogfv) (GLenum pname, const GLfloat *params); 5491 void (*glFrustumf) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); 5492 void (*glGetClipPlanef) (GLenum pname, GLfloat eqn[4]); 5493 void (*glGetLightfv) (GLenum light, GLenum pname, GLfloat *params); 5494 void (*glGetMaterialfv) (GLenum face, GLenum pname, GLfloat *params); 5495 void (*glGetTexEnvfv) (GLenum env, GLenum pname, GLfloat *params); 5496 void (*glLightModelf) (GLenum pname, GLfloat param); 5497 void (*glLightModelfv) (GLenum pname, const GLfloat *params); 5498 void (*glLightf) (GLenum light, GLenum pname, GLfloat param); 5499 void (*glLightfv) (GLenum light, GLenum pname, const GLfloat *params); 5500 void (*glLoadMatrixf) (const GLfloat *m); 5501 void (*glMaterialf) (GLenum face, GLenum pname, GLfloat param); 5502 void (*glMaterialfv) (GLenum face, GLenum pname, const GLfloat *params); 5503 void (*glMultMatrixf) (const GLfloat *m); 5504 void (*glMultiTexCoord4f) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); 5505 void (*glNormal3f) (GLfloat nx, GLfloat ny, GLfloat nz); 5506 void (*glOrthof) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); 5507 void (*glPointParameterf) (GLenum pname, GLfloat param); 5508 void (*glPointParameterfv) (GLenum pname, const GLfloat *params); 5509 void (*glPointSize) (GLfloat size); 5510 void (*glPointSizePointerOES) (GLenum type, GLsizei stride, const GLvoid * pointer); 5511 void (*glRotatef) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); 5512 void (*glScalef) (GLfloat x, GLfloat y, GLfloat z); 5513 void (*glTexEnvf) (GLenum target, GLenum pname, GLfloat param); 5514 void (*glTexEnvfv) (GLenum target, GLenum pname, const GLfloat *params); 5515 void (*glTranslatef) (GLfloat x, GLfloat y, GLfloat z); 5516 5517 /* Available in both Common and Common-Lite profiles */ 5518 void (*glAlphaFuncx) (GLenum func, GLclampx ref); 5519 void (*glClearColorx) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); 5520 void (*glClearDepthx) (GLclampx depth); 5521 void (*glClientActiveTexture) (GLenum texture); 5522 void (*glClipPlanex) (GLenum plane, const GLfixed *equation); 5523 void (*glColor4ub) (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); 5524 void (*glColor4x) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); 5525 void (*glColorPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); 5526 void (*glDepthRangex) (GLclampx zNear, GLclampx zFar); 5527 void (*glDisableClientState) (GLenum array); 5528 void (*glEnableClientState) (GLenum array); 5529 void (*glFogx) (GLenum pname, GLfixed param); 5530 void (*glFogxv) (GLenum pname, const GLfixed *params); 5531 void (*glFrustumx) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); 5532 void (*glGetClipPlanex) (GLenum pname, GLfixed eqn[4]); 5533 void (*glGetFixedv) (GLenum pname, GLfixed *params); 5534 void (*glGetLightxv) (GLenum light, GLenum pname, GLfixed *params); 5535 void (*glGetMaterialxv) (GLenum face, GLenum pname, GLfixed *params); 5536 void (*glGetPointerv) (GLenum pname, GLvoid **params); 5537 void (*glGetTexEnviv) (GLenum env, GLenum pname, GLint *params); 5538 void (*glGetTexEnvxv) (GLenum env, GLenum pname, GLfixed *params); 5539 void (*glGetTexParameterxv) (GLenum target, GLenum pname, GLfixed *params); 5540 void (*glLightModelx) (GLenum pname, GLfixed param); 5541 void (*glLightModelxv) (GLenum pname, const GLfixed *params); 5542 void (*glLightx) (GLenum light, GLenum pname, GLfixed param); 5543 void (*glLightxv) (GLenum light, GLenum pname, const GLfixed *params); 5544 void (*glLineWidthx) (GLfixed width); 5545 void (*glLoadIdentity) (void); 5546 void (*glLoadMatrixx) (const GLfixed *m); 5547 void (*glLogicOp) (GLenum opcode); 5548 void (*glMaterialx) (GLenum face, GLenum pname, GLfixed param); 5549 void (*glMaterialxv) (GLenum face, GLenum pname, const GLfixed *params); 5550 void (*glMatrixMode) (GLenum mode); 5551 void (*glMultMatrixx) (const GLfixed *m); 5552 void (*glMultiTexCoord4x) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); 5553 void (*glNormal3x) (GLfixed nx, GLfixed ny, GLfixed nz); 5554 void (*glNormalPointer) (GLenum type, GLsizei stride, const GLvoid *pointer); 5555 void (*glOrthox) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); 5556 void (*glPointParameterx) (GLenum pname, GLfixed param); 5557 void (*glPointParameterxv) (GLenum pname, const GLfixed *params); 5558 void (*glPointSizex) (GLfixed size); 5559 void (*glPolygonOffsetx) (GLfixed factor, GLfixed units); 5560 void (*glPopMatrix) (void); 5561 void (*glPushMatrix) (void); 5562 void (*glRotatex) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); 5563 void (*glSampleCoveragex) (GLclampx value, GLboolean invert); 5564 void (*glScalex) (GLfixed x, GLfixed y, GLfixed z); 5565 void (*glShadeModel) (GLenum mode); 5566 void (*glTexCoordPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); 5567 void (*glTexEnvi) (GLenum target, GLenum pname, GLint param); 5568 void (*glTexEnvx) (GLenum target, GLenum pname, GLfixed param); 5569 void (*glTexEnviv) (GLenum target, GLenum pname, const GLint *params); 5570 void (*glTexEnvxv) (GLenum target, GLenum pname, const GLfixed *params); 5571 void (*glTexParameterx) (GLenum target, GLenum pname, GLfixed param); 5572 void (*glTexParameterxv) (GLenum target, GLenum pname, const GLfixed *params); 5573 void (*glTranslatex) (GLfixed x, GLfixed y, GLfixed z); 5574 void (*glVertexPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); 5575 /** @} */ 5576 5577 /** 5578 * @name OpenGL-ES 1.1 extensions 5579 * 5580 * Evas_GL_API version 2 or higher. 5581 * 5582 * OpenGL-ES 1.1 specifies a set of extensions on top of OpenGL-ES 1.0. 5583 * When available, Evas GL will expose these extensions with the following 5584 * function pointers. 5585 * @{ 5586 */ 5587 /* GL_OES_blend_equation_separate */ 5588 void (*glBlendEquationSeparateOES) (GLenum modeRGB, GLenum modeAlpha); 5589 5590 /* GL_OES_blend_func_separate */ 5591 void (*glBlendFuncSeparateOES) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); 5592 5593 /* GL_OES_blend_subtract */ 5594 void (*glBlendEquationOES) (GLenum mode); 5595 5596 /* GL_OES_draw_texture */ 5597 void (*glDrawTexsOES) (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); 5598 void (*glDrawTexiOES) (GLint x, GLint y, GLint z, GLint width, GLint height); 5599 void (*glDrawTexxOES) (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); 5600 void (*glDrawTexsvOES) (const GLshort *coords); 5601 void (*glDrawTexivOES) (const GLint *coords); 5602 void (*glDrawTexxvOES) (const GLfixed *coords); 5603 void (*glDrawTexfOES) (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); 5604 void (*glDrawTexfvOES) (const GLfloat *coords); 5605 5606 /* GL_OES_fixed_point */ 5607 void (*glAlphaFuncxOES) (GLenum func, GLclampx ref); 5608 void (*glClearColorxOES) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); 5609 void (*glClearDepthxOES) (GLclampx depth); 5610 void (*glClipPlanexOES) (GLenum plane, const GLfixed *equation); 5611 void (*glColor4xOES) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); 5612 void (*glDepthRangexOES) (GLclampx zNear, GLclampx zFar); 5613 void (*glFogxOES) (GLenum pname, GLfixed param); 5614 void (*glFogxvOES) (GLenum pname, const GLfixed *params); 5615 void (*glFrustumxOES) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); 5616 void (*glGetClipPlanexOES) (GLenum pname, GLfixed eqn[4]); 5617 void (*glGetFixedvOES) (GLenum pname, GLfixed *params); 5618 void (*glGetLightxvOES) (GLenum light, GLenum pname, GLfixed *params); 5619 void (*glGetMaterialxvOES) (GLenum face, GLenum pname, GLfixed *params); 5620 void (*glGetTexEnvxvOES) (GLenum env, GLenum pname, GLfixed *params); 5621 void (*glGetTexParameterxvOES) (GLenum target, GLenum pname, GLfixed *params); 5622 void (*glLightModelxOES) (GLenum pname, GLfixed param); 5623 void (*glLightModelxvOES) (GLenum pname, const GLfixed *params); 5624 void (*glLightxOES) (GLenum light, GLenum pname, GLfixed param); 5625 void (*glLightxvOES) (GLenum light, GLenum pname, const GLfixed *params); 5626 void (*glLineWidthxOES) (GLfixed width); 5627 void (*glLoadMatrixxOES) (const GLfixed *m); 5628 void (*glMaterialxOES) (GLenum face, GLenum pname, GLfixed param); 5629 void (*glMaterialxvOES) (GLenum face, GLenum pname, const GLfixed *params); 5630 void (*glMultMatrixxOES) (const GLfixed *m); 5631 void (*glMultiTexCoord4xOES) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); 5632 void (*glNormal3xOES) (GLfixed nx, GLfixed ny, GLfixed nz); 5633 void (*glOrthoxOES) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); 5634 void (*glPointParameterxOES) (GLenum pname, GLfixed param); 5635 void (*glPointParameterxvOES) (GLenum pname, const GLfixed *params); 5636 void (*glPointSizexOES) (GLfixed size); 5637 void (*glPolygonOffsetxOES) (GLfixed factor, GLfixed units); 5638 void (*glRotatexOES) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); 5639 void (*glSampleCoveragexOES) (GLclampx value, GLboolean invert); 5640 void (*glScalexOES) (GLfixed x, GLfixed y, GLfixed z); 5641 void (*glTexEnvxOES) (GLenum target, GLenum pname, GLfixed param); 5642 void (*glTexEnvxvOES) (GLenum target, GLenum pname, const GLfixed *params); 5643 void (*glTexParameterxOES) (GLenum target, GLenum pname, GLfixed param); 5644 void (*glTexParameterxvOES) (GLenum target, GLenum pname, const GLfixed *params); 5645 void (*glTranslatexOES) (GLfixed x, GLfixed y, GLfixed z); 5646 5647 /* GL_OES_framebuffer_object */ 5648 GLboolean (*glIsRenderbufferOES) (GLuint renderbuffer); 5649 void (*glBindRenderbufferOES) (GLenum target, GLuint renderbuffer); 5650 void (*glDeleteRenderbuffersOES) (GLsizei n, const GLuint* renderbuffers); 5651 void (*glGenRenderbuffersOES) (GLsizei n, GLuint* renderbuffers); 5652 void (*glRenderbufferStorageOES) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); 5653 void (*glGetRenderbufferParameterivOES) (GLenum target, GLenum pname, GLint* params); 5654 GLboolean (*glIsFramebufferOES) (GLuint framebuffer); 5655 void (*glBindFramebufferOES) (GLenum target, GLuint framebuffer); 5656 void (*glDeleteFramebuffersOES) (GLsizei n, const GLuint* framebuffers); 5657 void (*glGenFramebuffersOES) (GLsizei n, GLuint* framebuffers); 5658 GLenum (*glCheckFramebufferStatusOES) (GLenum target); 5659 void (*glFramebufferRenderbufferOES) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); 5660 void (*glFramebufferTexture2DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); 5661 void (*glGetFramebufferAttachmentParameterivOES) (GLenum target, GLenum attachment, GLenum pname, GLint* params); 5662 void (*glGenerateMipmapOES) (GLenum target); 5663 5664 /* GL_OES_matrix_palette */ 5665 void (*glCurrentPaletteMatrixOES) (GLuint matrixpaletteindex); 5666 void (*glLoadPaletteFromModelViewMatrixOES) (void); 5667 void (*glMatrixIndexPointerOES) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); 5668 void (*glWeightPointerOES) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); 5669 5670 /* GL_OES_query_matrix */ 5671 GLbitfield (*glQueryMatrixxOES) (GLfixed mantissa[16], GLint exponent[16]); 5672 5673 /* GL_OES_single_precision */ 5674 void (*glDepthRangefOES) (GLclampf zNear, GLclampf zFar); 5675 void (*glFrustumfOES) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); 5676 void (*glOrthofOES) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); 5677 void (*glClipPlanefOES) (GLenum plane, const GLfloat *equation); 5678 void (*glGetClipPlanefOES) (GLenum pname, GLfloat eqn[4]); 5679 void (*glClearDepthfOES) (GLclampf depth); 5680 5681 /* GL_OES_texture_cube_map */ 5682 void (*glTexGenfOES) (GLenum coord, GLenum pname, GLfloat param); 5683 void (*glTexGenfvOES) (GLenum coord, GLenum pname, const GLfloat *params); 5684 void (*glTexGeniOES) (GLenum coord, GLenum pname, GLint param); 5685 void (*glTexGenivOES) (GLenum coord, GLenum pname, const GLint *params); 5686 void (*glTexGenxOES) (GLenum coord, GLenum pname, GLfixed param); 5687 void (*glTexGenxvOES) (GLenum coord, GLenum pname, const GLfixed *params); 5688 void (*glGetTexGenfvOES) (GLenum coord, GLenum pname, GLfloat *params); 5689 void (*glGetTexGenivOES) (GLenum coord, GLenum pname, GLint *params); 5690 void (*glGetTexGenxvOES) (GLenum coord, GLenum pname, GLfixed *params); 5691 5692 /* GL_OES_vertex_array_object */ 5693 void (*glBindVertexArrayOES) (GLuint array); 5694 void (*glDeleteVertexArraysOES) (GLsizei n, const GLuint *arrays); 5695 void (*glGenVertexArraysOES) (GLsizei n, GLuint *arrays); 5696 GLboolean (*glIsVertexArrayOES) (GLuint array); 5697 5698 /* GL_APPLE_copy_texture_levels */ 5699 void (*glCopyTextureLevelsAPPLE) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); 5700 void (*glRenderbufferStorageMultisampleAPPLE) (GLenum, GLsizei, GLenum, GLsizei, GLsizei); 5701 void (*glResolveMultisampleFramebufferAPPLE) (void); 5702 GLsync (*glFenceSyncAPPLE) (GLenum condition, GLbitfield flags); 5703 GLboolean (*glIsSyncAPPLE) (GLsync sync); 5704 void (*glDeleteSyncAPPLE) (GLsync sync); 5705 GLenum (*glClientWaitSyncAPPLE) (GLsync sync, GLbitfield flags, uint64_t timeout); 5706 void (*glWaitSyncAPPLE) (GLsync sync, GLbitfield flags, uint64_t timeout); 5707 void (*glGetInteger64vAPPLE) (GLenum pname, int64_t *params); 5708 void (*glGetSyncivAPPLE) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); 5709 5710 /* GL_EXT_map_buffer_range */ 5711 void* (*glMapBufferRangeEXT) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); 5712 void (*glFlushMappedBufferRangeEXT) (GLenum target, GLintptr offset, GLsizeiptr length); 5713 5714 /* GL_EXT_multisampled_render_to_texture */ 5715 void (*glRenderbufferStorageMultisampleEXT) (GLenum, GLsizei, GLenum, GLsizei, GLsizei); 5716 void (*glFramebufferTexture2DMultisampleEXT) (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei); 5717 5718 /* GL_EXT_robustness */ 5719 GLenum (*glGetGraphicsResetStatusEXT) (void); 5720 void (*glReadnPixelsEXT) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); 5721 void (*glGetnUniformfvEXT) (GLuint program, GLint location, GLsizei bufSize, float *params); 5722 void (*glGetnUniformivEXT) (GLuint program, GLint location, GLsizei bufSize, GLint *params); 5723 5724 /* GL_EXT_texture_storage */ 5725 void (*glTexStorage1DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); 5726 void (*glTexStorage2DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); 5727 void (*glTexStorage3DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); 5728 void (*glTextureStorage1DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); 5729 void (*glTextureStorage2DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); 5730 void (*glTextureStorage3DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); 5731 5732 /* GL_IMG_user_clip_plane */ 5733 void (*glClipPlanefIMG) (GLenum, const GLfloat *); 5734 void (*glClipPlanexIMG) (GLenum, const GLfixed *); 5735 5736 /* GL_IMG_multisampled_render_to_texture */ 5737 void (*glRenderbufferStorageMultisampleIMG) (GLenum, GLsizei, GLenum, GLsizei, GLsizei); 5738 void (*glFramebufferTexture2DMultisampleIMG) (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei); 5739 5740 /* GL_QCOM_tiled_rendering */ 5741 void (*glStartTilingQCOM) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); 5742 void (*glEndTilingQCOM) (GLbitfield preserveMask); 5743 /** @} */ 5744 5745 /*------- EvasGL / EGL-related functions -------*/ 5746 /** 5747 * @name Evas GL Sync object functions 5748 * @since 1.12 5749 * @{ */ 5750 5751 /** 5752 * @anchor evasglCreateSync 5753 * @brief Create a synchronization primitive which can be tested or waited upon. 5754 * 5755 * @note Requires the extension @c EGL_KHR_fence_sync, similar to eglCreateSyncKHR. 5756 * 5757 * @param evas_gl The current Evas_GL connection 5758 * @param type One of: @c EVAS_GL_SYNC_FENCE or @c EVAS_GL_SYNC_REUSABLE 5759 * @param attrib_list Optional attributes list, terminated by @c EVAS_GL_NONE 5760 * The supported attributes depend on the driver extensions, 5761 * please refer to the EGL specifications for more information. 5762 * 5763 * @return A new sync object (EvasGLSync) 5764 * @since 1.12 5765 */ 5766 EvasGLSync (*evasglCreateSync) (Evas_GL *evas_gl, unsigned int type, const int *attrib_list); 5767 /** 5768 * @anchor evasglDestroySync 5769 * @brief Destroys a sync object created by @c evasglCreateSync. 5770 * 5771 * @note Requires the extension @c EGL_KHR_fence_sync, similar to eglDestroySyncKHR. 5772 * 5773 * @param evas_gl The current Evas_GL connection 5774 * @param sync A valid sync object created by @c evasglCreateSync 5775 * 5776 * @return @c EINA_TRUE in case of success, @c EINA_FALSE in case of failure 5777 * (in which case evas_gl_error_get() should return an error code) 5778 * @since 1.12 5779 */ 5780 Eina_Bool (*evasglDestroySync) (Evas_GL *evas_gl, EvasGLSync sync); 5781 5782 /** 5783 * @anchor evasglClientWaitSync 5784 * @brief Block and wait until for sync object is signaled or timeout is reached 5785 * 5786 * @param evas_gl The current Evas_GL connection 5787 * @param sync A valid sync object created by evasglCreateSync 5788 * @param timeout A relative timeout in nanoseconds 5789 * 5790 * @note Requires the extension @c EGL_KHR_reusable_sync, similar to eglClientWaitSyncKHR. 5791 * 5792 * @return @c EVAS_GL_TIMEOUT_EXPIRED if the sync failed and timeout was reached, 5793 * @c EVAS_GL_CONDITION_SATISFIED if the sync was signaled, 5794 * or 0 in case of failure (in which case evas_gl_error_get() should return an error code) 5795 * @since 1.12 5796 */ 5797 int (*evasglClientWaitSync) (Evas_GL *evas_gl, EvasGLSync sync, int flags, EvasGLTime timeout); 5798 5799 /** 5800 * @anchor evasglSignalSync 5801 * @brief Signal a sync object, unlocking all threads waiting on it 5802 * 5803 * @param evas_gl The current Evas_GL connection 5804 * @param sync A valid sync object created by evasglCreateSync 5805 * 5806 * @note Requires the extension @c EGL_KHR_reusable_sync or @c EGL_KHR_wait_sync, similar to eglSignalSyncKHR. 5807 * 5808 * @return @c EINA_TRUE in case of success, or 5809 * @c EINA_FALSE in case of failure (in which case evas_gl_error_get() should return an error code) 5810 * @since 1.12 5811 */ 5812 Eina_Bool (*evasglSignalSync) (Evas_GL *evas_gl, EvasGLSync sync, unsigned mode); 5813 5814 /** 5815 * @anchor evasglGetSyncAttrib 5816 * @brief Query a sync object for its properties 5817 * 5818 * @param evas_gl The current Evas_GL connection 5819 * @param sync A valid sync object created by evasglCreateSync 5820 * @param attribute Which attribute to query, can be one of: @c EVAS_GL_SYNC_STATUS, @c EVAS_GL_SYNC_TYPE or @c EVAS_GL_SYNC_CONDITION 5821 * @param value Return value or the query, see @ref evasgl_sync_values "sync object". 5822 * 5823 * @note Requires the extension @c EGL_KHR_fence_sync, similar to eglGetSyncAttribKHR. 5824 * 5825 * @return @c EINA_TRUE in case of success, or 5826 * @c EINA_FALSE in case of failure (in which case evas_gl_error_get() should return an error code) 5827 * @since 1.12 5828 */ 5829 Eina_Bool (*evasglGetSyncAttrib) (Evas_GL *evas_gl, EvasGLSync sync, int attribute, int *value); 5830 5831 /** 5832 * @anchor evasglWaitSync 5833 * @brief Wait on an EvasGLSync without blocking, see @c EGL_KHR_wait_sync for more information 5834 * 5835 * @param evas_gl The current Evas_GL connection 5836 * @param sync A valid sync object created by evasglCreateSync 5837 * @param flags Must be 0 5838 * 5839 * @note Requires the extension @c EGL_KHR_wait_sync, similar to eglWaitSyncKHR. 5840 * 5841 * @return @c EINA_TRUE in case of success, or 5842 * @c EINA_FALSE in case of failure (in which case evas_gl_error_get() should return an error code) 5843 * @since 1.12 5844 */ 5845 int (*evasglWaitSync) (Evas_GL *evas_gl, EvasGLSync sync, int flags); 5846 /** @} */ 5847 5848 // ---------------------------------------------------------------------- // 5849 /* Evas_GL_API version 3: */ 5850 5851 /** 5852 * @name Evas GL Wayland functions 5853 * 5854 * Evas_GL_API version 3 or higher. 5855 * 5856 * @since 1.13 5857 * @{ */ 5858 /** 5859 * @anchor evasglBindWaylandDisplay 5860 * @brief Requires the extension @c EGL_WL_bind_wayland_display, similar to eglBindWaylandDisplayWL. 5861 */ 5862 Eina_Bool (*evasglBindWaylandDisplay) (Evas_GL *evas_gl, void *wl_display); 5863 /** 5864 * @anchor evasglUnbindWaylandDisplay 5865 * @brief Requires the extension @c EGL_WL_bind_wayland_display, similar to eglUnbindWaylandDisplayWL. 5866 */ 5867 Eina_Bool (*evasglUnbindWaylandDisplay) (Evas_GL *evas_gl, void *wl_display); 5868 /** 5869 * @anchor evasglQueryWaylandBuffer 5870 * @brief Requires the extension @c EGL_WL_bind_wayland_display, similar to eglQueryWaylandBufferWL. 5871 */ 5872 Eina_Bool (*evasglQueryWaylandBuffer) (Evas_GL *evas_gl, void *buffer, int attribute, int *value); 5873 /** @} */ 5874 5875 // ---------------------------------------------------------------------- // 5876 /** 5877 * @anchor gles3 5878 * @name OpenGL-ES 3.0. 5879 * 5880 * Evas_GL_API version 4. 5881 * 5882 * The following functions are supported in all OpenGL-ES 3.0 contexts. 5883 * @{ 5884 */ 5885 /* This defines shows that Evas_GL_API supports GLES3 APIs */ 5886 #define EVAS_GL_GLES3 1 5887 void (*glBeginQuery) (GLenum target, GLuint id); 5888 void (*glBeginTransformFeedback) (GLenum primitiveMode); 5889 void (*glBindBufferBase) (GLenum target, GLuint index, GLuint buffer); 5890 void (*glBindBufferRange) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); 5891 void (*glBindSampler) (GLuint unit, GLuint sampler); 5892 void (*glBindTransformFeedback) (GLenum target, GLuint id); 5893 void (*glBindVertexArray) (GLuint array); 5894 void (*glBlitFramebuffer) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); 5895 void (*glClearBufferfi) (GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil); 5896 void (*glClearBufferfv) (GLenum buffer, GLint drawBuffer, const GLfloat * value); 5897 void (*glClearBufferiv) (GLenum buffer, GLint drawBuffer, const GLint * value); 5898 void (*glClearBufferuiv) (GLenum buffer, GLint drawBuffer, const GLuint * value); 5899 GLenum (*glClientWaitSync) (GLsync sync, GLbitfield flags, uint64_t timeout); 5900 void (*glCompressedTexImage3D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data); 5901 void (*glCompressedTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data); 5902 void (*glCopyBufferSubData) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); 5903 void (*glCopyTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); 5904 void (*glDeleteQueries) (GLsizei n, const GLuint * ids); 5905 void (*glDeleteSamplers) (GLsizei n, const GLuint * samplers); 5906 void (*glDeleteSync) (GLsync sync); 5907 void (*glDeleteTransformFeedbacks) (GLsizei n, const GLuint *ids); 5908 void (*glDeleteVertexArrays) (GLsizei n, const GLuint *arrays); 5909 void (*glDrawArraysInstanced) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); 5910 void (*glDrawBuffers) (GLsizei n, const GLenum *bufs); 5911 void (*glDrawElementsInstanced) (GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount); 5912 void (*glDrawRangeElements) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices); 5913 void (*glEndQuery) (GLenum target); 5914 void (*glEndTransformFeedback) (void); 5915 GLsync (*glFenceSync) (GLenum condition, GLbitfield flags); 5916 GLsync (*glFlushMappedBufferRange) (GLenum target, GLintptr offset, GLsizeiptr length); 5917 void (*glFramebufferTextureLayer) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); 5918 void (*glGenQueries) (GLsizei n, GLuint * ids); 5919 void (*glGenSamplers) (GLsizei n, GLuint *samplers); 5920 void (*glGenTransformFeedbacks) (GLsizei n, GLuint *ids); 5921 void (*glGenVertexArrays) (GLsizei n, GLuint *arrays); 5922 void (*glGetActiveUniformBlockiv) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); 5923 void (*glGetActiveUniformBlockName) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); 5924 void (*glGetActiveUniformsiv) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); 5925 void (*glGetBufferParameteri64v) (GLenum target, GLenum value, int64_t * data); 5926 void (*glGetBufferPointerv) (GLenum target, GLenum pname, GLvoid ** params); 5927 GLint (*glGetFragDataLocation) (GLuint program, const char * name); 5928 void (*glGetInteger64i_v) (GLenum target, GLuint index, int64_t * data); 5929 void (*glGetInteger64v) (GLenum pname, int64_t * data); 5930 void (*glGetIntegeri_v) (GLenum target, GLuint index, GLint * data); 5931 void (*glGetInternalformativ) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); 5932 void (*glGetProgramBinary) (GLuint program, GLsizei bufsize, GLsizei *length, GLenum *binaryFormat, void *binary); 5933 void (*glGetQueryiv) (GLenum target, GLenum pname, GLint * params); 5934 void (*glGetQueryObjectuiv) (GLuint id, GLenum pname, GLuint * params); 5935 void (*glGetSamplerParameterfv) (GLuint sampler, GLenum pname, GLfloat * params); 5936 void (*glGetSamplerParameteriv) (GLuint sampler, GLenum pname, GLint * params); 5937 const GLubyte* (*glGetStringi) (GLenum name, GLuint index); 5938 void (*glGetSynciv) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); 5939 void (*glGetTransformFeedbackVarying) (GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, char * name); 5940 GLuint (*glGetUniformBlockIndex) (GLuint program, const GLchar *uniformBlockName); 5941 void (*glGetUniformIndices) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); 5942 void (*glGetUniformuiv) (GLuint program, GLint location, GLuint* params); 5943 void (*glGetVertexAttribIiv) (GLuint index, GLenum pname, GLint *params); 5944 void (*glGetVertexAttribIuiv) (GLuint index, GLenum pname, GLuint *params); 5945 void (*glInvalidateFramebuffer) (GLenum target, GLsizei numAttachments, const GLenum *attachments); 5946 void (*glInvalidateSubFramebuffer) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); 5947 GLboolean (*glIsQuery) (GLuint id); 5948 GLboolean (*glIsSampler) (GLuint id); 5949 GLboolean (*glIsSync) (GLsync sync); 5950 GLboolean (*glIsTransformFeedback) (GLuint id); 5951 GLboolean (*glIsVertexArray) (GLuint array); 5952 void * (*glMapBufferRange) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); 5953 void (*glPauseTransformFeedback) (void); 5954 void (*glProgramBinary) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); 5955 void (*glProgramParameteri) (GLuint program, GLenum pname, GLint value); 5956 void (*glReadBuffer) (GLenum src); 5957 void (*glRenderbufferStorageMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); 5958 void (*glResumeTransformFeedback) (void); 5959 void (*glSamplerParameterf) (GLuint sampler, GLenum pname, GLfloat param); 5960 void (*glSamplerParameterfv) (GLuint sampler, GLenum pname, const GLfloat * params); 5961 void (*glSamplerParameteri) (GLuint sampler, GLenum pname, GLint param); 5962 void (*glSamplerParameteriv) (GLuint sampler, GLenum pname, const GLint * params); 5963 void (*glTexImage3D) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * data); 5964 void (*glTexStorage2D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); 5965 void (*glTexStorage3D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); 5966 void (*glTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * data); 5967 void (*glTransformFeedbackVaryings) (GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode); 5968 void (*glUniform1ui) (GLint location, GLuint v0); 5969 void (*glUniform1uiv) (GLint location, GLsizei count, const GLuint *value); 5970 void (*glUniform2ui) (GLint location, GLuint v0, GLuint v1); 5971 void (*glUniform2uiv) (GLint location, GLsizei count, const GLuint *value); 5972 void (*glUniform3ui) (GLint location, GLuint v0, GLuint v1, GLuint v2); 5973 void (*glUniform3uiv) (GLint location, GLsizei count, const GLuint *value); 5974 void (*glUniform4ui) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); 5975 void (*glUniform4uiv) (GLint location, GLsizei count, const GLuint *value); 5976 void (*glUniformBlockBinding) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); 5977 void (*glUniformMatrix2x3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 5978 void (*glUniformMatrix3x2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 5979 void (*glUniformMatrix2x4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 5980 void (*glUniformMatrix4x2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 5981 void (*glUniformMatrix3x4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 5982 void (*glUniformMatrix4x3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 5983 GLboolean (*glUnmapBuffer) (GLenum target); 5984 void (*glVertexAttribDivisor) (GLuint index, GLuint divisor); 5985 void (*glVertexAttribI4i) (GLuint index, GLint v0, GLint v1, GLint v2, GLint v3); 5986 void (*glVertexAttribI4iv) (GLuint index, const GLint *v); 5987 void (*glVertexAttribI4ui) (GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3); 5988 void (*glVertexAttribI4uiv) (GLuint index, const GLuint *v); 5989 void (*glVertexAttribIPointer) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); 5990 void (*glWaitSync) (GLsync sync, GLbitfield flags, uint64_t timeout); 5991 /** @} */ 5992 /** 5993 * @anchor gles3_1 5994 * @name OpenGL-ES 3.1. 5995 * 5996 * Evas_GL_API version 5. 5997 * 5998 * The following functions are supported in all OpenGL-ES 3.1 contexts. 5999 * @{ 6000 */ 6001 /* This defines shows that Evas_GL_API supports GLES3.1 APIs */ 6002 void (*glDispatchCompute) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); 6003 void (*glDispatchComputeIndirect) (GLintptr indirect); 6004 void (*glDrawArraysIndirect) (GLenum mode, const void *indirect); 6005 void (*glDrawElementsIndirect) (GLenum mode, GLenum type, const void *indirect); 6006 void (*glFramebufferParameteri) (GLenum target, GLenum pname, GLint param); 6007 void (*glGetFramebufferParameteriv) (GLenum target, GLenum pname, GLint *params); 6008 void (*glGetProgramInterfaceiv) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); 6009 GLuint (*glGetProgramResourceIndex) (GLuint program, GLenum programInterface, const GLchar *name); 6010 void (*glGetProgramResourceName) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); 6011 void (*glGetProgramResourceiv) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); 6012 GLint (*glGetProgramResourceLocation) (GLuint program, GLenum programInterface, const GLchar *name); 6013 void (*glUseProgramStages) (GLuint pipeline, GLbitfield stages, GLuint program); 6014 void (*glActiveShaderProgram) (GLuint pipeline, GLuint program); 6015 GLuint (*glCreateShaderProgramv) (GLenum type, GLsizei count, const GLchar *const*strings); 6016 void (*glBindProgramPipeline) (GLuint pipeline); 6017 void (*glDeleteProgramPipelines) (GLsizei n, const GLuint *pipelines); 6018 void (*glGenProgramPipelines) (GLsizei n, GLuint *pipelines); 6019 GLboolean (*glIsProgramPipeline) (GLuint pipeline); 6020 void (*glGetProgramPipelineiv) (GLuint pipeline, GLenum pname, GLint *params); 6021 void (*glProgramUniform1i) (GLuint program, GLint location, GLint v0); 6022 void (*glProgramUniform2i) (GLuint program, GLint location, GLint v0, GLint v1); 6023 void (*glProgramUniform3i) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); 6024 void (*glProgramUniform4i) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); 6025 void (*glProgramUniform1ui) (GLuint program, GLint location, GLuint v0); 6026 void (*glProgramUniform2ui) (GLuint program, GLint location, GLuint v0, GLuint v1); 6027 void (*glProgramUniform3ui) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); 6028 void (*glProgramUniform4ui) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); 6029 void (*glProgramUniform1f) (GLuint program, GLint location, GLfloat v0); 6030 void (*glProgramUniform2f) (GLuint program, GLint location, GLfloat v0, GLfloat v1); 6031 void (*glProgramUniform3f) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); 6032 void (*glProgramUniform4f) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); 6033 void (*glProgramUniform1iv) (GLuint program, GLint location, GLsizei count, const GLint *value); 6034 void (*glProgramUniform2iv) (GLuint program, GLint location, GLsizei count, const GLint *value); 6035 void (*glProgramUniform3iv) (GLuint program, GLint location, GLsizei count, const GLint *value); 6036 void (*glProgramUniform4iv) (GLuint program, GLint location, GLsizei count, const GLint *value); 6037 void (*glProgramUniform1uiv) (GLuint program, GLint location, GLsizei count, const GLuint *value); 6038 void (*glProgramUniform2uiv) (GLuint program, GLint location, GLsizei count, const GLuint *value); 6039 void (*glProgramUniform3uiv) (GLuint program, GLint location, GLsizei count, const GLuint *value); 6040 void (*glProgramUniform4uiv) (GLuint program, GLint location, GLsizei count, const GLuint *value); 6041 void (*glProgramUniform1fv) (GLuint program, GLint location, GLsizei count, const GLfloat *value); 6042 void (*glProgramUniform2fv) (GLuint program, GLint location, GLsizei count, const GLfloat *value); 6043 void (*glProgramUniform3fv) (GLuint program, GLint location, GLsizei count, const GLfloat *value); 6044 void (*glProgramUniform4fv) (GLuint program, GLint location, GLsizei count, const GLfloat *value); 6045 void (*glProgramUniformMatrix2fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 6046 void (*glProgramUniformMatrix3fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 6047 void (*glProgramUniformMatrix4fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 6048 void (*glProgramUniformMatrix2x3fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 6049 void (*glProgramUniformMatrix3x2fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 6050 void (*glProgramUniformMatrix2x4fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 6051 void (*glProgramUniformMatrix4x2fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 6052 void (*glProgramUniformMatrix3x4fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 6053 void (*glProgramUniformMatrix4x3fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); 6054 void (*glValidateProgramPipeline) (GLuint pipeline); 6055 void (*glGetProgramPipelineInfoLog) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); 6056 void (*glBindImageTexture) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); 6057 void (*glGetBooleani_v) (GLenum target, GLuint index, GLboolean *data); 6058 void (*glMemoryBarrier) (GLbitfield barriers); 6059 void (*glMemoryBarrierByRegion) (GLbitfield barriers); 6060 void (*glTexStorage2DMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); 6061 void (*glGetMultisamplefv) (GLenum pname, GLuint index, GLfloat *val); 6062 void (*glSampleMaski) (GLuint maskNumber, GLbitfield mask); 6063 void (*glGetTexLevelParameteriv) (GLenum target, GLint level, GLenum pname, GLint *params); 6064 void (*glGetTexLevelParameterfv) (GLenum target, GLint level, GLenum pname, GLfloat *params); 6065 void (*glBindVertexBuffer) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); 6066 void (*glVertexAttribFormat) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); 6067 void (*glVertexAttribIFormat) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); 6068 void (*glVertexAttribBinding) (GLuint attribindex, GLuint bindingindex); 6069 void (*glVertexBindingDivisor) (GLuint bindingindex, GLuint divisor); 6070 /** @} */ 6071 6072 /** 6073 * @anchor gles3_2 6074 * @name OpenGL-ES 3.2. 6075 * 6076 * Evas_GL_API version 6. 6077 * 6078 * The following functions are supported in all OpenGL-ES 3.2 contexts. 6079 * @{ 6080 */ 6081 /* This defines shows that Evas_GL_API supports GLES3.2 APIs */ 6082 void (*glBlendBarrier) (void); 6083 void (*glCopyImageSubData) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); 6084 void (*glDebugMessageControl) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); 6085 void (*glDebugMessageInsert) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); 6086 void (*glDebugMessageCallback) (GLDEBUGPROC callback, const void *userParam); 6087 GLuint (*glGetDebugMessageLog) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); 6088 void (*glPushDebugGroup) (GLenum source, GLuint id, GLsizei length, const GLchar *message); 6089 void (*glPopDebugGroup) (void); 6090 void (*glObjectLabel) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); 6091 void (*glGetObjectLabel) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); 6092 void (*glObjectPtrLabel) (const void *ptr, GLsizei length, const GLchar *label); 6093 void (*glGetObjectPtrLabel) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); 6094 //void (*glGetPointerv) (GLenum pname, void **params); 6095 void (*glEnablei) (GLenum target, GLuint index); 6096 void (*glDisablei) (GLenum target, GLuint index); 6097 void (*glBlendEquationi) (GLuint buf, GLenum mode); 6098 void (*glBlendEquationSeparatei) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); 6099 void (*glBlendFunci) (GLuint buf, GLenum src, GLenum dst); 6100 void (*glBlendFuncSeparatei) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); 6101 void (*glColorMaski) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); 6102 GLboolean (*glIsEnabledi) (GLenum target, GLuint index); 6103 void (*glDrawElementsBaseVertex) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); 6104 void (*glDrawRangeElementsBaseVertex) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); 6105 void (*glDrawElementsInstancedBaseVertex) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); 6106 void (*glFramebufferTexture) (GLenum target, GLenum attachment, GLuint texture, GLint level); 6107 void (*glPrimitiveBoundingBox) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); 6108 GLenum (*glGetGraphicsResetStatus) (void); 6109 void (*glReadnPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); 6110 void (*glGetnUniformfv) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); 6111 void (*glGetnUniformiv) (GLuint program, GLint location, GLsizei bufSize, GLint *params); 6112 void (*glGetnUniformuiv) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); 6113 void (*glMinSampleShading) (GLfloat value); 6114 void (*glPatchParameteri) (GLenum pname, GLint value); 6115 void (*glTexParameterIiv) (GLenum target, GLenum pname, const GLint *params); 6116 void (*glTexParameterIuiv) (GLenum target, GLenum pname, const GLuint *params); 6117 void (*glGetTexParameterIiv) (GLenum target, GLenum pname, GLint *params); 6118 void (*glGetTexParameterIuiv) (GLenum target, GLenum pname, GLuint *params); 6119 void (*glSamplerParameterIiv) (GLuint sampler, GLenum pname, const GLint *param); 6120 void (*glSamplerParameterIuiv) (GLuint sampler, GLenum pname, const GLuint *param); 6121 void (*glGetSamplerParameterIiv) (GLuint sampler, GLenum pname, GLint *params); 6122 void (*glGetSamplerParameterIuiv) (GLuint sampler, GLenum pname, GLuint *params); 6123 void (*glTexBuffer) (GLenum target, GLenum internalformat, GLuint buffer); 6124 void (*glTexBufferRange) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); 6125 void (*glTexStorage3DMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); 6126 6127 /** @} */ 6128 6129 /* Future calls will be added down here for expansion, when adding 6130 * new APIs here, please bump the struct version number (together with 6131 * the EFL version bump). 6132 */ 6133 }; 6134 6135 /** 6136 * @} 6137 */ 6138 6139 #ifdef __cplusplus 6140 } 6141 #endif 6142 6143 #undef EAPI 6144 #define EAPI 6145 6146 #endif 6147