GLOBAL base_opcode 2048 encoder_headers "glUtils.h" "GL2EncoderUtils.h" #void glBindAttribLocation(GLuint program, GLuint index, GLchar *name) glBindAttribLocation flag custom_decoder len name (strlen(name) + 1) #void glBufferData(GLenum target, GLsizeiptr size, GLvoid *data, GLenum usage) glBufferData len data size var_flag data nullAllowed isLarge #void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data) glBufferSubData len data size var_flag data nullAllowed isLarge #void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLvoid *data) glCompressedTexImage2D len data imageSize param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } var_flag data nullAllowed isLarge param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } #void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLvoid *data) glCompressedTexSubImage2D len data imageSize param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } var_flag data nullAllowed isLarge param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } glDeleteShader flag custom_decoder glDeleteProgram flag custom_decoder #void glDeleteBuffers(GLsizei n, GLuint *buffers) glDeleteBuffers flag custom_decoder len buffers (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } #void glDeleteFramebuffers(GLsizei n, GLuint *framebuffers) glDeleteFramebuffers flag custom_decoder len framebuffers (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } #void glDeleteRenderbuffers(GLsizei n, GLuint *renderbuffers) glDeleteRenderbuffers flag custom_decoder len renderbuffers (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } #void glDeleteTextures(GLsizei n, GLuint *textures) glDeleteTextures flag custom_decoder len textures (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } #void glDrawElements(GLenum mode, GLsizei count, GLenum type, GLvoid *indices) glDrawElements flag unsupported glCreateShader flag custom_decoder glCompileShader flag custom_decoder glAttachShader flag custom_decoder glDetachShader flag custom_decoder glIsShader flag custom_decoder glLinkProgram flag custom_decoder glCreateProgram flag custom_decoder #void glGenBuffers(GLsizei n, GLuint *buffers) glGenBuffers flag custom_decoder len buffers (n * sizeof(GLuint)) dir buffers out param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } #void glGenFramebuffers(GLsizei n, GLuint *framebuffers) glGenFramebuffers flag custom_decoder len framebuffers (n * sizeof(GLuint)) dir framebuffers out param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } #void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers) glGenRenderbuffers flag custom_decoder len renderbuffers (n * sizeof(GLuint)) dir renderbuffers out param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } #void glGenTextures(GLsizei n, GLuint *textures) glGenTextures flag custom_decoder len textures (n * sizeof(GLuint)) dir textures out param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } #void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, GLchar *name) glGetActiveAttrib param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; } len name bufsize dir name out var_flag name nullAllowed dir length out len length (sizeof(GLsizei)) var_flag length nullAllowed dir size out len size (sizeof(GLint)) var_flag size nullAllowed dir type out len type (sizeof(GLenum)) var_flag type nullAllowed #void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, GLchar *name) glGetActiveUniform param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; } len name bufsize dir name out var_flag name nullAllowed dir length out len length (sizeof(GLsizei)) var_flag length nullAllowed dir size out len size (sizeof(GLint)) var_flag size nullAllowed dir type out len type (sizeof(GLenum)) var_flag type nullAllowed #void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders) glGetAttachedShaders len shaders (maxcount*sizeof(GLuint)) dir shaders out dir count out var_flag count nullAllowed len count (sizeof(GLsizei)) #int glGetAttribLocation(GLuint program, GLchar *name) glGetAttribLocation len name (strlen(name) + 1) #void glGetBooleanv(GLenum pname, GLboolean *params) glGetBooleanv dir params out len params (glUtilsParamSize(pname) * sizeof(GLboolean)) #void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params) glGetBufferParameteriv len params (sizeof(GLint)) dir params out #void glGetFloatv(GLenum pname, GLfloat *params) glGetFloatv dir params out len params (glUtilsParamSize(pname) * sizeof(GLfloat)) #void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params) glGetFramebufferAttachmentParameteriv dir params out len params (sizeof(GLint)) #void glGetIntegerv(GLenum pname, GLint *params) glGetIntegerv dir params out len params (glUtilsParamSize(pname) * sizeof(GLint)) #void glGetProgramiv(GLuint program, GLenum pname, GLint *params) glGetProgramiv flag custom_decoder dir params out len params (glUtilsParamSize(pname) * sizeof(GLint)) #void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei *length, GLchar *infolog) glGetProgramInfoLog flag custom_decoder dir infolog out len infolog bufsize param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; } dir length out len length sizeof(GLsizei) var_flag length nullAllowed #void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params) glGetRenderbufferParameteriv dir params out len params sizeof(GLint) # XXX - might change if pname with value larger then one is added #void glGetShaderiv(GLuint shader, GLenum pname, GLint *params) glGetShaderiv flag custom_decoder dir params out len params sizeof(GLint) # XXX - might change if pname with value larger then one is added #void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *infolog) glGetShaderInfoLog flag custom_decoder dir length out len length (sizeof(GLsizei)) var_flag length nullAllowed dir infolog out len infolog bufsize param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; } #void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision) glGetShaderPrecisionFormat dir range out len range (2 * sizeof(GLint)) dir precision out len precision (sizeof(GLint)) #void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source) glGetShaderSource flag custom_decoder dir length out len length (sizeof(GLsizei)) var_flag length nullAllowed dir source out len source bufsize param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; } #GLubyte* glGetString(GLenum name) glGetString flag unsupported #void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params) glGetTexParameterfv dir params out len params (glUtilsParamSize(pname) * sizeof(GLfloat)) #void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params) glGetTexParameteriv dir params out len params (glUtilsParamSize(pname) * sizeof(GLint)) #void glGetUniformfv(GLuint program, GLint location, GLfloat *params) glGetUniformfv dir params out len params glSizeof(glesv2_enc::uniformType(self, program, location)) #void glGetUniformiv(GLuint program, GLint location, GLint *params) glGetUniformiv dir params out len params glSizeof(glesv2_enc::uniformType(self, program, location)) #int glGetUniformLocation(GLuint program, GLchar *name) glGetUniformLocation len name (strlen(name) + 1) # client-state shall be handled locally by the encoder in most cases. # however, GL_CURRENT_VERTEX_ATTRIB and potential others are handled by the server side, # thus we still need to implement it. #void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params) glGetVertexAttribfv dir params out len params (glUtilsParamSize(pname) * sizeof(GLfloat)) #see glGetVertexAttribfv for comments #void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params) glGetVertexAttribiv dir params out len params (glUtilsParamSize(pname) * sizeof(GLint)) #void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) glReadPixels dir pixels out len pixels glesv2_enc::pixelDataSize(self, width, height, format, type, 1) custom_guest_unpack pixels stream->readbackPixels(self, width, height, format, type, pixels) glReadPixelsOffsetAEMU flag custom_decoder flag not_api #void glShaderBinary(GLsizei n, GLuint *shaders, GLenum binaryformat, GLvoid *binary, GLsizei length) glShaderBinary flag unsupported #void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLvoid *pixels) glTexImage2D dir pixels in len pixels glesv2_enc::pixelDataSize(self, width, height, format, type, 0) custom_guest_pack pixels stream->uploadPixels(self, width, height, 1, format, type, pixels) var_flag pixels nullAllowed isLarge #void glTexParameterfv(GLenum target, GLenum pname, GLfloat *params) glTexParameterfv len params (glUtilsParamSize(pname) * sizeof(GLfloat)) #void glTexParameteriv(GLenum target, GLenum pname, GLint *params) glTexParameteriv len params (glUtilsParamSize(pname) * sizeof(GLint)) #void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) glTexSubImage2D len pixels glesv2_enc::pixelDataSize(self, width, height, format, type, 0) custom_guest_pack pixels stream->uploadPixels(self, width, height, 1, format, type, pixels) var_flag pixels nullAllowed isLarge #void glUniform1fv(GLint location, GLsizei count, GLfloat *v) glUniform1fv len v (count * sizeof(GLfloat)) #void glUniform1iv(GLint location, GLsizei count, GLint *v) glUniform1iv len v (count * sizeof(GLint)) #void glUniform2fv(GLint location, GLsizei count, GLfloat *v) glUniform2fv len v (count * 2 * sizeof(GLfloat)) #void glUniform2iv(GLint location, GLsizei count, GLint *v) glUniform2iv len v (count * 2 * sizeof(GLint)) #void glUniform3fv(GLint location, GLsizei count, GLfloat *v) glUniform3fv len v (count * 3 * sizeof(GLfloat)) #void glUniform3iv(GLint location, GLsizei count, GLint *v) glUniform3iv len v (3 * count * sizeof(GLint)) #void glUniform4fv(GLint location, GLsizei count, GLfloat *v) glUniform4fv len v (4 * count * sizeof(GLfloat)) #void glUniform4iv(GLint location, GLsizei count, GLint *v) glUniform4iv len v (4 * count * sizeof(GLint)) #void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, GLfloat *value) glUniformMatrix2fv len value (count * 4 * sizeof(GLfloat)) #void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, GLfloat *value) glUniformMatrix3fv len value (count * 9 * sizeof(GLfloat)) #void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, GLfloat *value) glUniformMatrix4fv len value (count * 16 * sizeof(GLfloat)) #void glVertexAttrib1fv(GLuint indx, GLfloat *values) glVertexAttrib1fv len values (sizeof(GLfloat)) #void glVertexAttrib2fv(GLuint indx, GLfloat *values) glVertexAttrib2fv len values (2 * sizeof(GLfloat)) #void glVertexAttrib3fv(GLuint indx, GLfloat *values) glVertexAttrib3fv len values (3 * sizeof(GLfloat)) #void glVertexAttrib4fv(GLuint indx, GLfloat *values) glVertexAttrib4fv len values (4 * sizeof(GLfloat)) #void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLvoid *ptr) glVertexAttribPointer flag unsupported #void glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary) glGetProgramBinaryOES flag unsupported #void glProgramBinaryOES(GLuint program, GLenum binaryFormat, GLvoid *binary, GLint length) glProgramBinaryOES flag unsupported #void* glMapBufferOES(GLenum target, GLenum access) glMapBufferOES flag unsupported #void glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLvoid *pixels) glTexImage3DOES len pixels glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0) var_flag pixels nullAllowed isLarge #void glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *pixels) glTexSubImage3DOES len pixels glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0) var_flag pixels nullAllowed isLarge #void glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLvoid *data) glCompressedTexImage3DOES len data imageSize param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } var_flag data nullAllowed isLarge #void glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLvoid *data) glCompressedTexSubImage3DOES len data imageSize param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } var_flag data nullAllowed isLarge #void glDeleteVertexArraysOES(GLsizei n, GLuint *arrays) glDeleteVertexArraysOES flag custom_decoder len arrays (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } #void glGenVertexArraysOES(GLsizei n, GLuint *arrays) glGenVertexArraysOES flag custom_decoder len arrays (n * sizeof(GLuint)) dir arrays out param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } #void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, GLenum *attachments) glDiscardFramebufferEXT len attachments (numAttachments * sizeof(GLenum)) #void glMultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount) glMultiDrawArraysEXT flag unsupported #void glMultiDrawElementsEXT(GLenum mode, GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount) glMultiDrawElementsEXT flag unsupported # handled by encoder #void glShaderSource(GLuint shader, GLsizei count, GLstr *string, const GLint *length) glShaderSource flag unsupported #void glGetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize, GLuint *groups) glGetPerfMonitorGroupsAMD flag unsupported #void glGetPerfMonitorCountersAMD(GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters) glGetPerfMonitorCountersAMD flag unsupported #void glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString) glGetPerfMonitorGroupStringAMD flag unsupported #void glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString) glGetPerfMonitorCounterStringAMD flag unsupported #void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid *data) glGetPerfMonitorCounterInfoAMD flag unsupported #void glGenPerfMonitorsAMD(GLsizei n, GLuint *monitors) glGenPerfMonitorsAMD flag unsupported #void glDeletePerfMonitorsAMD(GLsizei n, GLuint *monitors) glDeletePerfMonitorsAMD flag unsupported #void glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList) glSelectPerfMonitorCountersAMD flag unsupported #void glBeginPerfMonitorAMD(GLuint monitor) glBeginPerfMonitorAMD flag unsupported #void glEndPerfMonitorAMD(GLuint monitor) glEndPerfMonitorAMD flag unsupported #void glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten) glGetPerfMonitorCounterDataAMD flag unsupported #void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) glRenderbufferStorageMultisampleIMG flag unsupported #void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples) glFramebufferTexture2DMultisampleIMG flag unsupported #void glDeleteFencesNV(GLsizei n, GLuint *fences) glDeleteFencesNV flag unsupported #void glGenFencesNV(GLsizei n, GLuint *fences) glGenFencesNV flag unsupported #GLboolean glIsFenceNV(GLuint fence) glIsFenceNV flag unsupported #GLboolean glTestFenceNV(GLuint fence) glTestFenceNV flag unsupported #void glGetFenceivNV(GLuint fence, GLenum pname, GLint *params) glGetFenceivNV flag unsupported #void glFinishFenceNV(GLuint fence) glFinishFenceNV flag unsupported #void glSetFenceNV(GLuint fence, GLenum condition) glSetFenceNV flag unsupported #void glCoverageMaskNV(GLboolean mask) glCoverageMaskNV flag unsupported #void glCoverageOperationNV(GLenum operation) glCoverageOperationNV flag unsupported #void glGetDriverControlsQCOM(GLint *num, GLsizei size, GLuint *driverControls) glGetDriverControlsQCOM flag unsupported #void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString) glGetDriverControlStringQCOM flag unsupported #void glEnableDriverControlQCOM(GLuint driverControl) glEnableDriverControlQCOM flag unsupported #void glDisableDriverControlQCOM(GLuint driverControl) glDisableDriverControlQCOM flag unsupported #void glExtGetTexturesQCOM(GLuint *textures, GLint maxTextures, GLint *numTextures) glExtGetTexturesQCOM flag unsupported #void glExtGetBuffersQCOM(GLuint *buffers, GLint maxBuffers, GLint *numBuffers) glExtGetBuffersQCOM flag unsupported #void glExtGetRenderbuffersQCOM(GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers) glExtGetRenderbuffersQCOM flag unsupported #void glExtGetFramebuffersQCOM(GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers) glExtGetFramebuffersQCOM flag unsupported #void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params) glExtGetTexLevelParameterivQCOM flag unsupported #void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param) glExtTexObjectStateOverrideiQCOM flag unsupported #void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels) glExtGetTexSubImageQCOM flag unsupported #void glExtGetBufferPointervQCOM(GLenum target, GLvoidptr *params) glExtGetBufferPointervQCOM flag unsupported #void glExtGetShadersQCOM(GLuint *shaders, GLint maxShaders, GLint *numShaders) glExtGetShadersQCOM flag unsupported #void glExtGetProgramsQCOM(GLuint *programs, GLint maxPrograms, GLint *numPrograms) glExtGetProgramsQCOM flag unsupported #GLboolean glExtIsProgramBinaryQCOM(GLuint program) glExtIsProgramBinaryQCOM flag unsupported #void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar *source, GLint *length) glExtGetProgramBinarySourceQCOM flag unsupported #void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask) glStartTilingQCOM flag unsupported #void glEndTilingQCOM(GLbitfield preserveMask) glEndTilingQCOM flag unsupported #void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void * data, GLuint datalen) glVertexAttribPointerData len data datalen custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen) flag custom_decoder flag not_api glVertexAttribPointerOffset flag custom_decoder flag not_api #client-state, handled by the encoder #GL_ENTRY(void, glGetVertexAttribPointerv, GLuint index, GLenum pname, GLvoid** pointer) glGetVertexAttribPointerv flag unsupported glDrawElementsData len data datalen flag custom_decoder flag not_api glDrawElementsOffset flag custom_decoder flag not_api #GL_ENTRY(void, glGetCompressedTextureFormats, int count, GLint *formats) glGetCompressedTextureFormats dir formats out len formats (count * sizeof(GLint)) flag custom_decoder flag not_api #GL_ENTRY(void, glShaderString, GLuint shader, GLchar *string, GLsizei len) glShaderString len string len flag custom_decoder flag not_api glFinishRoundTrip flag custom_decoder flag not_api # GLES 3.0 glGenVertexArrays flag custom_decoder len arrays (n * sizeof(GLuint)) dir arrays out param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } glDeleteVertexArrays flag custom_decoder len arrays (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } glMapBufferRange flag unsupported glUnmapBuffer flag unsupported glFlushMappedBufferRange flag unsupported glMapBufferRangeAEMU dir mapped out len mapped length var_flag mapped nullAllowed flag custom_decoder flag not_api glUnmapBufferAEMU dir guest_buffer in len guest_buffer length var_flag guest_buffer nullAllowed dir out_res out len out_res (sizeof(GLboolean)) flag custom_decoder flag not_api glFlushMappedBufferRangeAEMU dir guest_buffer in len guest_buffer length var_flag guest_buffer nullAllowed flag custom_decoder flag not_api glReadPixelsOffsetAEMU flag custom_decoder flag not_api glCompressedTexImage2DOffsetAEMU flag custom_decoder flag not_api glCompressedTexSubImage2DOffsetAEMU flag custom_decoder flag not_api glTexImage2DOffsetAEMU flag custom_decoder flag not_api glTexSubImage2DOffsetAEMU flag custom_decoder flag not_api glCopyBufferSubData flag flushOnEncode glClearBufferiv dir value in len value (sizeof(GLint) * glesv2_enc::clearBufferNumElts(self, buffer)) glClearBufferuiv dir value in len value (sizeof(GLuint) * glesv2_enc::clearBufferNumElts(self, buffer)) glClearBufferfv dir value in len value (sizeof(GLfloat) * glesv2_enc::clearBufferNumElts(self, buffer)) glGetBufferParameteri64v flag unsupported glGetBufferPointerv flag unsupported glGetUniformBlockIndex len uniformBlockName (strlen(uniformBlockName) + 1) glGetUniformIndices flag unsupported glGetUniformIndicesAEMU dir packedUniformNames in len packedUniformNames packedLen dir uniformIndices out len uniformIndices (uniformCount * sizeof(GLuint)) flag custom_decoder flag not_api glGetActiveUniformBlockiv dir params out len params (glesv2_enc::glActiveUniformBlockivParamSize(self, program, uniformBlockIndex, pname) * sizeof(GLint)) glGetActiveUniformBlockName dir uniformBlockName out len uniformBlockName bufSize param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } var_flag uniformBlockName nullAllowed dir length out len length (sizeof(GLsizei)) var_flag length nullAllowed glUniform1uiv len value (count * sizeof(GLuint)) glUniform2uiv len value (count * 2 * sizeof(GLuint)) glUniform3uiv len value (count * 3 * sizeof(GLuint)) glUniform4uiv len value (count * 4 * sizeof(GLuint)) glUniformMatrix2x3fv len value (count * 6 * sizeof(GLfloat)) glUniformMatrix3x2fv len value (count * 6 * sizeof(GLfloat)) glUniformMatrix2x4fv len value (count * 8 * sizeof(GLfloat)) glUniformMatrix4x2fv len value (count * 8 * sizeof(GLfloat)) glUniformMatrix3x4fv len value (count * 12 * sizeof(GLfloat)) glUniformMatrix4x3fv len value (count * 12 * sizeof(GLfloat)) glGetUniformuiv dir params out len params glSizeof(glesv2_enc::uniformType(self, program, location)) glGetActiveUniformsiv len uniformIndices (uniformCount * sizeof(GLuint)) dir params out len params (uniformCount * sizeof(GLint)) glVertexAttribI4iv len v (4 * sizeof(GLint)) glVertexAttribI4uiv len v (4 * sizeof(GLuint)) glVertexAttribIPointer flag unsupported glVertexAttribIPointerOffsetAEMU flag custom_decoder flag not_api glVertexAttribIPointerDataAEMU len data datalen custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen) flag custom_decoder flag not_api glGetVertexAttribIiv dir params out len params (glUtilsParamSize(pname) * sizeof(GLint)) glGetVertexAttribIuiv dir params out len params (glUtilsParamSize(pname) * sizeof(GLuint)) glDrawElementsInstanced flag unsupported glDrawElementsInstancedDataAEMU len indices datalen flag custom_decoder flag not_api glDrawElementsInstancedOffsetAEMU flag custom_decoder flag not_api glDrawRangeElements flag unsupported glDrawRangeElementsDataAEMU len indices datalen flag custom_decoder flag not_api glDrawRangeElementsOffsetAEMU flag custom_decoder flag not_api glFenceSync flag unsupported glClientWaitSync flag unsupported glWaitSync flag unsupported glDeleteSync flag unsupported glIsSync flag unsupported glGetSynciv flag unsupported glFenceSyncAEMU flag custom_decoder flag not_api glClientWaitSyncAEMU flag custom_decoder flag not_api glWaitSyncAEMU flag custom_decoder flag not_api glDeleteSyncAEMU flag custom_decoder flag not_api glIsSyncAEMU flag custom_decoder flag not_api glGetSyncivAEMU flag custom_decoder flag not_api param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } dir length out len length (sizeof(GLsizei)) var_flag length nullAllowed dir values out len values (bufSize * sizeof(GLint)) glGetInternalformativ dir params out len params (sizeof(GLint) * bufSize) glDrawBuffers len bufs (n * sizeof(GLenum)) glInvalidateFramebuffer len attachments (numAttachments * sizeof(GLenum)) glInvalidateSubFramebuffer len attachments (numAttachments * sizeof(GLenum)) glGenTransformFeedbacks flag custom_decoder dir ids out len ids (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } glDeleteTransformFeedbacks flag custom_decoder len ids (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } glTransformFeedbackVaryings flag unsupported glTransformFeedbackVaryingsAEMU dir packedVaryings in len packedVaryings packedVaryingsLen flag custom_decoder flag not_api glGetTransformFeedbackVarying dir name out len name bufSize param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } var_flag name nullAllowed dir length out len length (sizeof(GLsizei)) var_flag length nullAllowed dir size out len size (sizeof(GLsizei)) var_flag type nullAllowed dir type out len type (sizeof(GLenum)) var_flag type nullAllowed glGenSamplers flag custom_decoder dir samplers out len samplers (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } glDeleteSamplers flag custom_decoder len samplers (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } glSamplerParameterfv len params (glUtilsParamSize(pname) * sizeof(GLfloat)) glSamplerParameteriv len params (glUtilsParamSize(pname) * sizeof(GLint)) glGetSamplerParameterfv dir params out len params (glUtilsParamSize(pname) * sizeof(GLfloat)) glGetSamplerParameteriv dir params out len params (glUtilsParamSize(pname) * sizeof(GLint)) glGenQueries flag custom_decoder dir queries out len queries (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } glDeleteQueries flag custom_decoder len queries (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } glGetQueryiv dir params out len params (glUtilsParamSize(pname) * sizeof(GLint)) glGetQueryObjectuiv dir params out len params (glUtilsParamSize(pname) * sizeof(GLuint)) glProgramBinary len binary length glGetProgramBinary param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } dir binary out len binary bufSize dir binaryFormat out len binaryFormat (sizeof(GLenum)) var_flag length nullAllowed dir length out len length (sizeof(GLsizei)) glGetFragDataLocation len name (strlen(name) + 1) glGetInteger64v dir data out len data (glUtilsParamSize(pname) * sizeof(GLint64)) # No need to account for custom sizes since indexed variants # are all on indxed buffers like transform feedback buffers, # UBOs, or SSBOs, and querying their sizes and offsets. glGetIntegeri_v dir data out len data (sizeof(GLint)) glGetInteger64i_v dir data out len data (sizeof(GLint64)) glTexImage3D dir data in len data glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0) custom_guest_pack data stream->uploadPixels(self, width, height, depth, format, type, data) var_flag data nullAllowed isLarge glTexImage3DOffsetAEMU flag custom_decoder flag not_api glTexSubImage3D len data glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0) custom_guest_pack data stream->uploadPixels(self, width, height, depth, format, type, data) var_flag data nullAllowed isLarge glTexSubImage3DOffsetAEMU flag custom_decoder flag not_api glCompressedTexImage3D len data imageSize param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } var_flag data nullAllowed isLarge glCompressedTexImage3DOffsetAEMU flag custom_decoder flag not_api glCompressedTexSubImage3D param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } len data imageSize var_flag data nullAllowed isLarge glCompressedTexSubImage3DOffsetAEMU flag custom_decoder flag not_api glGetStringi flag unsupported # GLES 3.1 glGetBooleani_v dir data out len data (sizeof(GLboolean)) glGenProgramPipelines flag custom_decoder dir pipelines out len pipelines (n * sizeof(GLuint)) glDeleteProgramPipelines flag custom_decoder len pipelines (n * sizeof(GLuint)) param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } glGetProgramPipelineiv dir params out len params (glUtilsParamSize(pname) * sizeof(GLint)) glGetProgramPipelineInfoLog dir infoLog out len infoLog bufSize param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } dir length out len length sizeof(GLsizei) var_flag length nullAllowed glCreateShaderProgramv flag unsupported glCreateShaderProgramvAEMU len packedStrings packedLen flag custom_decoder flag not_api glProgramUniform1fv len value (count * sizeof(GLfloat)) glProgramUniform2fv len value (count * 2 * sizeof(GLfloat)) glProgramUniform3fv len value (count * 3 * sizeof(GLfloat)) glProgramUniform4fv len value (count * 4 * sizeof(GLfloat)) glProgramUniform1iv len value (count * sizeof(GLint)) glProgramUniform2iv len value (count * 2 * sizeof(GLint)) glProgramUniform3iv len value (count * 3 * sizeof(GLint)) glProgramUniform4iv len value (count * 4 * sizeof(GLint)) glProgramUniform1uiv len value (count * sizeof(GLuint)) glProgramUniform2uiv len value (count * 2 * sizeof(GLuint)) glProgramUniform3uiv len value (count * 3 * sizeof(GLuint)) glProgramUniform4uiv len value (count * 4 * sizeof(GLuint)) glProgramUniformMatrix2fv len value (count * 4 * sizeof(GLfloat)) glProgramUniformMatrix3fv len value (count * 9 * sizeof(GLfloat)) glProgramUniformMatrix4fv len value (count * 16 * sizeof(GLfloat)) glProgramUniformMatrix2x3fv len value (count * 6 * sizeof(GLfloat)) glProgramUniformMatrix3x2fv len value (count * 6 * sizeof(GLfloat)) glProgramUniformMatrix2x4fv len value (count * 8 * sizeof(GLfloat)) glProgramUniformMatrix4x2fv len value (count * 8 * sizeof(GLfloat)) glProgramUniformMatrix3x4fv len value (count * 12 * sizeof(GLfloat)) glProgramUniformMatrix4x3fv len value (count * 12 * sizeof(GLfloat)) glGetProgramInterfaceiv dir params out len params (glUtilsParamSize(pname) * sizeof(GLint)) glGetProgramResourceiv dir params out len params (bufSize * sizeof(GLint)) param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } var_flag length nullAllowed dir length out len length (sizeof(GLsizei)) len props (propCount * sizeof(GLenum)) glGetProgramResourceIndex len name (strlen(name) + 1) glGetProgramResourceLocation len name (strlen(name) + 1) glGetProgramResourceName dir name out len name bufSize param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } var_flag length nullAllowed dir length out len length (sizeof(GLsizei)) glDrawArraysIndirect flag unsupported glDrawArraysIndirectDataAEMU len indirect datalen flag custom_decoder flag not_api glDrawArraysIndirectOffsetAEMU flag custom_decoder flag not_api glDrawElementsIndirect flag unsupported glDrawElementsIndirectDataAEMU len indirect datalen flag custom_decoder flag not_api glDrawElementsIndirectOffsetAEMU flag custom_decoder flag not_api glGetMultisamplefv dir val out len val (glUtilsParamSize(pname) * sizeof(GLfloat)) glGetFramebufferParameteriv dir params out len params (glUtilsParamSize(pname) * sizeof(GLint)) glGetTexLevelParameterfv dir params out len params (glUtilsParamSize(pname) * sizeof(GLfloat)) glGetTexLevelParameteriv dir params out len params (glUtilsParamSize(pname) * sizeof(GLint)) glUseProgram flag custom_decoder glValidateProgram flag custom_decoder glIsProgram flag custom_decoder glGetActiveAttrib flag custom_decoder glGetActiveUniform flag custom_decoder glGetAttachedShaders flag custom_decoder glGetAttribLocation flag custom_decoder glGetUniformfv flag custom_decoder glGetUniformiv flag custom_decoder glGetUniformLocation flag custom_decoder glGetProgramBinaryOES flag custom_decoder glProgramBinaryOES flag custom_decoder glUniformBlockBinding flag custom_decoder glGetUniformBlockIndex flag custom_decoder glGetActiveUniformBlockiv flag custom_decoder glGetActiveUniformBlockName flag custom_decoder glGetUniformuiv flag custom_decoder glGetActiveUniformsiv flag custom_decoder glTransformFeedbackVaryings flag custom_decoder glGetTransformFeedbackVarying flag custom_decoder glProgramParameteri flag custom_decoder glProgramBinary flag custom_decoder glGetProgramBinary flag custom_decoder glGetFragDataLocation flag custom_decoder glUseProgramStages flag custom_decoder glActiveShaderProgram flag custom_decoder glProgramUniform1f flag custom_decoder glProgramUniform2f flag custom_decoder glProgramUniform3f flag custom_decoder glProgramUniform4f flag custom_decoder glProgramUniform1i flag custom_decoder glProgramUniform2i flag custom_decoder glProgramUniform3i flag custom_decoder glProgramUniform4i flag custom_decoder glProgramUniform1ui flag custom_decoder glProgramUniform2ui flag custom_decoder glProgramUniform3ui flag custom_decoder glProgramUniform4ui flag custom_decoder glProgramUniform1fv flag custom_decoder glProgramUniform2fv flag custom_decoder glProgramUniform3fv flag custom_decoder glProgramUniform4fv flag custom_decoder glProgramUniform1iv flag custom_decoder glProgramUniform2iv flag custom_decoder glProgramUniform3iv flag custom_decoder glProgramUniform4iv flag custom_decoder glProgramUniform1uiv flag custom_decoder glProgramUniform2uiv flag custom_decoder glProgramUniform3uiv flag custom_decoder glProgramUniform4uiv flag custom_decoder glProgramUniformMatrix2fv flag custom_decoder glProgramUniformMatrix3fv flag custom_decoder glProgramUniformMatrix4fv flag custom_decoder glProgramUniformMatrix2x3fv flag custom_decoder glProgramUniformMatrix3x2fv flag custom_decoder glProgramUniformMatrix2x4fv flag custom_decoder glProgramUniformMatrix4x2fv flag custom_decoder glProgramUniformMatrix3x4fv flag custom_decoder glProgramUniformMatrix4x3fv flag custom_decoder glGetProgramInterfaceiv flag custom_decoder glGetProgramResourceiv flag custom_decoder glGetProgramResourceIndex flag custom_decoder glGetProgramResourceLocation flag custom_decoder glGetProgramResourceName flag custom_decoder glMapBufferRangeDMA flag custom_decoder flag not_api glUnmapBufferDMA dir out_res out len out_res (sizeof(GLboolean)) flag custom_decoder flag not_api glMapBufferRangeDirect flag custom_decoder flag not_api glUnmapBufferDirect dir out_res out len out_res (sizeof(GLboolean)) flag custom_decoder flag not_api glFlushMappedBufferRangeDirect flag custom_decoder flag not_api glReadnPixelsEXT dir data out len data bufSize glGetnUniformfvEXT dir params out len params bufSize glGetnUniformivEXT dir params out len params bufSize glDrawElementsNullAEMU flag unsupported glDrawElementsDataNullAEMU len data datalen flag custom_decoder flag not_api glDrawElementsOffsetNullAEMU flag custom_decoder flag not_api # Async UnmapBuffer glUnmapBufferAsyncAEMU dir guest_buffer in len guest_buffer length var_flag guest_buffer nullAllowed isLarge dir out_res in len out_res (sizeof(GLboolean)) flag custom_decoder flag not_api custom_host_api glUnmapBufferAEMU glFlushMappedBufferRangeAEMU2 dir guest_buffer in len guest_buffer length var_flag guest_buffer nullAllowed isLarge flag custom_decoder flag not_api custom_host_api glFlushMappedBufferRangeAEMU glBufferDataSyncAEMU len data size var_flag data nullAllowed flag not_api flag custom_decoder glTexBufferOES flag custom_decoder glTexBufferRangeOES flag custom_decoder glTexBufferEXT flag custom_decoder glTexBufferRangeEXT flag custom_decoder # GL_EXT_draw_buffers_indexed glEnableiEXT flag custom_decoder glDisableiEXT flag custom_decoder glBlendEquationiEXT flag custom_decoder glBlendEquationSeparateiEXT flag custom_decoder glBlendFunciEXT flag custom_decoder glBlendFuncSeparateiEXT flag custom_decoder glColorMaskiEXT flag custom_decoder glIsEnablediEXT flag custom_decoder