blob: 69ce39d2af234d79b1c155fa0ded436600c2b990 [file] [log] [blame]
keunyoungb85b2752013-03-08 12:28:03 -08001// Generated Code - DO NOT EDIT !!
2// generated by 'emugen'
3#include <stdio.h>
4#include <stdlib.h>
5#include "gl2_client_context.h"
6
keunyoungb85b2752013-03-08 12:28:03 -08007extern "C" {
8 void glActiveTexture(GLenum texture);
9 void glAttachShader(GLuint program, GLuint shader);
10 void glBindAttribLocation(GLuint program, GLuint index, const GLchar* name);
11 void glBindBuffer(GLenum target, GLuint buffer);
12 void glBindFramebuffer(GLenum target, GLuint framebuffer);
13 void glBindRenderbuffer(GLenum target, GLuint renderbuffer);
14 void glBindTexture(GLenum target, GLuint texture);
15 void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
16 void glBlendEquation(GLenum mode);
17 void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
18 void glBlendFunc(GLenum sfactor, GLenum dfactor);
19 void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
20 void glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
21 void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
22 GLenum glCheckFramebufferStatus(GLenum target);
23 void glClear(GLbitfield mask);
24 void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
25 void glClearDepthf(GLclampf depth);
26 void glClearStencil(GLint s);
27 void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
28 void glCompileShader(GLuint shader);
29 void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
30 void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
31 void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
32 void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
33 GLuint glCreateProgram();
34 GLuint glCreateShader(GLenum type);
35 void glCullFace(GLenum mode);
36 void glDeleteBuffers(GLsizei n, const GLuint* buffers);
37 void glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers);
38 void glDeleteProgram(GLuint program);
39 void glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers);
40 void glDeleteShader(GLuint shader);
41 void glDeleteTextures(GLsizei n, const GLuint* textures);
42 void glDepthFunc(GLenum func);
43 void glDepthMask(GLboolean flag);
44 void glDepthRangef(GLclampf zNear, GLclampf zFar);
45 void glDetachShader(GLuint program, GLuint shader);
46 void glDisable(GLenum cap);
47 void glDisableVertexAttribArray(GLuint index);
48 void glDrawArrays(GLenum mode, GLint first, GLsizei count);
49 void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
50 void glEnable(GLenum cap);
51 void glEnableVertexAttribArray(GLuint index);
52 void glFinish();
53 void glFlush();
54 void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
55 void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
56 void glFrontFace(GLenum mode);
57 void glGenBuffers(GLsizei n, GLuint* buffers);
58 void glGenerateMipmap(GLenum target);
59 void glGenFramebuffers(GLsizei n, GLuint* framebuffers);
60 void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers);
61 void glGenTextures(GLsizei n, GLuint* textures);
62 void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
63 void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
64 void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
65 int glGetAttribLocation(GLuint program, const GLchar* name);
66 void glGetBooleanv(GLenum pname, GLboolean* params);
67 void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params);
68 GLenum glGetError();
69 void glGetFloatv(GLenum pname, GLfloat* params);
70 void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params);
71 void glGetIntegerv(GLenum pname, GLint* params);
72 void glGetProgramiv(GLuint program, GLenum pname, GLint* params);
73 void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
74 void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params);
75 void glGetShaderiv(GLuint shader, GLenum pname, GLint* params);
76 void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
77 void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
78 void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
79 const GLubyte* glGetString(GLenum name);
80 void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params);
81 void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params);
82 void glGetUniformfv(GLuint program, GLint location, GLfloat* params);
83 void glGetUniformiv(GLuint program, GLint location, GLint* params);
84 int glGetUniformLocation(GLuint program, const GLchar* name);
85 void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params);
86 void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params);
87 void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer);
88 void glHint(GLenum target, GLenum mode);
89 GLboolean glIsBuffer(GLuint buffer);
90 GLboolean glIsEnabled(GLenum cap);
91 GLboolean glIsFramebuffer(GLuint framebuffer);
92 GLboolean glIsProgram(GLuint program);
93 GLboolean glIsRenderbuffer(GLuint renderbuffer);
94 GLboolean glIsShader(GLuint shader);
95 GLboolean glIsTexture(GLuint texture);
96 void glLineWidth(GLfloat width);
97 void glLinkProgram(GLuint program);
98 void glPixelStorei(GLenum pname, GLint param);
99 void glPolygonOffset(GLfloat factor, GLfloat units);
100 void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
101 void glReleaseShaderCompiler();
102 void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
103 void glSampleCoverage(GLclampf value, GLboolean invert);
104 void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
105 void glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
David 'Digit' Turner0f788d82014-11-27 18:05:34 +0100106 void glShaderSource(GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length);
keunyoungb85b2752013-03-08 12:28:03 -0800107 void glStencilFunc(GLenum func, GLint ref, GLuint mask);
108 void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
109 void glStencilMask(GLuint mask);
110 void glStencilMaskSeparate(GLenum face, GLuint mask);
111 void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
112 void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
113 void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
114 void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
115 void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params);
116 void glTexParameteri(GLenum target, GLenum pname, GLint param);
117 void glTexParameteriv(GLenum target, GLenum pname, const GLint* params);
118 void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
119 void glUniform1f(GLint location, GLfloat x);
120 void glUniform1fv(GLint location, GLsizei count, const GLfloat* v);
121 void glUniform1i(GLint location, GLint x);
122 void glUniform1iv(GLint location, GLsizei count, const GLint* v);
123 void glUniform2f(GLint location, GLfloat x, GLfloat y);
124 void glUniform2fv(GLint location, GLsizei count, const GLfloat* v);
125 void glUniform2i(GLint location, GLint x, GLint y);
126 void glUniform2iv(GLint location, GLsizei count, const GLint* v);
127 void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z);
128 void glUniform3fv(GLint location, GLsizei count, const GLfloat* v);
129 void glUniform3i(GLint location, GLint x, GLint y, GLint z);
130 void glUniform3iv(GLint location, GLsizei count, const GLint* v);
131 void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
132 void glUniform4fv(GLint location, GLsizei count, const GLfloat* v);
133 void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w);
134 void glUniform4iv(GLint location, GLsizei count, const GLint* v);
135 void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
136 void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
137 void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
138 void glUseProgram(GLuint program);
139 void glValidateProgram(GLuint program);
140 void glVertexAttrib1f(GLuint indx, GLfloat x);
141 void glVertexAttrib1fv(GLuint indx, const GLfloat* values);
142 void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
143 void glVertexAttrib2fv(GLuint indx, const GLfloat* values);
144 void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
145 void glVertexAttrib3fv(GLuint indx, const GLfloat* values);
146 void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
147 void glVertexAttrib4fv(GLuint indx, const GLfloat* values);
148 void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
149 void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
150 void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
151 void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image);
152 void glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
153 void glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLint length);
154 void* glMapBufferOES(GLenum target, GLenum access);
155 GLboolean glUnmapBufferOES(GLenum target);
156 void glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
157 void glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
158 void glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
159 void glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
160 void glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
161 void glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
162 void glBindVertexArrayOES(GLuint array);
163 void glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays);
164 void glGenVertexArraysOES(GLsizei n, GLuint* arrays);
165 GLboolean glIsVertexArrayOES(GLuint array);
166 void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum* attachments);
Jesse Hall88816d42014-05-21 14:55:46 -0700167 void glMultiDrawArraysEXT(GLenum mode, const GLint* first, const GLsizei* count, GLsizei primcount);
168 void glMultiDrawElementsEXT(GLenum mode, const GLsizei* count, GLenum type, const GLvoid* const* indices, GLsizei primcount);
keunyoungb85b2752013-03-08 12:28:03 -0800169 void glGetPerfMonitorGroupsAMD(GLint* numGroups, GLsizei groupsSize, GLuint* groups);
170 void glGetPerfMonitorCountersAMD(GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters);
171 void glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei* length, GLchar* groupString);
172 void glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar* counterString);
173 void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid* data);
174 void glGenPerfMonitorsAMD(GLsizei n, GLuint* monitors);
175 void glDeletePerfMonitorsAMD(GLsizei n, GLuint* monitors);
176 void glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList);
177 void glBeginPerfMonitorAMD(GLuint monitor);
178 void glEndPerfMonitorAMD(GLuint monitor);
179 void glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten);
180 void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
181 void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
182 void glDeleteFencesNV(GLsizei n, const GLuint* fences);
183 void glGenFencesNV(GLsizei n, GLuint* fences);
184 GLboolean glIsFenceNV(GLuint fence);
185 GLboolean glTestFenceNV(GLuint fence);
186 void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params);
187 void glFinishFenceNV(GLuint fence);
188 void glSetFenceNV(GLuint fence, GLenum condition);
189 void glCoverageMaskNV(GLboolean mask);
190 void glCoverageOperationNV(GLenum operation);
191 void glGetDriverControlsQCOM(GLint* num, GLsizei size, GLuint* driverControls);
192 void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString);
193 void glEnableDriverControlQCOM(GLuint driverControl);
194 void glDisableDriverControlQCOM(GLuint driverControl);
195 void glExtGetTexturesQCOM(GLuint* textures, GLint maxTextures, GLint* numTextures);
196 void glExtGetBuffersQCOM(GLuint* buffers, GLint maxBuffers, GLint* numBuffers);
197 void glExtGetRenderbuffersQCOM(GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers);
198 void glExtGetFramebuffersQCOM(GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers);
199 void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params);
200 void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param);
201 void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels);
202 void glExtGetBufferPointervQCOM(GLenum target, GLvoidptr* params);
203 void glExtGetShadersQCOM(GLuint* shaders, GLint maxShaders, GLint* numShaders);
204 void glExtGetProgramsQCOM(GLuint* programs, GLint maxPrograms, GLint* numPrograms);
205 GLboolean glExtIsProgramBinaryQCOM(GLuint program);
206 void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar* source, GLint* length);
207 void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
208 void glEndTilingQCOM(GLbitfield preserveMask);
209 void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void* data, GLuint datalen);
210 void glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint offset);
211 void glDrawElementsOffset(GLenum mode, GLsizei count, GLenum type, GLuint offset);
212 void glDrawElementsData(GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen);
213 void glGetCompressedTextureFormats(int count, GLint* formats);
214 void glShaderString(GLuint shader, const GLchar* string, GLsizei len);
215 int glFinishRoundTrip();
Lingfeng Yange6556dc2017-01-09 12:04:12 -0800216 void glGenVertexArrays(GLsizei n, GLuint* arrays);
217 void glBindVertexArray(GLuint array);
218 void glDeleteVertexArrays(GLsizei n, const GLuint* arrays);
219 GLboolean glIsVertexArray(GLuint array);
220 void* glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
221 GLboolean glUnmapBuffer(GLenum target);
222 void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
223 void glMapBufferRangeAEMU(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* mapped);
224 void glUnmapBufferAEMU(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* guest_buffer, GLboolean* out_res);
225 void glFlushMappedBufferRangeAEMU(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* guest_buffer);
226 void glReadPixelsOffsetAEMU(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLuint offset);
227 void glCompressedTexImage2DOffsetAEMU(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLuint offset);
228 void glCompressedTexSubImage2DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLuint offset);
229 void glTexImage2DOffsetAEMU(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLuint offset);
230 void glTexSubImage2DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLuint offset);
231 void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
232 void glBindBufferBase(GLenum target, GLuint index, GLuint buffer);
233 void glCopyBufferSubData(GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size);
234 void glClearBufferiv(GLenum buffer, GLint drawBuffer, const GLint* value);
235 void glClearBufferuiv(GLenum buffer, GLint drawBuffer, const GLuint* value);
236 void glClearBufferfv(GLenum buffer, GLint drawBuffer, const GLfloat* value);
237 void glClearBufferfi(GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil);
238 void glGetBufferParameteri64v(GLenum target, GLenum value, GLint64* data);
239 void glGetBufferPointerv(GLenum target, GLenum pname, GLvoid** params);
240 void glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
241 GLuint glGetUniformBlockIndex(GLuint program, const GLchar* uniformBlockName);
242 void glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar** uniformNames, GLuint* uniformIndices);
243 void glGetUniformIndicesAEMU(GLuint program, GLsizei uniformCount, const GLchar* packedUniformNames, GLsizei packedLen, GLuint* uniformIndices);
244 void glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
245 void glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
246 void glUniform1ui(GLint location, GLuint v0);
247 void glUniform2ui(GLint location, GLuint v0, GLuint v1);
248 void glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
249 void glUniform4ui(GLint location, GLint v0, GLuint v1, GLuint v2, GLuint v3);
250 void glUniform1uiv(GLint location, GLsizei count, const GLuint* value);
251 void glUniform2uiv(GLint location, GLsizei count, const GLuint* value);
252 void glUniform3uiv(GLint location, GLsizei count, const GLuint* value);
253 void glUniform4uiv(GLint location, GLsizei count, const GLuint* value);
254 void glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
255 void glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
256 void glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
257 void glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
258 void glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
259 void glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
260 void glGetUniformuiv(GLuint program, GLint location, GLuint* params);
261 void glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
262 void glVertexAttribI4i(GLuint index, GLint v0, GLint v1, GLint v2, GLint v3);
263 void glVertexAttribI4ui(GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
264 void glVertexAttribI4iv(GLuint index, const GLint* v);
265 void glVertexAttribI4uiv(GLuint index, const GLuint* v);
266 void glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
267 void glVertexAttribIPointerOffsetAEMU(GLuint index, GLint size, GLenum type, GLsizei stride, GLuint offset);
268 void glVertexAttribIPointerDataAEMU(GLuint index, GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen);
269 void glGetVertexAttribIiv(GLuint index, GLenum pname, GLint* params);
270 void glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint* params);
271 void glVertexAttribDivisor(GLuint index, GLuint divisor);
272 void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
273 void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount);
274 void glDrawElementsInstancedDataAEMU(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLsizei datalen);
275 void glDrawElementsInstancedOffsetAEMU(GLenum mode, GLsizei count, GLenum type, GLuint offset, GLsizei primcount);
276 void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices);
277 void glDrawRangeElementsDataAEMU(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices, GLsizei datalen);
278 void glDrawRangeElementsOffsetAEMU(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLuint offset);
279 GLsync glFenceSync(GLenum condition, GLbitfield flags);
280 GLenum glClientWaitSync(GLsync wait_on, GLbitfield flags, GLuint64 timeout);
281 void glWaitSync(GLsync wait_on, GLbitfield flags, GLuint64 timeout);
282 void glDeleteSync(GLsync to_delete);
283 GLboolean glIsSync(GLsync sync);
284 void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
Lingfeng Yangf000ab42017-01-11 18:31:38 -0800285 uint64_t glFenceSyncAEMU(GLenum condition, GLbitfield flags);
286 GLenum glClientWaitSyncAEMU(uint64_t wait_on, GLbitfield flags, GLuint64 timeout);
287 void glWaitSyncAEMU(uint64_t wait_on, GLbitfield flags, GLuint64 timeout);
288 void glDeleteSyncAEMU(uint64_t to_delete);
289 GLboolean glIsSyncAEMU(uint64_t sync);
290 void glGetSyncivAEMU(uint64_t sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
Lingfeng Yange6556dc2017-01-09 12:04:12 -0800291 void glDrawBuffers(GLsizei n, const GLenum* bufs);
292 void glReadBuffer(GLenum src);
293 void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
294 void glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments);
295 void glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
296 void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
297 void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
298 void glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
299 void glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params);
300 void glBeginTransformFeedback(GLenum primitiveMode);
301 void glEndTransformFeedback();
302 void glGenTransformFeedbacks(GLsizei n, GLuint* ids);
303 void glDeleteTransformFeedbacks(GLsizei n, const GLuint* ids);
304 void glBindTransformFeedback(GLenum target, GLuint id);
305 void glPauseTransformFeedback();
306 void glResumeTransformFeedback();
307 GLboolean glIsTransformFeedback(GLuint id);
308 void glTransformFeedbackVaryings(GLuint program, GLsizei count, const char** varyings, GLenum bufferMode);
309 void glTransformFeedbackVaryingsAEMU(GLuint program, GLsizei count, const char* packedVaryings, GLuint packedVaryingsLen, GLenum bufferMode);
310 void glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, char* name);
311 void glGenSamplers(GLsizei n, GLuint* samplers);
312 void glDeleteSamplers(GLsizei n, const GLuint* samplers);
313 void glBindSampler(GLuint unit, GLuint sampler);
314 void glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
315 void glSamplerParameteri(GLuint sampler, GLenum pname, GLint param);
316 void glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat* params);
317 void glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint* params);
318 void glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat* params);
319 void glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint* params);
320 GLboolean glIsSampler(GLuint sampler);
321 void glGenQueries(GLsizei n, GLuint* queries);
322 void glDeleteQueries(GLsizei n, const GLuint* queries);
323 void glBeginQuery(GLenum target, GLuint query);
324 void glEndQuery(GLenum target);
325 void glGetQueryiv(GLenum target, GLenum pname, GLint* params);
326 void glGetQueryObjectuiv(GLuint query, GLenum pname, GLuint* params);
327 GLboolean glIsQuery(GLuint query);
328 void glProgramParameteri(GLuint program, GLenum pname, GLint value);
329 void glProgramBinary(GLuint program, GLenum binaryFormat, const void* binary, GLsizei length);
330 void glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, void* binary);
331 GLint glGetFragDataLocation(GLuint program, const char* name);
332 void glGetInteger64v(GLenum pname, GLint64* data);
333 void glGetIntegeri_v(GLenum target, GLuint index, GLint* data);
334 void glGetInteger64i_v(GLenum target, GLuint index, GLint64* data);
335 void glTexImage3D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* data);
336 void glTexImage3DOffsetAEMU(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLuint offset);
337 void glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
338 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);
339 void glTexSubImage3DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLuint offset);
340 void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
341 void glCompressedTexImage3DOffsetAEMU(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLuint offset);
342 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);
343 void glCompressedTexSubImage3DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLuint data);
344 void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
345 const GLubyte* glGetStringi(GLenum name, GLuint index);
346 void glGetBooleani_v(GLenum target, GLuint index, GLboolean* data);
347 void glMemoryBarrier(GLbitfield barriers);
348 void glMemoryBarrierByRegion(GLbitfield barriers);
349 void glGenProgramPipelines(GLsizei n, GLuint* pipelines);
350 void glDeleteProgramPipelines(GLsizei n, const GLuint* pipelines);
351 void glBindProgramPipeline(GLuint pipeline);
352 void glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint* params);
353 void glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
354 void glValidateProgramPipeline(GLuint pipeline);
355 GLboolean glIsProgramPipeline(GLuint pipeline);
356 void glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
Lingfeng Yangd3ae1062017-01-18 11:42:04 -0800357 void glActiveShaderProgram(GLuint pipeline, GLuint program);
Lingfeng Yange6556dc2017-01-09 12:04:12 -0800358 GLuint glCreateShaderProgramv(GLenum type, GLsizei count, const char** strings);
359 GLuint glCreateShaderProgramvAEMU(GLenum type, GLsizei count, const char* packedStrings, GLuint packedLen);
360 void glProgramUniform1f(GLuint program, GLint location, GLfloat v0);
361 void glProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1);
362 void glProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
363 void glProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
364 void glProgramUniform1i(GLuint program, GLint location, GLint v0);
365 void glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1);
366 void glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
367 void glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
368 void glProgramUniform1ui(GLuint program, GLint location, GLuint v0);
369 void glProgramUniform2ui(GLuint program, GLint location, GLint v0, GLuint v1);
370 void glProgramUniform3ui(GLuint program, GLint location, GLint v0, GLint v1, GLuint v2);
371 void glProgramUniform4ui(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLuint v3);
372 void glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat* value);
373 void glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat* value);
374 void glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat* value);
375 void glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat* value);
376 void glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint* value);
377 void glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint* value);
378 void glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint* value);
379 void glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint* value);
380 void glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint* value);
381 void glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint* value);
382 void glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint* value);
383 void glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint* value);
384 void glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
385 void glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
386 void glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
387 void glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
388 void glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
389 void glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
390 void glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
391 void glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
392 void glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
393 void glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint* params);
394 void glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei* length, GLint* params);
395 GLuint glGetProgramResourceIndex(GLuint program, GLenum programInterface, const char* name);
396 GLint glGetProgramResourceLocation(GLuint program, GLenum programInterface, const char* name);
397 void glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, char* name);
398 void glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
399 void glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
400 void glDispatchComputeIndirect(GLintptr indirect);
401 void glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLintptr stride);
402 void glVertexAttribBinding(GLuint attribindex, GLuint bindingindex);
403 void glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
404 void glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
405 void glVertexBindingDivisor(GLuint bindingindex, GLuint divisor);
406 void glDrawArraysIndirect(GLenum mode, const void* indirect);
407 void glDrawArraysIndirectDataAEMU(GLenum mode, const void* indirect, GLuint datalen);
408 void glDrawArraysIndirectOffsetAEMU(GLenum mode, GLuint offset);
409 void glDrawElementsIndirect(GLenum mode, GLenum type, const void* indirect);
410 void glDrawElementsIndirectDataAEMU(GLenum mode, GLenum type, const void* indirect, GLuint datalen);
411 void glDrawElementsIndirectOffsetAEMU(GLenum mode, GLenum type, GLuint offset);
412 void glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
413 void glSampleMaski(GLuint maskNumber, GLbitfield mask);
414 void glGetMultisamplefv(GLenum pname, GLuint index, GLfloat* val);
415 void glFramebufferParameteri(GLenum target, GLenum pname, GLint param);
416 void glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint* params);
417 void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat* params);
418 void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint* params);
Roman Kiryanovbe1c0c22018-10-02 18:07:14 -0700419 void glMapBufferRangeDMA(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, uint64_t paddr);
420 void glUnmapBufferDMA(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, uint64_t paddr, GLboolean* out_res);
Roman Kiryanovdaecd142018-11-14 14:56:27 -0800421 uint64_t glMapBufferRangeDirect(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, uint64_t paddr);
422 void glUnmapBufferDirect(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, uint64_t paddr, uint64_t guest_ptr, GLboolean* out_res);
423 void glFlushMappedBufferRangeDirect(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
Yahan Zhou72944ba2019-01-02 15:43:46 -0800424 GLenum glGetGraphicsResetStatusEXT();
425 void glReadnPixelsEXT(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid* data);
426 void glGetnUniformfvEXT(GLuint program, GLint location, GLsizei bufSize, GLfloat* params);
427 void glGetnUniformivEXT(GLuint program, GLint location, GLsizei bufSize, GLint* params);
Lingfeng Yang09545912019-01-30 09:22:38 -0800428 void glDrawArraysNullAEMU(GLenum mode, GLint first, GLsizei count);
429 void glDrawElementsNullAEMU(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
430 void glDrawElementsOffsetNullAEMU(GLenum mode, GLsizei count, GLenum type, GLuint offset);
431 void glDrawElementsDataNullAEMU(GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen);
keunyoungb85b2752013-03-08 12:28:03 -0800432};
433
keunyoungb85b2752013-03-08 12:28:03 -0800434#ifndef GET_CONTEXT
435static gl2_client_context_t::CONTEXT_ACCESSOR_TYPE *getCurrentContext = NULL;
436void gl2_client_context_t::setContextAccessor(CONTEXT_ACCESSOR_TYPE *f) { getCurrentContext = f; }
437#define GET_CONTEXT gl2_client_context_t * ctx = getCurrentContext()
438#endif
439
440void glActiveTexture(GLenum texture)
441{
442 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100443 ctx->glActiveTexture(ctx, texture);
keunyoungb85b2752013-03-08 12:28:03 -0800444}
445
446void glAttachShader(GLuint program, GLuint shader)
447{
448 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100449 ctx->glAttachShader(ctx, program, shader);
keunyoungb85b2752013-03-08 12:28:03 -0800450}
451
452void glBindAttribLocation(GLuint program, GLuint index, const GLchar* name)
453{
454 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100455 ctx->glBindAttribLocation(ctx, program, index, name);
keunyoungb85b2752013-03-08 12:28:03 -0800456}
457
458void glBindBuffer(GLenum target, GLuint buffer)
459{
460 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100461 ctx->glBindBuffer(ctx, target, buffer);
keunyoungb85b2752013-03-08 12:28:03 -0800462}
463
464void glBindFramebuffer(GLenum target, GLuint framebuffer)
465{
466 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100467 ctx->glBindFramebuffer(ctx, target, framebuffer);
keunyoungb85b2752013-03-08 12:28:03 -0800468}
469
470void glBindRenderbuffer(GLenum target, GLuint renderbuffer)
471{
472 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100473 ctx->glBindRenderbuffer(ctx, target, renderbuffer);
keunyoungb85b2752013-03-08 12:28:03 -0800474}
475
476void glBindTexture(GLenum target, GLuint texture)
477{
478 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100479 ctx->glBindTexture(ctx, target, texture);
keunyoungb85b2752013-03-08 12:28:03 -0800480}
481
482void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
483{
484 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100485 ctx->glBlendColor(ctx, red, green, blue, alpha);
keunyoungb85b2752013-03-08 12:28:03 -0800486}
487
488void glBlendEquation(GLenum mode)
489{
490 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100491 ctx->glBlendEquation(ctx, mode);
keunyoungb85b2752013-03-08 12:28:03 -0800492}
493
494void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
495{
496 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100497 ctx->glBlendEquationSeparate(ctx, modeRGB, modeAlpha);
keunyoungb85b2752013-03-08 12:28:03 -0800498}
499
500void glBlendFunc(GLenum sfactor, GLenum dfactor)
501{
502 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100503 ctx->glBlendFunc(ctx, sfactor, dfactor);
keunyoungb85b2752013-03-08 12:28:03 -0800504}
505
506void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
507{
508 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100509 ctx->glBlendFuncSeparate(ctx, srcRGB, dstRGB, srcAlpha, dstAlpha);
keunyoungb85b2752013-03-08 12:28:03 -0800510}
511
512void glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
513{
514 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100515 ctx->glBufferData(ctx, target, size, data, usage);
keunyoungb85b2752013-03-08 12:28:03 -0800516}
517
518void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
519{
520 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100521 ctx->glBufferSubData(ctx, target, offset, size, data);
keunyoungb85b2752013-03-08 12:28:03 -0800522}
523
524GLenum glCheckFramebufferStatus(GLenum target)
525{
526 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100527 return ctx->glCheckFramebufferStatus(ctx, target);
keunyoungb85b2752013-03-08 12:28:03 -0800528}
529
530void glClear(GLbitfield mask)
531{
532 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100533 ctx->glClear(ctx, mask);
keunyoungb85b2752013-03-08 12:28:03 -0800534}
535
536void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
537{
538 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100539 ctx->glClearColor(ctx, red, green, blue, alpha);
keunyoungb85b2752013-03-08 12:28:03 -0800540}
541
542void glClearDepthf(GLclampf depth)
543{
544 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100545 ctx->glClearDepthf(ctx, depth);
keunyoungb85b2752013-03-08 12:28:03 -0800546}
547
548void glClearStencil(GLint s)
549{
550 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100551 ctx->glClearStencil(ctx, s);
keunyoungb85b2752013-03-08 12:28:03 -0800552}
553
554void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
555{
556 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100557 ctx->glColorMask(ctx, red, green, blue, alpha);
keunyoungb85b2752013-03-08 12:28:03 -0800558}
559
560void glCompileShader(GLuint shader)
561{
562 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100563 ctx->glCompileShader(ctx, shader);
keunyoungb85b2752013-03-08 12:28:03 -0800564}
565
566void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
567{
568 GET_CONTEXT;
Lingfeng Yange6556dc2017-01-09 12:04:12 -0800569 if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100570 ctx->glCompressedTexImage2D(ctx, target, level, internalformat, width, height, border, imageSize, data);
keunyoungb85b2752013-03-08 12:28:03 -0800571}
572
573void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
574{
575 GET_CONTEXT;
Lingfeng Yange6556dc2017-01-09 12:04:12 -0800576 if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100577 ctx->glCompressedTexSubImage2D(ctx, target, level, xoffset, yoffset, width, height, format, imageSize, data);
keunyoungb85b2752013-03-08 12:28:03 -0800578}
579
580void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
581{
582 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100583 ctx->glCopyTexImage2D(ctx, target, level, internalformat, x, y, width, height, border);
keunyoungb85b2752013-03-08 12:28:03 -0800584}
585
586void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
587{
588 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100589 ctx->glCopyTexSubImage2D(ctx, target, level, xoffset, yoffset, x, y, width, height);
keunyoungb85b2752013-03-08 12:28:03 -0800590}
591
592GLuint glCreateProgram()
593{
594 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100595 return ctx->glCreateProgram(ctx);
keunyoungb85b2752013-03-08 12:28:03 -0800596}
597
598GLuint glCreateShader(GLenum type)
599{
600 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100601 return ctx->glCreateShader(ctx, type);
keunyoungb85b2752013-03-08 12:28:03 -0800602}
603
604void glCullFace(GLenum mode)
605{
606 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100607 ctx->glCullFace(ctx, mode);
keunyoungb85b2752013-03-08 12:28:03 -0800608}
609
610void glDeleteBuffers(GLsizei n, const GLuint* buffers)
611{
612 GET_CONTEXT;
613 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100614 ctx->glDeleteBuffers(ctx, n, buffers);
keunyoungb85b2752013-03-08 12:28:03 -0800615}
616
617void glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
618{
619 GET_CONTEXT;
620 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100621 ctx->glDeleteFramebuffers(ctx, n, framebuffers);
keunyoungb85b2752013-03-08 12:28:03 -0800622}
623
624void glDeleteProgram(GLuint program)
625{
626 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100627 ctx->glDeleteProgram(ctx, program);
keunyoungb85b2752013-03-08 12:28:03 -0800628}
629
630void glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers)
631{
632 GET_CONTEXT;
633 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100634 ctx->glDeleteRenderbuffers(ctx, n, renderbuffers);
keunyoungb85b2752013-03-08 12:28:03 -0800635}
636
637void glDeleteShader(GLuint shader)
638{
639 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100640 ctx->glDeleteShader(ctx, shader);
keunyoungb85b2752013-03-08 12:28:03 -0800641}
642
643void glDeleteTextures(GLsizei n, const GLuint* textures)
644{
645 GET_CONTEXT;
646 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100647 ctx->glDeleteTextures(ctx, n, textures);
keunyoungb85b2752013-03-08 12:28:03 -0800648}
649
650void glDepthFunc(GLenum func)
651{
652 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100653 ctx->glDepthFunc(ctx, func);
keunyoungb85b2752013-03-08 12:28:03 -0800654}
655
656void glDepthMask(GLboolean flag)
657{
658 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100659 ctx->glDepthMask(ctx, flag);
keunyoungb85b2752013-03-08 12:28:03 -0800660}
661
662void glDepthRangef(GLclampf zNear, GLclampf zFar)
663{
664 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100665 ctx->glDepthRangef(ctx, zNear, zFar);
keunyoungb85b2752013-03-08 12:28:03 -0800666}
667
668void glDetachShader(GLuint program, GLuint shader)
669{
670 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100671 ctx->glDetachShader(ctx, program, shader);
keunyoungb85b2752013-03-08 12:28:03 -0800672}
673
674void glDisable(GLenum cap)
675{
676 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100677 ctx->glDisable(ctx, cap);
keunyoungb85b2752013-03-08 12:28:03 -0800678}
679
680void glDisableVertexAttribArray(GLuint index)
681{
682 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100683 ctx->glDisableVertexAttribArray(ctx, index);
keunyoungb85b2752013-03-08 12:28:03 -0800684}
685
686void glDrawArrays(GLenum mode, GLint first, GLsizei count)
687{
688 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100689 ctx->glDrawArrays(ctx, mode, first, count);
keunyoungb85b2752013-03-08 12:28:03 -0800690}
691
692void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices)
693{
694 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100695 ctx->glDrawElements(ctx, mode, count, type, indices);
keunyoungb85b2752013-03-08 12:28:03 -0800696}
697
698void glEnable(GLenum cap)
699{
700 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100701 ctx->glEnable(ctx, cap);
keunyoungb85b2752013-03-08 12:28:03 -0800702}
703
704void glEnableVertexAttribArray(GLuint index)
705{
706 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100707 ctx->glEnableVertexAttribArray(ctx, index);
keunyoungb85b2752013-03-08 12:28:03 -0800708}
709
710void glFinish()
711{
712 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100713 ctx->glFinish(ctx);
keunyoungb85b2752013-03-08 12:28:03 -0800714}
715
716void glFlush()
717{
718 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100719 ctx->glFlush(ctx);
keunyoungb85b2752013-03-08 12:28:03 -0800720}
721
722void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
723{
724 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100725 ctx->glFramebufferRenderbuffer(ctx, target, attachment, renderbuffertarget, renderbuffer);
keunyoungb85b2752013-03-08 12:28:03 -0800726}
727
728void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
729{
730 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100731 ctx->glFramebufferTexture2D(ctx, target, attachment, textarget, texture, level);
keunyoungb85b2752013-03-08 12:28:03 -0800732}
733
734void glFrontFace(GLenum mode)
735{
736 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100737 ctx->glFrontFace(ctx, mode);
keunyoungb85b2752013-03-08 12:28:03 -0800738}
739
740void glGenBuffers(GLsizei n, GLuint* buffers)
741{
742 GET_CONTEXT;
743 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100744 ctx->glGenBuffers(ctx, n, buffers);
keunyoungb85b2752013-03-08 12:28:03 -0800745}
746
747void glGenerateMipmap(GLenum target)
748{
749 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100750 ctx->glGenerateMipmap(ctx, target);
keunyoungb85b2752013-03-08 12:28:03 -0800751}
752
753void glGenFramebuffers(GLsizei n, GLuint* framebuffers)
754{
755 GET_CONTEXT;
756 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100757 ctx->glGenFramebuffers(ctx, n, framebuffers);
keunyoungb85b2752013-03-08 12:28:03 -0800758}
759
760void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
761{
762 GET_CONTEXT;
763 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100764 ctx->glGenRenderbuffers(ctx, n, renderbuffers);
keunyoungb85b2752013-03-08 12:28:03 -0800765}
766
767void glGenTextures(GLsizei n, GLuint* textures)
768{
769 GET_CONTEXT;
770 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100771 ctx->glGenTextures(ctx, n, textures);
keunyoungb85b2752013-03-08 12:28:03 -0800772}
773
774void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
775{
776 GET_CONTEXT;
Lingfeng Yange6556dc2017-01-09 12:04:12 -0800777 if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100778 ctx->glGetActiveAttrib(ctx, program, index, bufsize, length, size, type, name);
keunyoungb85b2752013-03-08 12:28:03 -0800779}
780
781void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
782{
783 GET_CONTEXT;
Lingfeng Yange6556dc2017-01-09 12:04:12 -0800784 if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100785 ctx->glGetActiveUniform(ctx, program, index, bufsize, length, size, type, name);
keunyoungb85b2752013-03-08 12:28:03 -0800786}
787
788void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
789{
790 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100791 ctx->glGetAttachedShaders(ctx, program, maxcount, count, shaders);
keunyoungb85b2752013-03-08 12:28:03 -0800792}
793
794int glGetAttribLocation(GLuint program, const GLchar* name)
795{
796 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100797 return ctx->glGetAttribLocation(ctx, program, name);
keunyoungb85b2752013-03-08 12:28:03 -0800798}
799
800void glGetBooleanv(GLenum pname, GLboolean* params)
801{
802 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100803 ctx->glGetBooleanv(ctx, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -0800804}
805
806void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params)
807{
808 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100809 ctx->glGetBufferParameteriv(ctx, target, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -0800810}
811
812GLenum glGetError()
813{
814 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100815 return ctx->glGetError(ctx);
keunyoungb85b2752013-03-08 12:28:03 -0800816}
817
818void glGetFloatv(GLenum pname, GLfloat* params)
819{
820 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100821 ctx->glGetFloatv(ctx, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -0800822}
823
824void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params)
825{
826 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100827 ctx->glGetFramebufferAttachmentParameteriv(ctx, target, attachment, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -0800828}
829
830void glGetIntegerv(GLenum pname, GLint* params)
831{
832 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100833 ctx->glGetIntegerv(ctx, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -0800834}
835
836void glGetProgramiv(GLuint program, GLenum pname, GLint* params)
837{
838 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100839 ctx->glGetProgramiv(ctx, program, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -0800840}
841
842void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog)
843{
844 GET_CONTEXT;
Lingfeng Yange6556dc2017-01-09 12:04:12 -0800845 if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100846 ctx->glGetProgramInfoLog(ctx, program, bufsize, length, infolog);
keunyoungb85b2752013-03-08 12:28:03 -0800847}
848
849void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params)
850{
851 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100852 ctx->glGetRenderbufferParameteriv(ctx, target, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -0800853}
854
855void glGetShaderiv(GLuint shader, GLenum pname, GLint* params)
856{
857 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100858 ctx->glGetShaderiv(ctx, shader, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -0800859}
860
861void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog)
862{
863 GET_CONTEXT;
Lingfeng Yange6556dc2017-01-09 12:04:12 -0800864 if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100865 ctx->glGetShaderInfoLog(ctx, shader, bufsize, length, infolog);
keunyoungb85b2752013-03-08 12:28:03 -0800866}
867
868void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
869{
870 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100871 ctx->glGetShaderPrecisionFormat(ctx, shadertype, precisiontype, range, precision);
keunyoungb85b2752013-03-08 12:28:03 -0800872}
873
874void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source)
875{
876 GET_CONTEXT;
Lingfeng Yange6556dc2017-01-09 12:04:12 -0800877 if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100878 ctx->glGetShaderSource(ctx, shader, bufsize, length, source);
keunyoungb85b2752013-03-08 12:28:03 -0800879}
880
881const GLubyte* glGetString(GLenum name)
882{
883 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100884 return ctx->glGetString(ctx, name);
keunyoungb85b2752013-03-08 12:28:03 -0800885}
886
887void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params)
888{
889 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100890 ctx->glGetTexParameterfv(ctx, target, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -0800891}
892
893void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params)
894{
895 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100896 ctx->glGetTexParameteriv(ctx, target, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -0800897}
898
899void glGetUniformfv(GLuint program, GLint location, GLfloat* params)
900{
901 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100902 ctx->glGetUniformfv(ctx, program, location, params);
keunyoungb85b2752013-03-08 12:28:03 -0800903}
904
905void glGetUniformiv(GLuint program, GLint location, GLint* params)
906{
907 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100908 ctx->glGetUniformiv(ctx, program, location, params);
keunyoungb85b2752013-03-08 12:28:03 -0800909}
910
911int glGetUniformLocation(GLuint program, const GLchar* name)
912{
913 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100914 return ctx->glGetUniformLocation(ctx, program, name);
keunyoungb85b2752013-03-08 12:28:03 -0800915}
916
917void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params)
918{
919 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100920 ctx->glGetVertexAttribfv(ctx, index, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -0800921}
922
923void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params)
924{
925 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100926 ctx->glGetVertexAttribiv(ctx, index, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -0800927}
928
929void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer)
930{
931 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100932 ctx->glGetVertexAttribPointerv(ctx, index, pname, pointer);
keunyoungb85b2752013-03-08 12:28:03 -0800933}
934
935void glHint(GLenum target, GLenum mode)
936{
937 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100938 ctx->glHint(ctx, target, mode);
keunyoungb85b2752013-03-08 12:28:03 -0800939}
940
941GLboolean glIsBuffer(GLuint buffer)
942{
943 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100944 return ctx->glIsBuffer(ctx, buffer);
keunyoungb85b2752013-03-08 12:28:03 -0800945}
946
947GLboolean glIsEnabled(GLenum cap)
948{
949 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100950 return ctx->glIsEnabled(ctx, cap);
keunyoungb85b2752013-03-08 12:28:03 -0800951}
952
953GLboolean glIsFramebuffer(GLuint framebuffer)
954{
955 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100956 return ctx->glIsFramebuffer(ctx, framebuffer);
keunyoungb85b2752013-03-08 12:28:03 -0800957}
958
959GLboolean glIsProgram(GLuint program)
960{
961 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100962 return ctx->glIsProgram(ctx, program);
keunyoungb85b2752013-03-08 12:28:03 -0800963}
964
965GLboolean glIsRenderbuffer(GLuint renderbuffer)
966{
967 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100968 return ctx->glIsRenderbuffer(ctx, renderbuffer);
keunyoungb85b2752013-03-08 12:28:03 -0800969}
970
971GLboolean glIsShader(GLuint shader)
972{
973 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100974 return ctx->glIsShader(ctx, shader);
keunyoungb85b2752013-03-08 12:28:03 -0800975}
976
977GLboolean glIsTexture(GLuint texture)
978{
979 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100980 return ctx->glIsTexture(ctx, texture);
keunyoungb85b2752013-03-08 12:28:03 -0800981}
982
983void glLineWidth(GLfloat width)
984{
985 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100986 ctx->glLineWidth(ctx, width);
keunyoungb85b2752013-03-08 12:28:03 -0800987}
988
989void glLinkProgram(GLuint program)
990{
991 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100992 ctx->glLinkProgram(ctx, program);
keunyoungb85b2752013-03-08 12:28:03 -0800993}
994
995void glPixelStorei(GLenum pname, GLint param)
996{
997 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +0100998 ctx->glPixelStorei(ctx, pname, param);
keunyoungb85b2752013-03-08 12:28:03 -0800999}
1000
1001void glPolygonOffset(GLfloat factor, GLfloat units)
1002{
1003 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001004 ctx->glPolygonOffset(ctx, factor, units);
keunyoungb85b2752013-03-08 12:28:03 -08001005}
1006
1007void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)
1008{
1009 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001010 ctx->glReadPixels(ctx, x, y, width, height, format, type, pixels);
keunyoungb85b2752013-03-08 12:28:03 -08001011}
1012
1013void glReleaseShaderCompiler()
1014{
1015 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001016 ctx->glReleaseShaderCompiler(ctx);
keunyoungb85b2752013-03-08 12:28:03 -08001017}
1018
1019void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
1020{
1021 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001022 ctx->glRenderbufferStorage(ctx, target, internalformat, width, height);
keunyoungb85b2752013-03-08 12:28:03 -08001023}
1024
1025void glSampleCoverage(GLclampf value, GLboolean invert)
1026{
1027 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001028 ctx->glSampleCoverage(ctx, value, invert);
keunyoungb85b2752013-03-08 12:28:03 -08001029}
1030
1031void glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
1032{
1033 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001034 ctx->glScissor(ctx, x, y, width, height);
keunyoungb85b2752013-03-08 12:28:03 -08001035}
1036
1037void glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length)
1038{
1039 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001040 ctx->glShaderBinary(ctx, n, shaders, binaryformat, binary, length);
keunyoungb85b2752013-03-08 12:28:03 -08001041}
1042
David 'Digit' Turner0f788d82014-11-27 18:05:34 +01001043void glShaderSource(GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length)
keunyoungb85b2752013-03-08 12:28:03 -08001044{
1045 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001046 ctx->glShaderSource(ctx, shader, count, string, length);
keunyoungb85b2752013-03-08 12:28:03 -08001047}
1048
1049void glStencilFunc(GLenum func, GLint ref, GLuint mask)
1050{
1051 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001052 ctx->glStencilFunc(ctx, func, ref, mask);
keunyoungb85b2752013-03-08 12:28:03 -08001053}
1054
1055void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
1056{
1057 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001058 ctx->glStencilFuncSeparate(ctx, face, func, ref, mask);
keunyoungb85b2752013-03-08 12:28:03 -08001059}
1060
1061void glStencilMask(GLuint mask)
1062{
1063 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001064 ctx->glStencilMask(ctx, mask);
keunyoungb85b2752013-03-08 12:28:03 -08001065}
1066
1067void glStencilMaskSeparate(GLenum face, GLuint mask)
1068{
1069 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001070 ctx->glStencilMaskSeparate(ctx, face, mask);
keunyoungb85b2752013-03-08 12:28:03 -08001071}
1072
1073void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
1074{
1075 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001076 ctx->glStencilOp(ctx, fail, zfail, zpass);
keunyoungb85b2752013-03-08 12:28:03 -08001077}
1078
1079void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
1080{
1081 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001082 ctx->glStencilOpSeparate(ctx, face, fail, zfail, zpass);
keunyoungb85b2752013-03-08 12:28:03 -08001083}
1084
1085void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
1086{
1087 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001088 ctx->glTexImage2D(ctx, target, level, internalformat, width, height, border, format, type, pixels);
keunyoungb85b2752013-03-08 12:28:03 -08001089}
1090
1091void glTexParameterf(GLenum target, GLenum pname, GLfloat param)
1092{
1093 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001094 ctx->glTexParameterf(ctx, target, pname, param);
keunyoungb85b2752013-03-08 12:28:03 -08001095}
1096
1097void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params)
1098{
1099 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001100 ctx->glTexParameterfv(ctx, target, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -08001101}
1102
1103void glTexParameteri(GLenum target, GLenum pname, GLint param)
1104{
1105 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001106 ctx->glTexParameteri(ctx, target, pname, param);
keunyoungb85b2752013-03-08 12:28:03 -08001107}
1108
1109void glTexParameteriv(GLenum target, GLenum pname, const GLint* params)
1110{
1111 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001112 ctx->glTexParameteriv(ctx, target, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -08001113}
1114
1115void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)
1116{
1117 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001118 ctx->glTexSubImage2D(ctx, target, level, xoffset, yoffset, width, height, format, type, pixels);
keunyoungb85b2752013-03-08 12:28:03 -08001119}
1120
1121void glUniform1f(GLint location, GLfloat x)
1122{
1123 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001124 ctx->glUniform1f(ctx, location, x);
keunyoungb85b2752013-03-08 12:28:03 -08001125}
1126
1127void glUniform1fv(GLint location, GLsizei count, const GLfloat* v)
1128{
1129 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001130 ctx->glUniform1fv(ctx, location, count, v);
keunyoungb85b2752013-03-08 12:28:03 -08001131}
1132
1133void glUniform1i(GLint location, GLint x)
1134{
1135 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001136 ctx->glUniform1i(ctx, location, x);
keunyoungb85b2752013-03-08 12:28:03 -08001137}
1138
1139void glUniform1iv(GLint location, GLsizei count, const GLint* v)
1140{
1141 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001142 ctx->glUniform1iv(ctx, location, count, v);
keunyoungb85b2752013-03-08 12:28:03 -08001143}
1144
1145void glUniform2f(GLint location, GLfloat x, GLfloat y)
1146{
1147 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001148 ctx->glUniform2f(ctx, location, x, y);
keunyoungb85b2752013-03-08 12:28:03 -08001149}
1150
1151void glUniform2fv(GLint location, GLsizei count, const GLfloat* v)
1152{
1153 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001154 ctx->glUniform2fv(ctx, location, count, v);
keunyoungb85b2752013-03-08 12:28:03 -08001155}
1156
1157void glUniform2i(GLint location, GLint x, GLint y)
1158{
1159 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001160 ctx->glUniform2i(ctx, location, x, y);
keunyoungb85b2752013-03-08 12:28:03 -08001161}
1162
1163void glUniform2iv(GLint location, GLsizei count, const GLint* v)
1164{
1165 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001166 ctx->glUniform2iv(ctx, location, count, v);
keunyoungb85b2752013-03-08 12:28:03 -08001167}
1168
1169void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z)
1170{
1171 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001172 ctx->glUniform3f(ctx, location, x, y, z);
keunyoungb85b2752013-03-08 12:28:03 -08001173}
1174
1175void glUniform3fv(GLint location, GLsizei count, const GLfloat* v)
1176{
1177 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001178 ctx->glUniform3fv(ctx, location, count, v);
keunyoungb85b2752013-03-08 12:28:03 -08001179}
1180
1181void glUniform3i(GLint location, GLint x, GLint y, GLint z)
1182{
1183 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001184 ctx->glUniform3i(ctx, location, x, y, z);
keunyoungb85b2752013-03-08 12:28:03 -08001185}
1186
1187void glUniform3iv(GLint location, GLsizei count, const GLint* v)
1188{
1189 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001190 ctx->glUniform3iv(ctx, location, count, v);
keunyoungb85b2752013-03-08 12:28:03 -08001191}
1192
1193void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
1194{
1195 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001196 ctx->glUniform4f(ctx, location, x, y, z, w);
keunyoungb85b2752013-03-08 12:28:03 -08001197}
1198
1199void glUniform4fv(GLint location, GLsizei count, const GLfloat* v)
1200{
1201 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001202 ctx->glUniform4fv(ctx, location, count, v);
keunyoungb85b2752013-03-08 12:28:03 -08001203}
1204
1205void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w)
1206{
1207 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001208 ctx->glUniform4i(ctx, location, x, y, z, w);
keunyoungb85b2752013-03-08 12:28:03 -08001209}
1210
1211void glUniform4iv(GLint location, GLsizei count, const GLint* v)
1212{
1213 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001214 ctx->glUniform4iv(ctx, location, count, v);
keunyoungb85b2752013-03-08 12:28:03 -08001215}
1216
1217void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
1218{
1219 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001220 ctx->glUniformMatrix2fv(ctx, location, count, transpose, value);
keunyoungb85b2752013-03-08 12:28:03 -08001221}
1222
1223void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
1224{
1225 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001226 ctx->glUniformMatrix3fv(ctx, location, count, transpose, value);
keunyoungb85b2752013-03-08 12:28:03 -08001227}
1228
1229void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
1230{
1231 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001232 ctx->glUniformMatrix4fv(ctx, location, count, transpose, value);
keunyoungb85b2752013-03-08 12:28:03 -08001233}
1234
1235void glUseProgram(GLuint program)
1236{
1237 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001238 ctx->glUseProgram(ctx, program);
keunyoungb85b2752013-03-08 12:28:03 -08001239}
1240
1241void glValidateProgram(GLuint program)
1242{
1243 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001244 ctx->glValidateProgram(ctx, program);
keunyoungb85b2752013-03-08 12:28:03 -08001245}
1246
1247void glVertexAttrib1f(GLuint indx, GLfloat x)
1248{
1249 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001250 ctx->glVertexAttrib1f(ctx, indx, x);
keunyoungb85b2752013-03-08 12:28:03 -08001251}
1252
1253void glVertexAttrib1fv(GLuint indx, const GLfloat* values)
1254{
1255 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001256 ctx->glVertexAttrib1fv(ctx, indx, values);
keunyoungb85b2752013-03-08 12:28:03 -08001257}
1258
1259void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y)
1260{
1261 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001262 ctx->glVertexAttrib2f(ctx, indx, x, y);
keunyoungb85b2752013-03-08 12:28:03 -08001263}
1264
1265void glVertexAttrib2fv(GLuint indx, const GLfloat* values)
1266{
1267 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001268 ctx->glVertexAttrib2fv(ctx, indx, values);
keunyoungb85b2752013-03-08 12:28:03 -08001269}
1270
1271void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z)
1272{
1273 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001274 ctx->glVertexAttrib3f(ctx, indx, x, y, z);
keunyoungb85b2752013-03-08 12:28:03 -08001275}
1276
1277void glVertexAttrib3fv(GLuint indx, const GLfloat* values)
1278{
1279 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001280 ctx->glVertexAttrib3fv(ctx, indx, values);
keunyoungb85b2752013-03-08 12:28:03 -08001281}
1282
1283void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
1284{
1285 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001286 ctx->glVertexAttrib4f(ctx, indx, x, y, z, w);
keunyoungb85b2752013-03-08 12:28:03 -08001287}
1288
1289void glVertexAttrib4fv(GLuint indx, const GLfloat* values)
1290{
1291 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001292 ctx->glVertexAttrib4fv(ctx, indx, values);
keunyoungb85b2752013-03-08 12:28:03 -08001293}
1294
1295void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr)
1296{
1297 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001298 ctx->glVertexAttribPointer(ctx, indx, size, type, normalized, stride, ptr);
keunyoungb85b2752013-03-08 12:28:03 -08001299}
1300
1301void glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
1302{
1303 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001304 ctx->glViewport(ctx, x, y, width, height);
keunyoungb85b2752013-03-08 12:28:03 -08001305}
1306
1307void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
1308{
1309 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001310 ctx->glEGLImageTargetTexture2DOES(ctx, target, image);
keunyoungb85b2752013-03-08 12:28:03 -08001311}
1312
1313void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
1314{
1315 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001316 ctx->glEGLImageTargetRenderbufferStorageOES(ctx, target, image);
keunyoungb85b2752013-03-08 12:28:03 -08001317}
1318
1319void glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary)
1320{
1321 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001322 ctx->glGetProgramBinaryOES(ctx, program, bufSize, length, binaryFormat, binary);
keunyoungb85b2752013-03-08 12:28:03 -08001323}
1324
1325void glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLint length)
1326{
1327 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001328 ctx->glProgramBinaryOES(ctx, program, binaryFormat, binary, length);
keunyoungb85b2752013-03-08 12:28:03 -08001329}
1330
1331void* glMapBufferOES(GLenum target, GLenum access)
1332{
1333 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001334 return ctx->glMapBufferOES(ctx, target, access);
keunyoungb85b2752013-03-08 12:28:03 -08001335}
1336
1337GLboolean glUnmapBufferOES(GLenum target)
1338{
1339 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001340 return ctx->glUnmapBufferOES(ctx, target);
keunyoungb85b2752013-03-08 12:28:03 -08001341}
1342
1343void glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
1344{
1345 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001346 ctx->glTexImage3DOES(ctx, target, level, internalformat, width, height, depth, border, format, type, pixels);
keunyoungb85b2752013-03-08 12:28:03 -08001347}
1348
1349void glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels)
1350{
1351 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001352 ctx->glTexSubImage3DOES(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
keunyoungb85b2752013-03-08 12:28:03 -08001353}
1354
1355void glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
1356{
1357 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001358 ctx->glCopyTexSubImage3DOES(ctx, target, level, xoffset, yoffset, zoffset, x, y, width, height);
keunyoungb85b2752013-03-08 12:28:03 -08001359}
1360
1361void glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
1362{
1363 GET_CONTEXT;
Lingfeng Yange6556dc2017-01-09 12:04:12 -08001364 if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001365 ctx->glCompressedTexImage3DOES(ctx, target, level, internalformat, width, height, depth, border, imageSize, data);
keunyoungb85b2752013-03-08 12:28:03 -08001366}
1367
1368void glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data)
1369{
1370 GET_CONTEXT;
Lingfeng Yange6556dc2017-01-09 12:04:12 -08001371 if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001372 ctx->glCompressedTexSubImage3DOES(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
keunyoungb85b2752013-03-08 12:28:03 -08001373}
1374
1375void glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
1376{
1377 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001378 ctx->glFramebufferTexture3DOES(ctx, target, attachment, textarget, texture, level, zoffset);
keunyoungb85b2752013-03-08 12:28:03 -08001379}
1380
1381void glBindVertexArrayOES(GLuint array)
1382{
1383 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001384 ctx->glBindVertexArrayOES(ctx, array);
keunyoungb85b2752013-03-08 12:28:03 -08001385}
1386
1387void glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays)
1388{
1389 GET_CONTEXT;
1390 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001391 ctx->glDeleteVertexArraysOES(ctx, n, arrays);
keunyoungb85b2752013-03-08 12:28:03 -08001392}
1393
1394void glGenVertexArraysOES(GLsizei n, GLuint* arrays)
1395{
1396 GET_CONTEXT;
1397 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001398 ctx->glGenVertexArraysOES(ctx, n, arrays);
keunyoungb85b2752013-03-08 12:28:03 -08001399}
1400
1401GLboolean glIsVertexArrayOES(GLuint array)
1402{
1403 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001404 return ctx->glIsVertexArrayOES(ctx, array);
keunyoungb85b2752013-03-08 12:28:03 -08001405}
1406
1407void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum* attachments)
1408{
1409 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001410 ctx->glDiscardFramebufferEXT(ctx, target, numAttachments, attachments);
keunyoungb85b2752013-03-08 12:28:03 -08001411}
1412
Jesse Hall88816d42014-05-21 14:55:46 -07001413void glMultiDrawArraysEXT(GLenum mode, const GLint* first, const GLsizei* count, GLsizei primcount)
keunyoungb85b2752013-03-08 12:28:03 -08001414{
1415 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001416 ctx->glMultiDrawArraysEXT(ctx, mode, first, count, primcount);
keunyoungb85b2752013-03-08 12:28:03 -08001417}
1418
Jesse Hall88816d42014-05-21 14:55:46 -07001419void glMultiDrawElementsEXT(GLenum mode, const GLsizei* count, GLenum type, const GLvoid* const* indices, GLsizei primcount)
keunyoungb85b2752013-03-08 12:28:03 -08001420{
1421 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001422 ctx->glMultiDrawElementsEXT(ctx, mode, count, type, indices, primcount);
keunyoungb85b2752013-03-08 12:28:03 -08001423}
1424
1425void glGetPerfMonitorGroupsAMD(GLint* numGroups, GLsizei groupsSize, GLuint* groups)
1426{
1427 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001428 ctx->glGetPerfMonitorGroupsAMD(ctx, numGroups, groupsSize, groups);
keunyoungb85b2752013-03-08 12:28:03 -08001429}
1430
1431void glGetPerfMonitorCountersAMD(GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters)
1432{
1433 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001434 ctx->glGetPerfMonitorCountersAMD(ctx, group, numCounters, maxActiveCounters, counterSize, counters);
keunyoungb85b2752013-03-08 12:28:03 -08001435}
1436
1437void glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei* length, GLchar* groupString)
1438{
1439 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001440 ctx->glGetPerfMonitorGroupStringAMD(ctx, group, bufSize, length, groupString);
keunyoungb85b2752013-03-08 12:28:03 -08001441}
1442
1443void glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar* counterString)
1444{
1445 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001446 ctx->glGetPerfMonitorCounterStringAMD(ctx, group, counter, bufSize, length, counterString);
keunyoungb85b2752013-03-08 12:28:03 -08001447}
1448
1449void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid* data)
1450{
1451 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001452 ctx->glGetPerfMonitorCounterInfoAMD(ctx, group, counter, pname, data);
keunyoungb85b2752013-03-08 12:28:03 -08001453}
1454
1455void glGenPerfMonitorsAMD(GLsizei n, GLuint* monitors)
1456{
1457 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001458 ctx->glGenPerfMonitorsAMD(ctx, n, monitors);
keunyoungb85b2752013-03-08 12:28:03 -08001459}
1460
1461void glDeletePerfMonitorsAMD(GLsizei n, GLuint* monitors)
1462{
1463 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001464 ctx->glDeletePerfMonitorsAMD(ctx, n, monitors);
keunyoungb85b2752013-03-08 12:28:03 -08001465}
1466
1467void glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList)
1468{
1469 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001470 ctx->glSelectPerfMonitorCountersAMD(ctx, monitor, enable, group, numCounters, countersList);
keunyoungb85b2752013-03-08 12:28:03 -08001471}
1472
1473void glBeginPerfMonitorAMD(GLuint monitor)
1474{
1475 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001476 ctx->glBeginPerfMonitorAMD(ctx, monitor);
keunyoungb85b2752013-03-08 12:28:03 -08001477}
1478
1479void glEndPerfMonitorAMD(GLuint monitor)
1480{
1481 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001482 ctx->glEndPerfMonitorAMD(ctx, monitor);
keunyoungb85b2752013-03-08 12:28:03 -08001483}
1484
1485void glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten)
1486{
1487 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001488 ctx->glGetPerfMonitorCounterDataAMD(ctx, monitor, pname, dataSize, data, bytesWritten);
keunyoungb85b2752013-03-08 12:28:03 -08001489}
1490
1491void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
1492{
1493 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001494 ctx->glRenderbufferStorageMultisampleIMG(ctx, target, samples, internalformat, width, height);
keunyoungb85b2752013-03-08 12:28:03 -08001495}
1496
1497void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
1498{
1499 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001500 ctx->glFramebufferTexture2DMultisampleIMG(ctx, target, attachment, textarget, texture, level, samples);
keunyoungb85b2752013-03-08 12:28:03 -08001501}
1502
1503void glDeleteFencesNV(GLsizei n, const GLuint* fences)
1504{
1505 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001506 ctx->glDeleteFencesNV(ctx, n, fences);
keunyoungb85b2752013-03-08 12:28:03 -08001507}
1508
1509void glGenFencesNV(GLsizei n, GLuint* fences)
1510{
1511 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001512 ctx->glGenFencesNV(ctx, n, fences);
keunyoungb85b2752013-03-08 12:28:03 -08001513}
1514
1515GLboolean glIsFenceNV(GLuint fence)
1516{
1517 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001518 return ctx->glIsFenceNV(ctx, fence);
keunyoungb85b2752013-03-08 12:28:03 -08001519}
1520
1521GLboolean glTestFenceNV(GLuint fence)
1522{
1523 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001524 return ctx->glTestFenceNV(ctx, fence);
keunyoungb85b2752013-03-08 12:28:03 -08001525}
1526
1527void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params)
1528{
1529 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001530 ctx->glGetFenceivNV(ctx, fence, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -08001531}
1532
1533void glFinishFenceNV(GLuint fence)
1534{
1535 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001536 ctx->glFinishFenceNV(ctx, fence);
keunyoungb85b2752013-03-08 12:28:03 -08001537}
1538
1539void glSetFenceNV(GLuint fence, GLenum condition)
1540{
1541 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001542 ctx->glSetFenceNV(ctx, fence, condition);
keunyoungb85b2752013-03-08 12:28:03 -08001543}
1544
1545void glCoverageMaskNV(GLboolean mask)
1546{
1547 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001548 ctx->glCoverageMaskNV(ctx, mask);
keunyoungb85b2752013-03-08 12:28:03 -08001549}
1550
1551void glCoverageOperationNV(GLenum operation)
1552{
1553 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001554 ctx->glCoverageOperationNV(ctx, operation);
keunyoungb85b2752013-03-08 12:28:03 -08001555}
1556
1557void glGetDriverControlsQCOM(GLint* num, GLsizei size, GLuint* driverControls)
1558{
1559 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001560 ctx->glGetDriverControlsQCOM(ctx, num, size, driverControls);
keunyoungb85b2752013-03-08 12:28:03 -08001561}
1562
1563void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString)
1564{
1565 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001566 ctx->glGetDriverControlStringQCOM(ctx, driverControl, bufSize, length, driverControlString);
keunyoungb85b2752013-03-08 12:28:03 -08001567}
1568
1569void glEnableDriverControlQCOM(GLuint driverControl)
1570{
1571 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001572 ctx->glEnableDriverControlQCOM(ctx, driverControl);
keunyoungb85b2752013-03-08 12:28:03 -08001573}
1574
1575void glDisableDriverControlQCOM(GLuint driverControl)
1576{
1577 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001578 ctx->glDisableDriverControlQCOM(ctx, driverControl);
keunyoungb85b2752013-03-08 12:28:03 -08001579}
1580
1581void glExtGetTexturesQCOM(GLuint* textures, GLint maxTextures, GLint* numTextures)
1582{
1583 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001584 ctx->glExtGetTexturesQCOM(ctx, textures, maxTextures, numTextures);
keunyoungb85b2752013-03-08 12:28:03 -08001585}
1586
1587void glExtGetBuffersQCOM(GLuint* buffers, GLint maxBuffers, GLint* numBuffers)
1588{
1589 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001590 ctx->glExtGetBuffersQCOM(ctx, buffers, maxBuffers, numBuffers);
keunyoungb85b2752013-03-08 12:28:03 -08001591}
1592
1593void glExtGetRenderbuffersQCOM(GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers)
1594{
1595 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001596 ctx->glExtGetRenderbuffersQCOM(ctx, renderbuffers, maxRenderbuffers, numRenderbuffers);
keunyoungb85b2752013-03-08 12:28:03 -08001597}
1598
1599void glExtGetFramebuffersQCOM(GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers)
1600{
1601 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001602 ctx->glExtGetFramebuffersQCOM(ctx, framebuffers, maxFramebuffers, numFramebuffers);
keunyoungb85b2752013-03-08 12:28:03 -08001603}
1604
1605void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params)
1606{
1607 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001608 ctx->glExtGetTexLevelParameterivQCOM(ctx, texture, face, level, pname, params);
keunyoungb85b2752013-03-08 12:28:03 -08001609}
1610
1611void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param)
1612{
1613 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001614 ctx->glExtTexObjectStateOverrideiQCOM(ctx, target, pname, param);
keunyoungb85b2752013-03-08 12:28:03 -08001615}
1616
1617void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels)
1618{
1619 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001620 ctx->glExtGetTexSubImageQCOM(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, texels);
keunyoungb85b2752013-03-08 12:28:03 -08001621}
1622
1623void glExtGetBufferPointervQCOM(GLenum target, GLvoidptr* params)
1624{
1625 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001626 ctx->glExtGetBufferPointervQCOM(ctx, target, params);
keunyoungb85b2752013-03-08 12:28:03 -08001627}
1628
1629void glExtGetShadersQCOM(GLuint* shaders, GLint maxShaders, GLint* numShaders)
1630{
1631 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001632 ctx->glExtGetShadersQCOM(ctx, shaders, maxShaders, numShaders);
keunyoungb85b2752013-03-08 12:28:03 -08001633}
1634
1635void glExtGetProgramsQCOM(GLuint* programs, GLint maxPrograms, GLint* numPrograms)
1636{
1637 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001638 ctx->glExtGetProgramsQCOM(ctx, programs, maxPrograms, numPrograms);
keunyoungb85b2752013-03-08 12:28:03 -08001639}
1640
1641GLboolean glExtIsProgramBinaryQCOM(GLuint program)
1642{
1643 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001644 return ctx->glExtIsProgramBinaryQCOM(ctx, program);
keunyoungb85b2752013-03-08 12:28:03 -08001645}
1646
1647void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar* source, GLint* length)
1648{
1649 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001650 ctx->glExtGetProgramBinarySourceQCOM(ctx, program, shadertype, source, length);
keunyoungb85b2752013-03-08 12:28:03 -08001651}
1652
1653void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
1654{
1655 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001656 ctx->glStartTilingQCOM(ctx, x, y, width, height, preserveMask);
keunyoungb85b2752013-03-08 12:28:03 -08001657}
1658
1659void glEndTilingQCOM(GLbitfield preserveMask)
1660{
1661 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001662 ctx->glEndTilingQCOM(ctx, preserveMask);
keunyoungb85b2752013-03-08 12:28:03 -08001663}
1664
1665void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void* data, GLuint datalen)
1666{
1667 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001668 ctx->glVertexAttribPointerData(ctx, indx, size, type, normalized, stride, data, datalen);
keunyoungb85b2752013-03-08 12:28:03 -08001669}
1670
1671void glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint offset)
1672{
1673 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001674 ctx->glVertexAttribPointerOffset(ctx, indx, size, type, normalized, stride, offset);
keunyoungb85b2752013-03-08 12:28:03 -08001675}
1676
1677void glDrawElementsOffset(GLenum mode, GLsizei count, GLenum type, GLuint offset)
1678{
1679 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001680 ctx->glDrawElementsOffset(ctx, mode, count, type, offset);
keunyoungb85b2752013-03-08 12:28:03 -08001681}
1682
1683void glDrawElementsData(GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen)
1684{
1685 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001686 ctx->glDrawElementsData(ctx, mode, count, type, data, datalen);
keunyoungb85b2752013-03-08 12:28:03 -08001687}
1688
1689void glGetCompressedTextureFormats(int count, GLint* formats)
1690{
1691 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001692 ctx->glGetCompressedTextureFormats(ctx, count, formats);
keunyoungb85b2752013-03-08 12:28:03 -08001693}
1694
1695void glShaderString(GLuint shader, const GLchar* string, GLsizei len)
1696{
1697 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001698 ctx->glShaderString(ctx, shader, string, len);
keunyoungb85b2752013-03-08 12:28:03 -08001699}
1700
1701int glFinishRoundTrip()
1702{
1703 GET_CONTEXT;
David 'Digit' Turner4f91c8e2014-10-31 11:39:38 +01001704 return ctx->glFinishRoundTrip(ctx);
keunyoungb85b2752013-03-08 12:28:03 -08001705}
1706
Lingfeng Yange6556dc2017-01-09 12:04:12 -08001707void glGenVertexArrays(GLsizei n, GLuint* arrays)
1708{
1709 GET_CONTEXT;
1710 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
1711 ctx->glGenVertexArrays(ctx, n, arrays);
1712}
1713
1714void glBindVertexArray(GLuint array)
1715{
1716 GET_CONTEXT;
1717 ctx->glBindVertexArray(ctx, array);
1718}
1719
1720void glDeleteVertexArrays(GLsizei n, const GLuint* arrays)
1721{
1722 GET_CONTEXT;
1723 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
1724 ctx->glDeleteVertexArrays(ctx, n, arrays);
1725}
1726
1727GLboolean glIsVertexArray(GLuint array)
1728{
1729 GET_CONTEXT;
1730 return ctx->glIsVertexArray(ctx, array);
1731}
1732
1733void* glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
1734{
1735 GET_CONTEXT;
1736 return ctx->glMapBufferRange(ctx, target, offset, length, access);
1737}
1738
1739GLboolean glUnmapBuffer(GLenum target)
1740{
1741 GET_CONTEXT;
1742 return ctx->glUnmapBuffer(ctx, target);
1743}
1744
1745void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length)
1746{
1747 GET_CONTEXT;
1748 ctx->glFlushMappedBufferRange(ctx, target, offset, length);
1749}
1750
1751void glMapBufferRangeAEMU(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* mapped)
1752{
1753 GET_CONTEXT;
1754 ctx->glMapBufferRangeAEMU(ctx, target, offset, length, access, mapped);
1755}
1756
1757void glUnmapBufferAEMU(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* guest_buffer, GLboolean* out_res)
1758{
1759 GET_CONTEXT;
1760 ctx->glUnmapBufferAEMU(ctx, target, offset, length, access, guest_buffer, out_res);
1761}
1762
1763void glFlushMappedBufferRangeAEMU(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* guest_buffer)
1764{
1765 GET_CONTEXT;
1766 ctx->glFlushMappedBufferRangeAEMU(ctx, target, offset, length, access, guest_buffer);
1767}
1768
1769void glReadPixelsOffsetAEMU(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLuint offset)
1770{
1771 GET_CONTEXT;
1772 ctx->glReadPixelsOffsetAEMU(ctx, x, y, width, height, format, type, offset);
1773}
1774
1775void glCompressedTexImage2DOffsetAEMU(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLuint offset)
1776{
1777 GET_CONTEXT;
1778 ctx->glCompressedTexImage2DOffsetAEMU(ctx, target, level, internalformat, width, height, border, imageSize, offset);
1779}
1780
1781void glCompressedTexSubImage2DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLuint offset)
1782{
1783 GET_CONTEXT;
1784 ctx->glCompressedTexSubImage2DOffsetAEMU(ctx, target, level, xoffset, yoffset, width, height, format, imageSize, offset);
1785}
1786
1787void glTexImage2DOffsetAEMU(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLuint offset)
1788{
1789 GET_CONTEXT;
1790 ctx->glTexImage2DOffsetAEMU(ctx, target, level, internalformat, width, height, border, format, type, offset);
1791}
1792
1793void glTexSubImage2DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLuint offset)
1794{
1795 GET_CONTEXT;
1796 ctx->glTexSubImage2DOffsetAEMU(ctx, target, level, xoffset, yoffset, width, height, format, type, offset);
1797}
1798
1799void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
1800{
1801 GET_CONTEXT;
1802 ctx->glBindBufferRange(ctx, target, index, buffer, offset, size);
1803}
1804
1805void glBindBufferBase(GLenum target, GLuint index, GLuint buffer)
1806{
1807 GET_CONTEXT;
1808 ctx->glBindBufferBase(ctx, target, index, buffer);
1809}
1810
1811void glCopyBufferSubData(GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size)
1812{
1813 GET_CONTEXT;
1814 ctx->glCopyBufferSubData(ctx, readtarget, writetarget, readoffset, writeoffset, size);
1815}
1816
1817void glClearBufferiv(GLenum buffer, GLint drawBuffer, const GLint* value)
1818{
1819 GET_CONTEXT;
1820 ctx->glClearBufferiv(ctx, buffer, drawBuffer, value);
1821}
1822
1823void glClearBufferuiv(GLenum buffer, GLint drawBuffer, const GLuint* value)
1824{
1825 GET_CONTEXT;
1826 ctx->glClearBufferuiv(ctx, buffer, drawBuffer, value);
1827}
1828
1829void glClearBufferfv(GLenum buffer, GLint drawBuffer, const GLfloat* value)
1830{
1831 GET_CONTEXT;
1832 ctx->glClearBufferfv(ctx, buffer, drawBuffer, value);
1833}
1834
1835void glClearBufferfi(GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil)
1836{
1837 GET_CONTEXT;
1838 ctx->glClearBufferfi(ctx, buffer, drawBuffer, depth, stencil);
1839}
1840
1841void glGetBufferParameteri64v(GLenum target, GLenum value, GLint64* data)
1842{
1843 GET_CONTEXT;
1844 ctx->glGetBufferParameteri64v(ctx, target, value, data);
1845}
1846
1847void glGetBufferPointerv(GLenum target, GLenum pname, GLvoid** params)
1848{
1849 GET_CONTEXT;
1850 ctx->glGetBufferPointerv(ctx, target, pname, params);
1851}
1852
1853void glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)
1854{
1855 GET_CONTEXT;
1856 ctx->glUniformBlockBinding(ctx, program, uniformBlockIndex, uniformBlockBinding);
1857}
1858
1859GLuint glGetUniformBlockIndex(GLuint program, const GLchar* uniformBlockName)
1860{
1861 GET_CONTEXT;
1862 return ctx->glGetUniformBlockIndex(ctx, program, uniformBlockName);
1863}
1864
1865void glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar** uniformNames, GLuint* uniformIndices)
1866{
1867 GET_CONTEXT;
1868 ctx->glGetUniformIndices(ctx, program, uniformCount, uniformNames, uniformIndices);
1869}
1870
1871void glGetUniformIndicesAEMU(GLuint program, GLsizei uniformCount, const GLchar* packedUniformNames, GLsizei packedLen, GLuint* uniformIndices)
1872{
1873 GET_CONTEXT;
1874 ctx->glGetUniformIndicesAEMU(ctx, program, uniformCount, packedUniformNames, packedLen, uniformIndices);
1875}
1876
1877void glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
1878{
1879 GET_CONTEXT;
1880 ctx->glGetActiveUniformBlockiv(ctx, program, uniformBlockIndex, pname, params);
1881}
1882
1883void glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
1884{
1885 GET_CONTEXT;
1886 if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
1887 ctx->glGetActiveUniformBlockName(ctx, program, uniformBlockIndex, bufSize, length, uniformBlockName);
1888}
1889
1890void glUniform1ui(GLint location, GLuint v0)
1891{
1892 GET_CONTEXT;
1893 ctx->glUniform1ui(ctx, location, v0);
1894}
1895
1896void glUniform2ui(GLint location, GLuint v0, GLuint v1)
1897{
1898 GET_CONTEXT;
1899 ctx->glUniform2ui(ctx, location, v0, v1);
1900}
1901
1902void glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2)
1903{
1904 GET_CONTEXT;
1905 ctx->glUniform3ui(ctx, location, v0, v1, v2);
1906}
1907
1908void glUniform4ui(GLint location, GLint v0, GLuint v1, GLuint v2, GLuint v3)
1909{
1910 GET_CONTEXT;
1911 ctx->glUniform4ui(ctx, location, v0, v1, v2, v3);
1912}
1913
1914void glUniform1uiv(GLint location, GLsizei count, const GLuint* value)
1915{
1916 GET_CONTEXT;
1917 ctx->glUniform1uiv(ctx, location, count, value);
1918}
1919
1920void glUniform2uiv(GLint location, GLsizei count, const GLuint* value)
1921{
1922 GET_CONTEXT;
1923 ctx->glUniform2uiv(ctx, location, count, value);
1924}
1925
1926void glUniform3uiv(GLint location, GLsizei count, const GLuint* value)
1927{
1928 GET_CONTEXT;
1929 ctx->glUniform3uiv(ctx, location, count, value);
1930}
1931
1932void glUniform4uiv(GLint location, GLsizei count, const GLuint* value)
1933{
1934 GET_CONTEXT;
1935 ctx->glUniform4uiv(ctx, location, count, value);
1936}
1937
1938void glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
1939{
1940 GET_CONTEXT;
1941 ctx->glUniformMatrix2x3fv(ctx, location, count, transpose, value);
1942}
1943
1944void glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
1945{
1946 GET_CONTEXT;
1947 ctx->glUniformMatrix3x2fv(ctx, location, count, transpose, value);
1948}
1949
1950void glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
1951{
1952 GET_CONTEXT;
1953 ctx->glUniformMatrix2x4fv(ctx, location, count, transpose, value);
1954}
1955
1956void glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
1957{
1958 GET_CONTEXT;
1959 ctx->glUniformMatrix4x2fv(ctx, location, count, transpose, value);
1960}
1961
1962void glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
1963{
1964 GET_CONTEXT;
1965 ctx->glUniformMatrix3x4fv(ctx, location, count, transpose, value);
1966}
1967
1968void glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
1969{
1970 GET_CONTEXT;
1971 ctx->glUniformMatrix4x3fv(ctx, location, count, transpose, value);
1972}
1973
1974void glGetUniformuiv(GLuint program, GLint location, GLuint* params)
1975{
1976 GET_CONTEXT;
1977 ctx->glGetUniformuiv(ctx, program, location, params);
1978}
1979
1980void glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
1981{
1982 GET_CONTEXT;
1983 ctx->glGetActiveUniformsiv(ctx, program, uniformCount, uniformIndices, pname, params);
1984}
1985
1986void glVertexAttribI4i(GLuint index, GLint v0, GLint v1, GLint v2, GLint v3)
1987{
1988 GET_CONTEXT;
1989 ctx->glVertexAttribI4i(ctx, index, v0, v1, v2, v3);
1990}
1991
1992void glVertexAttribI4ui(GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
1993{
1994 GET_CONTEXT;
1995 ctx->glVertexAttribI4ui(ctx, index, v0, v1, v2, v3);
1996}
1997
1998void glVertexAttribI4iv(GLuint index, const GLint* v)
1999{
2000 GET_CONTEXT;
2001 ctx->glVertexAttribI4iv(ctx, index, v);
2002}
2003
2004void glVertexAttribI4uiv(GLuint index, const GLuint* v)
2005{
2006 GET_CONTEXT;
2007 ctx->glVertexAttribI4uiv(ctx, index, v);
2008}
2009
2010void glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer)
2011{
2012 GET_CONTEXT;
2013 ctx->glVertexAttribIPointer(ctx, index, size, type, stride, pointer);
2014}
2015
2016void glVertexAttribIPointerOffsetAEMU(GLuint index, GLint size, GLenum type, GLsizei stride, GLuint offset)
2017{
2018 GET_CONTEXT;
2019 ctx->glVertexAttribIPointerOffsetAEMU(ctx, index, size, type, stride, offset);
2020}
2021
2022void glVertexAttribIPointerDataAEMU(GLuint index, GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
2023{
2024 GET_CONTEXT;
2025 ctx->glVertexAttribIPointerDataAEMU(ctx, index, size, type, stride, data, datalen);
2026}
2027
2028void glGetVertexAttribIiv(GLuint index, GLenum pname, GLint* params)
2029{
2030 GET_CONTEXT;
2031 ctx->glGetVertexAttribIiv(ctx, index, pname, params);
2032}
2033
2034void glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint* params)
2035{
2036 GET_CONTEXT;
2037 ctx->glGetVertexAttribIuiv(ctx, index, pname, params);
2038}
2039
2040void glVertexAttribDivisor(GLuint index, GLuint divisor)
2041{
2042 GET_CONTEXT;
2043 ctx->glVertexAttribDivisor(ctx, index, divisor);
2044}
2045
2046void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei primcount)
2047{
2048 GET_CONTEXT;
2049 ctx->glDrawArraysInstanced(ctx, mode, first, count, primcount);
2050}
2051
2052void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount)
2053{
2054 GET_CONTEXT;
2055 ctx->glDrawElementsInstanced(ctx, mode, count, type, indices, primcount);
2056}
2057
2058void glDrawElementsInstancedDataAEMU(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLsizei datalen)
2059{
2060 GET_CONTEXT;
2061 ctx->glDrawElementsInstancedDataAEMU(ctx, mode, count, type, indices, primcount, datalen);
2062}
2063
2064void glDrawElementsInstancedOffsetAEMU(GLenum mode, GLsizei count, GLenum type, GLuint offset, GLsizei primcount)
2065{
2066 GET_CONTEXT;
2067 ctx->glDrawElementsInstancedOffsetAEMU(ctx, mode, count, type, offset, primcount);
2068}
2069
2070void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices)
2071{
2072 GET_CONTEXT;
2073 ctx->glDrawRangeElements(ctx, mode, start, end, count, type, indices);
2074}
2075
2076void glDrawRangeElementsDataAEMU(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices, GLsizei datalen)
2077{
2078 GET_CONTEXT;
2079 ctx->glDrawRangeElementsDataAEMU(ctx, mode, start, end, count, type, indices, datalen);
2080}
2081
2082void glDrawRangeElementsOffsetAEMU(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLuint offset)
2083{
2084 GET_CONTEXT;
2085 ctx->glDrawRangeElementsOffsetAEMU(ctx, mode, start, end, count, type, offset);
2086}
2087
2088GLsync glFenceSync(GLenum condition, GLbitfield flags)
2089{
2090 GET_CONTEXT;
2091 return ctx->glFenceSync(ctx, condition, flags);
2092}
2093
2094GLenum glClientWaitSync(GLsync wait_on, GLbitfield flags, GLuint64 timeout)
2095{
2096 GET_CONTEXT;
2097 return ctx->glClientWaitSync(ctx, wait_on, flags, timeout);
2098}
2099
2100void glWaitSync(GLsync wait_on, GLbitfield flags, GLuint64 timeout)
2101{
2102 GET_CONTEXT;
2103 ctx->glWaitSync(ctx, wait_on, flags, timeout);
2104}
2105
2106void glDeleteSync(GLsync to_delete)
2107{
2108 GET_CONTEXT;
2109 ctx->glDeleteSync(ctx, to_delete);
2110}
2111
2112GLboolean glIsSync(GLsync sync)
2113{
2114 GET_CONTEXT;
2115 return ctx->glIsSync(ctx, sync);
2116}
2117
2118void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
2119{
2120 GET_CONTEXT;
Lingfeng Yange6556dc2017-01-09 12:04:12 -08002121 ctx->glGetSynciv(ctx, sync, pname, bufSize, length, values);
2122}
2123
Lingfeng Yangf000ab42017-01-11 18:31:38 -08002124uint64_t glFenceSyncAEMU(GLenum condition, GLbitfield flags)
2125{
2126 GET_CONTEXT;
2127 return ctx->glFenceSyncAEMU(ctx, condition, flags);
2128}
2129
2130GLenum glClientWaitSyncAEMU(uint64_t wait_on, GLbitfield flags, GLuint64 timeout)
2131{
2132 GET_CONTEXT;
2133 return ctx->glClientWaitSyncAEMU(ctx, wait_on, flags, timeout);
2134}
2135
2136void glWaitSyncAEMU(uint64_t wait_on, GLbitfield flags, GLuint64 timeout)
2137{
2138 GET_CONTEXT;
2139 ctx->glWaitSyncAEMU(ctx, wait_on, flags, timeout);
2140}
2141
2142void glDeleteSyncAEMU(uint64_t to_delete)
2143{
2144 GET_CONTEXT;
2145 ctx->glDeleteSyncAEMU(ctx, to_delete);
2146}
2147
2148GLboolean glIsSyncAEMU(uint64_t sync)
2149{
2150 GET_CONTEXT;
2151 return ctx->glIsSyncAEMU(ctx, sync);
2152}
2153
2154void glGetSyncivAEMU(uint64_t sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
2155{
2156 GET_CONTEXT;
2157 if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
2158 ctx->glGetSyncivAEMU(ctx, sync, pname, bufSize, length, values);
2159}
2160
Lingfeng Yange6556dc2017-01-09 12:04:12 -08002161void glDrawBuffers(GLsizei n, const GLenum* bufs)
2162{
2163 GET_CONTEXT;
2164 ctx->glDrawBuffers(ctx, n, bufs);
2165}
2166
2167void glReadBuffer(GLenum src)
2168{
2169 GET_CONTEXT;
2170 ctx->glReadBuffer(ctx, src);
2171}
2172
2173void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
2174{
2175 GET_CONTEXT;
2176 ctx->glBlitFramebuffer(ctx, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
2177}
2178
2179void glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments)
2180{
2181 GET_CONTEXT;
2182 ctx->glInvalidateFramebuffer(ctx, target, numAttachments, attachments);
2183}
2184
2185void glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height)
2186{
2187 GET_CONTEXT;
2188 ctx->glInvalidateSubFramebuffer(ctx, target, numAttachments, attachments, x, y, width, height);
2189}
2190
2191void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
2192{
2193 GET_CONTEXT;
2194 ctx->glFramebufferTextureLayer(ctx, target, attachment, texture, level, layer);
2195}
2196
2197void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
2198{
2199 GET_CONTEXT;
2200 ctx->glRenderbufferStorageMultisample(ctx, target, samples, internalformat, width, height);
2201}
2202
2203void glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
2204{
2205 GET_CONTEXT;
2206 ctx->glTexStorage2D(ctx, target, levels, internalformat, width, height);
2207}
2208
2209void glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params)
2210{
2211 GET_CONTEXT;
2212 ctx->glGetInternalformativ(ctx, target, internalformat, pname, bufSize, params);
2213}
2214
2215void glBeginTransformFeedback(GLenum primitiveMode)
2216{
2217 GET_CONTEXT;
2218 ctx->glBeginTransformFeedback(ctx, primitiveMode);
2219}
2220
2221void glEndTransformFeedback()
2222{
2223 GET_CONTEXT;
2224 ctx->glEndTransformFeedback(ctx);
2225}
2226
2227void glGenTransformFeedbacks(GLsizei n, GLuint* ids)
2228{
2229 GET_CONTEXT;
2230 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
2231 ctx->glGenTransformFeedbacks(ctx, n, ids);
2232}
2233
2234void glDeleteTransformFeedbacks(GLsizei n, const GLuint* ids)
2235{
2236 GET_CONTEXT;
2237 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
2238 ctx->glDeleteTransformFeedbacks(ctx, n, ids);
2239}
2240
2241void glBindTransformFeedback(GLenum target, GLuint id)
2242{
2243 GET_CONTEXT;
2244 ctx->glBindTransformFeedback(ctx, target, id);
2245}
2246
2247void glPauseTransformFeedback()
2248{
2249 GET_CONTEXT;
2250 ctx->glPauseTransformFeedback(ctx);
2251}
2252
2253void glResumeTransformFeedback()
2254{
2255 GET_CONTEXT;
2256 ctx->glResumeTransformFeedback(ctx);
2257}
2258
2259GLboolean glIsTransformFeedback(GLuint id)
2260{
2261 GET_CONTEXT;
2262 return ctx->glIsTransformFeedback(ctx, id);
2263}
2264
2265void glTransformFeedbackVaryings(GLuint program, GLsizei count, const char** varyings, GLenum bufferMode)
2266{
2267 GET_CONTEXT;
2268 ctx->glTransformFeedbackVaryings(ctx, program, count, varyings, bufferMode);
2269}
2270
2271void glTransformFeedbackVaryingsAEMU(GLuint program, GLsizei count, const char* packedVaryings, GLuint packedVaryingsLen, GLenum bufferMode)
2272{
2273 GET_CONTEXT;
2274 ctx->glTransformFeedbackVaryingsAEMU(ctx, program, count, packedVaryings, packedVaryingsLen, bufferMode);
2275}
2276
2277void glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, char* name)
2278{
2279 GET_CONTEXT;
2280 if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
2281 ctx->glGetTransformFeedbackVarying(ctx, program, index, bufSize, length, size, type, name);
2282}
2283
2284void glGenSamplers(GLsizei n, GLuint* samplers)
2285{
2286 GET_CONTEXT;
2287 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
2288 ctx->glGenSamplers(ctx, n, samplers);
2289}
2290
2291void glDeleteSamplers(GLsizei n, const GLuint* samplers)
2292{
2293 GET_CONTEXT;
2294 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
2295 ctx->glDeleteSamplers(ctx, n, samplers);
2296}
2297
2298void glBindSampler(GLuint unit, GLuint sampler)
2299{
2300 GET_CONTEXT;
2301 ctx->glBindSampler(ctx, unit, sampler);
2302}
2303
2304void glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param)
2305{
2306 GET_CONTEXT;
2307 ctx->glSamplerParameterf(ctx, sampler, pname, param);
2308}
2309
2310void glSamplerParameteri(GLuint sampler, GLenum pname, GLint param)
2311{
2312 GET_CONTEXT;
2313 ctx->glSamplerParameteri(ctx, sampler, pname, param);
2314}
2315
2316void glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat* params)
2317{
2318 GET_CONTEXT;
2319 ctx->glSamplerParameterfv(ctx, sampler, pname, params);
2320}
2321
2322void glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint* params)
2323{
2324 GET_CONTEXT;
2325 ctx->glSamplerParameteriv(ctx, sampler, pname, params);
2326}
2327
2328void glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat* params)
2329{
2330 GET_CONTEXT;
2331 ctx->glGetSamplerParameterfv(ctx, sampler, pname, params);
2332}
2333
2334void glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint* params)
2335{
2336 GET_CONTEXT;
2337 ctx->glGetSamplerParameteriv(ctx, sampler, pname, params);
2338}
2339
2340GLboolean glIsSampler(GLuint sampler)
2341{
2342 GET_CONTEXT;
2343 return ctx->glIsSampler(ctx, sampler);
2344}
2345
2346void glGenQueries(GLsizei n, GLuint* queries)
2347{
2348 GET_CONTEXT;
2349 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
2350 ctx->glGenQueries(ctx, n, queries);
2351}
2352
2353void glDeleteQueries(GLsizei n, const GLuint* queries)
2354{
2355 GET_CONTEXT;
2356 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
2357 ctx->glDeleteQueries(ctx, n, queries);
2358}
2359
2360void glBeginQuery(GLenum target, GLuint query)
2361{
2362 GET_CONTEXT;
2363 ctx->glBeginQuery(ctx, target, query);
2364}
2365
2366void glEndQuery(GLenum target)
2367{
2368 GET_CONTEXT;
2369 ctx->glEndQuery(ctx, target);
2370}
2371
2372void glGetQueryiv(GLenum target, GLenum pname, GLint* params)
2373{
2374 GET_CONTEXT;
2375 ctx->glGetQueryiv(ctx, target, pname, params);
2376}
2377
2378void glGetQueryObjectuiv(GLuint query, GLenum pname, GLuint* params)
2379{
2380 GET_CONTEXT;
2381 ctx->glGetQueryObjectuiv(ctx, query, pname, params);
2382}
2383
2384GLboolean glIsQuery(GLuint query)
2385{
2386 GET_CONTEXT;
2387 return ctx->glIsQuery(ctx, query);
2388}
2389
2390void glProgramParameteri(GLuint program, GLenum pname, GLint value)
2391{
2392 GET_CONTEXT;
2393 ctx->glProgramParameteri(ctx, program, pname, value);
2394}
2395
2396void glProgramBinary(GLuint program, GLenum binaryFormat, const void* binary, GLsizei length)
2397{
2398 GET_CONTEXT;
2399 ctx->glProgramBinary(ctx, program, binaryFormat, binary, length);
2400}
2401
2402void glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, void* binary)
2403{
2404 GET_CONTEXT;
2405 if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
2406 ctx->glGetProgramBinary(ctx, program, bufSize, length, binaryFormat, binary);
2407}
2408
2409GLint glGetFragDataLocation(GLuint program, const char* name)
2410{
2411 GET_CONTEXT;
2412 return ctx->glGetFragDataLocation(ctx, program, name);
2413}
2414
2415void glGetInteger64v(GLenum pname, GLint64* data)
2416{
2417 GET_CONTEXT;
2418 ctx->glGetInteger64v(ctx, pname, data);
2419}
2420
2421void glGetIntegeri_v(GLenum target, GLuint index, GLint* data)
2422{
2423 GET_CONTEXT;
2424 ctx->glGetIntegeri_v(ctx, target, index, data);
2425}
2426
2427void glGetInteger64i_v(GLenum target, GLuint index, GLint64* data)
2428{
2429 GET_CONTEXT;
2430 ctx->glGetInteger64i_v(ctx, target, index, data);
2431}
2432
2433void glTexImage3D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* data)
2434{
2435 GET_CONTEXT;
2436 ctx->glTexImage3D(ctx, target, level, internalFormat, width, height, depth, border, format, type, data);
2437}
2438
2439void glTexImage3DOffsetAEMU(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLuint offset)
2440{
2441 GET_CONTEXT;
2442 ctx->glTexImage3DOffsetAEMU(ctx, target, level, internalFormat, width, height, depth, border, format, type, offset);
2443}
2444
2445void glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
2446{
2447 GET_CONTEXT;
2448 ctx->glTexStorage3D(ctx, target, levels, internalformat, width, height, depth);
2449}
2450
2451void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* data)
2452{
2453 GET_CONTEXT;
2454 ctx->glTexSubImage3D(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
2455}
2456
2457void glTexSubImage3DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLuint offset)
2458{
2459 GET_CONTEXT;
2460 ctx->glTexSubImage3DOffsetAEMU(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, offset);
2461}
2462
2463void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
2464{
2465 GET_CONTEXT;
2466 if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
2467 ctx->glCompressedTexImage3D(ctx, target, level, internalformat, width, height, depth, border, imageSize, data);
2468}
2469
2470void glCompressedTexImage3DOffsetAEMU(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLuint offset)
2471{
2472 GET_CONTEXT;
2473 ctx->glCompressedTexImage3DOffsetAEMU(ctx, target, level, internalformat, width, height, depth, border, imageSize, offset);
2474}
2475
2476void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data)
2477{
2478 GET_CONTEXT;
2479 if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
2480 ctx->glCompressedTexSubImage3D(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
2481}
2482
2483void glCompressedTexSubImage3DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLuint data)
2484{
2485 GET_CONTEXT;
2486 ctx->glCompressedTexSubImage3DOffsetAEMU(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
2487}
2488
2489void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
2490{
2491 GET_CONTEXT;
2492 ctx->glCopyTexSubImage3D(ctx, target, level, xoffset, yoffset, zoffset, x, y, width, height);
2493}
2494
2495const GLubyte* glGetStringi(GLenum name, GLuint index)
2496{
2497 GET_CONTEXT;
2498 return ctx->glGetStringi(ctx, name, index);
2499}
2500
2501void glGetBooleani_v(GLenum target, GLuint index, GLboolean* data)
2502{
2503 GET_CONTEXT;
2504 ctx->glGetBooleani_v(ctx, target, index, data);
2505}
2506
2507void glMemoryBarrier(GLbitfield barriers)
2508{
2509 GET_CONTEXT;
2510 ctx->glMemoryBarrier(ctx, barriers);
2511}
2512
2513void glMemoryBarrierByRegion(GLbitfield barriers)
2514{
2515 GET_CONTEXT;
2516 ctx->glMemoryBarrierByRegion(ctx, barriers);
2517}
2518
2519void glGenProgramPipelines(GLsizei n, GLuint* pipelines)
2520{
2521 GET_CONTEXT;
2522 ctx->glGenProgramPipelines(ctx, n, pipelines);
2523}
2524
2525void glDeleteProgramPipelines(GLsizei n, const GLuint* pipelines)
2526{
2527 GET_CONTEXT;
2528 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
2529 ctx->glDeleteProgramPipelines(ctx, n, pipelines);
2530}
2531
2532void glBindProgramPipeline(GLuint pipeline)
2533{
2534 GET_CONTEXT;
2535 ctx->glBindProgramPipeline(ctx, pipeline);
2536}
2537
2538void glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint* params)
2539{
2540 GET_CONTEXT;
2541 ctx->glGetProgramPipelineiv(ctx, pipeline, pname, params);
2542}
2543
2544void glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
2545{
2546 GET_CONTEXT;
2547 if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
2548 ctx->glGetProgramPipelineInfoLog(ctx, pipeline, bufSize, length, infoLog);
2549}
2550
2551void glValidateProgramPipeline(GLuint pipeline)
2552{
2553 GET_CONTEXT;
2554 ctx->glValidateProgramPipeline(ctx, pipeline);
2555}
2556
2557GLboolean glIsProgramPipeline(GLuint pipeline)
2558{
2559 GET_CONTEXT;
2560 return ctx->glIsProgramPipeline(ctx, pipeline);
2561}
2562
2563void glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program)
2564{
2565 GET_CONTEXT;
2566 ctx->glUseProgramStages(ctx, pipeline, stages, program);
2567}
2568
Lingfeng Yangd3ae1062017-01-18 11:42:04 -08002569void glActiveShaderProgram(GLuint pipeline, GLuint program)
2570{
2571 GET_CONTEXT;
2572 ctx->glActiveShaderProgram(ctx, pipeline, program);
2573}
2574
Lingfeng Yange6556dc2017-01-09 12:04:12 -08002575GLuint glCreateShaderProgramv(GLenum type, GLsizei count, const char** strings)
2576{
2577 GET_CONTEXT;
2578 return ctx->glCreateShaderProgramv(ctx, type, count, strings);
2579}
2580
2581GLuint glCreateShaderProgramvAEMU(GLenum type, GLsizei count, const char* packedStrings, GLuint packedLen)
2582{
2583 GET_CONTEXT;
2584 return ctx->glCreateShaderProgramvAEMU(ctx, type, count, packedStrings, packedLen);
2585}
2586
2587void glProgramUniform1f(GLuint program, GLint location, GLfloat v0)
2588{
2589 GET_CONTEXT;
2590 ctx->glProgramUniform1f(ctx, program, location, v0);
2591}
2592
2593void glProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1)
2594{
2595 GET_CONTEXT;
2596 ctx->glProgramUniform2f(ctx, program, location, v0, v1);
2597}
2598
2599void glProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
2600{
2601 GET_CONTEXT;
2602 ctx->glProgramUniform3f(ctx, program, location, v0, v1, v2);
2603}
2604
2605void glProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
2606{
2607 GET_CONTEXT;
2608 ctx->glProgramUniform4f(ctx, program, location, v0, v1, v2, v3);
2609}
2610
2611void glProgramUniform1i(GLuint program, GLint location, GLint v0)
2612{
2613 GET_CONTEXT;
2614 ctx->glProgramUniform1i(ctx, program, location, v0);
2615}
2616
2617void glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1)
2618{
2619 GET_CONTEXT;
2620 ctx->glProgramUniform2i(ctx, program, location, v0, v1);
2621}
2622
2623void glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
2624{
2625 GET_CONTEXT;
2626 ctx->glProgramUniform3i(ctx, program, location, v0, v1, v2);
2627}
2628
2629void glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
2630{
2631 GET_CONTEXT;
2632 ctx->glProgramUniform4i(ctx, program, location, v0, v1, v2, v3);
2633}
2634
2635void glProgramUniform1ui(GLuint program, GLint location, GLuint v0)
2636{
2637 GET_CONTEXT;
2638 ctx->glProgramUniform1ui(ctx, program, location, v0);
2639}
2640
2641void glProgramUniform2ui(GLuint program, GLint location, GLint v0, GLuint v1)
2642{
2643 GET_CONTEXT;
2644 ctx->glProgramUniform2ui(ctx, program, location, v0, v1);
2645}
2646
2647void glProgramUniform3ui(GLuint program, GLint location, GLint v0, GLint v1, GLuint v2)
2648{
2649 GET_CONTEXT;
2650 ctx->glProgramUniform3ui(ctx, program, location, v0, v1, v2);
2651}
2652
2653void glProgramUniform4ui(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLuint v3)
2654{
2655 GET_CONTEXT;
2656 ctx->glProgramUniform4ui(ctx, program, location, v0, v1, v2, v3);
2657}
2658
2659void glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat* value)
2660{
2661 GET_CONTEXT;
2662 ctx->glProgramUniform1fv(ctx, program, location, count, value);
2663}
2664
2665void glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat* value)
2666{
2667 GET_CONTEXT;
2668 ctx->glProgramUniform2fv(ctx, program, location, count, value);
2669}
2670
2671void glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat* value)
2672{
2673 GET_CONTEXT;
2674 ctx->glProgramUniform3fv(ctx, program, location, count, value);
2675}
2676
2677void glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat* value)
2678{
2679 GET_CONTEXT;
2680 ctx->glProgramUniform4fv(ctx, program, location, count, value);
2681}
2682
2683void glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint* value)
2684{
2685 GET_CONTEXT;
2686 ctx->glProgramUniform1iv(ctx, program, location, count, value);
2687}
2688
2689void glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint* value)
2690{
2691 GET_CONTEXT;
2692 ctx->glProgramUniform2iv(ctx, program, location, count, value);
2693}
2694
2695void glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint* value)
2696{
2697 GET_CONTEXT;
2698 ctx->glProgramUniform3iv(ctx, program, location, count, value);
2699}
2700
2701void glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint* value)
2702{
2703 GET_CONTEXT;
2704 ctx->glProgramUniform4iv(ctx, program, location, count, value);
2705}
2706
2707void glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint* value)
2708{
2709 GET_CONTEXT;
2710 ctx->glProgramUniform1uiv(ctx, program, location, count, value);
2711}
2712
2713void glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint* value)
2714{
2715 GET_CONTEXT;
2716 ctx->glProgramUniform2uiv(ctx, program, location, count, value);
2717}
2718
2719void glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint* value)
2720{
2721 GET_CONTEXT;
2722 ctx->glProgramUniform3uiv(ctx, program, location, count, value);
2723}
2724
2725void glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint* value)
2726{
2727 GET_CONTEXT;
2728 ctx->glProgramUniform4uiv(ctx, program, location, count, value);
2729}
2730
2731void glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2732{
2733 GET_CONTEXT;
2734 ctx->glProgramUniformMatrix2fv(ctx, program, location, count, transpose, value);
2735}
2736
2737void glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2738{
2739 GET_CONTEXT;
2740 ctx->glProgramUniformMatrix3fv(ctx, program, location, count, transpose, value);
2741}
2742
2743void glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2744{
2745 GET_CONTEXT;
2746 ctx->glProgramUniformMatrix4fv(ctx, program, location, count, transpose, value);
2747}
2748
2749void glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2750{
2751 GET_CONTEXT;
2752 ctx->glProgramUniformMatrix2x3fv(ctx, program, location, count, transpose, value);
2753}
2754
2755void glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2756{
2757 GET_CONTEXT;
2758 ctx->glProgramUniformMatrix3x2fv(ctx, program, location, count, transpose, value);
2759}
2760
2761void glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2762{
2763 GET_CONTEXT;
2764 ctx->glProgramUniformMatrix2x4fv(ctx, program, location, count, transpose, value);
2765}
2766
2767void glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2768{
2769 GET_CONTEXT;
2770 ctx->glProgramUniformMatrix4x2fv(ctx, program, location, count, transpose, value);
2771}
2772
2773void glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2774{
2775 GET_CONTEXT;
2776 ctx->glProgramUniformMatrix3x4fv(ctx, program, location, count, transpose, value);
2777}
2778
2779void glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2780{
2781 GET_CONTEXT;
2782 ctx->glProgramUniformMatrix4x3fv(ctx, program, location, count, transpose, value);
2783}
2784
2785void glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint* params)
2786{
2787 GET_CONTEXT;
2788 ctx->glGetProgramInterfaceiv(ctx, program, programInterface, pname, params);
2789}
2790
2791void glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei* length, GLint* params)
2792{
2793 GET_CONTEXT;
2794 if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
2795 ctx->glGetProgramResourceiv(ctx, program, programInterface, index, propCount, props, bufSize, length, params);
2796}
2797
2798GLuint glGetProgramResourceIndex(GLuint program, GLenum programInterface, const char* name)
2799{
2800 GET_CONTEXT;
2801 return ctx->glGetProgramResourceIndex(ctx, program, programInterface, name);
2802}
2803
2804GLint glGetProgramResourceLocation(GLuint program, GLenum programInterface, const char* name)
2805{
2806 GET_CONTEXT;
2807 return ctx->glGetProgramResourceLocation(ctx, program, programInterface, name);
2808}
2809
2810void glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, char* name)
2811{
2812 GET_CONTEXT;
2813 if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
2814 ctx->glGetProgramResourceName(ctx, program, programInterface, index, bufSize, length, name);
2815}
2816
2817void glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)
2818{
2819 GET_CONTEXT;
2820 ctx->glBindImageTexture(ctx, unit, texture, level, layered, layer, access, format);
2821}
2822
2823void glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)
2824{
2825 GET_CONTEXT;
2826 ctx->glDispatchCompute(ctx, num_groups_x, num_groups_y, num_groups_z);
2827}
2828
2829void glDispatchComputeIndirect(GLintptr indirect)
2830{
2831 GET_CONTEXT;
2832 ctx->glDispatchComputeIndirect(ctx, indirect);
2833}
2834
2835void glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLintptr stride)
2836{
2837 GET_CONTEXT;
2838 ctx->glBindVertexBuffer(ctx, bindingindex, buffer, offset, stride);
2839}
2840
2841void glVertexAttribBinding(GLuint attribindex, GLuint bindingindex)
2842{
2843 GET_CONTEXT;
2844 ctx->glVertexAttribBinding(ctx, attribindex, bindingindex);
2845}
2846
2847void glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
2848{
2849 GET_CONTEXT;
2850 ctx->glVertexAttribFormat(ctx, attribindex, size, type, normalized, relativeoffset);
2851}
2852
2853void glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
2854{
2855 GET_CONTEXT;
2856 ctx->glVertexAttribIFormat(ctx, attribindex, size, type, relativeoffset);
2857}
2858
2859void glVertexBindingDivisor(GLuint bindingindex, GLuint divisor)
2860{
2861 GET_CONTEXT;
2862 ctx->glVertexBindingDivisor(ctx, bindingindex, divisor);
2863}
2864
2865void glDrawArraysIndirect(GLenum mode, const void* indirect)
2866{
2867 GET_CONTEXT;
2868 ctx->glDrawArraysIndirect(ctx, mode, indirect);
2869}
2870
2871void glDrawArraysIndirectDataAEMU(GLenum mode, const void* indirect, GLuint datalen)
2872{
2873 GET_CONTEXT;
2874 ctx->glDrawArraysIndirectDataAEMU(ctx, mode, indirect, datalen);
2875}
2876
2877void glDrawArraysIndirectOffsetAEMU(GLenum mode, GLuint offset)
2878{
2879 GET_CONTEXT;
2880 ctx->glDrawArraysIndirectOffsetAEMU(ctx, mode, offset);
2881}
2882
2883void glDrawElementsIndirect(GLenum mode, GLenum type, const void* indirect)
2884{
2885 GET_CONTEXT;
2886 ctx->glDrawElementsIndirect(ctx, mode, type, indirect);
2887}
2888
2889void glDrawElementsIndirectDataAEMU(GLenum mode, GLenum type, const void* indirect, GLuint datalen)
2890{
2891 GET_CONTEXT;
2892 ctx->glDrawElementsIndirectDataAEMU(ctx, mode, type, indirect, datalen);
2893}
2894
2895void glDrawElementsIndirectOffsetAEMU(GLenum mode, GLenum type, GLuint offset)
2896{
2897 GET_CONTEXT;
2898 ctx->glDrawElementsIndirectOffsetAEMU(ctx, mode, type, offset);
2899}
2900
2901void glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
2902{
2903 GET_CONTEXT;
2904 ctx->glTexStorage2DMultisample(ctx, target, samples, internalformat, width, height, fixedsamplelocations);
2905}
2906
2907void glSampleMaski(GLuint maskNumber, GLbitfield mask)
2908{
2909 GET_CONTEXT;
2910 ctx->glSampleMaski(ctx, maskNumber, mask);
2911}
2912
2913void glGetMultisamplefv(GLenum pname, GLuint index, GLfloat* val)
2914{
2915 GET_CONTEXT;
2916 ctx->glGetMultisamplefv(ctx, pname, index, val);
2917}
2918
2919void glFramebufferParameteri(GLenum target, GLenum pname, GLint param)
2920{
2921 GET_CONTEXT;
2922 ctx->glFramebufferParameteri(ctx, target, pname, param);
2923}
2924
2925void glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint* params)
2926{
2927 GET_CONTEXT;
2928 ctx->glGetFramebufferParameteriv(ctx, target, pname, params);
2929}
2930
2931void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat* params)
2932{
2933 GET_CONTEXT;
2934 ctx->glGetTexLevelParameterfv(ctx, target, level, pname, params);
2935}
2936
2937void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint* params)
2938{
2939 GET_CONTEXT;
2940 ctx->glGetTexLevelParameteriv(ctx, target, level, pname, params);
2941}
2942
Roman Kiryanovbe1c0c22018-10-02 18:07:14 -07002943void glMapBufferRangeDMA(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, uint64_t paddr)
2944{
2945 GET_CONTEXT;
2946 ctx->glMapBufferRangeDMA(ctx, target, offset, length, access, paddr);
2947}
2948
2949void glUnmapBufferDMA(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, uint64_t paddr, GLboolean* out_res)
2950{
2951 GET_CONTEXT;
2952 ctx->glUnmapBufferDMA(ctx, target, offset, length, access, paddr, out_res);
2953}
2954
Roman Kiryanovdaecd142018-11-14 14:56:27 -08002955uint64_t glMapBufferRangeDirect(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, uint64_t paddr)
2956{
2957 GET_CONTEXT;
2958 return ctx->glMapBufferRangeDirect(ctx, target, offset, length, access, paddr);
2959}
2960
2961void glUnmapBufferDirect(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, uint64_t paddr, uint64_t guest_ptr, GLboolean* out_res)
2962{
2963 GET_CONTEXT;
2964 ctx->glUnmapBufferDirect(ctx, target, offset, length, access, paddr, guest_ptr, out_res);
2965}
2966
2967void glFlushMappedBufferRangeDirect(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
2968{
2969 GET_CONTEXT;
2970 ctx->glFlushMappedBufferRangeDirect(ctx, target, offset, length, access);
2971}
2972
Yahan Zhou72944ba2019-01-02 15:43:46 -08002973GLenum glGetGraphicsResetStatusEXT()
2974{
2975 GET_CONTEXT;
2976 return ctx->glGetGraphicsResetStatusEXT(ctx);
2977}
2978
2979void glReadnPixelsEXT(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid* data)
2980{
2981 GET_CONTEXT;
2982 ctx->glReadnPixelsEXT(ctx, x, y, width, height, format, type, bufSize, data);
2983}
2984
2985void glGetnUniformfvEXT(GLuint program, GLint location, GLsizei bufSize, GLfloat* params)
2986{
2987 GET_CONTEXT;
2988 ctx->glGetnUniformfvEXT(ctx, program, location, bufSize, params);
2989}
2990
2991void glGetnUniformivEXT(GLuint program, GLint location, GLsizei bufSize, GLint* params)
2992{
2993 GET_CONTEXT;
2994 ctx->glGetnUniformivEXT(ctx, program, location, bufSize, params);
2995}
2996
Lingfeng Yang09545912019-01-30 09:22:38 -08002997void glDrawArraysNullAEMU(GLenum mode, GLint first, GLsizei count)
2998{
2999 GET_CONTEXT;
3000 ctx->glDrawArraysNullAEMU(ctx, mode, first, count);
3001}
3002
3003void glDrawElementsNullAEMU(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices)
3004{
3005 GET_CONTEXT;
3006 ctx->glDrawElementsNullAEMU(ctx, mode, count, type, indices);
3007}
3008
3009void glDrawElementsOffsetNullAEMU(GLenum mode, GLsizei count, GLenum type, GLuint offset)
3010{
3011 GET_CONTEXT;
3012 ctx->glDrawElementsOffsetNullAEMU(ctx, mode, count, type, offset);
3013}
3014
3015void glDrawElementsDataNullAEMU(GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen)
3016{
3017 GET_CONTEXT;
3018 ctx->glDrawElementsDataNullAEMU(ctx, mode, count, type, data, datalen);
3019}
3020