summaryrefslogtreecommitdiff
path: root/src/lib/evas/Evas_GL.h
diff options
context:
space:
mode:
authormythri.venugopal <mythri.venugopal@samsung.com>2015-03-05 15:36:35 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2015-03-16 15:56:43 +0900
commit4d1a45627fc28de0c7ebf099a8606f6e52177448 (patch)
treea5ca3c4245bc818aa4f23299c8dc5a421a9a05d6 /src/lib/evas/Evas_GL.h
parentbb134a5cc326b82a1457f97341a5e053a9ea9efb (diff)
Evas GL: Add support for Evas GL 3.0
Summary: This should enable applications to use GLES 3.0 through evas gl. Todo: Fix indirect rendering issue occuring because texture objects cannot be shared between different version of GLES contexts. Todo: extension pointers need to be updated for GLES 3.0 Reviewers: wonsik, spacegrapher, jpeg Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2017 @feature
Diffstat (limited to 'src/lib/evas/Evas_GL.h')
-rw-r--r--src/lib/evas/Evas_GL.h435
1 files changed, 433 insertions, 2 deletions
diff --git a/src/lib/evas/Evas_GL.h b/src/lib/evas/Evas_GL.h
index 79354da276..5a7efef220 100644
--- a/src/lib/evas/Evas_GL.h
+++ b/src/lib/evas/Evas_GL.h
@@ -3375,6 +3375,319 @@ typedef signed int GLclampx; // Changed khronos_int32_t
3375typedef struct __GLsync* GLsync; 3375typedef struct __GLsync* GLsync;
3376 3376
3377 3377
3378/* OpenGLES 3.0 */
3379#ifndef __gl3_h_
3380# define __gl3_h_ 1
3381
3382
3383#define GL_READ_BUFFER 0x0C02
3384#define GL_UNPACK_ROW_LENGTH 0x0CF2
3385#define GL_UNPACK_SKIP_ROWS 0x0CF3
3386#define GL_UNPACK_SKIP_PIXELS 0x0CF4
3387#define GL_PACK_ROW_LENGTH 0x0D02
3388#define GL_PACK_SKIP_ROWS 0x0D03
3389#define GL_PACK_SKIP_PIXELS 0x0D04
3390#define GL_COLOR 0x1800
3391#define GL_DEPTH 0x1801
3392#define GL_STENCIL 0x1802
3393#define GL_RED 0x1903
3394#define GL_RGB8 0x8051
3395#define GL_RGBA8 0x8058
3396#define GL_RGB10_A2 0x8059
3397#define GL_TEXTURE_BINDING_3D 0x806A
3398#define GL_UNPACK_SKIP_IMAGES 0x806D
3399#define GL_UNPACK_IMAGE_HEIGHT 0x806E
3400#define GL_TEXTURE_3D 0x806F
3401#define GL_TEXTURE_WRAP_R 0x8072
3402#define GL_MAX_3D_TEXTURE_SIZE 0x8073
3403#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
3404#define GL_MAX_ELEMENTS_VERTICES 0x80E8
3405#define GL_MAX_ELEMENTS_INDICES 0x80E9
3406#define GL_TEXTURE_MIN_LOD 0x813A
3407#define GL_TEXTURE_MAX_LOD 0x813B
3408#define GL_TEXTURE_BASE_LEVEL 0x813C
3409#define GL_TEXTURE_MAX_LEVEL 0x813D
3410#define GL_MIN 0x8007
3411#define GL_MAX 0x8008
3412#define GL_DEPTH_COMPONENT24 0x81A6
3413#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
3414#define GL_TEXTURE_COMPARE_MODE 0x884C
3415#define GL_TEXTURE_COMPARE_FUNC 0x884D
3416#define GL_CURRENT_QUERY 0x8865
3417#define GL_QUERY_RESULT 0x8866
3418#define GL_QUERY_RESULT_AVAILABLE 0x8867
3419#define GL_BUFFER_MAPPED 0x88BC
3420#define GL_BUFFER_MAP_POINTER 0x88BD
3421#define GL_STREAM_READ 0x88E1
3422#define GL_STREAM_COPY 0x88E2
3423#define GL_STATIC_READ 0x88E5
3424#define GL_STATIC_COPY 0x88E6
3425#define GL_DYNAMIC_READ 0x88E9
3426#define GL_DYNAMIC_COPY 0x88EA
3427#define GL_MAX_DRAW_BUFFERS 0x8824
3428#define GL_DRAW_BUFFER0 0x8825
3429#define GL_DRAW_BUFFER1 0x8826
3430#define GL_DRAW_BUFFER2 0x8827
3431#define GL_DRAW_BUFFER3 0x8828
3432#define GL_DRAW_BUFFER4 0x8829
3433#define GL_DRAW_BUFFER5 0x882A
3434#define GL_DRAW_BUFFER6 0x882B
3435#define GL_DRAW_BUFFER7 0x882C
3436#define GL_DRAW_BUFFER8 0x882D
3437#define GL_DRAW_BUFFER9 0x882E
3438#define GL_DRAW_BUFFER10 0x882F
3439#define GL_DRAW_BUFFER11 0x8830
3440#define GL_DRAW_BUFFER12 0x8831
3441#define GL_DRAW_BUFFER13 0x8832
3442#define GL_DRAW_BUFFER14 0x8833
3443#define GL_DRAW_BUFFER15 0x8834
3444#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
3445#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
3446#define GL_SAMPLER_3D 0x8B5F
3447#define GL_SAMPLER_2D_SHADOW 0x8B62
3448#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
3449#define GL_PIXEL_PACK_BUFFER 0x88EB
3450#define GL_PIXEL_UNPACK_BUFFER 0x88EC
3451#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
3452#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
3453#define GL_FLOAT_MAT2x3 0x8B65
3454#define GL_FLOAT_MAT2x4 0x8B66
3455#define GL_FLOAT_MAT3x2 0x8B67
3456#define GL_FLOAT_MAT3x4 0x8B68
3457#define GL_FLOAT_MAT4x2 0x8B69
3458#define GL_FLOAT_MAT4x3 0x8B6A
3459#define GL_SRGB 0x8C40
3460#define GL_SRGB8 0x8C41
3461#define GL_SRGB8_ALPHA8 0x8C43
3462#define GL_COMPARE_REF_TO_TEXTURE 0x884E
3463#define GL_MAJOR_VERSION 0x821B
3464#define GL_MINOR_VERSION 0x821C
3465#define GL_NUM_EXTENSIONS 0x821D
3466#define GL_RGBA32F 0x8814
3467#define GL_RGB32F 0x8815
3468#define GL_RGBA16F 0x881A
3469#define GL_RGB16F 0x881B
3470#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
3471#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
3472#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
3473#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
3474#define GL_MAX_VARYING_COMPONENTS 0x8B4B
3475#define GL_TEXTURE_2D_ARRAY 0x8C1A
3476#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
3477#define GL_R11F_G11F_B10F 0x8C3A
3478#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
3479#define GL_RGB9_E5 0x8C3D
3480#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
3481#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
3482#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
3483#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
3484#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
3485#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
3486#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
3487#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
3488#define GL_RASTERIZER_DISCARD 0x8C89
3489#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
3490#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
3491#define GL_INTERLEAVED_ATTRIBS 0x8C8C
3492#define GL_SEPARATE_ATTRIBS 0x8C8D
3493#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
3494#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
3495#define GL_RGBA32UI 0x8D70
3496#define GL_RGB32UI 0x8D71
3497#define GL_RGBA16UI 0x8D76
3498#define GL_RGB16UI 0x8D77
3499#define GL_RGBA8UI 0x8D7C
3500#define GL_RGB8UI 0x8D7D
3501#define GL_RGBA32I 0x8D82
3502#define GL_RGB32I 0x8D83
3503#define GL_RGBA16I 0x8D88
3504#define GL_RGB16I 0x8D89
3505#define GL_RGBA8I 0x8D8E
3506#define GL_RGB8I 0x8D8F
3507#define GL_RED_INTEGER 0x8D94
3508#define GL_RGB_INTEGER 0x8D98
3509#define GL_RGBA_INTEGER 0x8D99
3510#define GL_SAMPLER_2D_ARRAY 0x8DC1
3511#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
3512#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
3513#define GL_UNSIGNED_INT_VEC2 0x8DC6
3514#define GL_UNSIGNED_INT_VEC3 0x8DC7
3515#define GL_UNSIGNED_INT_VEC4 0x8DC8
3516#define GL_INT_SAMPLER_2D 0x8DCA
3517#define GL_INT_SAMPLER_3D 0x8DCB
3518#define GL_INT_SAMPLER_CUBE 0x8DCC
3519#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
3520#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
3521#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
3522#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
3523#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
3524#define GL_BUFFER_ACCESS_FLAGS 0x911F
3525#define GL_BUFFER_MAP_LENGTH 0x9120
3526#define GL_BUFFER_MAP_OFFSET 0x9121
3527#define GL_DEPTH_COMPONENT32F 0x8CAC
3528#define GL_DEPTH32F_STENCIL8 0x8CAD
3529#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
3530#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
3531#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
3532#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
3533#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
3534#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
3535#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
3536#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
3537#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
3538#define GL_FRAMEBUFFER_DEFAULT 0x8218
3539#define GL_FRAMEBUFFER_UNDEFINED 0x8219
3540#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
3541#define GL_DEPTH_STENCIL 0x84F9
3542#define GL_UNSIGNED_INT_24_8 0x84FA
3543#define GL_DEPTH24_STENCIL8 0x88F0
3544#define GL_UNSIGNED_NORMALIZED 0x8C17
3545#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
3546#define GL_READ_FRAMEBUFFER 0x8CA8
3547#define GL_DRAW_FRAMEBUFFER 0x8CA9
3548#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
3549#define GL_RENDERBUFFER_SAMPLES 0x8CAB
3550#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
3551#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
3552#define GL_COLOR_ATTACHMENT1 0x8CE1
3553#define GL_COLOR_ATTACHMENT2 0x8CE2
3554#define GL_COLOR_ATTACHMENT3 0x8CE3
3555#define GL_COLOR_ATTACHMENT4 0x8CE4
3556#define GL_COLOR_ATTACHMENT5 0x8CE5
3557#define GL_COLOR_ATTACHMENT6 0x8CE6
3558#define GL_COLOR_ATTACHMENT7 0x8CE7
3559#define GL_COLOR_ATTACHMENT8 0x8CE8
3560#define GL_COLOR_ATTACHMENT9 0x8CE9
3561#define GL_COLOR_ATTACHMENT10 0x8CEA
3562#define GL_COLOR_ATTACHMENT11 0x8CEB
3563#define GL_COLOR_ATTACHMENT12 0x8CEC
3564#define GL_COLOR_ATTACHMENT13 0x8CED
3565#define GL_COLOR_ATTACHMENT14 0x8CEE
3566#define GL_COLOR_ATTACHMENT15 0x8CEF
3567#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
3568#define GL_MAX_SAMPLES 0x8D57
3569#define GL_HALF_FLOAT 0x140B
3570#define GL_MAP_READ_BIT 0x0001
3571#define GL_MAP_WRITE_BIT 0x0002
3572#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
3573#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
3574#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
3575#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
3576#define GL_RG 0x8227
3577#define GL_RG_INTEGER 0x8228
3578#define GL_R8 0x8229
3579#define GL_RG8 0x822B
3580#define GL_R16F 0x822D
3581#define GL_R32F 0x822E
3582#define GL_RG16F 0x822F
3583#define GL_RG32F 0x8230
3584#define GL_R8I 0x8231
3585#define GL_R8UI 0x8232
3586#define GL_R16I 0x8233
3587#define GL_R16UI 0x8234
3588#define GL_R32I 0x8235
3589#define GL_R32UI 0x8236
3590#define GL_RG8I 0x8237
3591#define GL_RG8UI 0x8238
3592#define GL_RG16I 0x8239
3593#define GL_RG16UI 0x823A
3594#define GL_RG32I 0x823B
3595#define GL_RG32UI 0x823C
3596#define GL_VERTEX_ARRAY_BINDING 0x85B5
3597#define GL_R8_SNORM 0x8F94
3598#define GL_RG8_SNORM 0x8F95
3599#define GL_RGB8_SNORM 0x8F96
3600#define GL_RGBA8_SNORM 0x8F97
3601#define GL_SIGNED_NORMALIZED 0x8F9C
3602#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
3603#define GL_COPY_READ_BUFFER 0x8F36
3604#define GL_COPY_WRITE_BUFFER 0x8F37
3605#define GL_COPY_READ_BUFFER_BINDING 0x8F36
3606#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
3607#define GL_UNIFORM_BUFFER 0x8A11
3608#define GL_UNIFORM_BUFFER_BINDING 0x8A28
3609#define GL_UNIFORM_BUFFER_START 0x8A29
3610#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
3611#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
3612#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
3613#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
3614#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
3615#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
3616#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
3617#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
3618#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
3619#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
3620#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
3621#define GL_UNIFORM_TYPE 0x8A37
3622#define GL_UNIFORM_SIZE 0x8A38
3623#define GL_UNIFORM_NAME_LENGTH 0x8A39
3624#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
3625#define GL_UNIFORM_OFFSET 0x8A3B
3626#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
3627#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
3628#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
3629#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
3630#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
3631#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
3632#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
3633#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
3634#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
3635#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
3636#define GL_INVALID_INDEX 0xFFFFFFFFu
3637#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
3638#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
3639#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
3640#define GL_OBJECT_TYPE 0x9112
3641#define GL_SYNC_CONDITION 0x9113
3642#define GL_SYNC_STATUS 0x9114
3643#define GL_SYNC_FLAGS 0x9115
3644#define GL_SYNC_FENCE 0x9116
3645#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
3646#define GL_UNSIGNALED 0x9118
3647#define GL_SIGNALED 0x9119
3648#define GL_ALREADY_SIGNALED 0x911A
3649#define GL_TIMEOUT_EXPIRED 0x911B
3650#define GL_CONDITION_SATISFIED 0x911C
3651#define GL_WAIT_FAILED 0x911D
3652#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
3653#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull
3654#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
3655#define GL_ANY_SAMPLES_PASSED 0x8C2F
3656#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
3657#define GL_SAMPLER_BINDING 0x8919
3658#define GL_RGB10_A2UI 0x906F
3659#define GL_TEXTURE_SWIZZLE_R 0x8E42
3660#define GL_TEXTURE_SWIZZLE_G 0x8E43
3661#define GL_TEXTURE_SWIZZLE_B 0x8E44
3662#define GL_TEXTURE_SWIZZLE_A 0x8E45
3663#define GL_GREEN 0x1904
3664#define GL_BLUE 0x1905
3665#define GL_INT_2_10_10_10_REV 0x8D9F
3666#define GL_TRANSFORM_FEEDBACK 0x8E22
3667#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
3668#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
3669#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
3670#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
3671#define GL_PROGRAM_BINARY_LENGTH 0x8741
3672#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
3673#define GL_PROGRAM_BINARY_FORMATS 0x87FF
3674#define GL_COMPRESSED_R11_EAC 0x9270
3675#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
3676#define GL_COMPRESSED_RG11_EAC 0x9272
3677#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
3678#define GL_COMPRESSED_RGB8_ETC2 0x9274
3679#define GL_COMPRESSED_SRGB8_ETC2 0x9275
3680#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
3681#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
3682#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
3683#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
3684#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
3685#define GL_MAX_ELEMENT_INDEX 0x8D6B
3686#define GL_NUM_SAMPLE_COUNTS 0x9380
3687#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
3688
3689#endif
3690
3378 3691
3379/* 3692/*
3380 * EGL-related definitions 3693 * EGL-related definitions
@@ -3516,8 +3829,9 @@ typedef unsigned long long EvasGLTime;
3516 * Version 1: GLES 2.0 + GLES2 extensions only 3829 * Version 1: GLES 2.0 + GLES2 extensions only
3517 * Version 2: GLES 2.0 + GLES2 extensions + GLES1 + GLES1.1 extensions 3830 * Version 2: GLES 2.0 + GLES2 extensions + GLES1 + GLES1.1 extensions
3518 * Version 3: [version 2] + Wayland extensions 3831 * Version 3: [version 2] + Wayland extensions
3832 * Version 4: [version 3] + GLES3.0 + GLES3.0 extensions
3519 */ 3833 */
3520#define EVAS_GL_API_VERSION 3 3834#define EVAS_GL_API_VERSION 4
3521 3835
3522/** 3836/**
3523 * @brief The Evas GL API 3837 * @brief The Evas GL API
@@ -3527,7 +3841,7 @@ typedef unsigned long long EvasGLTime;
3527struct _Evas_GL_API 3841struct _Evas_GL_API
3528{ 3842{
3529 /** 3843 /**
3530 * The current version number is @c EVAS_GL_API_VERSION (3). 3844 * The current version number is @c EVAS_GL_API_VERSION (4).
3531 * This should not be confused with the OpenGL-ES context version. 3845 * This should not be confused with the OpenGL-ES context version.
3532 */ 3846 */
3533 int version; 3847 int version;
@@ -4173,6 +4487,123 @@ EvasGLImage *img = glapi->evasglCreateImageForContext
4173 */ 4487 */
4174 Eina_Bool (*evasglQueryWaylandBuffer) (Evas_GL *evas_gl, void *buffer, int attribute, int *value); 4488 Eina_Bool (*evasglQueryWaylandBuffer) (Evas_GL *evas_gl, void *buffer, int attribute, int *value);
4175 /** @} */ 4489 /** @} */
4490 // ---------------------------------------------------------------------- //
4491 /**
4492 * @anchor gles3
4493 * @name OpenGL-ES 3.0.
4494 *
4495 * Evas_GL_API version 4.
4496 *
4497 * The following functions are supported in all OpenGL-ES 3.0 contexts.
4498 * @{
4499 */
4500 /* This defines shows that Evas_GL_API supports GLES3 APIs */
4501#define EVAS_GL_GLES3 1
4502 void (*glBeginQuery) (GLenum target, GLuint id);
4503 void (*glBeginTransformFeedback) (GLenum primitiveMode);
4504 void (*glBindBufferBase) (GLenum target, GLuint index, GLuint buffer);
4505 void (*glBindBufferRange) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
4506 void (*glBindSampler) (GLuint unit, GLuint sampler);
4507 void (*glBindTransformFeedback) (GLenum target, GLuint id);
4508 void (*glBindVertexArray) (GLuint array);
4509 void (*glBlitFramebuffer) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
4510 void (*glClearBufferfi) (GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil);
4511 void (*glClearBufferfv) (GLenum buffer, GLint drawBuffer, const GLfloat * value);
4512 void (*glClearBufferiv) (GLenum buffer, GLint drawBuffer, const GLint * value);
4513 void (*glClearBufferuiv) (GLenum buffer, GLint drawBuffer, const GLuint * value);
4514 GLenum (*glClientWaitSync) (GLsync sync, GLbitfield flags, EvasGLuint64 timeout);
4515 void (*glCompressedTexImage3D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data);
4516 void (*glCompressedTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data);
4517 void (*glCopyBufferSubData) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size);
4518 void (*glCopyTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
4519 void (*glDeleteQueries) (GLsizei n, const GLuint * ids);
4520 void (*glDeleteSamplers) (GLsizei n, const GLuint * samplers);
4521 void (*glDeleteSync) (GLsync sync);
4522 void (*glDeleteTransformFeedbacks) (GLsizei n, const GLuint *ids);
4523 void (*glDeleteVertexArrays) (GLsizei n, const GLuint *arrays);
4524 void (*glDrawArraysInstanced) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
4525 void (*glDrawBuffers) (GLsizei n, const GLenum *bufs);
4526 void (*glDrawElementsInstanced) (GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount);
4527 void (*glDrawRangeElements) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices);
4528 void (*glEndQuery) (GLenum target);
4529 void (*glEndTransformFeedback) (void);
4530 GLsync (*glFenceSync) (GLenum condition, GLbitfield flags);
4531 GLsync (*glFlushMappedBufferRange) (GLenum target, GLintptr offset, GLsizeiptr length);
4532 void (*glFramebufferTextureLayer) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
4533 void (*glGenQueries) (GLsizei n, GLuint * ids);
4534 void (*glGenSamplers) (GLsizei n, GLuint *samplers);
4535 void (*glGenTransformFeedbacks) (GLsizei n, GLuint *ids);
4536 void (*glGenVertexArrays) (GLsizei n, GLuint *arrays);
4537 void (*glGetActiveUniformBlockiv) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
4538 void (*glGetActiveUniformBlockName) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
4539 void (*glGetActiveUniformsiv) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
4540 void (*glGetBufferParameteri64v) (GLenum target, GLenum value, EvasGLint64 * data);
4541 void (*glGetBufferPointerv) (GLenum target, GLenum pname, GLvoid ** params);
4542 GLint (*glGetFragDataLocation) (GLuint program, const char * name);
4543 void (*glGetInteger64i_v) (GLenum target, GLuint index, EvasGLint64 * data);
4544 void (*glGetInteger64v) (GLenum pname, EvasGLint64 * data);
4545 void (*glGetIntegeri_v) (GLenum target, GLuint index, GLint * data);
4546 void (*glGetInternalformativ) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
4547 void (*glGetProgramBinary) (GLuint program, GLsizei bufsize, GLsizei *length, GLenum *binaryFormat, void *binary);
4548 void (*glGetQueryiv) (GLenum target, GLenum pname, GLint * params);
4549 void (*glGetQueryObjectuiv) (GLuint id, GLenum pname, GLuint * params);
4550 void (*glGetSamplerParameterfv) (GLuint sampler, GLenum pname, GLfloat * params);
4551 void (*glGetSamplerParameteriv) (GLuint sampler, GLenum pname, GLint * params);
4552 const GLubyte* (*glGetStringi) (GLenum name, GLuint index);
4553 void (*glGetSynciv) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
4554 void (*glGetTransformFeedbackVarying) (GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, char * name);
4555 GLuint (*glGetUniformBlockIndex) (GLuint program, const GLchar *uniformBlockName);
4556 void (*glGetUniformIndices) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
4557 void (*glGetUniformuiv) (GLuint program, GLint location, GLuint* params);
4558 void (*glGetVertexAttribIiv) (GLuint index, GLenum pname, GLint *params);
4559 void (*glGetVertexAttribIuiv) (GLuint index, GLenum pname, GLuint *params);
4560 void (*glInvalidateFramebuffer) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
4561 void (*glInvalidateSubFramebuffer) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
4562 GLboolean (*glIsQuery) (GLuint id);
4563 GLboolean (*glIsSampler) (GLuint id);
4564 GLboolean (*glIsSync) (GLsync sync);
4565 GLboolean (*glIsTransformFeedback) (GLuint id);
4566 GLboolean (*glIsVertexArray) (GLuint array);
4567 void * (*glMapBufferRange) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
4568 void (*glPauseTransformFeedback) (void);
4569 void (*glProgramBinary) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
4570 void (*glProgramParameteri) (GLuint program, GLenum pname, GLint value);
4571 void (*glReadBuffer) (GLenum src);
4572 void (*glRenderbufferStorageMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
4573 void (*glResumeTransformFeedback) (void);
4574 void (*glSamplerParameterf) (GLuint sampler, GLenum pname, GLfloat param);
4575 void (*glSamplerParameterfv) (GLuint sampler, GLenum pname, const GLfloat * params);
4576 void (*glSamplerParameteri) (GLuint sampler, GLenum pname, GLint param);
4577 void (*glSamplerParameteriv) (GLuint sampler, GLenum pname, const GLint * params);
4578 void (*glTexImage3D) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * data);
4579 void (*glTexStorage2D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
4580 void (*glTexStorage3D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
4581 void (*glTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * data);
4582 void (*glTransformFeedbackVaryings) (GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
4583 void (*glUniform1ui) (GLint location, GLuint v0);
4584 void (*glUniform1uiv) (GLint location, GLsizei count, const GLuint *value);
4585 void (*glUniform2ui) (GLint location, GLuint v0, GLuint v1);
4586 void (*glUniform2uiv) (GLint location, GLsizei count, const GLuint *value);
4587 void (*glUniform3ui) (GLint location, GLuint v0, GLuint v1, GLuint v2);
4588 void (*glUniform3uiv) (GLint location, GLsizei count, const GLuint *value);
4589 void (*glUniform4ui) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
4590 void (*glUniform4uiv) (GLint location, GLsizei count, const GLuint *value);
4591 void (*glUniformBlockBinding) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
4592 void (*glUniformMatrix2x3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4593 void (*glUniformMatrix3x2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4594 void (*glUniformMatrix2x4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4595 void (*glUniformMatrix4x2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4596 void (*glUniformMatrix3x4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4597 void (*glUniformMatrix4x3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4598 GLboolean (*glUnmapBuffer) (GLenum target);
4599 void (*glVertexAttribDivisor) (GLuint index, GLuint divisor);
4600 void (*glVertexAttribI4i) (GLuint index, GLint v0, GLint v1, GLint v2, GLint v3);
4601 void (*glVertexAttribI4iv) (GLuint index, const GLint *v);
4602 void (*glVertexAttribI4ui) (GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
4603 void (*glVertexAttribI4uiv) (GLuint index, const GLuint *v);
4604 void (*glVertexAttribIPointer) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
4605 void (*glWaitSync) (GLsync sync, GLbitfield flags, EvasGLuint64 timeout);
4606 /** @} */
4176 4607
4177 /* Future calls will be added down here for expansion, when adding 4608 /* Future calls will be added down here for expansion, when adding
4178 * new APIs here, please bump the struct version number (together with 4609 * new APIs here, please bump the struct version number (together with