Browse Source

added more oxGL extensions to be compatible with NanoVG

dmuratshin 9 years ago
parent
commit
cddf7b2c71
3 changed files with 89 additions and 6 deletions
  1. 55 4
      oxygine/src/core/gl/oxgl.cpp
  2. 20 1
      oxygine/src/core/gl/oxgl.h
  3. 14 1
      tools/others/genfn.py

+ 55 - 4
oxygine/src/core/gl/oxgl.cpp

@@ -24,6 +24,7 @@ extern "C"
     GLAPI void APIENTRY def_glShaderSource(GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length)
     GLAPI void APIENTRY def_glShaderSource(GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length)
 #endif
 #endif
     {}
     {}
+
     GLAPI void APIENTRY def_glUseProgram(GLuint program)
     GLAPI void APIENTRY def_glUseProgram(GLuint program)
     {}
     {}
     GLAPI void APIENTRY def_glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer)
     GLAPI void APIENTRY def_glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer)
@@ -41,9 +42,13 @@ extern "C"
     GLAPI void APIENTRY def_glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
     GLAPI void APIENTRY def_glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
     {}
     {}
     GLAPI GLuint APIENTRY def_glCreateShader(GLenum type)
     GLAPI GLuint APIENTRY def_glCreateShader(GLenum type)
-    {return 0;}
+    {
+        return 0;
+    }
     GLAPI GLuint APIENTRY def_glCreateProgram(void)
     GLAPI GLuint APIENTRY def_glCreateProgram(void)
-    {return 0;}
+    {
+        return 0;
+    }
     GLAPI void APIENTRY def_glAttachShader(GLuint program, GLuint shader)
     GLAPI void APIENTRY def_glAttachShader(GLuint program, GLuint shader)
     {}
     {}
     GLAPI void APIENTRY def_glCompileShader(GLuint shader)
     GLAPI void APIENTRY def_glCompileShader(GLuint shader)
@@ -69,11 +74,15 @@ extern "C"
     GLAPI void APIENTRY def_glGenFramebuffers(GLsizei n, GLuint* framebuffers)
     GLAPI void APIENTRY def_glGenFramebuffers(GLsizei n, GLuint* framebuffers)
     {}
     {}
     GLAPI GLenum APIENTRY def_glCheckFramebufferStatus(GLenum target)
     GLAPI GLenum APIENTRY def_glCheckFramebufferStatus(GLenum target)
-    {return 0;}
+    {
+        return 0;
+    }
     GLAPI void APIENTRY def_glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
     GLAPI void APIENTRY def_glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
     {}
     {}
     GLAPI GLint APIENTRY def_glGetUniformLocation(GLuint program, const GLchar* name)
     GLAPI GLint APIENTRY def_glGetUniformLocation(GLuint program, const GLchar* name)
-    {return 0;}
+    {
+        return 0;
+    }
     GLAPI void APIENTRY def_glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
     GLAPI void APIENTRY def_glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
     {}
     {}
     GLAPI void APIENTRY def_glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data)
     GLAPI void APIENTRY def_glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data)
@@ -84,8 +93,30 @@ extern "C"
     {}
     {}
     GLAPI void APIENTRY def_glBufferData(GLenum target, GLsizeiptr size, const void* data, GLenum usage)
     GLAPI void APIENTRY def_glBufferData(GLenum target, GLsizeiptr size, const void* data, GLenum usage)
     {}
     {}
+    GLAPI void APIENTRY def_glGetProgramiv(GLuint program, GLenum pname, GLint* params)
+    {}
+    GLAPI void APIENTRY def_glGenerateMipmap(GLenum target)
+    {}
+    GLAPI void APIENTRY def_glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+    {}
+    GLAPI void APIENTRY def_glGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
+    {}
+    GLAPI void APIENTRY def_glBindRenderbuffer(GLenum target, GLuint renderbuffer)
+    {}
+    GLAPI void APIENTRY def_glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+    {}
+    GLAPI void APIENTRY def_glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+    {}
+    GLAPI void APIENTRY def_glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers)
+    {}
+
+    GLAPI void APIENTRY def_glDeleteShader(GLuint shader)
+    {}
     GLAPI void APIENTRY def_glDeleteBuffers(GLsizei n, const GLuint* buffers)
     GLAPI void APIENTRY def_glDeleteBuffers(GLsizei n, const GLuint* buffers)
     {}
     {}
+    GLAPI void APIENTRY def_glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+    {}
+
 
 
 
 
     PFNGLSHADERSOURCEPROC _glShaderSource = 0;
     PFNGLSHADERSOURCEPROC _glShaderSource = 0;
@@ -119,7 +150,17 @@ extern "C"
     PFNGLBINDBUFFERPROC _glBindBuffer = 0;
     PFNGLBINDBUFFERPROC _glBindBuffer = 0;
     PFNGLGENBUFFERSPROC _glGenBuffers = 0;
     PFNGLGENBUFFERSPROC _glGenBuffers = 0;
     PFNGLBUFFERDATAPROC _glBufferData = 0;
     PFNGLBUFFERDATAPROC _glBufferData = 0;
