xref: /aosp_15_r20/external/deqp/framework/opengl/simplereference/sglrContextWrapper.hpp (revision 35238bce31c2a825756842865a792f8cf7f89930)
1*35238bceSAndroid Build Coastguard Worker #ifndef _SGLRCONTEXTWRAPPER_HPP
2*35238bceSAndroid Build Coastguard Worker #define _SGLRCONTEXTWRAPPER_HPP
3*35238bceSAndroid Build Coastguard Worker /*-------------------------------------------------------------------------
4*35238bceSAndroid Build Coastguard Worker  * drawElements Quality Program OpenGL ES Utilities
5*35238bceSAndroid Build Coastguard Worker  * ------------------------------------------------
6*35238bceSAndroid Build Coastguard Worker  *
7*35238bceSAndroid Build Coastguard Worker  * Copyright 2014 The Android Open Source Project
8*35238bceSAndroid Build Coastguard Worker  *
9*35238bceSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
10*35238bceSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
11*35238bceSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
12*35238bceSAndroid Build Coastguard Worker  *
13*35238bceSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
14*35238bceSAndroid Build Coastguard Worker  *
15*35238bceSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
16*35238bceSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
17*35238bceSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18*35238bceSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
19*35238bceSAndroid Build Coastguard Worker  * limitations under the License.
20*35238bceSAndroid Build Coastguard Worker  *
21*35238bceSAndroid Build Coastguard Worker  *//*!
22*35238bceSAndroid Build Coastguard Worker  * \file
23*35238bceSAndroid Build Coastguard Worker  * \brief Context wrapper that exposes sglr API as GL-compatible API.
24*35238bceSAndroid Build Coastguard Worker  *//*--------------------------------------------------------------------*/
25*35238bceSAndroid Build Coastguard Worker 
26*35238bceSAndroid Build Coastguard Worker #include "tcuDefs.hpp"
27*35238bceSAndroid Build Coastguard Worker #include "tcuVector.hpp"
28*35238bceSAndroid Build Coastguard Worker 
29*35238bceSAndroid Build Coastguard Worker namespace sglr
30*35238bceSAndroid Build Coastguard Worker {
31*35238bceSAndroid Build Coastguard Worker 
32*35238bceSAndroid Build Coastguard Worker class Shader;
33*35238bceSAndroid Build Coastguard Worker class Context;
34*35238bceSAndroid Build Coastguard Worker 
35*35238bceSAndroid Build Coastguard Worker class ContextWrapper
36*35238bceSAndroid Build Coastguard Worker {
37*35238bceSAndroid Build Coastguard Worker public:
38*35238bceSAndroid Build Coastguard Worker     ContextWrapper(void);
39*35238bceSAndroid Build Coastguard Worker     ~ContextWrapper(void);
40*35238bceSAndroid Build Coastguard Worker 
41*35238bceSAndroid Build Coastguard Worker     void setContext(Context *context);
42*35238bceSAndroid Build Coastguard Worker     Context *getCurrentContext(void) const;
43*35238bceSAndroid Build Coastguard Worker 
44*35238bceSAndroid Build Coastguard Worker     int getWidth(void) const;
45*35238bceSAndroid Build Coastguard Worker     int getHeight(void) const;
46*35238bceSAndroid Build Coastguard Worker 
47*35238bceSAndroid Build Coastguard Worker     // GL-compatible API.
48*35238bceSAndroid Build Coastguard Worker     void glActiveTexture(uint32_t texture);
49*35238bceSAndroid Build Coastguard Worker     void glAttachShader(uint32_t program, uint32_t shader);
50*35238bceSAndroid Build Coastguard Worker     void glBindAttribLocation(uint32_t program, uint32_t index, const char *name);
51*35238bceSAndroid Build Coastguard Worker     void glBindBuffer(uint32_t target, uint32_t buffer);
52*35238bceSAndroid Build Coastguard Worker     void glBindFramebuffer(uint32_t target, uint32_t framebuffer);
53*35238bceSAndroid Build Coastguard Worker     void glBindRenderbuffer(uint32_t target, uint32_t renderbuffer);
54*35238bceSAndroid Build Coastguard Worker     void glBindTexture(uint32_t target, uint32_t texture);
55*35238bceSAndroid Build Coastguard Worker     void glBlendColor(float red, float green, float blue, float alpha);
56*35238bceSAndroid Build Coastguard Worker     void glBlendEquation(uint32_t mode);
57*35238bceSAndroid Build Coastguard Worker     void glBlendEquationSeparate(uint32_t modeRGB, uint32_t modeAlpha);
58*35238bceSAndroid Build Coastguard Worker     void glBlendFunc(uint32_t sfactor, uint32_t dfactor);
59*35238bceSAndroid Build Coastguard Worker     void glBlendFuncSeparate(uint32_t srcRGB, uint32_t dstRGB, uint32_t srcAlpha, uint32_t dstAlpha);
60*35238bceSAndroid Build Coastguard Worker     void glBufferData(uint32_t target, intptr_t size, const void *data, uint32_t usage);
61*35238bceSAndroid Build Coastguard Worker     void glBufferSubData(uint32_t target, intptr_t offset, intptr_t size, const void *data);
62*35238bceSAndroid Build Coastguard Worker     uint32_t glCheckFramebufferStatus(uint32_t target);
63*35238bceSAndroid Build Coastguard Worker     void glClear(uint32_t mask);
64*35238bceSAndroid Build Coastguard Worker     void glClearColor(float red, float green, float blue, float alpha);
65*35238bceSAndroid Build Coastguard Worker     void glClearDepthf(float depth);
66*35238bceSAndroid Build Coastguard Worker     void glClearStencil(int s);
67*35238bceSAndroid Build Coastguard Worker     void glColorMask(bool red, bool green, bool blue, bool alpha);
68*35238bceSAndroid Build Coastguard Worker     void glCompileShader(uint32_t shader);
69*35238bceSAndroid Build Coastguard Worker     void glCompressedTexImage2D(uint32_t target, int level, uint32_t internalformat, int width, int height, int border,
70*35238bceSAndroid Build Coastguard Worker                                 int imageSize, const void *data);
71*35238bceSAndroid Build Coastguard Worker     void glCompressedTexSubImage2D(uint32_t target, int level, int xoffset, int yoffset, int width, int height,
72*35238bceSAndroid Build Coastguard Worker                                    uint32_t format, int imageSize, const void *data);
73*35238bceSAndroid Build Coastguard Worker     void glCopyTexImage1D(uint32_t target, int level, uint32_t internalformat, int x, int y, int width, int border);
74*35238bceSAndroid Build Coastguard Worker     void glCopyTexImage2D(uint32_t target, int level, uint32_t internalformat, int x, int y, int width, int height,
75*35238bceSAndroid Build Coastguard Worker                           int border);
76*35238bceSAndroid Build Coastguard Worker     void glCopyTexSubImage1D(uint32_t target, int level, int xoffset, int x, int y, int width);
77*35238bceSAndroid Build Coastguard Worker     void glCopyTexSubImage2D(uint32_t target, int level, int xoffset, int yoffset, int x, int y, int width, int height);
78*35238bceSAndroid Build Coastguard Worker     uint32_t glCreateProgram();
79*35238bceSAndroid Build Coastguard Worker     uint32_t glCreateShader(uint32_t type);
80*35238bceSAndroid Build Coastguard Worker     void glCullFace(uint32_t mode);
81*35238bceSAndroid Build Coastguard Worker     void glDeleteBuffers(int n, const uint32_t *buffers);
82*35238bceSAndroid Build Coastguard Worker     void glDeleteFramebuffers(int n, const uint32_t *framebuffers);
83*35238bceSAndroid Build Coastguard Worker     void glDeleteProgram(uint32_t program);
84*35238bceSAndroid Build Coastguard Worker     void glDeleteRenderbuffers(int n, const uint32_t *renderbuffers);
85*35238bceSAndroid Build Coastguard Worker     void glDeleteShader(uint32_t shader);
86*35238bceSAndroid Build Coastguard Worker     void glDeleteTextures(int n, const uint32_t *textures);
87*35238bceSAndroid Build Coastguard Worker     void glDepthFunc(uint32_t func);
88*35238bceSAndroid Build Coastguard Worker     void glDepthMask(bool flag);
89*35238bceSAndroid Build Coastguard Worker     void glDepthRangef(float n, float f);
90*35238bceSAndroid Build Coastguard Worker     void glDetachShader(uint32_t program, uint32_t shader);
91*35238bceSAndroid Build Coastguard Worker     void glDisable(uint32_t cap);
92*35238bceSAndroid Build Coastguard Worker     void glDisableVertexAttribArray(uint32_t index);
93*35238bceSAndroid Build Coastguard Worker     void glDrawArrays(uint32_t mode, int first, int count);
94*35238bceSAndroid Build Coastguard Worker     void glDrawElements(uint32_t mode, int count, uint32_t type, const void *indices);
95*35238bceSAndroid Build Coastguard Worker     void glEnable(uint32_t cap);
96*35238bceSAndroid Build Coastguard Worker     void glEnableVertexAttribArray(uint32_t index);
97*35238bceSAndroid Build Coastguard Worker     void glFinish();
98*35238bceSAndroid Build Coastguard Worker     void glFlush();
99*35238bceSAndroid Build Coastguard Worker     void glFramebufferRenderbuffer(uint32_t target, uint32_t attachment, uint32_t renderbuffertarget,
100*35238bceSAndroid Build Coastguard Worker                                    uint32_t renderbuffer);
101*35238bceSAndroid Build Coastguard Worker     void glFramebufferTexture2D(uint32_t target, uint32_t attachment, uint32_t textarget, uint32_t texture, int level);
102*35238bceSAndroid Build Coastguard Worker     void glFrontFace(uint32_t mode);
103*35238bceSAndroid Build Coastguard Worker     void glGenBuffers(int n, uint32_t *buffers);
104*35238bceSAndroid Build Coastguard Worker     void glGenerateMipmap(uint32_t target);
105*35238bceSAndroid Build Coastguard Worker     void glGenFramebuffers(int n, uint32_t *framebuffers);
106*35238bceSAndroid Build Coastguard Worker     void glGenRenderbuffers(int n, uint32_t *renderbuffers);
107*35238bceSAndroid Build Coastguard Worker     void glGenTextures(int n, uint32_t *textures);
108*35238bceSAndroid Build Coastguard Worker     void glGetActiveAttrib(uint32_t program, uint32_t index, int bufsize, int *length, int *size, uint32_t *type,
109*35238bceSAndroid Build Coastguard Worker                            char *name);
110*35238bceSAndroid Build Coastguard Worker     void glGetActiveUniform(uint32_t program, uint32_t index, int bufsize, int *length, int *size, uint32_t *type,
111*35238bceSAndroid Build Coastguard Worker                             char *name);
112*35238bceSAndroid Build Coastguard Worker     void glGetAttachedShaders(uint32_t program, int maxcount, int *count, uint32_t *shaders);
113*35238bceSAndroid Build Coastguard Worker     int glGetAttribLocation(uint32_t program, const char *name);
114*35238bceSAndroid Build Coastguard Worker     void glGetBooleanv(uint32_t pname, bool *params);
115*35238bceSAndroid Build Coastguard Worker     void glGetBufferParameteriv(uint32_t target, uint32_t pname, int *params);
116*35238bceSAndroid Build Coastguard Worker     uint32_t glGetError();
117*35238bceSAndroid Build Coastguard Worker     void glGetFloatv(uint32_t pname, float *params);
118*35238bceSAndroid Build Coastguard Worker     void glGetFramebufferAttachmentParameteriv(uint32_t target, uint32_t attachment, uint32_t pname, int *params);
119*35238bceSAndroid Build Coastguard Worker     void glGetIntegerv(uint32_t pname, int *params);
120*35238bceSAndroid Build Coastguard Worker     void glGetProgramiv(uint32_t program, uint32_t pname, int *params);
121*35238bceSAndroid Build Coastguard Worker     void glGetProgramInfoLog(uint32_t program, int bufsize, int *length, char *infolog);
122*35238bceSAndroid Build Coastguard Worker     void glGetRenderbufferParameteriv(uint32_t target, uint32_t pname, int *params);
123*35238bceSAndroid Build Coastguard Worker     void glGetShaderiv(uint32_t shader, uint32_t pname, int *params);
124*35238bceSAndroid Build Coastguard Worker     void glGetShaderInfoLog(uint32_t shader, int bufsize, int *length, char *infolog);
125*35238bceSAndroid Build Coastguard Worker     void glGetShaderPrecisionFormat(uint32_t shadertype, uint32_t precisiontype, int *range, int *precision);
126*35238bceSAndroid Build Coastguard Worker     void glGetShaderSource(uint32_t shader, int bufsize, int *length, char *source);
127*35238bceSAndroid Build Coastguard Worker     const uint8_t *glGetString(uint32_t name);
128*35238bceSAndroid Build Coastguard Worker     void glGetTexParameterfv(uint32_t target, uint32_t pname, float *params);
129*35238bceSAndroid Build Coastguard Worker     void glGetTexParameteriv(uint32_t target, uint32_t pname, int *params);
130*35238bceSAndroid Build Coastguard Worker     void glGetUniformfv(uint32_t program, int location, float *params);
131*35238bceSAndroid Build Coastguard Worker     void glGetUniformiv(uint32_t program, int location, int *params);
132*35238bceSAndroid Build Coastguard Worker     int glGetUniformLocation(uint32_t program, const char *name);
133*35238bceSAndroid Build Coastguard Worker     void glGetVertexAttribfv(uint32_t index, uint32_t pname, float *params);
134*35238bceSAndroid Build Coastguard Worker     void glGetVertexAttribiv(uint32_t index, uint32_t pname, int *params);
135*35238bceSAndroid Build Coastguard Worker     void glGetVertexAttribPointerv(uint32_t index, uint32_t pname, void **pointer);
136*35238bceSAndroid Build Coastguard Worker     void glHint(uint32_t target, uint32_t mode);
137*35238bceSAndroid Build Coastguard Worker     bool glIsBuffer(uint32_t buffer);
138*35238bceSAndroid Build Coastguard Worker     bool glIsEnabled(uint32_t cap);
139*35238bceSAndroid Build Coastguard Worker     bool glIsFramebuffer(uint32_t framebuffer);
140*35238bceSAndroid Build Coastguard Worker     bool glIsProgram(uint32_t program);
141*35238bceSAndroid Build Coastguard Worker     bool glIsRenderbuffer(uint32_t renderbuffer);
142*35238bceSAndroid Build Coastguard Worker     bool glIsShader(uint32_t shader);
143*35238bceSAndroid Build Coastguard Worker     bool glIsTexture(uint32_t texture);
144*35238bceSAndroid Build Coastguard Worker     void glLineWidth(float width);
145*35238bceSAndroid Build Coastguard Worker     void glLinkProgram(uint32_t program);
146*35238bceSAndroid Build Coastguard Worker     void glPixelStorei(uint32_t pname, int param);
147*35238bceSAndroid Build Coastguard Worker     void glPolygonOffset(float factor, float units);
148*35238bceSAndroid Build Coastguard Worker     void glReadPixels(int x, int y, int width, int height, uint32_t format, uint32_t type, void *pixels);
149*35238bceSAndroid Build Coastguard Worker     void glReleaseShaderCompiler();
150*35238bceSAndroid Build Coastguard Worker     void glRenderbufferStorage(uint32_t target, uint32_t internalformat, int width, int height);
151*35238bceSAndroid Build Coastguard Worker     void glSampleCoverage(float value, bool invert);
152*35238bceSAndroid Build Coastguard Worker     void glScissor(int x, int y, int width, int height);
153*35238bceSAndroid Build Coastguard Worker     void glShaderBinary(int n, const uint32_t *shaders, uint32_t binaryformat, const void *binary, int length);
154*35238bceSAndroid Build Coastguard Worker     void glShaderSource(uint32_t shader, int count, const char *const *string, const int *length);
155*35238bceSAndroid Build Coastguard Worker     void glStencilFunc(uint32_t func, int ref, uint32_t mask);
156*35238bceSAndroid Build Coastguard Worker     void glStencilFuncSeparate(uint32_t face, uint32_t func, int ref, uint32_t mask);
157*35238bceSAndroid Build Coastguard Worker     void glStencilMask(uint32_t mask);
158*35238bceSAndroid Build Coastguard Worker     void glStencilMaskSeparate(uint32_t face, uint32_t mask);
159*35238bceSAndroid Build Coastguard Worker     void glStencilOp(uint32_t fail, uint32_t zfail, uint32_t zpass);
160*35238bceSAndroid Build Coastguard Worker     void glStencilOpSeparate(uint32_t face, uint32_t fail, uint32_t zfail, uint32_t zpass);
161*35238bceSAndroid Build Coastguard Worker     void glTexImage1D(uint32_t target, int level, int internalformat, int width, int border, uint32_t format,
162*35238bceSAndroid Build Coastguard Worker                       uint32_t type, const void *pixels);
163*35238bceSAndroid Build Coastguard Worker     void glTexImage2D(uint32_t target, int level, int internalformat, int width, int height, int border,
164*35238bceSAndroid Build Coastguard Worker                       uint32_t format, uint32_t type, const void *pixels);
165*35238bceSAndroid Build Coastguard Worker     void glTexParameterf(uint32_t target, uint32_t pname, float param);
166*35238bceSAndroid Build Coastguard Worker     void glTexParameterfv(uint32_t target, uint32_t pname, const float *params);
167*35238bceSAndroid Build Coastguard Worker     void glTexParameteri(uint32_t target, uint32_t pname, int param);
168*35238bceSAndroid Build Coastguard Worker     void glTexParameteriv(uint32_t target, uint32_t pname, const int *params);
169*35238bceSAndroid Build Coastguard Worker     void glTexSubImage1D(uint32_t target, int level, int xoffset, int width, uint32_t format, uint32_t type,
170*35238bceSAndroid Build Coastguard Worker                          const void *pixels);
171*35238bceSAndroid Build Coastguard Worker     void glTexSubImage2D(uint32_t target, int level, int xoffset, int yoffset, int width, int height, uint32_t format,
172*35238bceSAndroid Build Coastguard Worker                          uint32_t type, const void *pixels);
173*35238bceSAndroid Build Coastguard Worker     void glUniform1f(int location, float x);
174*35238bceSAndroid Build Coastguard Worker     void glUniform1fv(int location, int count, const float *v);
175*35238bceSAndroid Build Coastguard Worker     void glUniform1i(int location, int x);
176*35238bceSAndroid Build Coastguard Worker     void glUniform1iv(int location, int count, const int *v);
177*35238bceSAndroid Build Coastguard Worker     void glUniform2f(int location, float x, float y);
178*35238bceSAndroid Build Coastguard Worker     void glUniform2fv(int location, int count, const float *v);
179*35238bceSAndroid Build Coastguard Worker     void glUniform2i(int location, int x, int y);
180*35238bceSAndroid Build Coastguard Worker     void glUniform2iv(int location, int count, const int *v);
181*35238bceSAndroid Build Coastguard Worker     void glUniform3f(int location, float x, float y, float z);
182*35238bceSAndroid Build Coastguard Worker     void glUniform3fv(int location, int count, const float *v);
183*35238bceSAndroid Build Coastguard Worker     void glUniform3i(int location, int x, int y, int z);
184*35238bceSAndroid Build Coastguard Worker     void glUniform3iv(int location, int count, const int *v);
185*35238bceSAndroid Build Coastguard Worker     void glUniform4f(int location, float x, float y, float z, float w);
186*35238bceSAndroid Build Coastguard Worker     void glUniform4fv(int location, int count, const float *v);
187*35238bceSAndroid Build Coastguard Worker     void glUniform4i(int location, int x, int y, int z, int w);
188*35238bceSAndroid Build Coastguard Worker     void glUniform4iv(int location, int count, const int *v);
189*35238bceSAndroid Build Coastguard Worker     void glUniformMatrix2fv(int location, int count, bool transpose, const float *value);
190*35238bceSAndroid Build Coastguard Worker     void glUniformMatrix3fv(int location, int count, bool transpose, const float *value);
191*35238bceSAndroid Build Coastguard Worker     void glUniformMatrix4fv(int location, int count, bool transpose, const float *value);
192*35238bceSAndroid Build Coastguard Worker     void glUseProgram(uint32_t program);
193*35238bceSAndroid Build Coastguard Worker     void glValidateProgram(uint32_t program);
194*35238bceSAndroid Build Coastguard Worker     void glVertexAttrib1f(uint32_t indx, float x);
195*35238bceSAndroid Build Coastguard Worker     void glVertexAttrib1fv(uint32_t indx, const float *values);
196*35238bceSAndroid Build Coastguard Worker     void glVertexAttrib2f(uint32_t indx, float x, float y);
197*35238bceSAndroid Build Coastguard Worker     void glVertexAttrib2fv(uint32_t indx, const float *values);
198*35238bceSAndroid Build Coastguard Worker     void glVertexAttrib3f(uint32_t indx, float x, float y, float z);
199*35238bceSAndroid Build Coastguard Worker     void glVertexAttrib3fv(uint32_t indx, const float *values);
200*35238bceSAndroid Build Coastguard Worker     void glVertexAttrib4f(uint32_t indx, float x, float y, float z, float w);
201*35238bceSAndroid Build Coastguard Worker     void glVertexAttrib4fv(uint32_t indx, const float *values);
202*35238bceSAndroid Build Coastguard Worker     void glVertexAttribPointer(uint32_t indx, int size, uint32_t type, bool normalized, int stride, const void *ptr);
203*35238bceSAndroid Build Coastguard Worker     void glViewport(int x, int y, int width, int height);
204*35238bceSAndroid Build Coastguard Worker     void glReadBuffer(uint32_t mode);
205*35238bceSAndroid Build Coastguard Worker     void glDrawRangeElements(uint32_t mode, uint32_t start, uint32_t end, int count, uint32_t type,
206*35238bceSAndroid Build Coastguard Worker                              const void *indices);
207*35238bceSAndroid Build Coastguard Worker     void glTexImage3D(uint32_t target, int level, int internalformat, int width, int height, int depth, int border,
208*35238bceSAndroid Build Coastguard Worker                       uint32_t format, uint32_t type, const void *pixels);
209*35238bceSAndroid Build Coastguard Worker     void glTexSubImage3D(uint32_t target, int level, int xoffset, int yoffset, int zoffset, int width, int height,
210*35238bceSAndroid Build Coastguard Worker                          int depth, uint32_t format, uint32_t type, const void *pixels);
211*35238bceSAndroid Build Coastguard Worker     void glCopyTexSubImage3D(uint32_t target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width,
212*35238bceSAndroid Build Coastguard Worker                              int height);
213*35238bceSAndroid Build Coastguard Worker     void glCompressedTexImage3D(uint32_t target, int level, uint32_t internalformat, int width, int height, int depth,
214*35238bceSAndroid Build Coastguard Worker                                 int border, int imageSize, const void *data);
215*35238bceSAndroid Build Coastguard Worker     void glCompressedTexSubImage3D(uint32_t target, int level, int xoffset, int yoffset, int zoffset, int width,
216*35238bceSAndroid Build Coastguard Worker                                    int height, int depth, uint32_t format, int imageSize, const void *data);
217*35238bceSAndroid Build Coastguard Worker     void glGenQueries(int n, uint32_t *ids);
218*35238bceSAndroid Build Coastguard Worker     void glDeleteQueries(int n, const uint32_t *ids);
219*35238bceSAndroid Build Coastguard Worker     bool glIsQuery(uint32_t id);
220*35238bceSAndroid Build Coastguard Worker     void glBeginQuery(uint32_t target, uint32_t id);
221*35238bceSAndroid Build Coastguard Worker     void glEndQuery(uint32_t target);
222*35238bceSAndroid Build Coastguard Worker     void glGetQueryiv(uint32_t target, uint32_t pname, int *params);
223*35238bceSAndroid Build Coastguard Worker     void glGetQueryObjectuiv(uint32_t id, uint32_t pname, uint32_t *params);
224*35238bceSAndroid Build Coastguard Worker     bool glUnmapBuffer(uint32_t target);
225*35238bceSAndroid Build Coastguard Worker     void glGetBufferPointerv(uint32_t target, uint32_t pname, void **params);
226*35238bceSAndroid Build Coastguard Worker     void glDrawBuffers(int n, const uint32_t *bufs);
227*35238bceSAndroid Build Coastguard Worker     void glUniformMatrix2x3fv(int location, int count, bool transpose, const float *value);
228*35238bceSAndroid Build Coastguard Worker     void glUniformMatrix3x2fv(int location, int count, bool transpose, const float *value);
229*35238bceSAndroid Build Coastguard Worker     void glUniformMatrix2x4fv(int location, int count, bool transpose, const float *value);
230*35238bceSAndroid Build Coastguard Worker     void glUniformMatrix4x2fv(int location, int count, bool transpose, const float *value);
231*35238bceSAndroid Build Coastguard Worker     void glUniformMatrix3x4fv(int location, int count, bool transpose, const float *value);
232*35238bceSAndroid Build Coastguard Worker     void glUniformMatrix4x3fv(int location, int count, bool transpose, const float *value);
233*35238bceSAndroid Build Coastguard Worker     void glBlitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1,
234*35238bceSAndroid Build Coastguard Worker                            uint32_t mask, uint32_t filter);
235*35238bceSAndroid Build Coastguard Worker     void glRenderbufferStorageMultisample(uint32_t target, int samples, uint32_t internalformat, int width, int height);
236*35238bceSAndroid Build Coastguard Worker     void glFramebufferTextureLayer(uint32_t target, uint32_t attachment, uint32_t texture, int level, int layer);
237*35238bceSAndroid Build Coastguard Worker     void *glMapBufferRange(uint32_t target, intptr_t offset, intptr_t length, uint32_t access);
238*35238bceSAndroid Build Coastguard Worker     void glFlushMappedBufferRange(uint32_t target, intptr_t offset, intptr_t length);
239*35238bceSAndroid Build Coastguard Worker     void glBindVertexArray(uint32_t array);
240*35238bceSAndroid Build Coastguard Worker     void glDeleteVertexArrays(int n, const uint32_t *arrays);
241*35238bceSAndroid Build Coastguard Worker     void glGenVertexArrays(int n, uint32_t *arrays);
242*35238bceSAndroid Build Coastguard Worker     bool glIsVertexArray(uint32_t array);
243*35238bceSAndroid Build Coastguard Worker     void glGetIntegeri_v(uint32_t target, uint32_t index, int *data);
244*35238bceSAndroid Build Coastguard Worker     void glBeginTransformFeedback(uint32_t primitiveMode);
245*35238bceSAndroid Build Coastguard Worker     void glEndTransformFeedback();
246*35238bceSAndroid Build Coastguard Worker     void glBindBufferRange(uint32_t target, uint32_t index, uint32_t buffer, intptr_t offset, intptr_t size);
247*35238bceSAndroid Build Coastguard Worker     void glBindBufferBase(uint32_t target, uint32_t index, uint32_t buffer);
248*35238bceSAndroid Build Coastguard Worker     void glTransformFeedbackVaryings(uint32_t program, int count, const char *const *varyings, uint32_t bufferMode);
249*35238bceSAndroid Build Coastguard Worker     void glGetTransformFeedbackVarying(uint32_t program, uint32_t index, int bufSize, int *length, int *size,
250*35238bceSAndroid Build Coastguard Worker                                        uint32_t *type, char *name);
251*35238bceSAndroid Build Coastguard Worker     void glVertexAttribIPointer(uint32_t index, int size, uint32_t type, int stride, const void *pointer);
252*35238bceSAndroid Build Coastguard Worker     void glGetVertexAttribIiv(uint32_t index, uint32_t pname, int *params);
253*35238bceSAndroid Build Coastguard Worker     void glGetVertexAttribIuiv(uint32_t index, uint32_t pname, uint32_t *params);
254*35238bceSAndroid Build Coastguard Worker     void glVertexAttribI4i(uint32_t index, int x, int y, int z, int w);
255*35238bceSAndroid Build Coastguard Worker     void glVertexAttribI4ui(uint32_t index, uint32_t x, uint32_t y, uint32_t z, uint32_t w);
256*35238bceSAndroid Build Coastguard Worker     void glVertexAttribI4iv(uint32_t index, const int *v);
257*35238bceSAndroid Build Coastguard Worker     void glVertexAttribI4uiv(uint32_t index, const uint32_t *v);
258*35238bceSAndroid Build Coastguard Worker     void glGetUniformuiv(uint32_t program, int location, uint32_t *params);
259*35238bceSAndroid Build Coastguard Worker     int glGetFragDataLocation(uint32_t program, const char *name);
260*35238bceSAndroid Build Coastguard Worker     void glUniform1ui(int location, uint32_t v0);
261*35238bceSAndroid Build Coastguard Worker     void glUniform2ui(int location, uint32_t v0, uint32_t v1);
262*35238bceSAndroid Build Coastguard Worker     void glUniform3ui(int location, uint32_t v0, uint32_t v1, uint32_t v2);
263*35238bceSAndroid Build Coastguard Worker     void glUniform4ui(int location, uint32_t v0, uint32_t v1, uint32_t v2, uint32_t v3);
264*35238bceSAndroid Build Coastguard Worker     void glUniform1uiv(int location, int count, const uint32_t *value);
265*35238bceSAndroid Build Coastguard Worker     void glUniform2uiv(int location, int count, const uint32_t *value);
266*35238bceSAndroid Build Coastguard Worker     void glUniform3uiv(int location, int count, const uint32_t *value);
267*35238bceSAndroid Build Coastguard Worker     void glUniform4uiv(int location, int count, const uint32_t *value);
268*35238bceSAndroid Build Coastguard Worker     void glClearBufferiv(uint32_t buffer, int drawbuffer, const int *value);
269*35238bceSAndroid Build Coastguard Worker     void glClearBufferuiv(uint32_t buffer, int drawbuffer, const uint32_t *value);
270*35238bceSAndroid Build Coastguard Worker     void glClearBufferfv(uint32_t buffer, int drawbuffer, const float *value);
271*35238bceSAndroid Build Coastguard Worker     void glClearBufferfi(uint32_t buffer, int drawbuffer, float depth, int stencil);
272*35238bceSAndroid Build Coastguard Worker     const uint8_t *glGetStringi(uint32_t name, uint32_t index);
273*35238bceSAndroid Build Coastguard Worker     void glCopyBufferSubData(uint32_t readTarget, uint32_t writeTarget, intptr_t readOffset, intptr_t writeOffset,
274*35238bceSAndroid Build Coastguard Worker                              intptr_t size);
275*35238bceSAndroid Build Coastguard Worker     void glGetUniformIndices(uint32_t program, int uniformCount, const char *const *uniformNames,
276*35238bceSAndroid Build Coastguard Worker                              uint32_t *uniformIndices);
277*35238bceSAndroid Build Coastguard Worker     void glGetActiveUniformsiv(uint32_t program, int uniformCount, const uint32_t *uniformIndices, uint32_t pname,
278*35238bceSAndroid Build Coastguard Worker                                int *params);
279*35238bceSAndroid Build Coastguard Worker     uint32_t glGetUniformBlockIndex(uint32_t program, const char *uniformBlockName);
280*35238bceSAndroid Build Coastguard Worker     void glGetActiveUniformBlockiv(uint32_t program, uint32_t uniformBlockIndex, uint32_t pname, int *params);
281*35238bceSAndroid Build Coastguard Worker     void glGetActiveUniformBlockName(uint32_t program, uint32_t uniformBlockIndex, int bufSize, int *length,
282*35238bceSAndroid Build Coastguard Worker                                      char *uniformBlockName);
283*35238bceSAndroid Build Coastguard Worker     void glUniformBlockBinding(uint32_t program, uint32_t uniformBlockIndex, uint32_t uniformBlockBinding);
284*35238bceSAndroid Build Coastguard Worker     void glDrawArraysInstanced(uint32_t mode, int first, int count, int primcount);
285*35238bceSAndroid Build Coastguard Worker     void glDrawElementsInstanced(uint32_t mode, int count, uint32_t type, const void *indices, int primcount);
286*35238bceSAndroid Build Coastguard Worker     void *glFenceSync(uint32_t condition, uint32_t flags);
287*35238bceSAndroid Build Coastguard Worker     bool glIsSync(void *sync);
288*35238bceSAndroid Build Coastguard Worker     void glDeleteSync(void *sync);
289*35238bceSAndroid Build Coastguard Worker     uint32_t glClientWaitSync(void *sync, uint32_t flags, uint64_t timeout);
290*35238bceSAndroid Build Coastguard Worker     void glWaitSync(void *sync, uint32_t flags, uint64_t timeout);
291*35238bceSAndroid Build Coastguard Worker     void glGetInteger64v(uint32_t pname, int64_t *params);
292*35238bceSAndroid Build Coastguard Worker     void glGetSynciv(void *sync, uint32_t pname, int bufSize, int *length, int *values);
293*35238bceSAndroid Build Coastguard Worker     void glGetInteger64i_v(uint32_t target, uint32_t index, int64_t *data);
294*35238bceSAndroid Build Coastguard Worker     void glGetBufferParameteri64v(uint32_t target, uint32_t pname, int64_t *params);
295*35238bceSAndroid Build Coastguard Worker     void glGenSamplers(int count, uint32_t *samplers);
296*35238bceSAndroid Build Coastguard Worker     void glDeleteSamplers(int count, const uint32_t *samplers);
297*35238bceSAndroid Build Coastguard Worker     bool glIsSampler(uint32_t sampler);
298*35238bceSAndroid Build Coastguard Worker     void glBindSampler(uint32_t unit, uint32_t sampler);
299*35238bceSAndroid Build Coastguard Worker     void glSamplerParameteri(uint32_t sampler, uint32_t pname, int param);
300*35238bceSAndroid Build Coastguard Worker     void glSamplerParameteriv(uint32_t sampler, uint32_t pname, const int *param);
301*35238bceSAndroid Build Coastguard Worker     void glSamplerParameterf(uint32_t sampler, uint32_t pname, float param);
302*35238bceSAndroid Build Coastguard Worker     void glSamplerParameterfv(uint32_t sampler, uint32_t pname, const float *param);
303*35238bceSAndroid Build Coastguard Worker     void glGetSamplerParameteriv(uint32_t sampler, uint32_t pname, int *params);
304*35238bceSAndroid Build Coastguard Worker     void glGetSamplerParameterfv(uint32_t sampler, uint32_t pname, float *params);
305*35238bceSAndroid Build Coastguard Worker     void glVertexAttribDivisor(uint32_t index, uint32_t divisor);
306*35238bceSAndroid Build Coastguard Worker     void glBindTransformFeedback(uint32_t target, uint32_t id);
307*35238bceSAndroid Build Coastguard Worker     void glDeleteTransformFeedbacks(int n, const uint32_t *ids);
308*35238bceSAndroid Build Coastguard Worker     void glGenTransformFeedbacks(int n, uint32_t *ids);
309*35238bceSAndroid Build Coastguard Worker     bool glIsTransformFeedback(uint32_t id);
310*35238bceSAndroid Build Coastguard Worker     void glPauseTransformFeedback();
311*35238bceSAndroid Build Coastguard Worker     void glResumeTransformFeedback();
312*35238bceSAndroid Build Coastguard Worker     void glGetProgramBinary(uint32_t program, int bufSize, int *length, uint32_t *binaryFormat, void *binary);
313*35238bceSAndroid Build Coastguard Worker     void glProgramBinary(uint32_t program, uint32_t binaryFormat, const void *binary, int length);
314*35238bceSAndroid Build Coastguard Worker     void glProgramParameteri(uint32_t program, uint32_t pname, int value);
315*35238bceSAndroid Build Coastguard Worker     void glInvalidateFramebuffer(uint32_t target, int numAttachments, const uint32_t *attachments);
316*35238bceSAndroid Build Coastguard Worker     void glInvalidateSubFramebuffer(uint32_t target, int numAttachments, const uint32_t *attachments, int x, int y,
317*35238bceSAndroid Build Coastguard Worker                                     int width, int height);
318*35238bceSAndroid Build Coastguard Worker     void glTexStorage2D(uint32_t target, int levels, uint32_t internalformat, int width, int height);
319*35238bceSAndroid Build Coastguard Worker     void glTexStorage3D(uint32_t target, int levels, uint32_t internalformat, int width, int height, int depth);
320*35238bceSAndroid Build Coastguard Worker     void glGetInternalformativ(uint32_t target, uint32_t internalformat, uint32_t pname, int bufSize, int *params);
321*35238bceSAndroid Build Coastguard Worker 
322*35238bceSAndroid Build Coastguard Worker private:
323*35238bceSAndroid Build Coastguard Worker     Context *m_curCtx;
324*35238bceSAndroid Build Coastguard Worker };
325*35238bceSAndroid Build Coastguard Worker 
326*35238bceSAndroid Build Coastguard Worker } // namespace sglr
327*35238bceSAndroid Build Coastguard Worker 
328*35238bceSAndroid Build Coastguard Worker #endif // _SGLRCONTEXTWRAPPER_HPP
329