OSDN Git Service

Add OpenGL ES 3.0 entry function stubs.
authorNicolas Capens <capn@google.com>
Wed, 11 Feb 2015 20:29:25 +0000 (15:29 -0500)
committerNicolas Capens <capn@google.com>
Wed, 11 Feb 2015 21:19:56 +0000 (21:19 +0000)
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>
src/OpenGL/libGLESv2/libGLESv2.def
src/OpenGL/libGLESv2/libGLESv2.vcxproj
src/OpenGL/libGLESv2/libGLESv2.vcxproj.filters
src/OpenGL/libGLESv2/libGLESv3.cpp [new file with mode: 0644]

index 5b9347d..9b42766 100644 (file)
@@ -144,30 +144,136 @@ EXPORTS
     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
index 58076d4..63eb632 100644 (file)
@@ -329,6 +329,7 @@ copy "$(OutDir)libGLESv2.dll" "$(ProjectDir)..\..\..\lib\$(Configuration)_$(Plat
     <ClCompile Include="Image.cpp" />\r
     <ClCompile Include="IndexDataManager.cpp" />\r
     <ClCompile Include="libGLESv2.cpp" />\r
+    <ClCompile Include="libGLESv3.cpp" />\r
     <ClCompile Include="main.cpp" />\r
     <ClCompile Include="Program.cpp" />\r
     <ClCompile Include="Query.cpp" />\r
index c2501d5..ea77fb1 100644 (file)
@@ -71,6 +71,9 @@
     <ClCompile Include="..\common\NameSpace.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="libGLESv3.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="Buffer.h">\r
diff --git a/src/OpenGL/libGLESv2/libGLESv3.cpp b/src/OpenGL/libGLESv2/libGLESv3.cpp
new file mode 100644 (file)
index 0000000..d4cfc30
--- /dev/null
@@ -0,0 +1,544 @@
+#include "common/debug.h"\r
+\r
+#define GL_APICALL\r
+#include <GLES3/gl3.h>\r
+#include <GLES2/gl2ext.h>\r
+\r
+extern "C"\r
+{\r
+\r
+void GL_APIENTRY glReadBuffer(GLenum src)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+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)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+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)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+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)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGenQueries(GLsizei n, GLuint *ids)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glDeleteQueries(GLsizei n, const GLuint *ids)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+GLboolean GL_APIENTRY glIsQuery(GLuint id)\r
+{\r
+       UNIMPLEMENTED();\r
+       return GL_FALSE;\r
+}\r
+\r
+void GL_APIENTRY glBeginQuery(GLenum target, GLuint id)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glEndQuery(GLenum target)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetQueryiv(GLenum target, GLenum pname, GLint *params)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+GLboolean GL_APIENTRY glUnmapBuffer(GLenum target)\r
+{\r
+       UNIMPLEMENTED();\r
+       return GL_FALSE;\r
+}\r
+\r
+void GL_APIENTRY glGetBufferPointerv(GLenum target, GLenum pname, void **params)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glDrawBuffers(GLsizei n, const GLenum *bufs)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void *GL_APIENTRY glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)\r
+{\r
+       UNIMPLEMENTED();\r
+       return nullptr;\r
+}\r
+\r
+void GL_APIENTRY glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glBindVertexArray(GLuint array)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glDeleteVertexArrays(GLsizei n, const GLuint *arrays)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGenVertexArrays(GLsizei n, GLuint *arrays)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+GLboolean GL_APIENTRY glIsVertexArray(GLuint array)\r
+{\r
+       UNIMPLEMENTED();\r
+       return GL_FALSE;\r
+}\r
+\r
+void GL_APIENTRY glGetIntegeri_v(GLenum target, GLuint index, GLint *data)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glBeginTransformFeedback(GLenum primitiveMode)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glEndTransformFeedback(void)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glBindBufferBase(GLenum target, GLuint index, GLuint buffer)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glVertexAttribI4iv(GLuint index, const GLint *v)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glVertexAttribI4uiv(GLuint index, const GLuint *v)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetUniformuiv(GLuint program, GLint location, GLuint *params)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+GLint GL_APIENTRY glGetFragDataLocation(GLuint program, const GLchar *name)\r
+{\r
+       UNIMPLEMENTED();\r
+       return 0;\r
+}\r
+\r
+void GL_APIENTRY glUniform1ui(GLint location, GLuint v0)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniform2ui(GLint location, GLuint v0, GLuint v1)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniform1uiv(GLint location, GLsizei count, const GLuint *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniform2uiv(GLint location, GLsizei count, const GLuint *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniform3uiv(GLint location, GLsizei count, const GLuint *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniform4uiv(GLint location, GLsizei count, const GLuint *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+const GLubyte *GL_APIENTRY glGetStringi(GLenum name, GLuint index)\r
+{\r
+       UNIMPLEMENTED();\r
+       return nullptr;\r
+}\r
+\r
+void GL_APIENTRY glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+GLuint GL_APIENTRY glGetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName)\r
+{\r
+       UNIMPLEMENTED();\r
+       return 0;\r
+}\r
+\r
+void GL_APIENTRY glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+GLsync GL_APIENTRY glFenceSync(GLenum condition, GLbitfield flags)\r
+{\r
+       UNIMPLEMENTED();\r
+       return nullptr;\r
+}\r
+\r
+GLboolean GL_APIENTRY glIsSync(GLsync sync)\r
+{\r
+       UNIMPLEMENTED();\r
+       return GL_FALSE;\r
+}\r
+\r
+void GL_APIENTRY glDeleteSync(GLsync sync)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+GLenum GL_APIENTRY glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)\r
+{\r
+       UNIMPLEMENTED();\r
+       return GL_FALSE;\r
+}\r
+\r
+void GL_APIENTRY glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetInteger64v(GLenum pname, GLint64 *data)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetInteger64i_v(GLenum target, GLuint index, GLint64 *data)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGenSamplers(GLsizei count, GLuint *samplers)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glDeleteSamplers(GLsizei count, const GLuint *samplers)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+GLboolean GL_APIENTRY glIsSampler(GLuint sampler)\r
+{\r
+       UNIMPLEMENTED();\r
+       return GL_FALSE;\r
+}\r
+\r
+void GL_APIENTRY glBindSampler(GLuint unit, GLuint sampler)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glSamplerParameteri(GLuint sampler, GLenum pname, GLint param)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *param)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *param)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glVertexAttribDivisor(GLuint index, GLuint divisor)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glBindTransformFeedback(GLenum target, GLuint id)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glDeleteTransformFeedbacks(GLsizei n, const GLuint *ids)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGenTransformFeedbacks(GLsizei n, GLuint *ids)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+GLboolean GL_APIENTRY glIsTransformFeedback(GLuint id)\r
+{\r
+       UNIMPLEMENTED();\r
+       return GL_FALSE;\r
+}\r
+\r
+void GL_APIENTRY glPauseTransformFeedback(void)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glResumeTransformFeedback(void)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glProgramBinary(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glProgramParameteri(GLuint program, GLenum pname, GLint value)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+void GL_APIENTRY glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params)\r
+{\r
+       UNIMPLEMENTED();\r
+}\r
+\r
+\r
+\r
+}\r