+    PFNGLGETPROGRAMIVPROC _glGetProgramiv = 0;
+    PFNGLGENERATEMIPMAPPROC _glGenerateMipmap = 0;
+    PFNGLSTENCILOPSEPARATEPROC _glStencilOpSeparate = 0;
+    PFNGLGENRENDERBUFFERSPROC _glGenRenderbuffers = 0;
+    PFNGLBINDRENDERBUFFERPROC _glBindRenderbuffer = 0;
+    PFNGLRENDERBUFFERSTORAGEPROC _glRenderbufferStorage = 0;
+    PFNGLFRAMEBUFFERRENDERBUFFERPROC _glFramebufferRenderbuffer = 0;
+    PFNGLDELETERENDERBUFFERSPROC _glDeleteRenderbuffers = 0;
+    PFNGLDELETESHADERPROC _glDeleteShader = 0;
     PFNGLDELETEBUFFERSPROC _glDeleteBuffers = 0;
     PFNGLDELETEBUFFERSPROC _glDeleteBuffers = 0;
+    PFNGLGETPROGRAMINFOLOGPROC _glGetProgramInfoLog = 0;
 }
 }
 
 
 int initGLExtensions(myGetProcAdress func)
 int initGLExtensions(myGetProcAdress func)
@@ -160,7 +201,17 @@ int initGLExtensions(myGetProcAdress func)
     GETFUNC(_glBindBuffer, def_glBindBuffer, PFNGLBINDBUFFERPROC, "glBindBuffer");
     GETFUNC(_glBindBuffer, def_glBindBuffer, PFNGLBINDBUFFERPROC, "glBindBuffer");
     GETFUNC(_glGenBuffers, def_glGenBuffers, PFNGLGENBUFFERSPROC, "glGenBuffers");
     GETFUNC(_glGenBuffers, def_glGenBuffers, PFNGLGENBUFFERSPROC, "glGenBuffers");
     GETFUNC(_glBufferData, def_glBufferData, PFNGLBUFFERDATAPROC, "glBufferData");
     GETFUNC(_glBufferData, def_glBufferData, PFNGLBUFFERDATAPROC, "glBufferData");
+    GETFUNC(_glGetProgramiv, def_glGetProgramiv, PFNGLGETPROGRAMIVPROC, "glGetProgramiv");
+    GETFUNC(_glGenerateMipmap, def_glGenerateMipmap, PFNGLGENERATEMIPMAPPROC, "glGenerateMipmap");
+    GETFUNC(_glStencilOpSeparate, def_glStencilOpSeparate, PFNGLSTENCILOPSEPARATEPROC, "glStencilOpSeparate");
+    GETFUNC(_glGenRenderbuffers, def_glGenRenderbuffers, PFNGLGENRENDERBUFFERSPROC, "glGenRenderbuffers");
+    GETFUNC(_glBindRenderbuffer, def_glBindRenderbuffer, PFNGLBINDRENDERBUFFERPROC, "glBindRenderbuffer");
+    GETFUNC(_glRenderbufferStorage, def_glRenderbufferStorage, PFNGLRENDERBUFFERSTORAGEPROC, "glRenderbufferStorage");
+    GETFUNC(_glFramebufferRenderbuffer, def_glFramebufferRenderbuffer, PFNGLFRAMEBUFFERRENDERBUFFERPROC, "glFramebufferRenderbuffer");
+    GETFUNC(_glDeleteRenderbuffers, def_glDeleteRenderbuffers, PFNGLDELETERENDERBUFFERSPROC, "glDeleteRenderbuffers");
+    GETFUNC(_glDeleteShader, def_glDeleteShader, PFNGLDELETESHADERPROC, "glDeleteShader");
     GETFUNC(_glDeleteBuffers, def_glDeleteBuffers, PFNGLDELETEBUFFERSPROC, "glDeleteBuffers");
     GETFUNC(_glDeleteBuffers, def_glDeleteBuffers, PFNGLDELETEBUFFERSPROC, "glDeleteBuffers");
+    GETFUNC(_glGetProgramInfoLog, def_glGetProgramInfoLog, PFNGLGETPROGRAMINFOLOGPROC, "glGetProgramInfoLog");
 
 
     return missing;
     return missing;
 }
 }

+ 20 - 1
oxygine/src/core/gl/oxgl.h

@@ -56,7 +56,17 @@ extern "C"
     extern PFNGLBINDBUFFERPROC _glBindBuffer;
     extern PFNGLBINDBUFFERPROC _glBindBuffer;
     extern PFNGLGENBUFFERSPROC _glGenBuffers;
     extern PFNGLGENBUFFERSPROC _glGenBuffers;
     extern PFNGLBUFFERDATAPROC _glBufferData;
     extern PFNGLBUFFERDATAPROC _glBufferData;
