Add OpenGL ES 3.0 entry function stubs.
Bug 19353461
Change-Id: Ib48ae3263a1a570067dc0bc9a3dd2252f5a282a3
Reviewed-on: https://swiftshader-review.googlesource.com/2191
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libGLESv2/libGLESv2.def b/src/OpenGL/libGLESv2/libGLESv2.def
index 5b9347d..9b42766 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.def
+++ b/src/OpenGL/libGLESv2/libGLESv2.def
@@ -144,30 +144,136 @@
glViewport @142
; Extensions
- glTexImage3DOES @143
- glBlitFramebufferANGLE @149
- glRenderbufferStorageMultisampleANGLE @150
- glDeleteFencesNV @151
- glFinishFenceNV @152
- glGenFencesNV @153
- glGetFenceivNV @154
- glIsFenceNV @155
- glSetFenceNV @156
- glTestFenceNV @157
- glGetGraphicsResetStatusEXT @161
- glReadnPixelsEXT @162
- glGetnUniformfvEXT @163
- glGetnUniformivEXT @164
- glGenQueriesEXT @165
- glDeleteQueriesEXT @166
- glIsQueryEXT @167
- glBeginQueryEXT @168
- glEndQueryEXT @169
- glGetQueryivEXT @170
- glGetQueryObjectuivEXT @171
+ glTexImage3DOES
+ glBlitFramebufferANGLE
+ glRenderbufferStorageMultisampleANGLE
+ glDeleteFencesNV
+ glFinishFenceNV
+ glGenFencesNV
+ glGetFenceivNV
+ glIsFenceNV
+ glSetFenceNV
+ glTestFenceNV
+ glGetGraphicsResetStatusEXT
+ glReadnPixelsEXT
+ glGetnUniformfvEXT
+ glGetnUniformivEXT
+ glGenQueriesEXT
+ glDeleteQueriesEXT
+ glIsQueryEXT
+ glBeginQueryEXT
+ glEndQueryEXT
+ glGetQueryivEXT
+ glGetQueryObjectuivEXT
glEGLImageTargetTexture2DOES
glEGLImageTargetRenderbufferStorageOES
+ ; GLES 3.0 Functions
+ glReadBuffer @211
+ glDrawRangeElements @212
+ glTexImage3D @213
+ glTexSubImage3D @214
+ glCopyTexSubImage3D @215
+ glCompressedTexImage3D @216
+ glCompressedTexSubImage3D @217
+ glGenQueries @218
+ glDeleteQueries @219
+ glIsQuery @220
+ glBeginQuery @221
+ glEndQuery @222
+ glGetQueryiv @223
+ glGetQueryObjectuiv @224
+ glUnmapBuffer @204
+ glGetBufferPointerv @205
+ glDrawBuffers @225
+ glUniformMatrix2x3fv @226
+ glUniformMatrix3x2fv @227
+ glUniformMatrix2x4fv @228
+ glUniformMatrix4x2fv @229
+ glUniformMatrix3x4fv @230
+ glUniformMatrix4x3fv @231
+ glBlitFramebuffer @232
+ glRenderbufferStorageMultisample @305
+ glFramebufferTextureLayer @233
+ glMapBufferRange @307
+ glFlushMappedBufferRange @234
+ glBindVertexArray @206
+ glDeleteVertexArrays @207
+ glGenVertexArrays @208
+ glIsVertexArray @209
+ glGetIntegeri_v @235
+ glBeginTransformFeedback @236
+ glEndTransformFeedback @237
+ glBindBufferRange @238
+ glBindBufferBase @239
+ glTransformFeedbackVaryings @240
+ glGetTransformFeedbackVarying @241
+ glVertexAttribIPointer @242
+ glGetVertexAttribIiv @243
+ glGetVertexAttribIuiv @244
+ glVertexAttribI4i @245
+ glVertexAttribI4ui @246
+ glVertexAttribI4iv @247
+ glVertexAttribI4uiv @248
+ glGetUniformuiv @249
+ glGetFragDataLocation @309
+ glUniform1ui @250
+ glUniform2ui @251
+ glUniform3ui @252
+ glUniform4ui @253
+ glUniform1uiv @254
+ glUniform2uiv @255
+ glUniform3uiv @256
+ glUniform4uiv @257
+ glClearBufferiv @258
+ glClearBufferuiv @259
+ glClearBufferfv @260
+ glClearBufferfi @261
+ glGetStringi @262
+ glCopyBufferSubData @263
+ glGetUniformIndices @264
+ glGetActiveUniformsiv @265
+ glGetUniformBlockIndex @267
+ glGetActiveUniformBlockiv @268
+ glGetActiveUniformBlockName @269
+ glUniformBlockBinding @270
+ glDrawArraysInstanced @271
+ glDrawElementsInstanced @272
+ glFenceSync @273
+ glIsSync @274
+ glDeleteSync @275
+ glClientWaitSync @276
+ glWaitSync @277
+ glGetInteger64v @278
+ glGetSynciv @279
+ glGetInteger64i_v @280
+ glGetBufferParameteri64v @306
+ glGenSamplers @281
+ glDeleteSamplers @282
+ glIsSampler @283
+ glBindSampler @284
+ glSamplerParameteri @285
+ glSamplerParameteriv @286
+ glSamplerParameterf @287
+ glSamplerParameterfv @288
+ glGetSamplerParameteriv @289
+ glGetSamplerParameterfv @290
+ glVertexAttribDivisor @291
+ glBindTransformFeedback @292
+ glDeleteTransformFeedbacks @293
+ glGenTransformFeedbacks @294
+ glIsTransformFeedback @295
+ glPauseTransformFeedback @296
+ glResumeTransformFeedback @297
+ glGetProgramBinary @299
+ glProgramBinary @300
+ glProgramParameteri @301
+ glInvalidateFramebuffer @210
+ glInvalidateSubFramebuffer @302
+ glTexStorage2D @303
+ glTexStorage3D @304
+ glGetInternalformativ @308
+
; EGL dependencies
glCreateContext
glGetProcAddress
diff --git a/src/OpenGL/libGLESv2/libGLESv2.vcxproj b/src/OpenGL/libGLESv2/libGLESv2.vcxproj
index 58076d4..63eb632 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.vcxproj
+++ b/src/OpenGL/libGLESv2/libGLESv2.vcxproj
@@ -329,6 +329,7 @@
<ClCompile Include="Image.cpp" />
<ClCompile Include="IndexDataManager.cpp" />
<ClCompile Include="libGLESv2.cpp" />
+ <ClCompile Include="libGLESv3.cpp" />
<ClCompile Include="main.cpp" />
<ClCompile Include="Program.cpp" />
<ClCompile Include="Query.cpp" />
diff --git a/src/OpenGL/libGLESv2/libGLESv2.vcxproj.filters b/src/OpenGL/libGLESv2/libGLESv2.vcxproj.filters
index c2501d5..ea77fb1 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.vcxproj.filters
+++ b/src/OpenGL/libGLESv2/libGLESv2.vcxproj.filters
@@ -71,6 +71,9 @@
<ClCompile Include="..\common\NameSpace.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="libGLESv3.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Buffer.h">
diff --git a/src/OpenGL/libGLESv2/libGLESv3.cpp b/src/OpenGL/libGLESv2/libGLESv3.cpp
new file mode 100644
index 0000000..d4cfc30
--- /dev/null
+++ b/src/OpenGL/libGLESv2/libGLESv3.cpp
@@ -0,0 +1,544 @@
+#include "common/debug.h"
+
+#define GL_APICALL
+#include <GLES3/gl3.h>
+#include <GLES2/gl2ext.h>
+
+extern "C"
+{
+
+void GL_APIENTRY glReadBuffer(GLenum src)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGenQueries(GLsizei n, GLuint *ids)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glDeleteQueries(GLsizei n, const GLuint *ids)
+{
+ UNIMPLEMENTED();
+}
+
+GLboolean GL_APIENTRY glIsQuery(GLuint id)
+{
+ UNIMPLEMENTED();
+ return GL_FALSE;
+}
+
+void GL_APIENTRY glBeginQuery(GLenum target, GLuint id)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glEndQuery(GLenum target)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetQueryiv(GLenum target, GLenum pname, GLint *params)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params)
+{
+ UNIMPLEMENTED();
+}
+
+GLboolean GL_APIENTRY glUnmapBuffer(GLenum target)
+{
+ UNIMPLEMENTED();
+ return GL_FALSE;
+}
+
+void GL_APIENTRY glGetBufferPointerv(GLenum target, GLenum pname, void **params)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glDrawBuffers(GLsizei n, const GLenum *bufs)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ UNIMPLEMENTED();
+}
+
+void *GL_APIENTRY glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
+{
+ UNIMPLEMENTED();
+ return nullptr;
+}
+
+void GL_APIENTRY glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glBindVertexArray(GLuint array)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glDeleteVertexArrays(GLsizei n, const GLuint *arrays)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGenVertexArrays(GLsizei n, GLuint *arrays)
+{
+ UNIMPLEMENTED();
+}
+
+GLboolean GL_APIENTRY glIsVertexArray(GLuint array)
+{
+ UNIMPLEMENTED();
+ return GL_FALSE;
+}
+
+void GL_APIENTRY glGetIntegeri_v(GLenum target, GLuint index, GLint *data)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glBeginTransformFeedback(GLenum primitiveMode)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glEndTransformFeedback(void)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glBindBufferBase(GLenum target, GLuint index, GLuint buffer)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glVertexAttribI4iv(GLuint index, const GLint *v)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glVertexAttribI4uiv(GLuint index, const GLuint *v)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetUniformuiv(GLuint program, GLint location, GLuint *params)
+{
+ UNIMPLEMENTED();
+}
+
+GLint GL_APIENTRY glGetFragDataLocation(GLuint program, const GLchar *name)
+{
+ UNIMPLEMENTED();
+ return 0;
+}
+
+void GL_APIENTRY glUniform1ui(GLint location, GLuint v0)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniform2ui(GLint location, GLuint v0, GLuint v1)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniform1uiv(GLint location, GLsizei count, const GLuint *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniform2uiv(GLint location, GLsizei count, const GLuint *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniform3uiv(GLint location, GLsizei count, const GLuint *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniform4uiv(GLint location, GLsizei count, const GLuint *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ UNIMPLEMENTED();
+}
+
+const GLubyte *GL_APIENTRY glGetStringi(GLenum name, GLuint index)
+{
+ UNIMPLEMENTED();
+ return nullptr;
+}
+
+void GL_APIENTRY glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params)
+{
+ UNIMPLEMENTED();
+}
+
+GLuint GL_APIENTRY glGetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName)
+{
+ UNIMPLEMENTED();
+ return 0;
+}
+
+void GL_APIENTRY glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount)
+{
+ UNIMPLEMENTED();
+}
+
+GLsync GL_APIENTRY glFenceSync(GLenum condition, GLbitfield flags)
+{
+ UNIMPLEMENTED();
+ return nullptr;
+}
+
+GLboolean GL_APIENTRY glIsSync(GLsync sync)
+{
+ UNIMPLEMENTED();
+ return GL_FALSE;
+}
+
+void GL_APIENTRY glDeleteSync(GLsync sync)
+{
+ UNIMPLEMENTED();
+}
+
+GLenum GL_APIENTRY glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ UNIMPLEMENTED();
+ return GL_FALSE;
+}
+
+void GL_APIENTRY glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetInteger64v(GLenum pname, GLint64 *data)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetInteger64i_v(GLenum target, GLuint index, GLint64 *data)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGenSamplers(GLsizei count, GLuint *samplers)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glDeleteSamplers(GLsizei count, const GLuint *samplers)
+{
+ UNIMPLEMENTED();
+}
+
+GLboolean GL_APIENTRY glIsSampler(GLuint sampler)
+{
+ UNIMPLEMENTED();
+ return GL_FALSE;
+}
+
+void GL_APIENTRY glBindSampler(GLuint unit, GLuint sampler)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glSamplerParameteri(GLuint sampler, GLenum pname, GLint param)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *param)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *param)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glVertexAttribDivisor(GLuint index, GLuint divisor)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glBindTransformFeedback(GLenum target, GLuint id)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glDeleteTransformFeedbacks(GLsizei n, const GLuint *ids)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGenTransformFeedbacks(GLsizei n, GLuint *ids)
+{
+ UNIMPLEMENTED();
+}
+
+GLboolean GL_APIENTRY glIsTransformFeedback(GLuint id)
+{
+ UNIMPLEMENTED();
+ return GL_FALSE;
+}
+
+void GL_APIENTRY glPauseTransformFeedback(void)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glResumeTransformFeedback(void)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glProgramBinary(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glProgramParameteri(GLuint program, GLenum pname, GLint value)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
+{
+ UNIMPLEMENTED();
+}
+
+void GL_APIENTRY glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params)
+{
+ UNIMPLEMENTED();
+}
+
+
+
+}