summaryrefslogtreecommitdiff
path: root/src/lib/evas/Evas_GL.h
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2014-09-22 17:53:06 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2014-10-20 12:16:08 +0900
commit3f9caaf16d4b016304e177e1f9e9d30545ae7bec (patch)
tree599ce8d31524652ddcace901a19593cba0e1035c /src/lib/evas/Evas_GL.h
parent38aa72d1394402f76e71ea51e3a94c19d34d0178 (diff)
Evas GL: Add support for OpenGL-ES 1.1 (part 1)
This commit adds lots of required definitions (GL_ stuff), new API entries in the Evas_GL_API struct, and basic new APIs to create OpenGL-ES 1.1 contexts. @feature
Diffstat (limited to 'src/lib/evas/Evas_GL.h')
-rw-r--r--src/lib/evas/Evas_GL.h2618
1 files changed, 2425 insertions, 193 deletions
diff --git a/src/lib/evas/Evas_GL.h b/src/lib/evas/Evas_GL.h
index a2da465496..65db1c22ad 100644
--- a/src/lib/evas/Evas_GL.h
+++ b/src/lib/evas/Evas_GL.h
@@ -451,6 +451,23 @@ typedef enum _Evas_GL_Multisample_Bits
451} Evas_GL_Multisample_Bits; 451} Evas_GL_Multisample_Bits;
452 452
453/** 453/**
454 * @brief Enumeration that defines the available OpenGL ES version numbers.
455 * They can be used to create OpenGL-ES 1.1 contexts.
456 *
457 * @since 1.12
458 *
459 * @see evas_gl_context_version_create
460 *
461 * @remarks This will only work with EGL/GLES (but not with desktop OpenGL).
462 */
463typedef enum _Evas_GL_Context_Version
464{
465 EVAS_GL_GLES_1_X = 1, /**< OpenGL-ES 1.x */
466 EVAS_GL_GLES_2_X = 2, /**< OpenGL-ES 2.x is the default */
467 EVAS_GL_GLES_3_X = 3 /**< @internal OpenGL-ES 3.x, not implemented yet */
468} Evas_GL_Context_Version;
469
470/**
454 * @struct _Evas_GL_Config 471 * @struct _Evas_GL_Config
455 * 472 *
456 * @brief A structure used to specify the configuration of an @ref Evas_GL_Surface. 473 * @brief A structure used to specify the configuration of an @ref Evas_GL_Surface.
@@ -468,6 +485,7 @@ struct _Evas_GL_Config
468 Evas_GL_Stencil_Bits stencil_bits; /**< Surface Stencil Bits */ 485 Evas_GL_Stencil_Bits stencil_bits; /**< Surface Stencil Bits */
469 Evas_GL_Options_Bits options_bits; /**< Extra Surface Options */ 486 Evas_GL_Options_Bits options_bits; /**< Extra Surface Options */
470 Evas_GL_Multisample_Bits multisample_bits; /**< Optional Surface MSAA Bits */ 487 Evas_GL_Multisample_Bits multisample_bits; /**< Optional Surface MSAA Bits */
488 Evas_GL_Context_Version gles_version; /**< @internal Special flag for OpenGL-ES 1.1 indirect rendering surfaces (since 1.12) */
471}; 489};
472 490
473/** @brief Constant to use when calling @ref evas_gl_string_query to retrieve the available Evas_GL extensions. */ 491/** @brief Constant to use when calling @ref evas_gl_string_query to retrieve the available Evas_GL extensions. */
@@ -584,6 +602,31 @@ EAPI void evas_gl_surface_destroy (Evas_GL *evas_gl, Evas
584EAPI Evas_GL_Context *evas_gl_context_create (Evas_GL *evas_gl, Evas_GL_Context *share_ctx) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 602EAPI Evas_GL_Context *evas_gl_context_create (Evas_GL *evas_gl, Evas_GL_Context *share_ctx) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
585 603
586/** 604/**
605 * @brief Creates and returns a new Evas GL context object for OpenGL-ES 1.1 or 2.0.
606 *
607 * @param[in] evas_gl The given Evas_GL object
608 * @param[in] share_ctx A context to share (can be NULL)
609 * @param[in] version Major OpenGL-ES version number
610 *
611 * @return The created context,
612 * otherwise @c NULL on failure
613 *
614 * This function can be used to create OpenGL-ES 1.1 contexts, but OpenGL-ES 3.x
615 * is not supported yet.
616 *
617 * The GL API bound to the created context must be queried using
618 * @ref evas_gl_context_api_get (instead of @ref evas_gl_api_get).
619 *
620 * @note GLES 3.x is not supported yet.
621 *
622 * @see Evas_GL_Context_Version
623 * @see evas_gl_context_api_get
624 *
625 * @since 1.12
626 */
627EAPI 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);
628
629/**
587 * @brief Destroys the given Evas GL context object. 630 * @brief Destroys the given Evas GL context object.
588 * 631 *
589 * @param[in] evas_gl The given Evas_GL object 632 * @param[in] evas_gl The given Evas_GL object
@@ -642,21 +685,55 @@ EAPI Evas_GL_Func evas_gl_proc_address_get (Evas_GL *evas_gl, cons
642EAPI 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); 685EAPI 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);
643 686
644/** 687/**
645 * Get the API for rendering using OpenGL 688 * @brief Gets the API for rendering using OpenGL.
646 * 689 *
647 * @param evas_gl The given Eva_GL object. 690 * @details This returns a structure that contains all the OpenGL functions you can
648 * @return The API to use. 691 * use to render in Evas. These functions consist of all the standard
692 * OpenGL-ES2.0 functions and any additional ones that Evas has decided to provide.
693 * This means that if you have your code ported to OpenGL-ES2.0,
694 * it is going to be easy to render to Evas.
649 * 695 *
650 * This returns a structure that contains all the OpenGL functions you can 696 * @param[in] evas_gl The given Evas_GL object
651 * use to render in Evas. These functions consist of all the standard 697 *
652 * OpenGL-ES2.0 functions and any extra ones Evas has decided to provide in 698 * @return The API to use
653 * addition. This means that if you have your code ported to OpenGL-ES2.0, 699 *
654 * it will be easy to render to Evas. 700 * @note This function will always return an OpenGL-ES 2.0 API, please use
701 * @ref evas_gl_context_api_get instead to get an OpenGL-ES 1.1 set of APIs.
702 *
703 * @see Evas_GL_API
704 * @see evas_gl_context_api_get
655 * 705 *
656 */ 706 */
657EAPI Evas_GL_API *evas_gl_api_get (Evas_GL *evas_gl) EINA_ARG_NONNULL(1); 707EAPI Evas_GL_API *evas_gl_api_get (Evas_GL *evas_gl) EINA_ARG_NONNULL(1);
658 708
659/** 709/**
710 * @brief Gets the API for rendering using OpenGL with non standard contexts.
711 *
712 * This function is similar to @ref evas_gl_api_get but takes an extra Evas GL
713 * context argument as it is used to get the real API used by special contexts,
714 * that have been instanciated with @ref evas_gl_context_version_create().
715 *
716 * This function can be used to get the GL API for a OpenGL-ES 1.1 context. When
717 * using OpenGL-ES 1.1, applications should always use @ref evas_gl_context_api_get
718 * and never call @ref evas_gl_api_get (this will always return a OpenGL-ES 2+ API).
719 *
720 * @param[in] evas_gl The given Evas_GL object
721 * @param[in] ctx Specifies which context to use, based on this, Evas GL
722 * will return a 1.1- or a 2.0-compatible OpenGL-ES API.
723 *
724 * @return The API to use. Only the available function pointers will be set
725 * in the structure. All the non compatible functions or unsupported
726 * extension function pointers will be set to NULL.
727 *
728 * @see Evas_GL_API
729 * @see evas_gl_api_get
730 * @see evas_gl_context_version_create
731 *
732 * @since 1.12
733 */
734EAPI Evas_GL_API *evas_gl_context_api_get (Evas_GL *evas_gl, Evas_GL_Context *ctx) EINA_ARG_NONNULL(1);
735
736/**
660 * @brief Get the current rotation of the view, in degrees. 737 * @brief Get the current rotation of the view, in degrees.
661 * 738 *
662 * This function should be called in order to properly handle the current 739 * This function should be called in order to properly handle the current
@@ -697,7 +774,7 @@ EAPI int evas_gl_rotation_get (Evas_GL *evas_gl) EINA
697 * 774 *
698 * @return EINA_TRUE in case of success, EINA_FALSE in case of error. 775 * @return EINA_TRUE in case of success, EINA_FALSE in case of error.
699 * 776 *
700 * @since_tizen 2.3 777 * @since 1.12
701 */ 778 */
702EAPI Eina_Bool evas_gl_surface_query (Evas_GL *evas_gl, Evas_GL_Surface *surface, int attribute, void *value) EINA_ARG_NONNULL(1,2); 779EAPI Eina_Bool evas_gl_surface_query (Evas_GL *evas_gl, Evas_GL_Surface *surface, int attribute, void *value) EINA_ARG_NONNULL(1,2);
703 780
@@ -774,8 +851,7 @@ typedef signed long long khronos_int64_t;
774typedef khronos_int64_t EvasGLint64; 851typedef khronos_int64_t EvasGLint64;
775typedef khronos_uint64_t EvasGLuint64; 852typedef khronos_uint64_t EvasGLuint64;
776 853
777#if !defined(__gl_h_) && !defined(__gl2_h_) 854#if !defined(__gl2_h_)
778# define __gl_h_
779# define __gl2_h_ 855# define __gl2_h_
780 856
781/* 857/*
@@ -1242,261 +1318,2140 @@ typedef signed long int GLsizeiptr; // Changed khronos_ssize_t
1242# endif 1318# endif
1243#endif 1319#endif
1244 1320
1321#ifndef __gl2ext_h_
1322#define __gl2ext_h_ 1
1323
1324#ifndef GL_KHR_blend_equation_advanced
1325#define GL_KHR_blend_equation_advanced 1
1326#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285
1327#define GL_MULTIPLY_KHR 0x9294
1328#define GL_SCREEN_KHR 0x9295
1329#define GL_OVERLAY_KHR 0x9296
1330#define GL_DARKEN_KHR 0x9297
1331#define GL_LIGHTEN_KHR 0x9298
1332#define GL_COLORDODGE_KHR 0x9299
1333#define GL_COLORBURN_KHR 0x929A
1334#define GL_HARDLIGHT_KHR 0x929B
1335#define GL_SOFTLIGHT_KHR 0x929C
1336#define GL_DIFFERENCE_KHR 0x929E
1337#define GL_EXCLUSION_KHR 0x92A0
1338#define GL_HSL_HUE_KHR 0x92AD
1339#define GL_HSL_SATURATION_KHR 0x92AE
1340#define GL_HSL_COLOR_KHR 0x92AF
1341#define GL_HSL_LUMINOSITY_KHR 0x92B0
1342#ifdef GL_GLEXT_PROTOTYPES
1343#endif
1344#endif /* GL_KHR_blend_equation_advanced */
1345
1346#ifndef GL_KHR_debug
1347#define GL_KHR_debug 1
1348#define GL_SAMPLER 0x82E6
1349#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242
1350#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243
1351#define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244
1352#define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245
1353#define GL_DEBUG_SOURCE_API_KHR 0x8246
1354#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247
1355#define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248
1356#define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249
1357#define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A
1358#define GL_DEBUG_SOURCE_OTHER_KHR 0x824B
1359#define GL_DEBUG_TYPE_ERROR_KHR 0x824C
1360#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D
1361#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E
1362#define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F
1363#define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250
1364#define GL_DEBUG_TYPE_OTHER_KHR 0x8251
1365#define GL_DEBUG_TYPE_MARKER_KHR 0x8268
1366#define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269
1367#define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A
1368#define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B
1369#define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C
1370#define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D
1371#define GL_BUFFER_KHR 0x82E0
1372#define GL_SHADER_KHR 0x82E1
1373#define GL_PROGRAM_KHR 0x82E2
1374#define GL_VERTEX_ARRAY_KHR 0x8074
1375#define GL_QUERY_KHR 0x82E3
1376#define GL_SAMPLER_KHR 0x82E6
1377#define GL_MAX_LABEL_LENGTH_KHR 0x82E8
1378#define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143
1379#define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144
1380#define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145
1381#define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146
1382#define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147
1383#define GL_DEBUG_SEVERITY_LOW_KHR 0x9148
1384#define GL_DEBUG_OUTPUT_KHR 0x92E0
1385#define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002
1386#define GL_STACK_OVERFLOW_KHR 0x0503
1387#define GL_STACK_UNDERFLOW_KHR 0x0504
1388#ifdef GL_GLEXT_PROTOTYPES
1389#endif
1390#endif /* GL_KHR_debug */
1391
1392#ifndef GL_KHR_texture_compression_astc_hdr
1393#define GL_KHR_texture_compression_astc_hdr 1
1394#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
1395#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
1396#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
1397#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
1398#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
1399#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
1400#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
1401#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
1402#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
1403#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
1404#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
1405#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
1406#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
1407#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
1408#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
1409#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
1410#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
1411#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
1412#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
1413#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
1414#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
1415#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
1416#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
1417#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
1418#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
1419#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
1420#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
1421#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
1422#endif /* GL_KHR_texture_compression_astc_hdr */
1423
1424#ifndef GL_KHR_texture_compression_astc_ldr
1425#define GL_KHR_texture_compression_astc_ldr 1
1426#endif /* GL_KHR_texture_compression_astc_ldr */
1427
1428#ifndef GL_OES_EGL_image
1429#define GL_OES_EGL_image 1
1430#ifdef GL_GLEXT_PROTOTYPES
1431#endif
1432#endif /* GL_OES_EGL_image */
1433
1434#ifndef GL_OES_EGL_image_external
1435#define GL_OES_EGL_image_external 1
1436#define GL_TEXTURE_EXTERNAL_OES 0x8D65
1437#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67
1438#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68
1439#define GL_SAMPLER_EXTERNAL_OES 0x8D66
1440#endif /* GL_OES_EGL_image_external */
1441
1442#ifndef GL_OES_compressed_ETC1_RGB8_texture
1443#define GL_OES_compressed_ETC1_RGB8_texture 1
1444#define GL_ETC1_RGB8_OES 0x8D64
1445#endif /* GL_OES_compressed_ETC1_RGB8_texture */
1446
1447#ifndef GL_OES_compressed_paletted_texture
1448#define GL_OES_compressed_paletted_texture 1
1449#define GL_PALETTE4_RGB8_OES 0x8B90
1450#define GL_PALETTE4_RGBA8_OES 0x8B91
1451#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
1452#define GL_PALETTE4_RGBA4_OES 0x8B93
1453#define GL_PALETTE4_RGB5_A1_OES 0x8B94
1454#define GL_PALETTE8_RGB8_OES 0x8B95
1455#define GL_PALETTE8_RGBA8_OES 0x8B96
1456#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
1457#define GL_PALETTE8_RGBA4_OES 0x8B98
1458#define GL_PALETTE8_RGB5_A1_OES 0x8B99
1459#endif /* GL_OES_compressed_paletted_texture */
1460
1461#ifndef GL_OES_depth24
1462#define GL_OES_depth24 1
1463#define GL_DEPTH_COMPONENT24_OES 0x81A6
1464#endif /* GL_OES_depth24 */
1465
1466#ifndef GL_OES_depth32
1467#define GL_OES_depth32 1
1468#define GL_DEPTH_COMPONENT32_OES 0x81A7
1469#endif /* GL_OES_depth32 */
1470
1471#ifndef GL_OES_depth_texture
1472#define GL_OES_depth_texture 1
1473#endif /* GL_OES_depth_texture */
1474
1475#ifndef GL_OES_element_index_uint
1476#define GL_OES_element_index_uint 1
1477#endif /* GL_OES_element_index_uint */
1478
1479#ifndef GL_OES_fbo_render_mipmap
1480#define GL_OES_fbo_render_mipmap 1
1481#endif /* GL_OES_fbo_render_mipmap */
1482
1483#ifndef GL_OES_fragment_precision_high
1484#define GL_OES_fragment_precision_high 1
1485#endif /* GL_OES_fragment_precision_high */
1486
1487#ifndef GL_OES_get_program_binary
1488#define GL_OES_get_program_binary 1
1489#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741
1490#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE
1491#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF
1492#ifdef GL_GLEXT_PROTOTYPES
1493#endif
1494#endif /* GL_OES_get_program_binary */
1495
1496#ifndef GL_OES_mapbuffer
1497#define GL_OES_mapbuffer 1
1498#define GL_WRITE_ONLY_OES 0x88B9
1499#define GL_BUFFER_ACCESS_OES 0x88BB
1500#define GL_BUFFER_MAPPED_OES 0x88BC
1501#define GL_BUFFER_MAP_POINTER_OES 0x88BD
1502#ifdef GL_GLEXT_PROTOTYPES
1503#endif
1504#endif /* GL_OES_mapbuffer */
1505
1506#ifndef GL_OES_packed_depth_stencil
1507#define GL_OES_packed_depth_stencil 1
1508#define GL_DEPTH_STENCIL_OES 0x84F9
1509#define GL_UNSIGNED_INT_24_8_OES 0x84FA
1510#define GL_DEPTH24_STENCIL8_OES 0x88F0
1511#endif /* GL_OES_packed_depth_stencil */
1512
1513#ifndef GL_OES_required_internalformat
1514#define GL_OES_required_internalformat 1
1515#define GL_ALPHA8_OES 0x803C
1516#define GL_DEPTH_COMPONENT16_OES 0x81A5
1517#define GL_LUMINANCE4_ALPHA4_OES 0x8043
1518#define GL_LUMINANCE8_ALPHA8_OES 0x8045
1519#define GL_LUMINANCE8_OES 0x8040
1520#define GL_RGBA4_OES 0x8056
1521#define GL_RGB5_A1_OES 0x8057
1522#define GL_RGB565_OES 0x8D62
1523#define GL_RGB8_OES 0x8051
1524#define GL_RGBA8_OES 0x8058
1525#define GL_RGB10_EXT 0x8052
1526#define GL_RGB10_A2_EXT 0x8059
1527#endif /* GL_OES_required_internalformat */
1528
1529#ifndef GL_OES_rgb8_rgba8
1530#define GL_OES_rgb8_rgba8 1
1531#endif /* GL_OES_rgb8_rgba8 */
1532
1533#ifndef GL_OES_sample_shading
1534#define GL_OES_sample_shading 1
1535#define GL_SAMPLE_SHADING_OES 0x8C36
1536#define GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37
1537#ifdef GL_GLEXT_PROTOTYPES
1538#endif
1539#endif /* GL_OES_sample_shading */
1540
1541#ifndef GL_OES_sample_variables
1542#define GL_OES_sample_variables 1
1543#endif /* GL_OES_sample_variables */
1544
1545#ifndef GL_OES_shader_image_atomic
1546#define GL_OES_shader_image_atomic 1
1547#endif /* GL_OES_shader_image_atomic */
1548
1549#ifndef GL_OES_shader_multisample_interpolation
1550#define GL_OES_shader_multisample_interpolation 1
1551#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B
1552#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C
1553#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D
1554#endif /* GL_OES_shader_multisample_interpolation */
1555
1556#ifndef GL_OES_standard_derivatives
1557#define GL_OES_standard_derivatives 1
1558#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B
1559#endif /* GL_OES_standard_derivatives */
1560
1561#ifndef GL_OES_stencil1
1562#define GL_OES_stencil1 1
1563#define GL_STENCIL_INDEX1_OES 0x8D46
1564#endif /* GL_OES_stencil1 */
1565
1566#ifndef GL_OES_stencil4
1567#define GL_OES_stencil4 1
1568#define GL_STENCIL_INDEX4_OES 0x8D47
1569#endif /* GL_OES_stencil4 */
1570
1571#ifndef GL_OES_surfaceless_context
1572#define GL_OES_surfaceless_context 1
1573#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219
1574#endif /* GL_OES_surfaceless_context */
1575
1576#ifndef GL_OES_texture_3D
1577#define GL_OES_texture_3D 1
1578#define GL_TEXTURE_WRAP_R_OES 0x8072
1579#define GL_TEXTURE_3D_OES 0x806F
1580#define GL_TEXTURE_BINDING_3D_OES 0x806A
1581#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073
1582#define GL_SAMPLER_3D_OES 0x8B5F
1583#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4
1584#ifdef GL_GLEXT_PROTOTYPES
1585#endif
1586#endif /* GL_OES_texture_3D */
1587
1588#ifndef GL_OES_texture_compression_astc
1589#define GL_OES_texture_compression_astc 1
1590#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0
1591#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1
1592#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2
1593#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3
1594#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4
1595#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5
1596#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6
1597#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7
1598#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8
1599#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9
1600#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0
1601#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1
1602#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2
1603#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3
1604#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4
1605#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5
1606#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6
1607#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7
1608#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8
1609#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9
1610#endif /* GL_OES_texture_compression_astc */
1611
1612#ifndef GL_OES_texture_float
1613#define GL_OES_texture_float 1
1614#endif /* GL_OES_texture_float */
1615
1616#ifndef GL_OES_texture_float_linear
1617#define GL_OES_texture_float_linear 1
1618#endif /* GL_OES_texture_float_linear */
1619
1620#ifndef GL_OES_texture_half_float
1621#define GL_OES_texture_half_float 1
1622#define GL_HALF_FLOAT_OES 0x8D61
1623#endif /* GL_OES_texture_half_float */
1624
1625#ifndef GL_OES_texture_half_float_linear
1626#define GL_OES_texture_half_float_linear 1
1627#endif /* GL_OES_texture_half_float_linear */
1628
1629#ifndef GL_OES_texture_npot
1630#define GL_OES_texture_npot 1
1631#endif /* GL_OES_texture_npot */
1632
1633#ifndef GL_OES_texture_stencil8
1634#define GL_OES_texture_stencil8 1
1635#define GL_STENCIL_INDEX_OES 0x1901
1636#define GL_STENCIL_INDEX8_OES 0x8D48
1637#endif /* GL_OES_texture_stencil8 */
1638
1639#ifndef GL_OES_texture_storage_multisample_2d_array
1640#define GL_OES_texture_storage_multisample_2d_array 1
1641#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102
1642#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105
1643#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B
1644#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C
1645#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D
1646#ifdef GL_GLEXT_PROTOTYPES
1647#endif
1648#endif /* GL_OES_texture_storage_multisample_2d_array */
1245 1649
1246#if !defined(__glext_h_) && !defined(__gl2ext_h_) 1650#ifndef GL_OES_vertex_array_object
1247# define __glext_h_ 1651#define GL_OES_vertex_array_object 1
1248# define __gl2ext_h_ 1652#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5
1653#ifdef GL_GLEXT_PROTOTYPES
1654#endif
1655#endif /* GL_OES_vertex_array_object */
1656
1657#ifndef GL_OES_vertex_half_float
1658#define GL_OES_vertex_half_float 1
1659#endif /* GL_OES_vertex_half_float */
1660
1661#ifndef GL_OES_vertex_type_10_10_10_2
1662#define GL_OES_vertex_type_10_10_10_2 1
1663#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6
1664#define GL_INT_10_10_10_2_OES 0x8DF7
1665#endif /* GL_OES_vertex_type_10_10_10_2 */
1666
1667#ifndef GL_AMD_compressed_3DC_texture
1668#define GL_AMD_compressed_3DC_texture 1
1669#define GL_3DC_X_AMD 0x87F9
1670#define GL_3DC_XY_AMD 0x87FA
1671#endif /* GL_AMD_compressed_3DC_texture */
1672
1673#ifndef GL_AMD_compressed_ATC_texture
1674#define GL_AMD_compressed_ATC_texture 1
1675#define GL_ATC_RGB_AMD 0x8C92
1676#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
1677#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
1678#endif /* GL_AMD_compressed_ATC_texture */
1679
1680#ifndef GL_AMD_performance_monitor
1681#define GL_AMD_performance_monitor 1
1682#define GL_COUNTER_TYPE_AMD 0x8BC0
1683#define GL_COUNTER_RANGE_AMD 0x8BC1
1684#define GL_UNSIGNED_INT64_AMD 0x8BC2
1685#define GL_PERCENTAGE_AMD 0x8BC3
1686#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
1687#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
1688#define GL_PERFMON_RESULT_AMD 0x8BC6
1689#ifdef GL_GLEXT_PROTOTYPES
1690#endif
1691#endif /* GL_AMD_performance_monitor */
1692
1693#ifndef GL_AMD_program_binary_Z400
1694#define GL_AMD_program_binary_Z400 1
1695#define GL_Z400_BINARY_AMD 0x8740
1696#endif /* GL_AMD_program_binary_Z400 */
1697
1698#ifndef GL_ANGLE_depth_texture
1699#define GL_ANGLE_depth_texture 1
1700#endif /* GL_ANGLE_depth_texture */
1701
1702#ifndef GL_ANGLE_framebuffer_blit
1703#define GL_ANGLE_framebuffer_blit 1
1704#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8
1705#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9
1706#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6
1707#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA
1708#ifdef GL_GLEXT_PROTOTYPES
1709#endif
1710#endif /* GL_ANGLE_framebuffer_blit */
1711
1712#ifndef GL_ANGLE_framebuffer_multisample
1713#define GL_ANGLE_framebuffer_multisample 1
1714#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB
1715#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56
1716#define GL_MAX_SAMPLES_ANGLE 0x8D57
1717#ifdef GL_GLEXT_PROTOTYPES
1718#endif
1719#endif /* GL_ANGLE_framebuffer_multisample */
1249 1720
1250//---------------------------// 1721#ifndef GL_ANGLE_instanced_arrays
1251// GLES extension defines 1722#define GL_ANGLE_instanced_arrays 1
1723#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE
1724#ifdef GL_GLEXT_PROTOTYPES
1725#endif
1726#endif /* GL_ANGLE_instanced_arrays */
1727
1728#ifndef GL_ANGLE_pack_reverse_row_order
1729#define GL_ANGLE_pack_reverse_row_order 1
1730#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4
1731#endif /* GL_ANGLE_pack_reverse_row_order */
1732
1733#ifndef GL_ANGLE_program_binary
1734#define GL_ANGLE_program_binary 1
1735#define GL_PROGRAM_BINARY_ANGLE 0x93A6
1736#endif /* GL_ANGLE_program_binary */
1737
1738#ifndef GL_ANGLE_texture_compression_dxt3
1739#define GL_ANGLE_texture_compression_dxt3 1
1740#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
1741#endif /* GL_ANGLE_texture_compression_dxt3 */
1742
1743#ifndef GL_ANGLE_texture_compression_dxt5
1744#define GL_ANGLE_texture_compression_dxt5 1
1745#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
1746#endif /* GL_ANGLE_texture_compression_dxt5 */
1747
1748#ifndef GL_ANGLE_texture_usage
1749#define GL_ANGLE_texture_usage 1
1750#define GL_TEXTURE_USAGE_ANGLE 0x93A2
1751#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3
1752#endif /* GL_ANGLE_texture_usage */
1753
1754#ifndef GL_ANGLE_translated_shader_source
1755#define GL_ANGLE_translated_shader_source 1
1756#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0
1757#ifdef GL_GLEXT_PROTOTYPES
1758#endif
1759#endif /* GL_ANGLE_translated_shader_source */
1252 1760
1253/* GL_OES_compressed_ETC1_RGB8_texture */ 1761#ifndef GL_APPLE_copy_texture_levels
1254#define GL_ETC1_RGB8_OES 0x8D64 1762#define GL_APPLE_copy_texture_levels 1
1763#ifdef GL_GLEXT_PROTOTYPES
1764#endif
1765#endif /* GL_APPLE_copy_texture_levels */
1766
1767#ifndef GL_APPLE_framebuffer_multisample
1768#define GL_APPLE_framebuffer_multisample 1
1769#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB
1770#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56
1771#define GL_MAX_SAMPLES_APPLE 0x8D57
1772#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8
1773#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9
1774#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6
1775#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA
1776#ifdef GL_GLEXT_PROTOTYPES
1777#endif
1778#endif /* GL_APPLE_framebuffer_multisample */
1779
1780#ifndef GL_APPLE_rgb_422
1781#define GL_APPLE_rgb_422 1
1782#define GL_RGB_422_APPLE 0x8A1F
1783#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
1784#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
1785#define GL_RGB_RAW_422_APPLE 0x8A51
1786#endif /* GL_APPLE_rgb_422 */
1787
1788#ifndef GL_APPLE_sync
1789#define GL_APPLE_sync 1
1790#define GL_SYNC_OBJECT_APPLE 0x8A53
1791#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111
1792#define GL_OBJECT_TYPE_APPLE 0x9112
1793#define GL_SYNC_CONDITION_APPLE 0x9113
1794#define GL_SYNC_STATUS_APPLE 0x9114
1795#define GL_SYNC_FLAGS_APPLE 0x9115
1796#define GL_SYNC_FENCE_APPLE 0x9116
1797#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117
1798#define GL_UNSIGNALED_APPLE 0x9118
1799#define GL_SIGNALED_APPLE 0x9119
1800#define GL_ALREADY_SIGNALED_APPLE 0x911A
1801#define GL_TIMEOUT_EXPIRED_APPLE 0x911B
1802#define GL_CONDITION_SATISFIED_APPLE 0x911C
1803#define GL_WAIT_FAILED_APPLE 0x911D
1804#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001
1805#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull
1806#ifdef GL_GLEXT_PROTOTYPES
1807#endif
1808#endif /* GL_APPLE_sync */
1809
1810#ifndef GL_APPLE_texture_format_BGRA8888
1811#define GL_APPLE_texture_format_BGRA8888 1
1812#define GL_BGRA_EXT 0x80E1
1813#define GL_BGRA8_EXT 0x93A1
1814#endif /* GL_APPLE_texture_format_BGRA8888 */
1815
1816#ifndef GL_APPLE_texture_max_level
1817#define GL_APPLE_texture_max_level 1
1818#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D
1819#endif /* GL_APPLE_texture_max_level */
1820
1821#ifndef GL_ARM_mali_program_binary
1822#define GL_ARM_mali_program_binary 1
1823#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61
1824#endif /* GL_ARM_mali_program_binary */
1825
1826#ifndef GL_ARM_mali_shader_binary
1827#define GL_ARM_mali_shader_binary 1
1828#define GL_MALI_SHADER_BINARY_ARM 0x8F60
1829#endif /* GL_ARM_mali_shader_binary */
1830
1831#ifndef GL_ARM_rgba8
1832#define GL_ARM_rgba8 1
1833#endif /* GL_ARM_rgba8 */
1834
1835#ifndef GL_ARM_shader_framebuffer_fetch
1836#define GL_ARM_shader_framebuffer_fetch 1
1837#define GL_FETCH_PER_SAMPLE_ARM 0x8F65
1838#define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66
1839#endif /* GL_ARM_shader_framebuffer_fetch */
1840
1841#ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil
1842#define GL_ARM_shader_framebuffer_fetch_depth_stencil 1
1843#endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */
1844
1845#ifndef GL_DMP_shader_binary
1846#define GL_DMP_shader_binary 1
1847#define GL_SHADER_BINARY_DMP 0x9250
1848#endif /* GL_DMP_shader_binary */
1849
1850#ifndef GL_EXT_blend_minmax
1851#define GL_EXT_blend_minmax 1
1852#define GL_MIN_EXT 0x8007
1853#define GL_MAX_EXT 0x8008
1854#endif /* GL_EXT_blend_minmax */
1855
1856#ifndef GL_EXT_color_buffer_half_float
1857#define GL_EXT_color_buffer_half_float 1
1858#define GL_RGBA16F_EXT 0x881A
1859#define GL_RGB16F_EXT 0x881B
1860#define GL_RG16F_EXT 0x822F
1861#define GL_R16F_EXT 0x822D
1862#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211
1863#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17
1864#endif /* GL_EXT_color_buffer_half_float */
1865
1866#ifndef GL_EXT_debug_label
1867#define GL_EXT_debug_label 1
1868#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
1869#define GL_PROGRAM_OBJECT_EXT 0x8B40
1870#define GL_SHADER_OBJECT_EXT 0x8B48
1871#define GL_BUFFER_OBJECT_EXT 0x9151
1872#define GL_QUERY_OBJECT_EXT 0x9153
1873#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154
1874#define GL_TRANSFORM_FEEDBACK 0x8E22
1875#ifdef GL_GLEXT_PROTOTYPES
1876#endif
1877#endif /* GL_EXT_debug_label */
1255 1878
1256/* The following are OpenGL ES 3.0 definitions for ETC2 1879#ifndef GL_EXT_debug_marker
1257 * Note that RGB8_ETC2 is a superset of GL_OES_compressed_ETC1_RGB8_texture */ 1880#define GL_EXT_debug_marker 1
1258#define GL_COMPRESSED_RGB8_ETC2 0x9274 1881#ifdef GL_GLEXT_PROTOTYPES
1259#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 1882#endif
1883#endif /* GL_EXT_debug_marker */
1884
1885#ifndef GL_EXT_discard_framebuffer
1886#define GL_EXT_discard_framebuffer 1
1887#define GL_COLOR_EXT 0x1800
1888#define GL_DEPTH_EXT 0x1801
1889#define GL_STENCIL_EXT 0x1802
1890#ifdef GL_GLEXT_PROTOTYPES
1891#endif
1892#endif /* GL_EXT_discard_framebuffer */
1893
1894#ifndef GL_EXT_disjoint_timer_query
1895#define GL_EXT_disjoint_timer_query 1
1896#define GL_QUERY_COUNTER_BITS_EXT 0x8864
1897#define GL_CURRENT_QUERY_EXT 0x8865
1898#define GL_QUERY_RESULT_EXT 0x8866
1899#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867
1900#define GL_TIME_ELAPSED_EXT 0x88BF
1901#define GL_TIMESTAMP_EXT 0x8E28
1902#define GL_GPU_DISJOINT_EXT 0x8FBB
1903#ifdef GL_GLEXT_PROTOTYPES
1904#endif
1905#endif /* GL_EXT_disjoint_timer_query */
1906
1907#ifndef GL_EXT_draw_buffers
1908#define GL_EXT_draw_buffers 1
1909#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
1910#define GL_MAX_DRAW_BUFFERS_EXT 0x8824
1911#define GL_DRAW_BUFFER0_EXT 0x8825
1912#define GL_DRAW_BUFFER1_EXT 0x8826
1913#define GL_DRAW_BUFFER2_EXT 0x8827
1914#define GL_DRAW_BUFFER3_EXT 0x8828
1915#define GL_DRAW_BUFFER4_EXT 0x8829
1916#define GL_DRAW_BUFFER5_EXT 0x882A
1917#define GL_DRAW_BUFFER6_EXT 0x882B
1918#define GL_DRAW_BUFFER7_EXT 0x882C
1919#define GL_DRAW_BUFFER8_EXT 0x882D
1920#define GL_DRAW_BUFFER9_EXT 0x882E
1921#define GL_DRAW_BUFFER10_EXT 0x882F
1922#define GL_DRAW_BUFFER11_EXT 0x8830
1923#define GL_DRAW_BUFFER12_EXT 0x8831
1924#define GL_DRAW_BUFFER13_EXT 0x8832
1925#define GL_DRAW_BUFFER14_EXT 0x8833
1926#define GL_DRAW_BUFFER15_EXT 0x8834
1927#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
1928#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
1929#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
1930#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
1931#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
1932#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
1933#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
1934#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
1935#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
1936#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
1937#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
1938#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
1939#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
1940#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
1941#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
1942#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
1943#ifdef GL_GLEXT_PROTOTYPES
1944#endif
1945#endif /* GL_EXT_draw_buffers */
1946
1947#ifndef GL_EXT_draw_instanced
1948#define GL_EXT_draw_instanced 1
1949#ifdef GL_GLEXT_PROTOTYPES
1950#endif
1951#endif /* GL_EXT_draw_instanced */
1952
1953#ifndef GL_EXT_instanced_arrays
1954#define GL_EXT_instanced_arrays 1
1955#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE
1956#ifdef GL_GLEXT_PROTOTYPES
1957#endif
1958#endif /* GL_EXT_instanced_arrays */
1959
1960#ifndef GL_EXT_map_buffer_range
1961#define GL_EXT_map_buffer_range 1
1962#define GL_MAP_READ_BIT_EXT 0x0001
1963#define GL_MAP_WRITE_BIT_EXT 0x0002
1964#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004
1965#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008
1966#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010
1967#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020
1968#ifdef GL_GLEXT_PROTOTYPES
1969#endif
1970#endif /* GL_EXT_map_buffer_range */
1971
1972#ifndef GL_EXT_multi_draw_arrays
1973#define GL_EXT_multi_draw_arrays 1
1974#ifdef GL_GLEXT_PROTOTYPES
1975#endif
1976#endif /* GL_EXT_multi_draw_arrays */
1977
1978#ifndef GL_EXT_multisampled_render_to_texture
1979#define GL_EXT_multisampled_render_to_texture 1
1980#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C
1981#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
1982#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
1983#define GL_MAX_SAMPLES_EXT 0x8D57
1984#ifdef GL_GLEXT_PROTOTYPES
1985#endif
1986#endif /* GL_EXT_multisampled_render_to_texture */
1987
1988#ifndef GL_EXT_multiview_draw_buffers
1989#define GL_EXT_multiview_draw_buffers 1
1990#define GL_COLOR_ATTACHMENT_EXT 0x90F0
1991#define GL_MULTIVIEW_EXT 0x90F1
1992#define GL_DRAW_BUFFER_EXT 0x0C01
1993#define GL_READ_BUFFER_EXT 0x0C02
1994#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2
1995#ifdef GL_GLEXT_PROTOTYPES
1996#endif
1997#endif /* GL_EXT_multiview_draw_buffers */
1998
1999#ifndef GL_EXT_occlusion_query_boolean
2000#define GL_EXT_occlusion_query_boolean 1
2001#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F
2002#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A
2003#endif /* GL_EXT_occlusion_query_boolean */
2004
2005#ifndef GL_EXT_pvrtc_sRGB
2006#define GL_EXT_pvrtc_sRGB 1
2007#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54
2008#define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55
2009#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56
2010#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57
2011#endif /* GL_EXT_pvrtc_sRGB */
2012
2013#ifndef GL_EXT_read_format_bgra
2014#define GL_EXT_read_format_bgra 1
2015#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365
2016#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366
2017#endif /* GL_EXT_read_format_bgra */
2018
2019#ifndef GL_EXT_robustness
2020#define GL_EXT_robustness 1
2021#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253
2022#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254
2023#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255
2024#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3
2025#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256
2026#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252
2027#define GL_NO_RESET_NOTIFICATION_EXT 0x8261
2028#ifdef GL_GLEXT_PROTOTYPES
2029#endif
2030#endif /* GL_EXT_robustness */
2031
2032#ifndef GL_EXT_sRGB
2033#define GL_EXT_sRGB 1
2034#define GL_SRGB_EXT 0x8C40
2035#define GL_SRGB_ALPHA_EXT 0x8C42
2036#define GL_SRGB8_ALPHA8_EXT 0x8C43
2037#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
2038#endif /* GL_EXT_sRGB */
2039
2040#ifndef GL_EXT_sRGB_write_control
2041#define GL_EXT_sRGB_write_control 1
2042#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
2043#endif /* GL_EXT_sRGB_write_control */
2044
2045#ifndef GL_EXT_separate_shader_objects
2046#define GL_EXT_separate_shader_objects 1
2047#define GL_ACTIVE_PROGRAM_EXT 0x8259
2048#define GL_VERTEX_SHADER_BIT_EXT 0x00000001
2049#define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002
2050#define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF
2051#define GL_PROGRAM_SEPARABLE_EXT 0x8258
2052#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A
2053#ifdef GL_GLEXT_PROTOTYPES
2054#endif
2055#endif /* GL_EXT_separate_shader_objects */
2056
2057#ifndef GL_EXT_shader_framebuffer_fetch
2058#define GL_EXT_shader_framebuffer_fetch 1
2059#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
2060#endif /* GL_EXT_shader_framebuffer_fetch */
2061
2062#ifndef GL_EXT_shader_integer_mix
2063#define GL_EXT_shader_integer_mix 1
2064#endif /* GL_EXT_shader_integer_mix */
2065
2066#ifndef GL_EXT_shader_pixel_local_storage
2067#define GL_EXT_shader_pixel_local_storage 1
2068#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63
2069#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67
2070#define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64
2071#endif /* GL_EXT_shader_pixel_local_storage */
2072
2073#ifndef GL_EXT_shader_texture_lod
2074#define GL_EXT_shader_texture_lod 1
2075#endif /* GL_EXT_shader_texture_lod */
2076
2077#ifndef GL_EXT_shadow_samplers
2078#define GL_EXT_shadow_samplers 1
2079#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C
2080#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D
2081#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E
2082#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62
2083#endif /* GL_EXT_shadow_samplers */
2084
2085#ifndef GL_EXT_texture_compression_dxt1
2086#define GL_EXT_texture_compression_dxt1 1
2087#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
2088#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
2089#endif /* GL_EXT_texture_compression_dxt1 */
2090
2091#ifndef GL_EXT_texture_compression_s3tc
2092#define GL_EXT_texture_compression_s3tc 1
2093#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
2094#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
2095#endif /* GL_EXT_texture_compression_s3tc */
2096
2097#ifndef GL_EXT_texture_filter_anisotropic
2098#define GL_EXT_texture_filter_anisotropic 1
2099#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
2100#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
2101#endif /* GL_EXT_texture_filter_anisotropic */
2102
2103#ifndef GL_EXT_texture_format_BGRA8888
2104#define GL_EXT_texture_format_BGRA8888 1
2105#endif /* GL_EXT_texture_format_BGRA8888 */
2106
2107#ifndef GL_EXT_texture_rg
2108#define GL_EXT_texture_rg 1
2109#define GL_RED_EXT 0x1903
2110#define GL_RG_EXT 0x8227
2111#define GL_R8_EXT 0x8229
2112#define GL_RG8_EXT 0x822B
2113#endif /* GL_EXT_texture_rg */
2114
2115#ifndef GL_EXT_texture_sRGB_decode
2116#define GL_EXT_texture_sRGB_decode 1
2117#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48
2118#define GL_DECODE_EXT 0x8A49
2119#define GL_SKIP_DECODE_EXT 0x8A4A
2120#endif /* GL_EXT_texture_sRGB_decode */
2121
2122#ifndef GL_EXT_texture_storage
2123#define GL_EXT_texture_storage 1
2124#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F
2125#define GL_ALPHA8_EXT 0x803C
2126#define GL_LUMINANCE8_EXT 0x8040
2127#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
2128#define GL_RGBA32F_EXT 0x8814
2129#define GL_RGB32F_EXT 0x8815
2130#define GL_ALPHA32F_EXT 0x8816
2131#define GL_LUMINANCE32F_EXT 0x8818
2132#define GL_LUMINANCE_ALPHA32F_EXT 0x8819
2133#define GL_ALPHA16F_EXT 0x881C
2134#define GL_LUMINANCE16F_EXT 0x881E
2135#define GL_LUMINANCE_ALPHA16F_EXT 0x881F
2136#define GL_R32F_EXT 0x822E
2137#define GL_RG32F_EXT 0x8230
2138#ifdef GL_GLEXT_PROTOTYPES
2139#endif
2140#endif /* GL_EXT_texture_storage */
2141
2142#ifndef GL_EXT_texture_type_2_10_10_10_REV
2143#define GL_EXT_texture_type_2_10_10_10_REV 1
2144#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
2145#endif /* GL_EXT_texture_type_2_10_10_10_REV */
2146
2147#ifndef GL_EXT_unpack_subimage
2148#define GL_EXT_unpack_subimage 1
2149#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2
2150#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3
2151#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4
2152#endif /* GL_EXT_unpack_subimage */
2153
2154#ifndef GL_FJ_shader_binary_GCCSO
2155#define GL_FJ_shader_binary_GCCSO 1
2156#define GL_GCCSO_SHADER_BINARY_FJ 0x9260
2157#endif /* GL_FJ_shader_binary_GCCSO */
2158
2159#ifndef GL_IMG_multisampled_render_to_texture
2160#define GL_IMG_multisampled_render_to_texture 1
2161#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133
2162#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134
2163#define GL_MAX_SAMPLES_IMG 0x9135
2164#define GL_TEXTURE_SAMPLES_IMG 0x9136
2165#ifdef GL_GLEXT_PROTOTYPES
2166#endif
2167#endif /* GL_IMG_multisampled_render_to_texture */
2168
2169#ifndef GL_IMG_program_binary
2170#define GL_IMG_program_binary 1
2171#define GL_SGX_PROGRAM_BINARY_IMG 0x9130
2172#endif /* GL_IMG_program_binary */
2173
2174#ifndef GL_IMG_read_format
2175#define GL_IMG_read_format 1
2176#define GL_BGRA_IMG 0x80E1
2177#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365
2178#endif /* GL_IMG_read_format */
2179
2180#ifndef GL_IMG_shader_binary
2181#define GL_IMG_shader_binary 1
2182#define GL_SGX_BINARY_IMG 0x8C0A
2183#endif /* GL_IMG_shader_binary */
2184
2185#ifndef GL_IMG_texture_compression_pvrtc
2186#define GL_IMG_texture_compression_pvrtc 1
2187#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00
2188#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01
2189#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02
2190#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03
2191#endif /* GL_IMG_texture_compression_pvrtc */
2192
2193#ifndef GL_IMG_texture_compression_pvrtc2
2194#define GL_IMG_texture_compression_pvrtc2 1
2195#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137
2196#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138
2197#endif /* GL_IMG_texture_compression_pvrtc2 */
2198
2199#ifndef GL_INTEL_performance_query
2200#define GL_INTEL_performance_query 1
2201#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000
2202#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001
2203#define GL_PERFQUERY_WAIT_INTEL 0x83FB
2204#define GL_PERFQUERY_FLUSH_INTEL 0x83FA
2205#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9
2206#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0
2207#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1
2208#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2
2209#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3
2210#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4
2211#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5
2212#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8
2213#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9
2214#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA
2215#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB
2216#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC
2217#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD
2218#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE
2219#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF
2220#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500
2221#ifdef GL_GLEXT_PROTOTYPES
2222#endif
2223#endif /* GL_INTEL_performance_query */
2224
2225#ifndef GL_NV_blend_equation_advanced
2226#define GL_NV_blend_equation_advanced 1
2227#define GL_BLEND_OVERLAP_NV 0x9281
2228#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280
2229#define GL_BLUE_NV 0x1905
2230#define GL_COLORBURN_NV 0x929A
2231#define GL_COLORDODGE_NV 0x9299
2232#define GL_CONJOINT_NV 0x9284
2233#define GL_CONTRAST_NV 0x92A1
2234#define GL_DARKEN_NV 0x9297
2235#define GL_DIFFERENCE_NV 0x929E
2236#define GL_DISJOINT_NV 0x9283
2237#define GL_DST_ATOP_NV 0x928F
2238#define GL_DST_IN_NV 0x928B
2239#define GL_DST_NV 0x9287
2240#define GL_DST_OUT_NV 0x928D
2241#define GL_DST_OVER_NV 0x9289
2242#define GL_EXCLUSION_NV 0x92A0
2243#define GL_GREEN_NV 0x1904
2244#define GL_HARDLIGHT_NV 0x929B
2245#define GL_HARDMIX_NV 0x92A9
2246#define GL_HSL_COLOR_NV 0x92AF
2247#define GL_HSL_HUE_NV 0x92AD
2248#define GL_HSL_LUMINOSITY_NV 0x92B0
2249#define GL_HSL_SATURATION_NV 0x92AE
2250#define GL_INVERT_OVG_NV 0x92B4
2251#define GL_INVERT_RGB_NV 0x92A3
2252#define GL_LIGHTEN_NV 0x9298
2253#define GL_LINEARBURN_NV 0x92A5
2254#define GL_LINEARDODGE_NV 0x92A4
2255#define GL_LINEARLIGHT_NV 0x92A7
2256#define GL_MINUS_CLAMPED_NV 0x92B3
2257#define GL_MINUS_NV 0x929F
2258#define GL_MULTIPLY_NV 0x9294
2259#define GL_OVERLAY_NV 0x9296
2260#define GL_PINLIGHT_NV 0x92A8
2261#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2
2262#define GL_PLUS_CLAMPED_NV 0x92B1
2263#define GL_PLUS_DARKER_NV 0x9292
2264#define GL_PLUS_NV 0x9291
2265#define GL_RED_NV 0x1903
2266#define GL_SCREEN_NV 0x9295
2267#define GL_SOFTLIGHT_NV 0x929C
2268#define GL_SRC_ATOP_NV 0x928E
2269#define GL_SRC_IN_NV 0x928A
2270#define GL_SRC_NV 0x9286
2271#define GL_SRC_OUT_NV 0x928C
2272#define GL_SRC_OVER_NV 0x9288
2273#define GL_UNCORRELATED_NV 0x9282
2274#define GL_VIVIDLIGHT_NV 0x92A6
2275#define GL_XOR_NV 0x1506
2276#ifdef GL_GLEXT_PROTOTYPES
2277#endif
2278#endif /* GL_NV_blend_equation_advanced */
2279
2280#ifndef GL_NV_blend_equation_advanced_coherent
2281#define GL_NV_blend_equation_advanced_coherent 1
2282#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285
2283#endif /* GL_NV_blend_equation_advanced_coherent */
2284
2285#ifndef GL_NV_copy_buffer
2286#define GL_NV_copy_buffer 1
2287#define GL_COPY_READ_BUFFER_NV 0x8F36
2288#define GL_COPY_WRITE_BUFFER_NV 0x8F37
2289#ifdef GL_GLEXT_PROTOTYPES
2290#endif
2291#endif /* GL_NV_copy_buffer */
2292
2293#ifndef GL_NV_coverage_sample
2294#define GL_NV_coverage_sample 1
2295#define GL_COVERAGE_COMPONENT_NV 0x8ED0
2296#define GL_COVERAGE_COMPONENT4_NV 0x8ED1
2297#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2
2298#define GL_COVERAGE_BUFFERS_NV 0x8ED3
2299#define GL_COVERAGE_SAMPLES_NV 0x8ED4
2300#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5
2301#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6
2302#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7
2303#define GL_COVERAGE_BUFFER_BIT_NV 0x00008000
2304#ifdef GL_GLEXT_PROTOTYPES
2305#endif
2306#endif /* GL_NV_coverage_sample */
2307
2308#ifndef GL_NV_depth_nonlinear
2309#define GL_NV_depth_nonlinear 1
2310#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C
2311#endif /* GL_NV_depth_nonlinear */
2312
2313#ifndef GL_NV_draw_buffers
2314#define GL_NV_draw_buffers 1
2315#define GL_MAX_DRAW_BUFFERS_NV 0x8824
2316#define GL_DRAW_BUFFER0_NV 0x8825
2317#define GL_DRAW_BUFFER1_NV 0x8826
2318#define GL_DRAW_BUFFER2_NV 0x8827
2319#define GL_DRAW_BUFFER3_NV 0x8828
2320#define GL_DRAW_BUFFER4_NV 0x8829
2321#define GL_DRAW_BUFFER5_NV 0x882A
2322#define GL_DRAW_BUFFER6_NV 0x882B
2323#define GL_DRAW_BUFFER7_NV 0x882C
2324#define GL_DRAW_BUFFER8_NV 0x882D
2325#define GL_DRAW_BUFFER9_NV 0x882E
2326#define GL_DRAW_BUFFER10_NV 0x882F
2327#define GL_DRAW_BUFFER11_NV 0x8830
2328#define GL_DRAW_BUFFER12_NV 0x8831
2329#define GL_DRAW_BUFFER13_NV 0x8832
2330#define GL_DRAW_BUFFER14_NV 0x8833
2331#define GL_DRAW_BUFFER15_NV 0x8834
2332#define GL_COLOR_ATTACHMENT0_NV 0x8CE0
2333#define GL_COLOR_ATTACHMENT1_NV 0x8CE1
2334#define GL_COLOR_ATTACHMENT2_NV 0x8CE2
2335#define GL_COLOR_ATTACHMENT3_NV 0x8CE3
2336#define GL_COLOR_ATTACHMENT4_NV 0x8CE4
2337#define GL_COLOR_ATTACHMENT5_NV 0x8CE5
2338#define GL_COLOR_ATTACHMENT6_NV 0x8CE6
2339#define GL_COLOR_ATTACHMENT7_NV 0x8CE7
2340#define GL_COLOR_ATTACHMENT8_NV 0x8CE8
2341#define GL_COLOR_ATTACHMENT9_NV 0x8CE9
2342#define GL_COLOR_ATTACHMENT10_NV 0x8CEA
2343#define GL_COLOR_ATTACHMENT11_NV 0x8CEB
2344#define GL_COLOR_ATTACHMENT12_NV 0x8CEC
2345#define GL_COLOR_ATTACHMENT13_NV 0x8CED
2346#define GL_COLOR_ATTACHMENT14_NV 0x8CEE
2347#define GL_COLOR_ATTACHMENT15_NV 0x8CEF
2348#ifdef GL_GLEXT_PROTOTYPES
2349#endif
2350#endif /* GL_NV_draw_buffers */
2351
2352#ifndef GL_NV_draw_instanced
2353#define GL_NV_draw_instanced 1
2354#ifdef GL_GLEXT_PROTOTYPES
2355#endif
2356#endif /* GL_NV_draw_instanced */
2357
2358#ifndef GL_NV_explicit_attrib_location
2359#define GL_NV_explicit_attrib_location 1
2360#endif /* GL_NV_explicit_attrib_location */
2361
2362#ifndef GL_NV_fbo_color_attachments
2363#define GL_NV_fbo_color_attachments 1
2364#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF
2365#endif /* GL_NV_fbo_color_attachments */
2366
2367#ifndef GL_NV_fence
2368#define GL_NV_fence 1
2369#define GL_ALL_COMPLETED_NV 0x84F2
2370#define GL_FENCE_STATUS_NV 0x84F3
2371#define GL_FENCE_CONDITION_NV 0x84F4
2372#ifdef GL_GLEXT_PROTOTYPES
2373#endif
2374#endif /* GL_NV_fence */
2375
2376#ifndef GL_NV_framebuffer_blit
2377#define GL_NV_framebuffer_blit 1
2378#define GL_READ_FRAMEBUFFER_NV 0x8CA8
2379#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9
2380#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6
2381#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA
2382#ifdef GL_GLEXT_PROTOTYPES
2383#endif
2384#endif /* GL_NV_framebuffer_blit */
2385
2386#ifndef GL_NV_framebuffer_multisample
2387#define GL_NV_framebuffer_multisample 1
2388#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB
2389#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56
2390#define GL_MAX_SAMPLES_NV 0x8D57
2391#ifdef GL_GLEXT_PROTOTYPES
2392#endif
2393#endif /* GL_NV_framebuffer_multisample */
2394
2395#ifndef GL_NV_generate_mipmap_sRGB
2396#define GL_NV_generate_mipmap_sRGB 1
2397#endif /* GL_NV_generate_mipmap_sRGB */
2398
2399#ifndef GL_NV_instanced_arrays
2400#define GL_NV_instanced_arrays 1
2401#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE
2402#ifdef GL_GLEXT_PROTOTYPES
2403#endif
2404#endif /* GL_NV_instanced_arrays */
2405
2406#ifndef GL_NV_non_square_matrices
2407#define GL_NV_non_square_matrices 1
2408#define GL_FLOAT_MAT2x3_NV 0x8B65
2409#define GL_FLOAT_MAT2x4_NV 0x8B66
2410#define GL_FLOAT_MAT3x2_NV 0x8B67
2411#define GL_FLOAT_MAT3x4_NV 0x8B68
2412#define GL_FLOAT_MAT4x2_NV 0x8B69
2413#define GL_FLOAT_MAT4x3_NV 0x8B6A
2414#ifdef GL_GLEXT_PROTOTYPES
2415#endif
2416#endif /* GL_NV_non_square_matrices */
2417
2418#ifndef GL_NV_read_buffer
2419#define GL_NV_read_buffer 1
2420#define GL_READ_BUFFER_NV 0x0C02
2421#ifdef GL_GLEXT_PROTOTYPES
2422#endif
2423#endif /* GL_NV_read_buffer */
2424
2425#ifndef GL_NV_read_buffer_front
2426#define GL_NV_read_buffer_front 1
2427#endif /* GL_NV_read_buffer_front */
2428
2429#ifndef GL_NV_read_depth
2430#define GL_NV_read_depth 1
2431#endif /* GL_NV_read_depth */
2432
2433#ifndef GL_NV_read_depth_stencil
2434#define GL_NV_read_depth_stencil 1
2435#endif /* GL_NV_read_depth_stencil */
2436
2437#ifndef GL_NV_read_stencil
2438#define GL_NV_read_stencil 1
2439#endif /* GL_NV_read_stencil */
2440
2441#ifndef GL_NV_sRGB_formats
2442#define GL_NV_sRGB_formats 1
2443#define GL_SLUMINANCE_NV 0x8C46
2444#define GL_SLUMINANCE_ALPHA_NV 0x8C44
2445#define GL_SRGB8_NV 0x8C41
2446#define GL_SLUMINANCE8_NV 0x8C47
2447#define GL_SLUMINANCE8_ALPHA8_NV 0x8C45
2448#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C
2449#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D
2450#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E
2451#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F
2452#define GL_ETC1_SRGB8_NV 0x88EE
2453#endif /* GL_NV_sRGB_formats */
2454
2455#ifndef GL_NV_shadow_samplers_array
2456#define GL_NV_shadow_samplers_array 1
2457#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4
2458#endif /* GL_NV_shadow_samplers_array */
2459
2460#ifndef GL_NV_shadow_samplers_cube
2461#define GL_NV_shadow_samplers_cube 1
2462#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5
2463#endif /* GL_NV_shadow_samplers_cube */
2464
2465#ifndef GL_NV_texture_border_clamp
2466#define GL_NV_texture_border_clamp 1
2467#define GL_TEXTURE_BORDER_COLOR_NV 0x1004
2468#define GL_CLAMP_TO_BORDER_NV 0x812D
2469#endif /* GL_NV_texture_border_clamp */
2470
2471#ifndef GL_NV_texture_compression_s3tc_update
2472#define GL_NV_texture_compression_s3tc_update 1
2473#endif /* GL_NV_texture_compression_s3tc_update */
2474
2475#ifndef GL_NV_texture_npot_2D_mipmap
2476#define GL_NV_texture_npot_2D_mipmap 1
2477#endif /* GL_NV_texture_npot_2D_mipmap */
2478
2479#ifndef GL_QCOM_alpha_test
2480#define GL_QCOM_alpha_test 1
2481#define GL_ALPHA_TEST_QCOM 0x0BC0
2482#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1
2483#define GL_ALPHA_TEST_REF_QCOM 0x0BC2
2484#ifdef GL_GLEXT_PROTOTYPES
2485#endif
2486#endif /* GL_QCOM_alpha_test */
2487
2488#ifndef GL_QCOM_binning_control
2489#define GL_QCOM_binning_control 1
2490#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0
2491#define GL_CPU_OPTIMIZED_QCOM 0x8FB1
2492#define GL_GPU_OPTIMIZED_QCOM 0x8FB2
2493#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3
2494#endif /* GL_QCOM_binning_control */
2495
2496#ifndef GL_QCOM_driver_control
2497#define GL_QCOM_driver_control 1
2498#ifdef GL_GLEXT_PROTOTYPES
2499#endif
2500#endif /* GL_QCOM_driver_control */
2501
2502#ifndef GL_QCOM_extended_get
2503#define GL_QCOM_extended_get 1
2504#define GL_TEXTURE_WIDTH_QCOM 0x8BD2
2505#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3
2506#define GL_TEXTURE_DEPTH_QCOM 0x8BD4
2507#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5
2508#define GL_TEXTURE_FORMAT_QCOM 0x8BD6
2509#define GL_TEXTURE_TYPE_QCOM 0x8BD7
2510#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8
2511#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9
2512#define GL_TEXTURE_TARGET_QCOM 0x8BDA
2513#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB
2514#define GL_STATE_RESTORE 0x8BDC
2515#ifdef GL_GLEXT_PROTOTYPES
2516#endif
2517#endif /* GL_QCOM_extended_get */
1260 2518
1261/* GL_OES_compressed_paletted_texture */ 2519#ifndef GL_QCOM_extended_get2
1262#define GL_PALETTE4_RGB8_OES 0x8B90 2520#define GL_QCOM_extended_get2 1
1263#define GL_PALETTE4_RGBA8_OES 0x8B91 2521#ifdef GL_GLEXT_PROTOTYPES
1264#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 2522#endif
1265#define GL_PALETTE4_RGBA4_OES 0x8B93 2523#endif /* GL_QCOM_extended_get2 */
1266#define GL_PALETTE4_RGB5_A1_OES 0x8B94 2524
1267#define GL_PALETTE8_RGB8_OES 0x8B95 2525#ifndef GL_QCOM_perfmon_global_mode
1268#define GL_PALETTE8_RGBA8_OES 0x8B96 2526#define GL_QCOM_perfmon_global_mode 1
1269#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 2527#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0
1270#define GL_PALETTE8_RGBA4_OES 0x8B98 2528#endif /* GL_QCOM_perfmon_global_mode */
1271#define GL_PALETTE8_RGB5_A1_OES 0x8B99 2529
2530#ifndef GL_QCOM_tiled_rendering
2531#define GL_QCOM_tiled_rendering 1
2532#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001
2533#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002
2534#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004
2535#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008
2536#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010
2537#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020
2538#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040
2539#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080
2540#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100
2541#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200
2542#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400
2543#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800
2544#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000
2545#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000
2546#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000
2547#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000
2548#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000
2549#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000
2550#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000
2551#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000
2552#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000
2553#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000
2554#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000
2555#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000
2556#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000
2557#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000
2558#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000
2559#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000
2560#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000
2561#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000
2562#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000
2563#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000
2564#ifdef GL_GLEXT_PROTOTYPES
2565#endif
2566#endif /* GL_QCOM_tiled_rendering */
2567
2568#ifndef GL_QCOM_writeonly_rendering
2569#define GL_QCOM_writeonly_rendering 1
2570#define GL_WRITEONLY_RENDERING_QCOM 0x8823
2571#endif /* GL_QCOM_writeonly_rendering */
2572
2573#ifndef GL_VIV_shader_binary
2574#define GL_VIV_shader_binary 1
2575#define GL_SHADER_BINARY_VIV 0x8FC4
2576#endif /* GL_VIV_shader_binary */
2577
2578#else
2579# ifndef EVAS_GL_NO_GL_H_CHECK
2580# 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."
2581# endif
2582#endif
1272 2583
1273/* GL_OES_depth24 */
1274#define GL_DEPTH_COMPONENT24_OES 0x81A6
1275 2584
1276/* GL_OES_depth32 */ 2585/* OpenGLES 1.0 */
1277#define GL_DEPTH_COMPONENT32_OES 0x81A7 2586
2587#ifndef __gl_h_
2588# define __gl_h_ 1
2589
2590/* Note: This should redefine a lot of the macros already defined above,
2591 * but the compiler shouldn't raise any warning since the definitions are
2592 * exactly the same.
2593 */
2594
2595/* OpenGL ES core versions */
2596#define GL_VERSION_ES_CM_1_0 1
2597#define GL_VERSION_ES_CL_1_0 1
2598#define GL_VERSION_ES_CM_1_1 1
2599#define GL_VERSION_ES_CL_1_1 1
2600
2601/* ClearBufferMask */
2602#define GL_DEPTH_BUFFER_BIT 0x00000100
2603#define GL_STENCIL_BUFFER_BIT 0x00000400
2604#define GL_COLOR_BUFFER_BIT 0x00004000
2605
2606/* Boolean */
2607#define GL_FALSE 0
2608#define GL_TRUE 1
2609
2610/* BeginMode */
2611#define GL_POINTS 0x0000
2612#define GL_LINES 0x0001
2613#define GL_LINE_LOOP 0x0002
2614#define GL_LINE_STRIP 0x0003
2615#define GL_TRIANGLES 0x0004
2616#define GL_TRIANGLE_STRIP 0x0005
2617#define GL_TRIANGLE_FAN 0x0006
1278 2618
1279/* GL_OES_get_program_binary */ 2619/* AlphaFunction */
1280#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 2620#define GL_NEVER 0x0200
1281#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE 2621#define GL_LESS 0x0201
1282#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF 2622#define GL_EQUAL 0x0202
2623#define GL_LEQUAL 0x0203
2624#define GL_GREATER 0x0204
2625#define GL_NOTEQUAL 0x0205
2626#define GL_GEQUAL 0x0206
2627#define GL_ALWAYS 0x0207
1283 2628
1284/* GL_OES_mapbuffer */ 2629/* BlendingFactorDest */
1285#define GL_WRITE_ONLY_OES 0x88B9 2630#define GL_ZERO 0
1286#define GL_BUFFER_ACCESS_OES 0x88BB 2631#define GL_ONE 1
1287#define GL_BUFFER_MAPPED_OES 0x88BC 2632#define GL_SRC_COLOR 0x0300
1288#define GL_BUFFER_MAP_POINTER_OES 0x88BD 2633#define GL_ONE_MINUS_SRC_COLOR 0x0301
2634#define GL_SRC_ALPHA 0x0302
2635#define GL_ONE_MINUS_SRC_ALPHA 0x0303
2636#define GL_DST_ALPHA 0x0304
2637#define GL_ONE_MINUS_DST_ALPHA 0x0305
1289 2638
1290/* GL_OES_packed_depth_stencil */ 2639/* BlendingFactorSrc */
1291#define GL_DEPTH_STENCIL_OES 0x84F9 2640/* GL_ZERO */
1292#define GL_UNSIGNED_INT_24_8_OES 0x84FA 2641/* GL_ONE */
1293#define GL_DEPTH24_STENCIL8_OES 0x88F0 2642#define GL_DST_COLOR 0x0306
2643#define GL_ONE_MINUS_DST_COLOR 0x0307
2644#define GL_SRC_ALPHA_SATURATE 0x0308
2645/* GL_SRC_ALPHA */
2646/* GL_ONE_MINUS_SRC_ALPHA */
2647/* GL_DST_ALPHA */
2648/* GL_ONE_MINUS_DST_ALPHA */
1294 2649
1295/* GL_OES_rgb8_rgba8 */ 2650/* ClipPlaneName */
1296#define GL_RGB8_OES 0x8051 2651#define GL_CLIP_PLANE0 0x3000
1297#define GL_RGBA8_OES 0x8058 2652#define GL_CLIP_PLANE1 0x3001
2653#define GL_CLIP_PLANE2 0x3002
2654#define GL_CLIP_PLANE3 0x3003
2655#define GL_CLIP_PLANE4 0x3004
2656#define GL_CLIP_PLANE5 0x3005
1298 2657
1299/* GL_OES_standard_derivatives */ 2658/* ColorMaterialFace */
1300#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B 2659/* GL_FRONT_AND_BACK */
1301 2660
1302/* GL_OES_stencil1 */ 2661/* ColorMaterialParameter */
1303#define GL_STENCIL_INDEX1_OES 0x8D46 2662/* GL_AMBIENT_AND_DIFFUSE */
1304 2663
1305/* GL_OES_stencil4 */ 2664/* ColorPointerType */
1306#define GL_STENCIL_INDEX4_OES 0x8D47 2665/* GL_UNSIGNED_BYTE */
2666/* GL_FLOAT */
2667/* GL_FIXED */
1307 2668
1308/* GL_OES_texture_3D */ 2669/* CullFaceMode */
1309#define GL_TEXTURE_WRAP_R_OES 0x8072 2670#define GL_FRONT 0x0404
1310#define GL_TEXTURE_3D_OES 0x806F 2671#define GL_BACK 0x0405
1311#define GL_TEXTURE_BINDING_3D_OES 0x806A 2672#define GL_FRONT_AND_BACK 0x0408
1312#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073
1313#define GL_SAMPLER_3D_OES 0x8B5F
1314#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4
1315 2673
1316/* GL_OES_texture_float */ 2674/* DepthFunction */
1317/* No new tokens introduced by this extension. */ 2675/* GL_NEVER */
2676/* GL_LESS */
2677/* GL_EQUAL */
2678/* GL_LEQUAL */
2679/* GL_GREATER */
2680/* GL_NOTEQUAL */
2681/* GL_GEQUAL */
2682/* GL_ALWAYS */
1318 2683
1319/* GL_OES_texture_float_linear */ 2684/* EnableCap */
1320/* No new tokens introduced by this extension. */ 2685#define GL_FOG 0x0B60
2686#define GL_LIGHTING 0x0B50
2687#define GL_TEXTURE_2D 0x0DE1
2688#define GL_CULL_FACE 0x0B44
2689#define GL_ALPHA_TEST 0x0BC0
2690#define GL_BLEND 0x0BE2
2691#define GL_COLOR_LOGIC_OP 0x0BF2
2692#define GL_DITHER 0x0BD0
2693#define GL_STENCIL_TEST 0x0B90
2694#define GL_DEPTH_TEST 0x0B71
2695/* GL_LIGHT0 */
2696/* GL_LIGHT1 */
2697/* GL_LIGHT2 */
2698/* GL_LIGHT3 */
2699/* GL_LIGHT4 */
2700/* GL_LIGHT5 */
2701/* GL_LIGHT6 */
2702/* GL_LIGHT7 */
2703#define GL_POINT_SMOOTH 0x0B10
2704#define GL_LINE_SMOOTH 0x0B20
2705#define GL_SCISSOR_TEST 0x0C11
2706#define GL_COLOR_MATERIAL 0x0B57
2707#define GL_NORMALIZE 0x0BA1
2708#define GL_RESCALE_NORMAL 0x803A
2709#define GL_POLYGON_OFFSET_FILL 0x8037
2710#define GL_VERTEX_ARRAY 0x8074
2711#define GL_NORMAL_ARRAY 0x8075
2712#define GL_COLOR_ARRAY 0x8076
2713#define GL_TEXTURE_COORD_ARRAY 0x8078
2714#define GL_MULTISAMPLE 0x809D
2715#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
2716#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
2717#define GL_SAMPLE_COVERAGE 0x80A0
1321 2718
1322/* GL_OES_texture_half_float */ 2719/* ErrorCode */
1323#define GL_HALF_FLOAT_OES 0x8D61 2720#define GL_NO_ERROR 0
2721#define GL_INVALID_ENUM 0x0500
2722#define GL_INVALID_VALUE 0x0501
2723#define GL_INVALID_OPERATION 0x0502
2724#define GL_STACK_OVERFLOW 0x0503
2725#define GL_STACK_UNDERFLOW 0x0504
2726#define GL_OUT_OF_MEMORY 0x0505
1324 2727
1325/* GL_OES_texture_half_float_linear */ 2728/* FogMode */
1326/* No new tokens introduced by this extension. */ 2729/* GL_LINEAR */
2730#define GL_EXP 0x0800
2731#define GL_EXP2 0x0801
1327 2732
1328/* GL_OES_texture_npot */ 2733/* FogParameter */
1329/* No new tokens introduced by this extension. */ 2734#define GL_FOG_DENSITY 0x0B62
2735#define GL_FOG_START 0x0B63
2736#define GL_FOG_END 0x0B64
2737#define GL_FOG_MODE 0x0B65
2738#define GL_FOG_COLOR 0x0B66
1330 2739
1331/* GL_OES_vertex_half_float */ 2740/* FrontFaceDirection */
1332/* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */ 2741#define GL_CW 0x0900
2742#define GL_CCW 0x0901
1333 2743
1334/* GL_OES_vertex_type_10_10_10_2 */ 2744/* GetPName */
1335#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 2745#define GL_CURRENT_COLOR 0x0B00
1336#define GL_INT_10_10_10_2_OES 0x8DF7 2746#define GL_CURRENT_NORMAL 0x0B02
2747#define GL_CURRENT_TEXTURE_COORDS 0x0B03
2748#define GL_POINT_SIZE 0x0B11
2749#define GL_POINT_SIZE_MIN 0x8126
2750#define GL_POINT_SIZE_MAX 0x8127
2751#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
2752#define GL_POINT_DISTANCE_ATTENUATION 0x8129
2753#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
2754#define GL_LINE_WIDTH 0x0B21
2755#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
2756#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
2757#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
2758#define GL_CULL_FACE_MODE 0x0B45
2759#define GL_FRONT_FACE 0x0B46
2760#define GL_SHADE_MODEL 0x0B54
2761#define GL_DEPTH_RANGE 0x0B70
2762#define GL_DEPTH_WRITEMASK 0x0B72
2763#define GL_DEPTH_CLEAR_VALUE 0x0B73
2764#define GL_DEPTH_FUNC 0x0B74
2765#define GL_STENCIL_CLEAR_VALUE 0x0B91
2766#define GL_STENCIL_FUNC 0x0B92
2767#define GL_STENCIL_VALUE_MASK 0x0B93
2768#define GL_STENCIL_FAIL 0x0B94
2769#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
2770#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
2771#define GL_STENCIL_REF 0x0B97
2772#define GL_STENCIL_WRITEMASK 0x0B98
2773#define GL_MATRIX_MODE 0x0BA0
2774#define GL_VIEWPORT 0x0BA2
2775#define GL_MODELVIEW_STACK_DEPTH 0x0BA3
2776#define GL_PROJECTION_STACK_DEPTH 0x0BA4
2777#define GL_TEXTURE_STACK_DEPTH 0x0BA5
2778#define GL_MODELVIEW_MATRIX 0x0BA6
2779#define GL_PROJECTION_MATRIX 0x0BA7
2780#define GL_TEXTURE_MATRIX 0x0BA8
2781#define GL_ALPHA_TEST_FUNC 0x0BC1
2782#define GL_ALPHA_TEST_REF 0x0BC2
2783#define GL_BLEND_DST 0x0BE0
2784#define GL_BLEND_SRC 0x0BE1
2785#define GL_LOGIC_OP_MODE 0x0BF0
2786#define GL_SCISSOR_BOX 0x0C10
2787#define GL_SCISSOR_TEST 0x0C11
2788#define GL_COLOR_CLEAR_VALUE 0x0C22
2789#define GL_COLOR_WRITEMASK 0x0C23
2790#define GL_UNPACK_ALIGNMENT 0x0CF5
2791#define GL_PACK_ALIGNMENT 0x0D05
2792#define GL_MAX_LIGHTS 0x0D31
2793#define GL_MAX_CLIP_PLANES 0x0D32
2794#define GL_MAX_TEXTURE_SIZE 0x0D33
2795#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
2796#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
2797#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
2798#define GL_MAX_VIEWPORT_DIMS 0x0D3A
2799#define GL_MAX_TEXTURE_UNITS 0x84E2
2800#define GL_SUBPIXEL_BITS 0x0D50
2801#define GL_RED_BITS 0x0D52
2802#define GL_GREEN_BITS 0x0D53
2803#define GL_BLUE_BITS 0x0D54
2804#define GL_ALPHA_BITS 0x0D55
2805#define GL_DEPTH_BITS 0x0D56
2806#define GL_STENCIL_BITS 0x0D57
2807#define GL_POLYGON_OFFSET_UNITS 0x2A00
2808#define GL_POLYGON_OFFSET_FILL 0x8037
2809#define GL_POLYGON_OFFSET_FACTOR 0x8038
2810#define GL_TEXTURE_BINDING_2D 0x8069
2811#define GL_VERTEX_ARRAY_SIZE 0x807A
2812#define GL_VERTEX_ARRAY_TYPE 0x807B
2813#define GL_VERTEX_ARRAY_STRIDE 0x807C
2814#define GL_NORMAL_ARRAY_TYPE 0x807E
2815#define GL_NORMAL_ARRAY_STRIDE 0x807F
2816#define GL_COLOR_ARRAY_SIZE 0x8081
2817#define GL_COLOR_ARRAY_TYPE 0x8082
2818#define GL_COLOR_ARRAY_STRIDE 0x8083
2819#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088
2820#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089
2821#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A
2822#define GL_VERTEX_ARRAY_POINTER 0x808E
2823#define GL_NORMAL_ARRAY_POINTER 0x808F
2824#define GL_COLOR_ARRAY_POINTER 0x8090
2825#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092
2826#define GL_SAMPLE_BUFFERS 0x80A8
2827#define GL_SAMPLES 0x80A9
2828#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
2829#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
2830
2831/* GetTextureParameter */
2832/* GL_TEXTURE_MAG_FILTER */
2833/* GL_TEXTURE_MIN_FILTER */
2834/* GL_TEXTURE_WRAP_S */
2835/* GL_TEXTURE_WRAP_T */
2836
2837#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
2838#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
2839
2840/* HintMode */
2841#define GL_DONT_CARE 0x1100
2842#define GL_FASTEST 0x1101
2843#define GL_NICEST 0x1102
2844
2845/* HintTarget */
2846#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
2847#define GL_POINT_SMOOTH_HINT 0x0C51
2848#define GL_LINE_SMOOTH_HINT 0x0C52
2849#define GL_FOG_HINT 0x0C54
2850#define GL_GENERATE_MIPMAP_HINT 0x8192
2851
2852/* LightModelParameter */
2853#define GL_LIGHT_MODEL_AMBIENT 0x0B53
2854#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
2855
2856/* LightParameter */
2857#define GL_AMBIENT 0x1200
2858#define GL_DIFFUSE 0x1201
2859#define GL_SPECULAR 0x1202
2860#define GL_POSITION 0x1203
2861#define GL_SPOT_DIRECTION 0x1204
2862#define GL_SPOT_EXPONENT 0x1205
2863#define GL_SPOT_CUTOFF 0x1206
2864#define GL_CONSTANT_ATTENUATION 0x1207
2865#define GL_LINEAR_ATTENUATION 0x1208
2866#define GL_QUADRATIC_ATTENUATION 0x1209
2867
2868/* DataType */
2869#define GL_BYTE 0x1400
2870#define GL_UNSIGNED_BYTE 0x1401
2871#define GL_SHORT 0x1402
2872#define GL_UNSIGNED_SHORT 0x1403
2873#define GL_FLOAT 0x1406
2874#define GL_FIXED 0x140C
2875
2876/* LogicOp */
2877#define GL_CLEAR 0x1500
2878#define GL_AND 0x1501
2879#define GL_AND_REVERSE 0x1502
2880#define GL_COPY 0x1503
2881#define GL_AND_INVERTED 0x1504
2882#define GL_NOOP 0x1505
2883#define GL_XOR 0x1506
2884#define GL_OR 0x1507
2885#define GL_NOR 0x1508
2886#define GL_EQUIV 0x1509
2887#define GL_INVERT 0x150A
2888#define GL_OR_REVERSE 0x150B
2889#define GL_COPY_INVERTED 0x150C
2890#define GL_OR_INVERTED 0x150D
2891#define GL_NAND 0x150E
2892#define GL_SET 0x150F
2893
2894/* MaterialFace */
2895/* GL_FRONT_AND_BACK */
2896
2897/* MaterialParameter */
2898#define GL_EMISSION 0x1600
2899#define GL_SHININESS 0x1601
2900#define GL_AMBIENT_AND_DIFFUSE 0x1602
2901/* GL_AMBIENT */
2902/* GL_DIFFUSE */
2903/* GL_SPECULAR */
2904
2905/* MatrixMode */
2906#define GL_MODELVIEW 0x1700
2907#define GL_PROJECTION 0x1701
2908#define GL_TEXTURE 0x1702
2909
2910/* NormalPointerType */
2911/* GL_BYTE */
2912/* GL_SHORT */
2913/* GL_FLOAT */
2914/* GL_FIXED */
2915
2916/* PixelFormat */
2917#define GL_ALPHA 0x1906
2918#define GL_RGB 0x1907
2919#define GL_RGBA 0x1908
2920#define GL_LUMINANCE 0x1909
2921#define GL_LUMINANCE_ALPHA 0x190A
2922
2923/* PixelStoreParameter */
2924#define GL_UNPACK_ALIGNMENT 0x0CF5
2925#define GL_PACK_ALIGNMENT 0x0D05
2926
2927/* PixelType */
2928/* GL_UNSIGNED_BYTE */
2929#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
2930#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
2931#define GL_UNSIGNED_SHORT_5_6_5 0x8363
2932
2933/* ShadingModel */
2934#define GL_FLAT 0x1D00
2935#define GL_SMOOTH 0x1D01
2936
2937/* StencilFunction */
2938/* GL_NEVER */
2939/* GL_LESS */
2940/* GL_EQUAL */
2941/* GL_LEQUAL */
2942/* GL_GREATER */
2943/* GL_NOTEQUAL */
2944/* GL_GEQUAL */
2945/* GL_ALWAYS */
2946
2947/* StencilOp */
2948/* GL_ZERO */
2949#define GL_KEEP 0x1E00
2950#define GL_REPLACE 0x1E01
2951#define GL_INCR 0x1E02
2952#define GL_DECR 0x1E03
2953/* GL_INVERT */
2954
2955/* StringName */
2956#define GL_VENDOR 0x1F00
2957#define GL_RENDERER 0x1F01
2958#define GL_VERSION 0x1F02
2959#define GL_EXTENSIONS 0x1F03
2960
2961/* TexCoordPointerType */
2962/* GL_SHORT */
2963/* GL_FLOAT */
2964/* GL_FIXED */
2965/* GL_BYTE */
2966
2967/* TextureEnvMode */
2968#define GL_MODULATE 0x2100
2969#define GL_DECAL 0x2101
2970/* GL_BLEND */
2971#define GL_ADD 0x0104
2972/* GL_REPLACE */
2973
2974/* TextureEnvParameter */
2975#define GL_TEXTURE_ENV_MODE 0x2200
2976#define GL_TEXTURE_ENV_COLOR 0x2201
2977
2978/* TextureEnvTarget */
2979#define GL_TEXTURE_ENV 0x2300
2980
2981/* TextureMagFilter */
2982#define GL_NEAREST 0x2600
2983#define GL_LINEAR 0x2601
2984
2985/* TextureMinFilter */
2986/* GL_NEAREST */
2987/* GL_LINEAR */
2988#define GL_NEAREST_MIPMAP_NEAREST 0x2700
2989#define GL_LINEAR_MIPMAP_NEAREST 0x2701
2990#define GL_NEAREST_MIPMAP_LINEAR 0x2702
2991#define GL_LINEAR_MIPMAP_LINEAR 0x2703
2992
2993/* TextureParameterName */
2994#define GL_TEXTURE_MAG_FILTER 0x2800
2995#define GL_TEXTURE_MIN_FILTER 0x2801
2996#define GL_TEXTURE_WRAP_S 0x2802
2997#define GL_TEXTURE_WRAP_T 0x2803
2998#define GL_GENERATE_MIPMAP 0x8191
2999
3000/* TextureTarget */
3001/* GL_TEXTURE_2D */
3002
3003/* TextureUnit */
3004#define GL_TEXTURE0 0x84C0
3005#define GL_TEXTURE1 0x84C1
3006#define GL_TEXTURE2 0x84C2
3007#define GL_TEXTURE3 0x84C3
3008#define GL_TEXTURE4 0x84C4
3009#define GL_TEXTURE5 0x84C5
3010#define GL_TEXTURE6 0x84C6
3011#define GL_TEXTURE7 0x84C7
3012#define GL_TEXTURE8 0x84C8
3013#define GL_TEXTURE9 0x84C9
3014#define GL_TEXTURE10 0x84CA
3015#define GL_TEXTURE11 0x84CB
3016#define GL_TEXTURE12 0x84CC
3017#define GL_TEXTURE13 0x84CD
3018#define GL_TEXTURE14 0x84CE
3019#define GL_TEXTURE15 0x84CF
3020#define GL_TEXTURE16 0x84D0
3021#define GL_TEXTURE17 0x84D1
3022#define GL_TEXTURE18 0x84D2
3023#define GL_TEXTURE19 0x84D3
3024#define GL_TEXTURE20 0x84D4
3025#define GL_TEXTURE21 0x84D5
3026#define GL_TEXTURE22 0x84D6
3027#define GL_TEXTURE23 0x84D7
3028#define GL_TEXTURE24 0x84D8
3029#define GL_TEXTURE25 0x84D9
3030#define GL_TEXTURE26 0x84DA
3031#define GL_TEXTURE27 0x84DB
3032#define GL_TEXTURE28 0x84DC
3033#define GL_TEXTURE29 0x84DD
3034#define GL_TEXTURE30 0x84DE
3035#define GL_TEXTURE31 0x84DF
3036#define GL_ACTIVE_TEXTURE 0x84E0
3037#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
3038
3039/* TextureWrapMode */
3040#define GL_REPEAT 0x2901
3041#define GL_CLAMP_TO_EDGE 0x812F
3042
3043/* VertexPointerType */
3044/* GL_SHORT */
3045/* GL_FLOAT */
3046/* GL_FIXED */
3047/* GL_BYTE */
3048
3049/* LightName */
3050#define GL_LIGHT0 0x4000
3051#define GL_LIGHT1 0x4001
3052#define GL_LIGHT2 0x4002
3053#define GL_LIGHT3 0x4003
3054#define GL_LIGHT4 0x4004
3055#define GL_LIGHT5 0x4005
3056#define GL_LIGHT6 0x4006
3057#define GL_LIGHT7 0x4007
3058
3059/* Buffer Objects */
3060#define GL_ARRAY_BUFFER 0x8892
3061#define GL_ELEMENT_ARRAY_BUFFER 0x8893
3062
3063#define GL_ARRAY_BUFFER_BINDING 0x8894
3064#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
3065#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
3066#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
3067#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
3068#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
3069
3070#define GL_STATIC_DRAW 0x88E4
3071#define GL_DYNAMIC_DRAW 0x88E8
3072
3073#define GL_BUFFER_SIZE 0x8764
3074#define GL_BUFFER_USAGE 0x8765
3075
3076/* Texture combine + dot3 */
3077#define GL_SUBTRACT 0x84E7
3078#define GL_COMBINE 0x8570
3079#define GL_COMBINE_RGB 0x8571
3080#define GL_COMBINE_ALPHA 0x8572
3081#define GL_RGB_SCALE 0x8573
3082#define GL_ADD_SIGNED 0x8574
3083#define GL_INTERPOLATE 0x8575
3084#define GL_CONSTANT 0x8576
3085#define GL_PRIMARY_COLOR 0x8577
3086#define GL_PREVIOUS 0x8578
3087#define GL_OPERAND0_RGB 0x8590
3088#define GL_OPERAND1_RGB 0x8591
3089#define GL_OPERAND2_RGB 0x8592
3090#define GL_OPERAND0_ALPHA 0x8598
3091#define GL_OPERAND1_ALPHA 0x8599
3092#define GL_OPERAND2_ALPHA 0x859A
3093
3094#define GL_ALPHA_SCALE 0x0D1C
3095
3096#define GL_SRC0_RGB 0x8580
3097#define GL_SRC1_RGB 0x8581
3098#define GL_SRC2_RGB 0x8582
3099#define GL_SRC0_ALPHA 0x8588
3100#define GL_SRC1_ALPHA 0x8589
3101#define GL_SRC2_ALPHA 0x858A
3102
3103#define GL_DOT3_RGB 0x86AE
3104#define GL_DOT3_RGBA 0x86AF
1337 3105
1338/*------------------------------------------------------------------------* 3106/*------------------------------------------------------------------------*
1339 * AMD extension tokens 3107 * required OES extension tokens
1340 *------------------------------------------------------------------------*/ 3108 *------------------------------------------------------------------------*/
1341 3109
1342/* GL_AMD_compressed_3DC_texture */ 3110/* OES_read_format */
1343#define GL_3DC_X_AMD 0x87F9 3111#ifndef GL_OES_read_format
1344#define GL_3DC_XY_AMD 0x87FA 3112#define GL_OES_read_format 1
3113#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A
3114#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B
3115#endif
3116
3117/* OES_point_size_array */
3118#ifndef GL_OES_point_size_array
3119#define GL_OES_point_size_array 1
3120#define GL_POINT_SIZE_ARRAY_OES 0x8B9C
3121#define GL_POINT_SIZE_ARRAY_TYPE_OES 0x898A
3122#define GL_POINT_SIZE_ARRAY_STRIDE_OES 0x898B
3123#define GL_POINT_SIZE_ARRAY_POINTER_OES 0x898C
3124#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8B9F
3125#endif
3126
3127/* GL_OES_point_sprite */
3128#ifndef GL_OES_point_sprite
3129#define GL_OES_point_sprite 1
3130#define GL_POINT_SPRITE_OES 0x8861
3131#define GL_COORD_REPLACE_OES 0x8862
3132#endif
1345 3133
1346/* GL_AMD_compressed_ATC_texture */ 3134#else
1347#define GL_ATC_RGB_AMD 0x8C92 3135# ifndef EVAS_GL_NO_GL_H_CHECK
1348#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 3136# 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."
1349#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE 3137# endif
3138#endif
1350 3139
1351/* GL_AMD_performance_monitor */
1352#define GL_COUNTER_TYPE_AMD 0x8BC0
1353#define GL_COUNTER_RANGE_AMD 0x8BC1
1354#define GL_UNSIGNED_INT64_AMD 0x8BC2
1355#define GL_PERCENTAGE_AMD 0x8BC3
1356#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
1357#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
1358#define GL_PERFMON_RESULT_AMD 0x8BC6
1359 3140
1360/* GL_AMD_program_binary_Z400 */ 3141#ifndef __glext_h_
1361#define GL_Z400_BINARY_AMD 0x8740 3142#define __glext_h_ 1
1362 3143
1363/*------------------------------------------------------------------------* 3144/*------------------------------------------------------------------------*
1364 * EXT extension tokens 3145 * OES extension tokens
1365 *------------------------------------------------------------------------*/ 3146 *------------------------------------------------------------------------*/
1366 3147
1367/* GL_EXT_blend_minmax */ 3148/* GL_OES_blend_equation_separate */
1368#define GL_MIN_EXT 0x8007 3149#ifndef GL_OES_blend_equation_separate
1369#define GL_MAX_EXT 0x8008 3150/* BLEND_EQUATION_RGB_OES same as BLEND_EQUATION_OES */
3151#define GL_BLEND_EQUATION_RGB_OES 0x8009
3152#define GL_BLEND_EQUATION_ALPHA_OES 0x883D
3153#endif
1370 3154
1371/* GL_EXT_discard_framebuffer */ 3155/* GL_OES_blend_func_separate */
1372#define GL_COLOR_EXT 0x1800 3156#ifndef GL_OES_blend_func_separate
1373#define GL_DEPTH_EXT 0x1801 3157#define GL_BLEND_DST_RGB_OES 0x80C8
1374#define GL_STENCIL_EXT 0x1802 3158#define GL_BLEND_SRC_RGB_OES 0x80C9
3159#define GL_BLEND_DST_ALPHA_OES 0x80CA
3160#define GL_BLEND_SRC_ALPHA_OES 0x80CB
3161#endif
1375 3162
1376/* GL_EXT_multi_draw_arrays */ 3163/* GL_OES_blend_subtract */
1377/* No new tokens introduced by this extension. */ 3164#ifndef GL_OES_blend_subtract
3165#define GL_BLEND_EQUATION_OES 0x8009
3166#define GL_FUNC_ADD_OES 0x8006
3167#define GL_FUNC_SUBTRACT_OES 0x800A
3168#define GL_FUNC_REVERSE_SUBTRACT_OES 0x800B
3169#endif
1378 3170
1379/* GL_EXT_read_format_bgra */ 3171/* GL_OES_draw_texture */
1380#define GL_BGRA_EXT 0x80E1 3172#ifndef GL_OES_draw_texture
1381#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 3173#define GL_TEXTURE_CROP_RECT_OES 0x8B9D
1382#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 3174#endif
1383 3175
1384/* GL_EXT_texture_filter_anisotropic */ 3176/* GL_OES_EGL_image */
1385#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE 3177#ifndef GL_OES_EGL_image
1386#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF 3178#endif
1387 3179
1388/* GL_EXT_texture_format_BGRA8888 */ 3180/* GL_OES_fixed_point */
1389#define GL_BGRA_EXT 0x80E1 3181#ifndef GL_OES_fixed_point
3182#define GL_FIXED_OES 0x140C
3183#endif
1390 3184
1391/* GL_EXT_texture_type_2_10_10_10_REV */ 3185/* GL_OES_framebuffer_object */
1392#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 3186#ifndef GL_OES_framebuffer_object
3187#define GL_NONE_OES 0
3188#define GL_FRAMEBUFFER_OES 0x8D40
3189#define GL_RENDERBUFFER_OES 0x8D41
3190#define GL_RGBA4_OES 0x8056
3191#define GL_RGB5_A1_OES 0x8057
3192#define GL_RGB565_OES 0x8D62
3193#define GL_DEPTH_COMPONENT16_OES 0x81A5
3194#define GL_RENDERBUFFER_WIDTH_OES 0x8D42
3195#define GL_RENDERBUFFER_HEIGHT_OES 0x8D43
3196#define GL_RENDERBUFFER_INTERNAL_FORMAT_OES 0x8D44
3197#define GL_RENDERBUFFER_RED_SIZE_OES 0x8D50
3198#define GL_RENDERBUFFER_GREEN_SIZE_OES 0x8D51
3199#define GL_RENDERBUFFER_BLUE_SIZE_OES 0x8D52
3200#define GL_RENDERBUFFER_ALPHA_SIZE_OES 0x8D53
3201#define GL_RENDERBUFFER_DEPTH_SIZE_OES 0x8D54
3202#define GL_RENDERBUFFER_STENCIL_SIZE_OES 0x8D55
3203#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES 0x8CD0
3204#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES 0x8CD1
3205#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES 0x8CD2
3206#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES 0x8CD3
3207#define GL_COLOR_ATTACHMENT0_OES 0x8CE0
3208#define GL_DEPTH_ATTACHMENT_OES 0x8D00
3209#define GL_STENCIL_ATTACHMENT_OES 0x8D20
3210#define GL_FRAMEBUFFER_COMPLETE_OES 0x8CD5
3211#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES 0x8CD6
3212#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES 0x8CD7
3213#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES 0x8CD9
3214#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES 0x8CDA
3215#define GL_FRAMEBUFFER_UNSUPPORTED_OES 0x8CDD
3216#define GL_FRAMEBUFFER_BINDING_OES 0x8CA6
3217#define GL_RENDERBUFFER_BINDING_OES 0x8CA7
3218#define GL_MAX_RENDERBUFFER_SIZE_OES 0x84E8
3219#define GL_INVALID_FRAMEBUFFER_OPERATION_OES 0x0506
3220#endif
1393 3221
1394/* GL_EXT_multisampled_render_to_texture */ 3222/* GL_OES_matrix_get */
1395#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB 3223#ifndef GL_OES_matrix_get
1396#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 3224#define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 0x898D
1397#define GL_MAX_SAMPLES_EXT 0x8D57 3225#define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898E
1398#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C 3226#define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 0x898F
3227#endif
1399 3228
1400/*------------------------------------------------------------------------* 3229/* GL_OES_matrix_palette */
1401 * IMG extension tokens 3230#ifndef GL_OES_matrix_palette
1402 *------------------------------------------------------------------------*/ 3231#define GL_MAX_VERTEX_UNITS_OES 0x86A4
3232#define GL_MAX_PALETTE_MATRICES_OES 0x8842
3233#define GL_MATRIX_PALETTE_OES 0x8840
3234#define GL_MATRIX_INDEX_ARRAY_OES 0x8844
3235#define GL_WEIGHT_ARRAY_OES 0x86AD
3236#define GL_CURRENT_PALETTE_MATRIX_OES 0x8843
3237#define GL_MATRIX_INDEX_ARRAY_SIZE_OES 0x8846
3238#define GL_MATRIX_INDEX_ARRAY_TYPE_OES 0x8847
3239#define GL_MATRIX_INDEX_ARRAY_STRIDE_OES 0x8848
3240#define GL_MATRIX_INDEX_ARRAY_POINTER_OES 0x8849
3241#define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES 0x8B9E
3242#define GL_WEIGHT_ARRAY_SIZE_OES 0x86AB
3243#define GL_WEIGHT_ARRAY_TYPE_OES 0x86A9
3244#define GL_WEIGHT_ARRAY_STRIDE_OES 0x86AA
3245#define GL_WEIGHT_ARRAY_POINTER_OES 0x86AC
3246#define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES 0x889E
3247#endif
1403 3248
1404/* GL_IMG_program_binary */ 3249/* GL_OES_stencil8 */
1405#define GL_SGX_PROGRAM_BINARY_IMG 0x9130 3250#ifndef GL_OES_stencil8
3251#define GL_STENCIL_INDEX8_OES 0x8D48
3252#endif
1406 3253
1407/* GL_IMG_read_format */ 3254/* GL_OES_stencil_wrap */
1408#define GL_BGRA_IMG 0x80E1 3255#ifndef GL_OES_stencil_wrap
1409#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 3256#define GL_INCR_WRAP_OES 0x8507
3257#define GL_DECR_WRAP_OES 0x8508
3258#endif
1410 3259
1411/* GL_IMG_shader_binary */ 3260/* GL_OES_texture_cube_map */
1412#define GL_SGX_BINARY_IMG 0x8C0A 3261#ifndef GL_OES_texture_cube_map
3262#define GL_NORMAL_MAP_OES 0x8511
3263#define GL_REFLECTION_MAP_OES 0x8512
3264#define GL_TEXTURE_CUBE_MAP_OES 0x8513
3265#define GL_TEXTURE_BINDING_CUBE_MAP_OES 0x8514
3266#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES 0x8515
3267#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES 0x8516
3268#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES 0x8517
3269#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES 0x8518
3270#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES 0x8519
3271#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES 0x851A
3272#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES 0x851C
3273#define GL_TEXTURE_GEN_MODE_OES 0x2500
3274#define GL_TEXTURE_GEN_STR_OES 0x8D60
3275#endif
3276
3277/* GL_OES_texture_mirrored_repeat */
3278#ifndef GL_OES_texture_mirrored_repeat
3279#define GL_MIRRORED_REPEAT_OES 0x8370
3280#endif
1413 3281
1414/* GL_IMG_texture_compression_pvrtc */ 3282/*------------------------------------------------------------------------*
1415#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 3283 * EXT extension tokens
1416#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 3284 *------------------------------------------------------------------------*/
1417#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02
1418#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03
1419 3285
1420/* GL_IMG_multisampled_render_to_texture */ 3286/* GL_EXT_texture_lod_bias */
1421#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 3287#ifndef GL_EXT_texture_lod_bias
1422#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 3288#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD
1423#define GL_MAX_SAMPLES_IMG 0x9135 3289#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500
1424#define GL_TEXTURE_SAMPLES_IMG 0x9136 3290#define GL_TEXTURE_LOD_BIAS_EXT 0x8501
3291#endif
1425 3292
1426/*------------------------------------------------------------------------* 3293/*------------------------------------------------------------------------*
1427 * NV extension tokens 3294 * IMG extension tokens
1428 *------------------------------------------------------------------------*/ 3295 *------------------------------------------------------------------------*/
1429 3296
1430/* GL_NV_fence */ 3297/* GL_IMG_texture_env_enhanced_fixed_function */
1431#define GL_ALL_COMPLETED_NV 0x84F2 3298#ifndef GL_IMG_texture_env_enhanced_fixed_function
1432#define GL_FENCE_STATUS_NV 0x84F3 3299#define GL_MODULATE_COLOR_IMG 0x8C04
1433#define GL_FENCE_CONDITION_NV 0x84F4 3300#define GL_RECIP_ADD_SIGNED_ALPHA_IMG 0x8C05
3301#define GL_TEXTURE_ALPHA_MODULATE_IMG 0x8C06
3302#define GL_FACTOR_ALPHA_MODULATE_IMG 0x8C07
3303#define GL_FRAGMENT_ALPHA_MODULATE_IMG 0x8C08
3304#define GL_ADD_BLEND_IMG 0x8C09
3305#define GL_DOT3_RGBA_IMG 0x86AF
3306#endif
3307
3308/* GL_IMG_user_clip_plane */
3309#ifndef GL_IMG_user_clip_plane
3310#define GL_CLIP_PLANE0_IMG 0x3000
3311#define GL_CLIP_PLANE1_IMG 0x3001
3312#define GL_CLIP_PLANE2_IMG 0x3002
3313#define GL_CLIP_PLANE3_IMG 0x3003
3314#define GL_CLIP_PLANE4_IMG 0x3004
3315#define GL_CLIP_PLANE5_IMG 0x3005
3316#define GL_MAX_CLIP_PLANES_IMG 0x0D32
3317#endif
1434 3318
1435/*------------------------------------------------------------------------* 3319/*------------------------------------------------------------------------*
1436 * QCOM extension tokens 3320 * OES extension functions
1437 *------------------------------------------------------------------------*/ 3321 *------------------------------------------------------------------------*/
1438 3322
1439/* GL_QCOM_driver_control */ 3323/* GL_OES_blend_equation_separate */
1440/* No new tokens introduced by this extension. */ 3324#ifndef GL_OES_blend_equation_separate
3325#define GL_OES_blend_equation_separate 1
3326#endif
3327
3328/* GL_OES_blend_func_separate */
3329#ifndef GL_OES_blend_func_separate
3330#define GL_OES_blend_func_separate 1
3331#endif
3332
3333/* GL_OES_blend_subtract */
3334#ifndef GL_OES_blend_subtract
3335#define GL_OES_blend_subtract 1
3336#endif
1441 3337
1442/* GL_QCOM_extended_get */ 3338/* GL_OES_byte_coordinates */
1443#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 3339#ifndef GL_OES_byte_coordinates
1444#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 3340#define GL_OES_byte_coordinates 1
1445#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 3341#endif
1446#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5
1447#define GL_TEXTURE_FORMAT_QCOM 0x8BD6
1448#define GL_TEXTURE_TYPE_QCOM 0x8BD7
1449#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8
1450#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9
1451#define GL_TEXTURE_TARGET_QCOM 0x8BDA
1452#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB
1453#define GL_STATE_RESTORE 0x8BDC
1454 3342
1455/* GL_QCOM_extended_get2 */ 3343/* GL_OES_draw_texture */
1456/* No new tokens introduced by this extension. */ 3344#ifndef GL_OES_draw_texture
3345#define GL_OES_draw_texture 1
3346#endif
1457 3347
1458/* GL_QCOM_perfmon_global_mode */ 3348/* GL_OES_extended_matrix_palette */
1459#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 3349#ifndef GL_OES_extended_matrix_palette
3350#define GL_OES_extended_matrix_palette 1
3351#endif
3352
3353/* GL_OES_fixed_point */
3354#ifndef GL_OES_fixed_point
3355#define GL_OES_fixed_point 1
3356#endif
3357
3358/* GL_OES_framebuffer_object */
3359#ifndef GL_OES_framebuffer_object
3360#define GL_OES_framebuffer_object 1
3361#endif
3362
3363/* GL_OES_matrix_get */
3364#ifndef GL_OES_matrix_get
3365#define GL_OES_matrix_get 1
3366#endif
3367
3368/* GL_OES_matrix_palette */
3369#ifndef GL_OES_matrix_palette
3370#define GL_OES_matrix_palette 1
3371#endif
3372
3373/* GL_OES_query_matrix */
3374#ifndef GL_OES_query_matrix
3375#define GL_OES_query_matrix 1
3376#endif
3377
3378/* GL_OES_single_precision */
3379#ifndef GL_OES_single_precision
3380#define GL_OES_single_precision 1
3381#endif
3382
3383/* GL_OES_stencil8 */
3384#ifndef GL_OES_stencil8
3385#define GL_OES_stencil8 1
3386#endif
3387
3388/* GL_OES_stencil_wrap */
3389#ifndef GL_OES_stencil_wrap
3390#define GL_OES_stencil_wrap 1
3391#endif
3392
3393/* GL_OES_texture_cube_map */
3394#ifndef GL_OES_texture_cube_map
3395#define GL_OES_texture_cube_map 1
3396#endif
3397
3398/* GL_OES_texture_env_crossbar */
3399#ifndef GL_OES_texture_env_crossbar
3400#define GL_OES_texture_env_crossbar 1
3401#endif
1460 3402
1461/* GL_QCOM_writeonly_rendering */ 3403/* GL_OES_texture_mirrored_repeat */
1462#define GL_WRITEONLY_RENDERING_QCOM 0x8823 3404#ifndef GL_OES_texture_mirrored_repeat
3405#define GL_OES_texture_mirrored_repeat 1
3406#endif
1463 3407
1464/*------------------------------------------------------------------------* 3408/*------------------------------------------------------------------------*
1465 * End of extension tokens, start of corresponding extension functions 3409 * APPLE extension functions
1466 *------------------------------------------------------------------------*/ 3410 *------------------------------------------------------------------------*/
1467 3411
1468/* EvasGL_KHR_image */ 3412/* GL_APPLE_texture_2D_limited_npot */
1469#define EVAS_GL_NATIVE_PIXMAP 0x30B0 /* evasglCreateImage target */ 3413#ifndef GL_APPLE_texture_2D_limited_npot
3414#define GL_APPLE_texture_2D_limited_npot 1
3415#endif
1470 3416
1471/* EvasGL_KHR_vg_parent_image */ 3417/*------------------------------------------------------------------------*
1472#define EVAS_VG_PARENT_IMAGE 0x30BA /* evasglCreateImage target */ 3418 * EXT extension functions
3419 *------------------------------------------------------------------------*/
1473 3420
1474/* EvasGL_KHR_gl_texture_2D_image */ 3421/* GL_EXT_texture_lod_bias */
1475#define EVAS_GL_TEXTURE_2D 0x30B1 /* evasglCreateImage target */ 3422#ifndef GL_EXT_texture_lod_bias
1476#define EVAS_GL_TEXTURE_LEVEL 0x30BC /* evasglCreateImage attribute */ 3423#define GL_EXT_texture_lod_bias 1
3424#endif
1477 3425
1478/* EvasGL_KHR_gl_texture_cubemap_image */ 3426/*------------------------------------------------------------------------*
1479#define EVAS_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 /* evasglCreateImage target */ 3427 * IMG extension functions
1480#define EVAS_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 /* evasglCreateImage target */ 3428 *------------------------------------------------------------------------*/
1481#define EVAS_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 /* evasglCreateImage target */
1482#define EVAS_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 /* evasglCreateImage target */
1483#define EVAS_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 /* evasglCreateImage target */
1484#define EVAS_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 /* evasglCreateImage target */
1485 3429
1486/* EvasGL_KHR_gl_texture_3D_image */ 3430/* GL_IMG_texture_env_enhanced_fixed_function */
1487#define EVAS_GL_TEXTURE_3D 0x30B2 /* evasglCreateImage target */ 3431#ifndef GL_IMG_texture_env_enhanced_fixed_function
1488#define EVAS_GL_TEXTURE_ZOFFSET 0x30BD /* evasglCreateImage attribute */ 3432#define GL_IMG_texture_env_enhanced_fixed_function 1
3433#endif
1489 3434
1490/* EvasGL_KHR_gl_renderbuffer_image */ 3435/* GL_IMG_user_clip_plane */
1491#define EVAS_GL_RENDERBUFFER 0x30B9 /* evasglCreateImage target */ 3436#ifndef GL_IMG_user_clip_plane
3437#define GL_IMG_user_clip_plane 1
3438#endif
1492 3439
1493#else 3440#else
1494# ifndef EVAS_GL_NO_GL_H_CHECK 3441# ifndef EVAS_GL_NO_GL_H_CHECK
1495# 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." 3442# 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."
1496# endif 3443# endif
1497#endif 3444#endif
1498 3445
1499 3446
3447/* Some definitions from GLES 3.0.
3448 * Note: Evas_GL does NOT support GLES 3.
3449 */
3450
3451/* Evas can use RGB8_ETC2 and RGBA8_ETC2_EAC internally, depending on the driver */
3452#define GL_COMPRESSED_RGB8_ETC2 0x9274
3453#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
3454
1500 3455
1501// These types are required since we can't include GLES/gl.h or gl2.h 3456// These types are required since we can't include GLES/gl.h or gl2.h
1502typedef signed int GLclampx; // Changed khronos_int32_t 3457typedef signed int GLclampx; // Changed khronos_int32_t
@@ -1634,7 +3589,11 @@ typedef unsigned long long EvasGLTime;
1634#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) */ 3589#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) */
1635/** @} */ 3590/** @} */
1636 3591
1637#define EVAS_GL_API_VERSION 1 3592
3593/* Version 1: OpenGLES 2.0 + extensions only
3594 * Version 2: OpenGLES 1.0 + extensions
3595 */
3596#define EVAS_GL_API_VERSION 2
1638 3597
1639/** 3598/**
1640 * @brief The Evas GL API 3599 * @brief The Evas GL API
@@ -1643,6 +3602,10 @@ typedef unsigned long long EvasGLTime;
1643 */ 3602 */
1644struct _Evas_GL_API 3603struct _Evas_GL_API
1645{ 3604{
3605 /**
3606 * The current version number is @c EVAS_GL_API_VERSION (2).
3607 * This should not be confused with the OpenGL-ES context version.
3608 */
1646 int version; 3609 int version;
1647 3610
1648 /** 3611 /**
@@ -1948,8 +3911,277 @@ EvasGLImage *img = glapi->evasglCreateImageForContext
1948 * @since 1.12 3911 * @since 1.12
1949 */ 3912 */
1950 EvasGLImage (*evasglCreateImageForContext) (Evas_GL *evas_gl, Evas_GL_Context *ctx, int target, void* buffer, const int* attrib_list) EINA_WARN_UNUSED_RESULT; 3913 EvasGLImage (*evasglCreateImageForContext) (Evas_GL *evas_gl, Evas_GL_Context *ctx, int target, void* buffer, const int* attrib_list) EINA_WARN_UNUSED_RESULT;
3914
3915 /* This defines shows that Evas_GL_API supports GLES1 APIs */
3916#define EVAS_GL_GLES1 1
3917 /**
3918 * @name OpenGL-ES 1.1
3919 *
3920 * Evas_GL_API version 2.
3921 *
3922 * The following functions are some of the standard OpenGL-ES 1.0 functions,
3923 * that are not also present in the @ref gles2 "OpenGL-ES 2.0 APIs".
3924 * @{
3925 */
3926 /* Available only in Common profile */
3927 void (*glAlphaFunc) (GLenum func, GLclampf ref);
3928 void (*glClipPlanef) (GLenum plane, const GLfloat *equation);
3929 void (*glColor4f) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
3930 void (*glFogf) (GLenum pname, GLfloat param);
3931 void (*glFogfv) (GLenum pname, const GLfloat *params);
3932 void (*glFrustumf) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
3933 void (*glGetClipPlanef) (GLenum pname, GLfloat eqn[4]);
3934 void (*glGetLightfv) (GLenum light, GLenum pname, GLfloat *params);
3935 void (*glGetMaterialfv) (GLenum face, GLenum pname, GLfloat *params);
3936 void (*glGetTexEnvfv) (GLenum env, GLenum pname, GLfloat *params);
3937 void (*glLightModelf) (GLenum pname, GLfloat param);
3938 void (*glLightModelfv) (GLenum pname, const GLfloat *params);
3939 void (*glLightf) (GLenum light, GLenum pname, GLfloat param);
3940 void (*glLightfv) (GLenum light, GLenum pname, const GLfloat *params);
3941 void (*glLoadMatrixf) (const GLfloat *m);
3942 void (*glMaterialf) (GLenum face, GLenum pname, GLfloat param);
3943 void (*glMaterialfv) (GLenum face, GLenum pname, const GLfloat *params);
3944 void (*glMultMatrixf) (const GLfloat *m);
3945 void (*glMultiTexCoord4f) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
3946 void (*glNormal3f) (GLfloat nx, GLfloat ny, GLfloat nz);
3947 void (*glOrthof) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
3948 void (*glPointParameterf) (GLenum pname, GLfloat param);
3949 void (*glPointParameterfv) (GLenum pname, const GLfloat *params);
3950 void (*glPointSize) (GLfloat size);
3951 void (*glPointSizePointerOES) (GLenum type, GLsizei stride, const GLvoid * pointer);
3952 void (*glRotatef) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
3953 void (*glScalef) (GLfloat x, GLfloat y, GLfloat z);
3954 void (*glTexEnvf) (GLenum target, GLenum pname, GLfloat param);
3955 void (*glTexEnvfv) (GLenum target, GLenum pname, const GLfloat *params);
3956 void (*glTranslatef) (GLfloat x, GLfloat y, GLfloat z);
3957
3958 /* Available in both Common and Common-Lite profiles */
3959 void (*glAlphaFuncx) (GLenum func, GLclampx ref);
3960 void (*glClearColorx) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
3961 void (*glClearDepthx) (GLclampx depth);
3962 void (*glClientActiveTexture) (GLenum texture);
3963 void (*glClipPlanex) (GLenum plane, const GLfixed *equation);
3964 void (*glColor4ub) (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
3965 void (*glColor4x) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
3966 void (*glColorPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
3967 void (*glDepthRangex) (GLclampx zNear, GLclampx zFar);
3968 void (*glDisableClientState) (GLenum array);
3969 void (*glEnableClientState) (GLenum array);
3970 void (*glFogx) (GLenum pname, GLfixed param);
3971 void (*glFogxv) (GLenum pname, const GLfixed *params);
3972 void (*glFrustumx) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
3973 void (*glGetClipPlanex) (GLenum pname, GLfixed eqn[4]);
3974 void (*glGetFixedv) (GLenum pname, GLfixed *params);
3975 void (*glGetLightxv) (GLenum light, GLenum pname, GLfixed *params);
3976 void (*glGetMaterialxv) (GLenum face, GLenum pname, GLfixed *params);
3977 void (*glGetPointerv) (GLenum pname, GLvoid **params);
3978 void (*glGetTexEnviv) (GLenum env, GLenum pname, GLint *params);
3979 void (*glGetTexEnvxv) (GLenum env, GLenum pname, GLfixed *params);
3980 void (*glGetTexParameterxv) (GLenum target, GLenum pname, GLfixed *params);
3981 void (*glLightModelx) (GLenum pname, GLfixed param);
3982 void (*glLightModelxv) (GLenum pname, const GLfixed *params);
3983 void (*glLightx) (GLenum light, GLenum pname, GLfixed param);
3984 void (*glLightxv) (GLenum light, GLenum pname, const GLfixed *params);
3985 void (*glLineWidthx) (GLfixed width);
3986 void (*glLoadIdentity) (void);
3987 void (*glLoadMatrixx) (const GLfixed *m);
3988 void (*glLogicOp) (GLenum opcode);
3989 void (*glMaterialx) (GLenum face, GLenum pname, GLfixed param);
3990 void (*glMaterialxv) (GLenum face, GLenum pname, const GLfixed *params);
3991 void (*glMatrixMode) (GLenum mode);
3992 void (*glMultMatrixx) (const GLfixed *m);
3993 void (*glMultiTexCoord4x) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
3994 void (*glNormal3x) (GLfixed nx, GLfixed ny, GLfixed nz);
3995 void (*glNormalPointer) (GLenum type, GLsizei stride, const GLvoid *pointer);
3996 void (*glOrthox) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
3997 void (*glPointParameterx) (GLenum pname, GLfixed param);
3998 void (*glPointParameterxv) (GLenum pname, const GLfixed *params);
3999 void (*glPointSizex) (GLfixed size);
4000 void (*glPolygonOffsetx) (GLfixed factor, GLfixed units);
4001 void (*glPopMatrix) (void);
4002 void (*glPushMatrix) (void);
4003 void (*glRotatex) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
4004 void (*glSampleCoveragex) (GLclampx value, GLboolean invert);
4005 void (*glScalex) (GLfixed x, GLfixed y, GLfixed z);
4006 void (*glShadeModel) (GLenum mode);
4007 void (*glTexCoordPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
4008 void (*glTexEnvi) (GLenum target, GLenum pname, GLint param);
4009 void (*glTexEnvx) (GLenum target, GLenum pname, GLfixed param);
4010 void (*glTexEnviv) (GLenum target, GLenum pname, const GLint *params);
4011 void (*glTexEnvxv) (GLenum target, GLenum pname, const GLfixed *params);
4012 void (*glTexParameterx) (GLenum target, GLenum pname, GLfixed param);
4013 void (*glTexParameterxv) (GLenum target, GLenum pname, const GLfixed *params);
4014 void (*glTranslatex) (GLfixed x, GLfixed y, GLfixed z);
4015 void (*glVertexPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
1951 /** @} */ 4016 /** @} */
1952 4017
4018 /**
4019 * @name OpenGL-ES 1.1 extensions
4020 *
4021 * Evas_GL_API version 2.
4022 *
4023 * OpenGL-ES 1.1 specifies a set of extensions on top of OpenGL-ES 1.0.
4024 * When available, Evas GL will expose these extensions with the following
4025 * function pointers.
4026 * @{
4027 */
4028 /* GL_OES_blend_equation_separate */
4029 void (*glBlendEquationSeparateOES) (GLenum modeRGB, GLenum modeAlpha);
4030
4031 /* GL_OES_blend_func_separate */
4032 void (*glBlendFuncSeparateOES) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
4033
4034 /* GL_OES_blend_subtract */
4035 void (*glBlendEquationOES) (GLenum mode);
4036
4037 /* GL_OES_draw_texture */
4038 void (*glDrawTexsOES) (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
4039 void (*glDrawTexiOES) (GLint x, GLint y, GLint z, GLint width, GLint height);
4040 void (*glDrawTexxOES) (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
4041 void (*glDrawTexsvOES) (const GLshort *coords);
4042 void (*glDrawTexivOES) (const GLint *coords);
4043 void (*glDrawTexxvOES) (const GLfixed *coords);
4044 void (*glDrawTexfOES) (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
4045 void (*glDrawTexfvOES) (const GLfloat *coords);
4046
4047 /* GL_OES_fixed_point */
4048 void (*glAlphaFuncxOES) (GLenum func, GLclampx ref);
4049 void (*glClearColorxOES) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
4050 void (*glClearDepthxOES) (GLclampx depth);
4051 void (*glClipPlanexOES) (GLenum plane, const GLfixed *equation);
4052 void (*glColor4xOES) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
4053 void (*glDepthRangexOES) (GLclampx zNear, GLclampx zFar);
4054 void (*glFogxOES) (GLenum pname, GLfixed param);
4055 void (*glFogxvOES) (GLenum pname, const GLfixed *params);
4056 void (*glFrustumxOES) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
4057 void (*glGetClipPlanexOES) (GLenum pname, GLfixed eqn[4]);
4058 void (*glGetFixedvOES) (GLenum pname, GLfixed *params);
4059 void (*glGetLightxvOES) (GLenum light, GLenum pname, GLfixed *params);
4060 void (*glGetMaterialxvOES) (GLenum face, GLenum pname, GLfixed *params);
4061 void (*glGetTexEnvxvOES) (GLenum env, GLenum pname, GLfixed *params);
4062 void (*glGetTexParameterxvOES) (GLenum target, GLenum pname, GLfixed *params);
4063 void (*glLightModelxOES) (GLenum pname, GLfixed param);
4064 void (*glLightModelxvOES) (GLenum pname, const GLfixed *params);
4065 void (*glLightxOES) (GLenum light, GLenum pname, GLfixed param);
4066 void (*glLightxvOES) (GLenum light, GLenum pname, const GLfixed *params);
4067 void (*glLineWidthxOES) (GLfixed width);
4068 void (*glLoadMatrixxOES) (const GLfixed *m);
4069 void (*glMaterialxOES) (GLenum face, GLenum pname, GLfixed param);
4070 void (*glMaterialxvOES) (GLenum face, GLenum pname, const GLfixed *params);
4071 void (*glMultMatrixxOES) (const GLfixed *m);
4072 void (*glMultiTexCoord4xOES) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
4073 void (*glNormal3xOES) (GLfixed nx, GLfixed ny, GLfixed nz);
4074 void (*glOrthoxOES) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
4075 void (*glPointParameterxOES) (GLenum pname, GLfixed param);
4076 void (*glPointParameterxvOES) (GLenum pname, const GLfixed *params);
4077 void (*glPointSizexOES) (GLfixed size);
4078 void (*glPolygonOffsetxOES) (GLfixed factor, GLfixed units);
4079 void (*glRotatexOES) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
4080 void (*glSampleCoveragexOES) (GLclampx value, GLboolean invert);
4081 void (*glScalexOES) (GLfixed x, GLfixed y, GLfixed z);
4082 void (*glTexEnvxOES) (GLenum target, GLenum pname, GLfixed param);
4083 void (*glTexEnvxvOES) (GLenum target, GLenum pname, const GLfixed *params);
4084 void (*glTexParameterxOES) (GLenum target, GLenum pname, GLfixed param);
4085 void (*glTexParameterxvOES) (GLenum target, GLenum pname, const GLfixed *params);
4086 void (*glTranslatexOES) (GLfixed x, GLfixed y, GLfixed z);
4087
4088 /* GL_OES_framebuffer_object */
4089 GLboolean (*glIsRenderbufferOES) (GLuint renderbuffer);
4090 void (*glBindRenderbufferOES) (GLenum target, GLuint renderbuffer);
4091 void (*glDeleteRenderbuffersOES) (GLsizei n, const GLuint* renderbuffers);
4092 void (*glGenRenderbuffersOES) (GLsizei n, GLuint* renderbuffers);
4093 void (*glRenderbufferStorageOES) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
4094 void (*glGetRenderbufferParameterivOES) (GLenum target, GLenum pname, GLint* params);
4095 GLboolean (*glIsFramebufferOES) (GLuint framebuffer);
4096 void (*glBindFramebufferOES) (GLenum target, GLuint framebuffer);
4097 void (*glDeleteFramebuffersOES) (GLsizei n, const GLuint* framebuffers);
4098 void (*glGenFramebuffersOES) (GLsizei n, GLuint* framebuffers);
4099 GLenum (*glCheckFramebufferStatusOES) (GLenum target);
4100 void (*glFramebufferRenderbufferOES) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
4101 void (*glFramebufferTexture2DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
4102 void (*glGetFramebufferAttachmentParameterivOES) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
4103 void (*glGenerateMipmapOES) (GLenum target);
4104
4105 /* GL_OES_matrix_palette */
4106 void (*glCurrentPaletteMatrixOES) (GLuint matrixpaletteindex);
4107 void (*glLoadPaletteFromModelViewMatrixOES) (void);
4108 void (*glMatrixIndexPointerOES) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
4109 void (*glWeightPointerOES) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
4110
4111 /* GL_OES_query_matrix */
4112 GLbitfield (*glQueryMatrixxOES) (GLfixed mantissa[16], GLint exponent[16]);
4113
4114 /* GL_OES_single_precision */
4115 void (*glDepthRangefOES) (GLclampf zNear, GLclampf zFar);
4116 void (*glFrustumfOES) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
4117 void (*glOrthofOES) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
4118 void (*glClipPlanefOES) (GLenum plane, const GLfloat *equation);
4119 void (*glGetClipPlanefOES) (GLenum pname, GLfloat eqn[4]);
4120 void (*glClearDepthfOES) (GLclampf depth);
4121
4122 /* GL_OES_texture_cube_map */
4123 void (*glTexGenfOES) (GLenum coord, GLenum pname, GLfloat param);
4124 void (*glTexGenfvOES) (GLenum coord, GLenum pname, const GLfloat *params);
4125 void (*glTexGeniOES) (GLenum coord, GLenum pname, GLint param);
4126 void (*glTexGenivOES) (GLenum coord, GLenum pname, const GLint *params);
4127 void (*glTexGenxOES) (GLenum coord, GLenum pname, GLfixed param);
4128 void (*glTexGenxvOES) (GLenum coord, GLenum pname, const GLfixed *params);
4129 void (*glGetTexGenfvOES) (GLenum coord, GLenum pname, GLfloat *params);
4130 void (*glGetTexGenivOES) (GLenum coord, GLenum pname, GLint *params);
4131 void (*glGetTexGenxvOES) (GLenum coord, GLenum pname, GLfixed *params);
4132
4133 /* GL_OES_vertex_array_object */
4134 void (*glBindVertexArrayOES) (GLuint array);
4135 void (*glDeleteVertexArraysOES) (GLsizei n, const GLuint *arrays);
4136 void (*glGenVertexArraysOES) (GLsizei n, GLuint *arrays);
4137 GLboolean (*glIsVertexArrayOES) (GLuint array);
4138
4139 /* GL_APPLE_copy_texture_levels */
4140 void (*glCopyTextureLevelsAPPLE) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
4141 void (*glRenderbufferStorageMultisampleAPPLE) (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
4142 void (*glResolveMultisampleFramebufferAPPLE) (void);
4143 GLsync (*glFenceSyncAPPLE) (GLenum condition, GLbitfield flags);
4144 GLboolean (*glIsSyncAPPLE) (GLsync sync);
4145 void (*glDeleteSyncAPPLE) (GLsync sync);
4146 GLenum (*glClientWaitSyncAPPLE) (GLsync sync, GLbitfield flags, EvasGLuint64 timeout);
4147 void (*glWaitSyncAPPLE) (GLsync sync, GLbitfield flags, EvasGLuint64 timeout);
4148 void (*glGetInteger64vAPPLE) (GLenum pname, EvasGLint64 *params);
4149 void (*glGetSyncivAPPLE) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
4150
4151 /* GL_EXT_map_buffer_range */
4152 void* (*glMapBufferRangeEXT) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
4153 void (*glFlushMappedBufferRangeEXT) (GLenum target, GLintptr offset, GLsizeiptr length);
4154
4155 /* GL_EXT_multisampled_render_to_texture */
4156 void (*glRenderbufferStorageMultisampleEXT) (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
4157 void (*glFramebufferTexture2DMultisampleEXT) (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
4158
4159 /* GL_EXT_robustness */
4160 GLenum (*glGetGraphicsResetStatusEXT) (void);
4161 void (*glReadnPixelsEXT) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
4162 void (*glGetnUniformfvEXT) (GLuint program, GLint location, GLsizei bufSize, float *params);
4163 void (*glGetnUniformivEXT) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
4164
4165 /* GL_EXT_texture_storage */
4166 void (*glTexStorage1DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
4167 void (*glTexStorage2DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
4168 void (*glTexStorage3DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
4169 void (*glTextureStorage1DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
4170 void (*glTextureStorage2DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
4171 void (*glTextureStorage3DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
4172
4173 /* GL_IMG_user_clip_plane */
4174 void (*glClipPlanefIMG) (GLenum, const GLfloat *);
4175 void (*glClipPlanexIMG) (GLenum, const GLfixed *);
4176
4177 /* GL_IMG_multisampled_render_to_texture */
4178 void (*glRenderbufferStorageMultisampleIMG) (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
4179 void (*glFramebufferTexture2DMultisampleIMG) (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
4180
4181 /* GL_QCOM_tiled_rendering */
4182 void (*glStartTilingQCOM) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
4183 void (*glEndTilingQCOM) (GLbitfield preserveMask);
4184
1953 4185
1954 /*------- EvasGL / EGL-related functions -------*/ 4186 /*------- EvasGL / EGL-related functions -------*/
1955 /** 4187 /**