+    extern PFNGLGETPROGRAMIVPROC _glGetProgramiv;
+    extern PFNGLGENERATEMIPMAPPROC _glGenerateMipmap;
+    extern PFNGLSTENCILOPSEPARATEPROC _glStencilOpSeparate;
+    extern PFNGLGENRENDERBUFFERSPROC _glGenRenderbuffers;
+    extern PFNGLBINDRENDERBUFFERPROC _glBindRenderbuffer;
+    extern PFNGLRENDERBUFFERSTORAGEPROC _glRenderbufferStorage;
+    extern PFNGLFRAMEBUFFERRENDERBUFFERPROC _glFramebufferRenderbuffer;
+    extern PFNGLDELETERENDERBUFFERSPROC _glDeleteRenderbuffers;
+    extern PFNGLDELETESHADERPROC _glDeleteShader;
     extern PFNGLDELETEBUFFERSPROC _glDeleteBuffers;
     extern PFNGLDELETEBUFFERSPROC _glDeleteBuffers;
+    extern PFNGLGETPROGRAMINFOLOGPROC _glGetProgramInfoLog;
 }
 }
 
 
 #elif __ANDROID__
 #elif __ANDROID__
@@ -111,7 +121,6 @@ extern "C"
 #define PASTER(x,y) x ## y
 #define PASTER(x,y) x ## y
 #define EVALUATOR(x,y)  PASTER(x,y)
 #define EVALUATOR(x,y)  PASTER(x,y)
 #define DECLARE_GLEXT(y)  EVALUATOR(GLPREF,y)
 #define DECLARE_GLEXT(y)  EVALUATOR(GLPREF,y)
-
 #define oxglShaderSource DECLARE_GLEXT(glShaderSource)
 #define oxglShaderSource DECLARE_GLEXT(glShaderSource)
 #define oxglUseProgram DECLARE_GLEXT(glUseProgram)
 #define oxglUseProgram DECLARE_GLEXT(glUseProgram)
 #define oxglVertexAttribPointer DECLARE_GLEXT(glVertexAttribPointer)
 #define oxglVertexAttribPointer DECLARE_GLEXT(glVertexAttribPointer)
@@ -143,7 +152,17 @@ extern "C"
 #define oxglBindBuffer DECLARE_GLEXT(glBindBuffer)
 #define oxglBindBuffer DECLARE_GLEXT(glBindBuffer)
 #define oxglGenBuffers DECLARE_GLEXT(glGenBuffers)
 #define oxglGenBuffers DECLARE_GLEXT(glGenBuffers)
 #define oxglBufferData DECLARE_GLEXT(glBufferData)
 #define oxglBufferData DECLARE_GLEXT(glBufferData)
+#define oxglGetProgramiv DECLARE_GLEXT(glGetProgramiv)
+#define oxglGenerateMipmap DECLARE_GLEXT(glGenerateMipmap)
+#define oxglStencilOpSeparate DECLARE_GLEXT(glStencilOpSeparate)
+#define oxglGenRenderbuffers DECLARE_GLEXT(glGenRenderbuffers)
+#define oxglBindRenderbuffer DECLARE_GLEXT(glBindRenderbuffer)
+#define oxglRenderbufferStorage DECLARE_GLEXT(glRenderbufferStorage)
+#define oxglFramebufferRenderbuffer DECLARE_GLEXT(glFramebufferRenderbuffer)
+#define oxglDeleteRenderbuffers DECLARE_GLEXT(glDeleteRenderbuffers)
+#define oxglDeleteShader DECLARE_GLEXT(glDeleteShader)
 #define oxglDeleteBuffers DECLARE_GLEXT(glDeleteBuffers)
 #define oxglDeleteBuffers DECLARE_GLEXT(glDeleteBuffers)
+#define oxglGetProgramInfoLog DECLARE_GLEXT(glGetProgramInfoLog)
 
 
 
 
 //#undef PASTER
 //#undef PASTER

+ 14 - 1
tools/others/genfn.py

@@ -38,7 +38,20 @@ funcs = ["glShaderSource",
          "glBindBuffer",
          "glBindBuffer",
          "glGenBuffers",
          "glGenBuffers",
          "glBufferData",
          "glBufferData",
-         "glDeleteBuffers"]
+         "glDeleteBuffers"
+         "glGetProgramInfoLog",
+         "glGetProgramiv",
+         "glGenerateMipmap",
+         "glStencilOpSeparate",
+         "glGenRenderbuffers",
+         "glBindRenderbuffer",
+         "glRenderbufferStorage",
+         "glFramebufferRenderbuffer",
+         "glDeleteRenderbuffers",
+         "glDeleteShader",
+         "glDeleteBuffers",
+         "glGetProgramInfoLog"
+         ]
 
 
 
 
 # GLAPI void APIENTRY glDeleteProgram (GLuint program);
 # GLAPI void APIENTRY glDeleteProgram (GLuint program);