coregl_fastpath: Add process of some missed state
[platform/core/uifw/coregl.git] / src / modules / fastpath / coregl_fastpath_state.h
1 #ifndef GLUE_STATE
2 #error GLUE_STATE_NOT_DEFINED
3 #endif
4
5 #ifndef _COREGL_START_API
6 #define _COREGL_START_API(version)
7 #define _COREGL_START_API_DEFINED_INSIDE
8 #endif
9
10 #ifndef _COREGL_END_API
11 #define _COREGL_END_API(version)
12 #define _COREGL_END_API_DEFINED_INSIDE
13 #endif
14
15
16 #define SET_1(v1)               value[0] = v1;
17 #define SET_2(v1, v2)           value[0] = v1; value[1] = v2;
18 #define SET_3(v1, v2, v3)       value[0] = v1; value[1] = v2; value[2] = v3;
19 #define SET_4(v1, v2, v3, v4)   value[0] = v1; value[1] = v2; value[2] = v3; value[3] = v4;
20 #define SET_N(n, inc, stmt) \
21    { \
22       int i; \
23       for (i = 0; i < (int)n; i++) \
24       { \
25          stmt \
26          value += inc; \
27       } \
28    }
29
30 GLUE_STATE(GLuint, gl_draw_buffers_num, 1, 1,
31            _sym_glGetIntegerv(GL_MAX_DRAW_BUFFERS,
32                               (GLint *)value); /* DEFAULT NOT EFFECT */,
33            _sym_glGetIntegerv(GL_MAX_DRAW_BUFFERS, (GLint *)value);)
34
35 GLUE_STATE(GLuint, gl_tex_units_num, 1, 1,
36            _sym_glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
37                               (GLint *)value); /* DEFAULT NOT EFFECT */,
38            _sym_glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, (GLint *)value);)
39
40 GLUE_STATE(GLuint, gl_vertex_attribs_num, 1, 1,
41            _sym_glGetIntegerv(GL_MAX_VERTEX_ATTRIBS,
42                               (GLint *)value); /* DEFAULT NOT EFFECT */,
43            _sym_glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, (GLint *)value);)
44
45 GLUE_STATE(GLuint, gl_transform_feedback_buffer_binding_num, 1, 1,
46            _sym_glGetIntegerv(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
47                               (GLint *)value); /* DEFAULT NOT EFFECT */,
48            _sym_glGetIntegerv(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, (GLint *)value);)
49
50 GLUE_STATE(GLuint, gl_uniform_buffer_binding_num, 1, 1,
51            _sym_glGetIntegerv(GL_MAX_UNIFORM_BUFFER_BINDINGS,
52                               (GLint *)value); /* DEFAULT NOT EFFECT */,
53            _sym_glGetIntegerv(GL_MAX_UNIFORM_BUFFER_BINDINGS, (GLint *)value);)
54
55 GLUE_STATE(GLuint, gl_shader_storage_buffer_binding_num, 1, 1,
56            _sym_glGetIntegerv(GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
57                               (GLint *)value); /* DEFAULT NOT EFFECT */,
58            _sym_glGetIntegerv(GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, (GLint *)value);)
59
60 GLUE_STATE(GLuint, gl_atomic_counter_buffer_binding_num, 1, 1,
61            _sym_glGetIntegerv(GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
62                               (GLint *)value); /* DEFAULT NOT EFFECT */,
63            _sym_glGetIntegerv(GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS, (GLint *)value);)
64
65 GLUE_STATE(GLuint, gl_array_buffer_binding, 1, 1, SET_1(0),
66            _sym_glGetIntegerv(GL_ARRAY_BUFFER_BINDING, (GLint *)value);)
67 GLUE_STATE(GLuint, gl_copy_read_buffer_binding, 1, 1, SET_1(0),
68            _sym_glGetIntegerv(GL_COPY_READ_BUFFER_BINDING, (GLint *)value);)
69 GLUE_STATE(GLuint, gl_copy_write_buffer_binding, 1, 1, SET_1(0),
70            _sym_glGetIntegerv(GL_COPY_WRITE_BUFFER_BINDING, (GLint *)value);)
71 GLUE_STATE(GLuint, gl_element_array_buffer_binding, 1, 1, SET_1(0),
72            _sym_glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING, (GLint *)value);)
73 GLUE_STATE(GLuint, gl_pixel_pack_buffer_binding, 1, 1, SET_1(0),
74            _sym_glGetIntegerv(GL_PIXEL_PACK_BUFFER_BINDING, (GLint *)value);)
75 GLUE_STATE(GLuint, gl_pixel_unpack_buffer_binding, 1, 1, SET_1(0),
76            _sym_glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, (GLint *)value);)
77 GLUE_STATE(GLuint, gl_transform_feedback_buffer_binding, 1, 1, SET_1(0),
78            _sym_glGetIntegerv(GL_TRANSFORM_FEEDBACK_BUFFER_BINDING, (GLint *)value);)
79 GLUE_STATE(GLuint, gl_uniform_buffer_binding, 1, 1, SET_1(0),
80            _sym_glGetIntegerv(GL_UNIFORM_BUFFER_BINDING, (GLint *)value);)
81 GLUE_STATE(GLuint, gl_texture_buffer_binding, 1, 1, SET_1(0),
82            _sym_glGetIntegerv(GL_TEXTURE_BUFFER_BINDING, (GLint *)value);)
83 GLUE_STATE(GLuint, gl_shader_storage_buffer_binding, 1, 1, SET_1(0),
84            _sym_glGetIntegerv(GL_SHADER_STORAGE_BUFFER_BINDING, (GLint *)value);)
85 GLUE_STATE(GLuint, gl_atomic_counter_buffer_binding, 1, 1, SET_1(0),
86            _sym_glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING, (GLint *)value);)
87 GLUE_STATE(GLuint, gl_draw_indirect_buffer_binding, 1, 1, SET_1(0),
88            _sym_glGetIntegerv(GL_DRAW_INDIRECT_BUFFER_BINDING, (GLint *)value);)
89 GLUE_STATE(GLuint, gl_dispatch_indirect_buffer_binding, 1, 1, SET_1(0),
90            _sym_glGetIntegerv(GL_DISPATCH_INDIRECT_BUFFER_BINDING, (GLint *)value);)
91
92 _COREGL_START_API(COREGL_GLAPI_3)
93 GLUE_STATE(GLuint, gl_transform_feedback_buffer_binding_array,
94            INITIAL_CTX->gl_transform_feedback_buffer_binding_num[0],
95            MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
96            _state_get_transform_feedback_buffer_bindings(value); /* DEFAULT NOT EFFECT */,
97            _state_get_transform_feedback_buffer_bindings(value);)
98
99 GLUE_STATE(GLintptr, gl_transform_feedback_buffer_binding_array_offset,
100            INITIAL_CTX->gl_transform_feedback_buffer_binding_num[0],
101            MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
102            _state_get_transform_feedback_buffer_bindings_offset(
103                    value); /* DEFAULT NOT EFFECT */,
104            _state_get_transform_feedback_buffer_bindings_offset(value);)
105
106 GLUE_STATE(GLsizeiptr, gl_transform_feedback_buffer_binding_array_size,
107            INITIAL_CTX->gl_transform_feedback_buffer_binding_num[0],
108            MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
109            _state_get_transform_feedback_buffer_bindings_size(
110                    value); /* DEFAULT NOT EFFECT */,
111            _state_get_transform_feedback_buffer_bindings_size(value);)
112
113 GLUE_STATE(GLuint, gl_uniform_buffer_binding_array,
114            INITIAL_CTX->gl_uniform_buffer_binding_num[0], MAX_UNIFORM_BUFFER_BINDINGS,
115            _state_get_uniform_buffer_bindings(value); /* DEFAULT NOT EFFECT */,
116            _state_get_uniform_buffer_bindings(value);)
117
118 GLUE_STATE(GLintptr, gl_uniform_buffer_binding_array_offset,
119            INITIAL_CTX->gl_uniform_buffer_binding_num[0], MAX_UNIFORM_BUFFER_BINDINGS,
120            _state_get_uniform_buffer_bindings_offset(value); /* DEFAULT NOT EFFECT */,
121            _state_get_uniform_buffer_bindings_offset(value);)
122
123 GLUE_STATE(GLsizeiptr, gl_uniform_buffer_binding_array_size,
124            INITIAL_CTX->gl_uniform_buffer_binding_num[0], MAX_UNIFORM_BUFFER_BINDINGS,
125            _state_get_uniform_buffer_bindings_size(value); /* DEFAULT NOT EFFECT */,
126            _state_get_uniform_buffer_bindings_size(value);)
127
128 GLUE_STATE(GLuint, gl_shader_storage_buffer_binding_array,
129            INITIAL_CTX->gl_shader_storage_buffer_binding_num[0], MAX_SHADER_STORAGE_BUFFER_BINDINGS,
130            _state_get_shader_storage_buffer_bindings(value); /* DEFAULT NOT EFFECT */,
131            _state_get_shader_storage_buffer_bindings(value);)
132
133 GLUE_STATE(GLintptr, gl_shader_storage_buffer_binding_array_offset,
134            INITIAL_CTX->gl_shader_storage_buffer_binding_num[0], MAX_SHADER_STORAGE_BUFFER_BINDINGS,
135            _state_get_shader_storage_buffer_bindings_offset(value); /* DEFAULT NOT EFFECT */,
136            _state_get_shader_storage_buffer_bindings_offset(value);)
137
138 GLUE_STATE(GLsizeiptr, gl_shader_storage_buffer_binding_array_size,
139            INITIAL_CTX->gl_shader_storage_buffer_binding_num[0], MAX_SHADER_STORAGE_BUFFER_BINDINGS,
140            _state_get_shader_storage_buffer_bindings_size(value); /* DEFAULT NOT EFFECT */,
141            _state_get_shader_storage_buffer_bindings_size(value);)
142
143 GLUE_STATE(GLuint, gl_atomic_counter_buffer_binding_array,
144            INITIAL_CTX->gl_atomic_counter_buffer_binding_num[0], MAX_ATOMIC_COUNTER_BUFFER_BINDING,
145            _state_get_atomic_counter_buffer_bindings(value); /* DEFAULT NOT EFFECT */,
146            _state_get_atomic_counter_buffer_bindings(value);)
147
148 GLUE_STATE(GLintptr, gl_atomic_counter_buffer_binding_array_offset,
149            INITIAL_CTX->gl_atomic_counter_buffer_binding_num[0], MAX_ATOMIC_COUNTER_BUFFER_BINDING,
150            _state_get_atomic_counter_buffer_bindings_offset(value); /* DEFAULT NOT EFFECT */,
151            _state_get_atomic_counter_buffer_bindings_offset(value);)
152
153 GLUE_STATE(GLsizeiptr, gl_atomic_counter_buffer_binding_array_size,
154            INITIAL_CTX->gl_atomic_counter_buffer_binding_num[0], MAX_ATOMIC_COUNTER_BUFFER_BINDING,
155            _state_get_atomic_counter_buffer_bindings_size(value); /* DEFAULT NOT EFFECT */,
156            _state_get_atomic_counter_buffer_bindings_size(value);)
157
158 GLUE_STATE(GLuint, gl_uniform_buffer_range_binding_array,
159            INITIAL_CTX->gl_uniform_buffer_binding_num[0], MAX_UNIFORM_BUFFER_BINDINGS,
160            _state_get_uniform_buffer_bindings(value); /* DEFAULT NOT EFFECT */,
161            _state_get_uniform_buffer_bindings(value);)
162
163 GLUE_STATE(GLintptr, gl_uniform_buffer_range_binding_array_offset,
164            INITIAL_CTX->gl_uniform_buffer_binding_num[0], MAX_UNIFORM_BUFFER_BINDINGS,
165            _state_get_uniform_buffer_bindings_offset(value); /* DEFAULT NOT EFFECT */,
166            _state_get_uniform_buffer_bindings_offset(value);)
167
168 GLUE_STATE(GLsizeiptr, gl_uniform_buffer_range_binding_array_size,
169            INITIAL_CTX->gl_uniform_buffer_binding_num[0], MAX_UNIFORM_BUFFER_BINDINGS,
170            _state_get_uniform_buffer_bindings_size(value); /* DEFAULT NOT EFFECT */,
171            _state_get_uniform_buffer_bindings_size(value);)
172
173 GLUE_STATE(GLuint, gl_transform_feedback_buffer_range_binding_array,
174            INITIAL_CTX->gl_transform_feedback_buffer_binding_num[0],
175            MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
176            _state_get_transform_feedback_buffer_bindings(value); /* DEFAULT NOT EFFECT */,
177            _state_get_transform_feedback_buffer_bindings(value);)
178
179 GLUE_STATE(GLintptr, gl_transform_feedback_buffer_range_binding_array_offset,
180            INITIAL_CTX->gl_transform_feedback_buffer_binding_num[0],
181            MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
182            _state_get_transform_feedback_buffer_bindings_offset(
183                    value); /* DEFAULT NOT EFFECT */,
184            _state_get_transform_feedback_buffer_bindings_offset(value);)
185
186 GLUE_STATE(GLsizeiptr, gl_transform_feedback_buffer_range_binding_array_size,
187            INITIAL_CTX->gl_transform_feedback_buffer_binding_num[0],
188            MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
189            _state_get_transform_feedback_buffer_bindings_size(
190                    value); /* DEFAULT NOT EFFECT */,
191            _state_get_transform_feedback_buffer_bindings_size(value);)
192
193 GLUE_STATE(GLuint, gl_shader_storage_buffer_range_binding_array,
194            INITIAL_CTX->gl_shader_storage_buffer_binding_num[0],
195            MAX_SHADER_STORAGE_BUFFER_BINDINGS,
196            _state_get_shader_storage_buffer_bindings(value); /* DEFAULT NOT EFFECT */,
197            _state_get_shader_storage_buffer_bindings(value);)
198
199 GLUE_STATE(GLintptr, gl_shader_storage_buffer_range_binding_array_offset,
200            INITIAL_CTX->gl_shader_storage_buffer_binding_num[0],
201            MAX_SHADER_STORAGE_BUFFER_BINDINGS,
202            _state_get_shader_storage_buffer_bindings_offset(
203                    value); /* DEFAULT NOT EFFECT */,
204            _state_get_shader_storage_buffer_bindings_offset(value);)
205
206 GLUE_STATE(GLsizeiptr, gl_shader_storage_buffer_range_binding_array_size,
207            INITIAL_CTX->gl_shader_storage_buffer_binding_num[0],
208            MAX_SHADER_STORAGE_BUFFER_BINDINGS,
209            _state_get_shader_storage_buffer_bindings_size(
210                    value); /* DEFAULT NOT EFFECT */,
211            _state_get_shader_storage_buffer_bindings_size(value);)
212
213 GLUE_STATE(GLuint, gl_atomic_counter_buffer_range_binding_array,
214            INITIAL_CTX->gl_atomic_counter_buffer_binding_num[0],
215            MAX_ATOMIC_COUNTER_BUFFER_BINDING,
216            _state_get_atomic_counter_buffer_bindings(value); /* DEFAULT NOT EFFECT */,
217            _state_get_atomic_counter_buffer_bindings(value);)
218
219 GLUE_STATE(GLintptr, gl_atomic_counter_buffer_range_binding_array_offset,
220            INITIAL_CTX->gl_atomic_counter_buffer_binding_num[0],
221            MAX_ATOMIC_COUNTER_BUFFER_BINDING,
222            _state_get_atomic_counter_buffer_bindings_offset(
223                    value); /* DEFAULT NOT EFFECT */,
224            _state_get_atomic_counter_buffer_bindings_offset(value);)
225
226 GLUE_STATE(GLsizeiptr, gl_atomic_counter_buffer_range_binding_array_size,
227            INITIAL_CTX->gl_atomic_counter_buffer_binding_num[0],
228            MAX_ATOMIC_COUNTER_BUFFER_BINDING,
229            _state_get_atomic_counter_buffer_bindings_size(
230                    value); /* DEFAULT NOT EFFECT */,
231            _state_get_atomic_counter_buffer_bindings_size(value);)
232 _COREGL_END_API(COREGL_GLAPI_3)
233
234 GLUE_STATE(GLuint, gl_framebuffer_binding, 1, 1, SET_1(0),
235            _sym_glGetIntegerv(GL_FRAMEBUFFER_BINDING, (GLint *)value);)
236 GLUE_STATE(GLuint, gl_framebuffer_binding_read, 1, 1, SET_1(0),
237            _sym_glGetIntegerv(GL_READ_FRAMEBUFFER_BINDING_ANGLE, (GLint *)value);)
238 GLUE_STATE(GLuint, gl_framebuffer_binding_draw, 1, 1, SET_1(0),
239            _sym_glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING_ANGLE, (GLint *)value);)
240 GLUE_STATE(GLuint, gl_renderbuffer_binding, 1, 1, SET_1(0),
241            _sym_glGetIntegerv(GL_RENDERBUFFER_BINDING, (GLint *)value);)
242
243 GLUE_STATE(GLboolean, gl_blend, 1, 1, SET_1(GL_FALSE),
244            _sym_glGetBooleanv(GL_BLEND, (GLboolean *)value);)
245 GLUE_STATE(GLboolean, gl_cull_face, 1, 1, SET_1(GL_FALSE),
246            _sym_glGetBooleanv(GL_CULL_FACE, (GLboolean *)value);)
247 GLUE_STATE(GLboolean, gl_depth_test, 1, 1, SET_1(GL_FALSE),
248            _sym_glGetBooleanv(GL_DEPTH_TEST, (GLboolean *)value);)
249 GLUE_STATE(GLboolean, gl_dither, 1, 1, SET_1(GL_TRUE),
250            _sym_glGetBooleanv(GL_DITHER, (GLboolean *)value);)
251
252 GLUE_STATE(GLboolean, gl_polygon_offset_fill, 1, 1, SET_1(GL_FALSE),
253            _sym_glGetBooleanv(GL_POLYGON_OFFSET_FILL, (GLboolean *)value);)
254 GLUE_STATE(GLboolean, gl_sample_alpha_to_coverage, 1, 1, SET_1(GL_FALSE),
255            _sym_glGetBooleanv(GL_SAMPLE_ALPHA_TO_COVERAGE, (GLboolean *)value);)
256 GLUE_STATE(GLboolean, gl_sample_coverage, 1, 1, SET_1(GL_FALSE),
257            _sym_glGetBooleanv(GL_SAMPLE_COVERAGE, (GLboolean *)value);)
258 GLUE_STATE(GLboolean, gl_scissor_test, 1, 1, SET_1(GL_FALSE),
259            _sym_glGetBooleanv(GL_SCISSOR_TEST, (GLboolean *)value);)
260 GLUE_STATE(GLboolean, gl_stencil_test, 1, 1, SET_1(GL_FALSE),
261            _sym_glGetBooleanv(GL_STENCIL_TEST, (GLboolean *)value);)
262 GLUE_STATE(GLboolean, gl_sample_shading_oes, 1, 1, SET_1(GL_FALSE),
263            _sym_glGetBooleanv(GL_SAMPLE_SHADING_OES, (GLboolean *)value);)
264 GLUE_STATE(GLboolean, gl_sample_mask, 1, 1, SET_1(GL_FALSE),
265            _sym_glGetBooleanv(GL_SAMPLE_MASK, (GLboolean *)value);)
266
267 GLUE_STATE(GLboolean, gl_primitive_restart_fixed_index, 1, 1, SET_1(GL_FALSE),
268            _sym_glGetBooleanv(GL_PRIMITIVE_RESTART_FIXED_INDEX, (GLboolean *)value);)
269 GLUE_STATE(GLboolean, gl_rasterizer_discard, 1, 1, SET_1(GL_FALSE),
270            _sym_glGetBooleanv(GL_RASTERIZER_DISCARD, (GLboolean *)value);)
271 GLUE_STATE(GLboolean, gl_blend_advanced_coherent_khr, 1, 1, SET_1(GL_TRUE),
272            _sym_glGetBooleanv(GL_BLEND_ADVANCED_COHERENT_KHR, (GLboolean *)value);)
273
274 GLUE_STATE(GLint, gl_viewport, 4, 4,
275            _sym_glGetIntegerv(GL_VIEWPORT, (GLint *)value); /* DEFAULT NOT EFFECT */,
276            _sym_glGetIntegerv(GL_VIEWPORT, (GLint *)value);)
277
278 GLUE_STATE(GLuint, gl_current_program, 1, 1, SET_1(0),
279            _sym_glGetIntegerv(GL_CURRENT_PROGRAM, (GLint *)value);)
280 GLUE_STATE(GLclampf, gl_color_clear_value, 4, 4, SET_4(0.0f, 0.0f, 0.0f, 0.0f),
281            _sym_glGetFloatv(GL_COLOR_CLEAR_VALUE, (GLfloat *)value);)
282
283 GLUE_STATE(GLboolean, gl_color_writemask, 4, 4, SET_4(GL_TRUE, GL_TRUE, GL_TRUE,
284                 GL_TRUE), _sym_glGetBooleanv(GL_COLOR_WRITEMASK, (GLboolean *)value);)
285 GLUE_STATE(GLclampf, gl_depth_range, 2, 2, SET_2(0.0f, 1.0f),
286            _sym_glGetFloatv(GL_DEPTH_RANGE, (GLfloat *)value);)
287 GLUE_STATE(GLclampf, gl_depth_clear_value, 1, 1, SET_1(1.0f),
288            _sym_glGetFloatv(GL_DEPTH_CLEAR_VALUE, (GLfloat *)value);)
289 GLUE_STATE(GLenum, gl_depth_func, 1, 1, SET_1(GL_LESS),
290            _sym_glGetIntegerv(GL_DEPTH_FUNC, (GLint *)value);)
291 GLUE_STATE(GLboolean, gl_depth_writemask, 1, 1, SET_1(GL_TRUE),
292            _sym_glGetBooleanv(GL_DEPTH_WRITEMASK, (GLboolean *)value);)
293 GLUE_STATE(GLenum, gl_cull_face_mode, 1, 1, SET_1(GL_BACK),
294            _sym_glGetIntegerv(GL_CULL_FACE_MODE, (GLint *)value);)
295
296 GLUE_STATE(GLuint, gl_tex_2d_state, INITIAL_CTX->gl_tex_units_num[0],
297            MAX_TEXTURE_UNITS,
298            SET_N(INITIAL_CTX->gl_tex_units_num[0], 1, SET_1(0)),
299            _state_get_texture_states(GL_TEXTURE_BINDING_2D, (GLint *)value);)
300 GLUE_STATE(GLuint, gl_tex_3d_state, INITIAL_CTX->gl_tex_units_num[0],
301            MAX_TEXTURE_UNITS,
302            SET_N(INITIAL_CTX->gl_tex_units_num[0], 1, SET_1(0)),
303            _state_get_texture_states(GL_TEXTURE_BINDING_3D, (GLint *)value);)
304 GLUE_STATE(GLuint, gl_tex_2d_array_state, INITIAL_CTX->gl_tex_units_num[0],
305            MAX_TEXTURE_UNITS,
306            SET_N(INITIAL_CTX->gl_tex_units_num[0], 1, SET_1(0)),
307            _state_get_texture_states(GL_TEXTURE_BINDING_2D_ARRAY, (GLint *)value);)
308 GLUE_STATE(GLuint, gl_tex_cube_state, INITIAL_CTX->gl_tex_units_num[0],
309            MAX_TEXTURE_UNITS,
310            SET_N(INITIAL_CTX->gl_tex_units_num[0], 1, SET_1(0)),
311            _state_get_texture_states(GL_TEXTURE_BINDING_CUBE_MAP, (GLint *)value);)
312 GLUE_STATE(GLuint, gl_tex_external_oes_state, INITIAL_CTX->gl_tex_units_num[0],
313            MAX_TEXTURE_UNITS,
314            SET_N(INITIAL_CTX->gl_tex_units_num[0], 1, SET_1(0)),
315            _state_get_texture_states(GL_TEXTURE_EXTERNAL_OES, (GLint *)value);)
316 GLUE_STATE(GLuint, gl_tex_buffer_ext_state, INITIAL_CTX->gl_tex_units_num[0],
317            MAX_TEXTURE_UNITS,
318            SET_N(INITIAL_CTX->gl_tex_units_num[0], 1, SET_1(0)),
319            _state_get_texture_states(GL_TEXTURE_BUFFER_EXT, (GLint *)value);)
320 GLUE_STATE(GLuint, gl_tex_2d_multisample_state, INITIAL_CTX->gl_tex_units_num[0],
321            MAX_TEXTURE_UNITS,
322            SET_N(INITIAL_CTX->gl_tex_units_num[0], 1, SET_1(0)),
323            _state_get_texture_states(GL_TEXTURE_2D_MULTISAMPLE, (GLint *)value);)
324 GLUE_STATE(GLuint, gl_tex_cube_map_array_ext_state, INITIAL_CTX->gl_tex_units_num[0],
325            MAX_TEXTURE_UNITS,
326            SET_N(INITIAL_CTX->gl_tex_units_num[0], 1, SET_1(0)),
327            _state_get_texture_states(GL_TEXTURE_CUBE_MAP_ARRAY_EXT, (GLint *)value);)
328 GLUE_STATE(GLuint, gl_tex_2d_multisample_array_oes_state, INITIAL_CTX->gl_tex_units_num[0],
329            MAX_TEXTURE_UNITS,
330            SET_N(INITIAL_CTX->gl_tex_units_num[0], 1, SET_1(0)),
331            _state_get_texture_states(GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES, (GLint *)value);)
332
333 GLUE_STATE(GLenum, gl_active_texture, 1, 1, SET_1(GL_TEXTURE0),
334            _sym_glGetIntegerv(GL_ACTIVE_TEXTURE, (GLint *)value))
335 GLUE_STATE(GLenum, gl_client_active_texture, 1, 1, SET_1(GL_TEXTURE0),
336            _sym_glGetIntegerv(GL_CLIENT_ACTIVE_TEXTURE, (GLint *)value))
337 GLUE_STATE(GLenum, gl_generate_mipmap_hint, 1, 1, SET_1(GL_DONT_CARE),
338            _sym_glGetIntegerv(GL_GENERATE_MIPMAP_HINT, (GLint *)value))
339
340 GLUE_STATE(GLclampf, gl_blend_color, 4, 4, SET_4(0.0f, 0.0f, 0.0f, 0.0f),
341            _sym_glGetFloatv(GL_BLEND_COLOR, (GLfloat *)value);)
342 GLUE_STATE(GLenum, gl_blend_src_rgb, 1, 1, SET_1(GL_ONE),
343            _sym_glGetIntegerv(GL_BLEND_SRC_RGB, (GLint *)value);)
344 GLUE_STATE(GLenum, gl_blend_src_alpha, 1, 1, SET_1(GL_ONE),
345            _sym_glGetIntegerv(GL_BLEND_SRC_ALPHA, (GLint *)value);)
346 GLUE_STATE(GLenum, gl_blend_dst_rgb, 1, 1, SET_1(GL_ZERO),
347            _sym_glGetIntegerv(GL_BLEND_DST_RGB, (GLint *)value);)
348 GLUE_STATE(GLenum, gl_blend_dst_alpha, 1, 1, SET_1(GL_ZERO),
349            _sym_glGetIntegerv(GL_BLEND_DST_ALPHA, (GLint *)value);)
350 GLUE_STATE(GLenum, gl_blend_equation_rgb, 1, 1, SET_1(GL_FUNC_ADD),
351            _sym_glGetIntegerv(GL_BLEND_EQUATION_RGB, (GLint *)value);)
352 GLUE_STATE(GLenum, gl_blend_equation_alpha, 1, 1, SET_1(GL_FUNC_ADD),
353            _sym_glGetIntegerv(GL_BLEND_EQUATION_ALPHA, (GLint *)value);)
354
355
356 GLUE_STATE(GLenum, gl_stencil_func, 1, 1, SET_1(GL_ALWAYS),
357            _sym_glGetIntegerv(GL_STENCIL_FUNC, (GLint *)value);)
358 GLUE_STATE(GLint, gl_stencil_ref, 1, 1, SET_1(0),
359            _sym_glGetIntegerv(GL_STENCIL_REF, (GLint *)value);)
360 GLUE_STATE(GLuintmask, gl_stencil_value_mask, 1, 1,
361            _sym_glGetIntegerv(GL_STENCIL_VALUE_MASK,
362                               (GLint *)value); /* DEFAULT NOT EFFECT */,
363            _sym_glGetIntegerv(GL_STENCIL_VALUE_MASK, (GLint *)value);)
364 GLUE_STATE(GLenum, gl_stencil_fail, 1, 1, SET_1(GL_KEEP),
365            _sym_glGetIntegerv(GL_STENCIL_FAIL, (GLint *)value);)
366 GLUE_STATE(GLenum, gl_stencil_pass_depth_fail, 1, 1, SET_1(GL_KEEP),
367            _sym_glGetIntegerv(GL_STENCIL_PASS_DEPTH_FAIL, (GLint *)value);)
368 GLUE_STATE(GLenum, gl_stencil_pass_depth_pass, 1, 1, SET_1(GL_KEEP),
369            _sym_glGetIntegerv(GL_STENCIL_PASS_DEPTH_PASS, (GLint *)value);)
370 GLUE_STATE(GLuintmask, gl_stencil_writemask, 1, 1,
371            _sym_glGetIntegerv(GL_STENCIL_WRITEMASK,
372                               (GLint *)value); /* DEFAULT NOT EFFECT */,
373            _sym_glGetIntegerv(GL_STENCIL_WRITEMASK, (GLint *)value);)
374
375 GLUE_STATE(GLenum, gl_stencil_back_func, 1, 1, SET_1(GL_ALWAYS),
376            _sym_glGetIntegerv(GL_STENCIL_BACK_FUNC, (GLint *)value);)
377 GLUE_STATE(GLint, gl_stencil_back_ref, 1, 1, SET_1(0),
378            _sym_glGetIntegerv(GL_STENCIL_BACK_REF, (GLint *)value);)
379 GLUE_STATE(GLuintmask, gl_stencil_back_value_mask, 1, 1,
380            _sym_glGetIntegerv(GL_STENCIL_BACK_VALUE_MASK,
381                               (GLint *)value); /* DEFAULT NOT EFFECT */,
382            _sym_glGetIntegerv(GL_STENCIL_BACK_VALUE_MASK, (GLint *)value);)
383 GLUE_STATE(GLenum, gl_stencil_back_fail, 1, 1, SET_1(GL_KEEP),
384            _sym_glGetIntegerv(GL_STENCIL_BACK_FAIL, (GLint *)value);)
385 GLUE_STATE(GLenum, gl_stencil_back_pass_depth_fail, 1, 1, SET_1(GL_KEEP),
386            _sym_glGetIntegerv(GL_STENCIL_BACK_PASS_DEPTH_FAIL, (GLint *)value);)
387 GLUE_STATE(GLenum, gl_stencil_back_pass_depth_pass, 1, 1, SET_1(GL_KEEP),
388            _sym_glGetIntegerv(GL_STENCIL_BACK_PASS_DEPTH_PASS, (GLint *)value);)
389 GLUE_STATE(GLuintmask, gl_stencil_back_writemask, 1, 1,
390            _sym_glGetIntegerv(GL_STENCIL_BACK_WRITEMASK,
391                               (GLint *)value); /* DEFAULT NOT EFFECT */,
392            _sym_glGetIntegerv(GL_STENCIL_BACK_WRITEMASK, (GLint *)value);)
393
394 GLUE_STATE(GLint, gl_stencil_clear_value, 1, 1, SET_1(0),
395            _sym_glGetIntegerv(GL_STENCIL_CLEAR_VALUE, (GLint *)value);)
396
397 // PIXEL FLAG 1
398 GLUE_STATE(GLint, gl_pack_row_length, 1, 1, SET_1(0),
399            _sym_glGetIntegerv(GL_PACK_ROW_LENGTH, (GLint *)value);)
400 GLUE_STATE(GLint, gl_pack_skip_rows, 1, 1, SET_1(0),
401            _sym_glGetIntegerv(GL_PACK_SKIP_ROWS, (GLint *)value);)
402 GLUE_STATE(GLint, gl_pack_skip_pixels, 1, 1, SET_1(0),
403            _sym_glGetIntegerv(GL_PACK_SKIP_PIXELS, (GLint *)value);)
404 GLUE_STATE(GLint, gl_pack_alignment, 1, 1, SET_1(4),
405            _sym_glGetIntegerv(GL_PACK_ALIGNMENT, (GLint *)value);)
406
407 // PIXEL FLAG 2
408 GLUE_STATE(GLint, gl_unpack_row_length, 1, 1, SET_1(0),
409            _sym_glGetIntegerv(GL_UNPACK_ROW_LENGTH, (GLint *)value);)
410 GLUE_STATE(GLint, gl_unpack_skip_rows, 1, 1, SET_1(0),
411            _sym_glGetIntegerv(GL_UNPACK_SKIP_ROWS, (GLint *)value);)
412 GLUE_STATE(GLint, gl_unpack_skip_pixels, 1, 1, SET_1(0),
413            _sym_glGetIntegerv(GL_UNPACK_SKIP_PIXELS, (GLint *)value);)
414 GLUE_STATE(GLint, gl_unpack_alignment, 1, 1, SET_1(4),
415            _sym_glGetIntegerv(GL_UNPACK_ALIGNMENT, (GLint *)value);)
416 GLUE_STATE(GLint, gl_unpack_image_height, 1, 1, SET_1(0),
417            _sym_glGetIntegerv(GL_UNPACK_IMAGE_HEIGHT, (GLint *)value);)
418 GLUE_STATE(GLint, gl_unpack_skip_images, 1, 1, SET_1(0),
419            _sym_glGetIntegerv(GL_UNPACK_SKIP_IMAGES, (GLint *)value);)
420
421 // MISC FLAG 1
422 GLUE_STATE(GLenum, gl_front_face, 1, 1, SET_1(GL_CCW),
423            _sym_glGetIntegerv(GL_FRONT_FACE, (GLint *)value);)
424 GLUE_STATE(GLfloat, gl_line_width, 1, 1, SET_1(1.0f),
425            _sym_glGetFloatv(GL_LINE_WIDTH, (GLfloat *)value);)
426 GLUE_STATE(GLfloat, gl_polygon_offset_factor, 1, 1, SET_1(0.0f),
427            _sym_glGetFloatv(GL_POLYGON_OFFSET_FACTOR, (GLfloat *)value);)
428 GLUE_STATE(GLfloat, gl_polygon_offset_units, 1, 1, SET_1(0.0f),
429            _sym_glGetFloatv(GL_POLYGON_OFFSET_UNITS, (GLfloat *)value);)
430 GLUE_STATE(GLclampf, gl_sample_coverage_value, 1, 1, SET_1(1.0f),
431            _sym_glGetFloatv(GL_SAMPLE_COVERAGE_VALUE, (GLfloat *)value);)
432 GLUE_STATE(GLboolean, gl_sample_coverage_invert, 1, 1, SET_1(GL_FALSE),
433            _sym_glGetBooleanv(GL_SAMPLE_COVERAGE_INVERT, (GLboolean *)value);)
434 GLUE_STATE(GLenum, gl_fragment_shader_derivative_hint, 1, 1,
435            SET_1(GL_DONT_CARE), _sym_glGetIntegerv(GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
436                            (GLint *)value);)
437
438 // MISC FLAG 2
439 GLUE_STATE(GLint, gl_scissor_box, 4, 4,
440            _sym_glGetIntegerv(GL_SCISSOR_BOX, (GLint *)value); /* DEFAULT NOT EFFECT */,
441            _sym_glGetIntegerv(GL_SCISSOR_BOX, (GLint *)value);)
442
443 GLUE_STATE(GLuint, gl_vertex_array_buf_id,
444            INITIAL_CTX->gl_vertex_attribs_num[0], MAX_VERTEX_ATTRIBS,
445            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, SET_1(0)),
446            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, _sym_glGetVertexAttribiv(i,
447                            GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, (GLint *)value);))
448 GLUE_STATE(GLint, gl_vertex_array_enabled,
449            INITIAL_CTX->gl_vertex_attribs_num[0], MAX_VERTEX_ATTRIBS,
450            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, SET_1(GL_FALSE)),
451            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, _sym_glGetVertexAttribiv(i,
452                            GL_VERTEX_ATTRIB_ARRAY_ENABLED, (GLint *)value);))
453 GLUE_STATE(GLint, gl_vertex_array_size, INITIAL_CTX->gl_vertex_attribs_num[0],
454            MAX_VERTEX_ATTRIBS,
455            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, SET_1(4)),
456            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, _sym_glGetVertexAttribiv(i,
457                            GL_VERTEX_ATTRIB_ARRAY_SIZE, (GLint *)value);))
458 GLUE_STATE(GLsizei, gl_vertex_array_stride,
459            INITIAL_CTX->gl_vertex_attribs_num[0], MAX_VERTEX_ATTRIBS,
460            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, SET_1(GL_FALSE)),
461            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, _sym_glGetVertexAttribiv(i,
462                            GL_VERTEX_ATTRIB_ARRAY_STRIDE, (GLint *)value);))
463 GLUE_STATE(GLenum, gl_vertex_array_type, INITIAL_CTX->gl_vertex_attribs_num[0],
464            MAX_VERTEX_ATTRIBS,
465            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, SET_1(GL_FLOAT)),
466            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, _sym_glGetVertexAttribiv(i,
467                            GL_VERTEX_ATTRIB_ARRAY_TYPE, (GLint *)value);))
468 GLUE_STATE(GLint, gl_vertex_array_normalized,
469            INITIAL_CTX->gl_vertex_attribs_num[0], MAX_VERTEX_ATTRIBS,
470            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, SET_1(GL_FALSE)),
471            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, _sym_glGetVertexAttribiv(i,
472                            GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, (GLint *)value);))
473 GLUE_STATE(GLint, gl_vertex_array_integer,
474            INITIAL_CTX->gl_vertex_attribs_num[0], MAX_VERTEX_ATTRIBS,
475            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, SET_1(GL_FALSE)),
476            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, _sym_glGetVertexAttribiv(i,
477                            GL_VERTEX_ATTRIB_ARRAY_INTEGER, (GLint *)value);))
478 GLUE_STATE(GLuint, gl_vertex_array_divisor,
479            INITIAL_CTX->gl_vertex_attribs_num[0], MAX_VERTEX_ATTRIBS,
480            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, SET_1(GL_FALSE)),
481            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, _sym_glGetVertexAttribiv(i,
482                            GL_VERTEX_ATTRIB_ARRAY_DIVISOR, (GLint *)value);))
483 GLUE_STATE(GLvoidptr, gl_vertex_array_pointer,
484            INITIAL_CTX->gl_vertex_attribs_num[0], MAX_VERTEX_ATTRIBS,
485            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1, SET_1(NULL)),
486            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 1,
487                  _sym_glGetVertexAttribPointerv(i, GL_VERTEX_ATTRIB_ARRAY_POINTER,
488                                  (GLvoidptr *)value);))
489 GLUE_STATE(GLfloat, gl_vertex_attrib_value,
490            4 * INITIAL_CTX->gl_vertex_attribs_num[0], MAX_VERTEX_ATTRIBS,
491            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 4, SET_4(0, 0, 0, 1)),
492            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 4, _sym_glGetVertexAttribfv(i,
493                            GL_CURRENT_VERTEX_ATTRIB, (GLfloat *)value);))
494
495 _COREGL_START_API(COREGL_GLAPI_3)
496 GLUE_STATE(GLint, gl_vertex_attrib_value_integer,
497            4 * INITIAL_CTX->gl_vertex_attribs_num[0], MAX_VERTEX_ATTRIBS,
498            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 4, SET_4(0, 0, 0,
499                            GET_INT_FROM_FLOAT(1.0f))),
500            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 4, SET_4(0, 0, 0,
501                            GET_INT_FROM_FLOAT(1.0f))))
502 GLUE_STATE(GLuint, gl_vertex_attrib_value_unsigned_integer,
503            4 * INITIAL_CTX->gl_vertex_attribs_num[0], MAX_VERTEX_ATTRIBS,
504            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 4, SET_4(0, 0, 0,
505                            GET_UINT_FROM_FLOAT(1.0f))),
506            SET_N(INITIAL_CTX->gl_vertex_attribs_num[0], 4, SET_4(0, 0, 0,
507                            GET_INT_FROM_FLOAT(1.0f))))
508
509 // MISC FLAG 3
510 GLUE_STATE(GLenum, gl_read_buffer, 1, 1, SET_1(GL_BACK),
511            _sym_glGetIntegerv(GL_READ_BUFFER, (GLint *)value);)
512 GLUE_STATE(GLenum, gl_draw_buffers, INITIAL_CTX->gl_draw_buffers_num[0], 16,
513            SET_1(GL_BACK); value++;
514            SET_N(INITIAL_CTX->gl_draw_buffers_num[0] - 1, 1, SET_1(GL_NONE)),
515            _state_get_draw_buffers(value);)
516 GLUE_STATE(GLuint, gl_vertex_array_binding, 1, 1, SET_1(0),
517            _sym_glGetIntegerv(GL_VERTEX_ARRAY_BINDING, (GLint *)value);)
518 GLUE_STATE(GLuint, gl_program_pipeline_binding, 1, 1, SET_1(0),
519            _sym_glGetIntegerv(GL_PROGRAM_PIPELINE_BINDING, (GLint *)value);)
520 GLUE_STATE(GLuint, gl_transform_feedback_binding, 1, 1, SET_1(0),
521            _sym_glGetIntegerv(GL_TRANSFORM_FEEDBACK_BINDING, (GLint *)value);)
522 GLUE_STATE(GLboolean, gl_transform_feedback_active, 1, 1, SET_1(0),
523            _sym_glGetBooleanv(GL_TRANSFORM_FEEDBACK_ACTIVE, (GLboolean *)value);)
524 GLUE_STATE(GLboolean, gl_transform_feedback_paused, 1, 1, SET_1(0),
525            _sym_glGetBooleanv(GL_TRANSFORM_FEEDBACK_PAUSED, (GLboolean *)value);)
526 _COREGL_END_API(COREGL_GLAPI_3)
527
528 #ifdef _COREGL_START_API_DEFINED_INSIDE
529 #undef _COREGL_START_API
530 #undef _COREGL_START_API_DEFINED_INSIDE
531 #endif
532
533 #ifdef _COREGL_END_API_DEFINED_INSIDE
534 #undef _COREGL_END_API
535 #undef _COREGL_END_API_DEFINED_INSIDE
536 #endif