DEADSOFTWARE

Windows and core profile support
authormittorn <mittorn@sibmail.com>
Fri, 3 Jun 2016 13:45:43 +0000 (19:45 +0600)
committermittorn <mittorn@sibmail.com>
Fri, 3 Jun 2016 13:45:43 +0000 (19:45 +0600)
GL/gl_entries.in
GL/glesinterface.h
eglwrap.cpp
funcnames.h [new file with mode: 0644]
nanoWrap.cpp
nanogl.cpp

index 9ca48a81c5391d7f64e7ef1825c13f786999ee3b..57d7a87d7932c94c42fa6af87d3ea6016b0ea216 100644 (file)
     GL_ENTRY(int,eglReleaseTexImage,int dpy, int surface, int buffer)
     GL_ENTRY(int,eglSurfaceAttrib,int dpy, int surface, int attribute, int value)
 
-
+#ifdef USE_CORE_PROFILE
+    GL_ENTRY(void,glOrtho,double left, double right, double bottom, double top, double zNear, double zFar)
+    GL_ENTRY(void,glDepthRange,double zNear, double zFar)
+#endif
index e8d42daea83648b32b6ca58e4ed672bca8a0aaf8..47fd58480230abf8ff2d45e6f07f7f01c71badd0 100644 (file)
@@ -34,6 +34,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #define S
 #endif
 
+#ifdef _WIN32
+#include <windows.h> //APIENTRY
+#endif
+#ifndef APIENTRY
+#ifdef _MSC_VER
+#define APIENTRY WINAPI
+#else
+#define APIENTRY
+#endif
+#endif
+
 struct GlESInterface
     {
     int (*eglChooseConfig) (int dpy, const int *attrib_list, int *configs, int config_size, int *num_config) S;
@@ -63,158 +74,163 @@ struct GlESInterface
     int (*eglTerminate) (int dpy) S;
     int (*eglWaitGL) (void) S;
     int (*eglWaitNative) (int engine) S;
-    void (*glActiveTexture) (unsigned int texture) S;
-    void (*glAlphaFunc) (unsigned int func, float ref) S;
-    void (*glAlphaFuncx) (unsigned int func, int ref) S;
-    void (*glBindTexture) (unsigned int target, unsigned int texture) S;
-    void (*glBlendFunc) (unsigned int sfactor, unsigned int dfactor) S;
-    void (*glClear) (unsigned int mask) S;
-    void (*glClearColor) (float red, float green, float blue, float alpha) S;
-    void (*glClearColorx) (int red, int green, int blue, int alpha) S;
-    void (*glClearDepthf) (float depth) S;
-    void (*glClearDepthx) (int depth) S;
-    void (*glClearStencil) (int s) S;
-    void (*glClientActiveTexture) (unsigned int texture) S;
-    void (*glColor4f) (float red, float green, float blue, float alpha) S;
-    void (*glColor4x) (int red, int green, int blue, int alpha) S;
-    void (*glColorMask) (unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha) S;
-    void (*glColorPointer) (int size, unsigned int type, int stride, const void *pointer) S;
-       void (*glCompressedTexImage2D) (unsigned int target, int level, unsigned int internalformat, int width, int height, int border, int imageSize, const void *data) S;
-       void (*glCompressedTexSubImage2D) (unsigned int target, int level, int xoffset, int yoffset, int width, int height, unsigned int format, int imageSize, const void *data) S;
-       void (*glCopyTexImage2D) (unsigned int target, int level, unsigned int internalformat, int x, int y, int width, int height, int border) S;
-       void (*glCopyTexSubImage2D) (unsigned int target, int level, int xoffset, int yoffset, int x, int y, int width, int height) S;
-       void (*glCullFace) (unsigned int mode) S;
-    void (*glDeleteTextures) (int n, const unsigned int *textures) S;
-    void (*glDepthFunc) (unsigned int func) S;
-    void (*glDepthMask) (unsigned char flag) S;
-    void (*glDepthRangef) (float zNear, float zFar) S;
-    void (*glDepthRangex) (int zNear, int zFar) S;
-    void (*glDisable) (unsigned int cap) S;
-    void (*glDisableClientState) (unsigned int array) S;
-    void (*glDrawArrays) (unsigned int mode, int first, int count) S;
-    void (*glDrawElements) (unsigned int mode, int count, unsigned int type, const void *indices) S;
-    void (*glEnable) (unsigned int cap) S;
-    void (*glEnableClientState) (unsigned int array) S;
-    void (*glFinish) (void) S;
-    void (*glFlush) (void) S;
-    void (*glFogf) (unsigned int pname, float param) S;
-       void (*glFogfv) (unsigned int pname, const float *params) S;
-    void (*glFogx) (unsigned int pname, int param) S;
-    void (*glFogxv) (unsigned int pname, const int *params) S;
-    void (*glFrontFace) (unsigned int mode) S;
-    void (*glFrustumf) (float left, float right, float bottom, float top, float zNear, float zFar) S;
-       void (*glFrustumx) (int left, int right, int bottom, int top, int zNear, int zFar) S;
-    void (*glGenTextures) (int n, unsigned int *textures) S;
-    unsigned int (*glGetError) (void) S;
-       void (*glGetIntegerv) (unsigned int pname, int *params) S;
-    const unsigned char * (*glGetString) (unsigned int name) S;
-    void (*glHint) (unsigned int target, unsigned int mode) S;
-       void (*glLightModelf) (unsigned int pname, float param) S;
-    void (*glLightModelfv) (unsigned int pname, const float *params) S;
-    void (*glLightModelx) (unsigned int pname, int param) S;
-    void (*glLightModelxv) (unsigned int pname, const int *params) S;
-    void (*glLightf) (unsigned int light, unsigned int pname, float param) S;
-    void (*glLightfv) (unsigned int light, unsigned int pname, const float *params) S;
-    void (*glLightx) (unsigned int light, unsigned int pname, int param) S;
-    void (*glLightxv) (unsigned int light, unsigned int pname, const int *params) S;
-    void (*glLineWidth) (float width) S;
-    void (*glLineWidthx) (int width) S;
-    void (*glLoadIdentity) (void) S;
-    void (*glLoadMatrixf) (const float *m) S;
-    void (*glLoadMatrixx) (const int *m) S;
-    void (*glLogicOp) (unsigned int opcode) S;
-    void (*glMaterialf) (unsigned int face, unsigned int pname, float param) S;
-    void (*glMaterialfv) (unsigned int face, unsigned int pname, const float *params) S;
-    void (*glMaterialx) (unsigned int face, unsigned int pname, int param) S;
-    void (*glMaterialxv) (unsigned int face, unsigned int pname, const int *params) S;
-    void (*glMatrixMode) (unsigned int mode) S;
-    void (*glMultMatrixf) (const float *m) S;
-    void (*glMultMatrixx) (const int *m) S;
-    void (*glMultiTexCoord4f) (unsigned int target, float s, float t, float r, float q) S;
-    void (*glMultiTexCoord4x) (unsigned int target, int s, int t, int r, int q) S;
-    void (*glNormal3f) (float nx, float ny, float nz) S;
-    void (*glNormal3x) (int nx, int ny, int nz) S;
-    void (*glNormalPointer) (unsigned int type, int stride, const void *pointer) S;
-    void (*glOrthof) (float left, float right, float bottom, float top, float zNear, float zFar) S;
-    void (*glOrthox) (int left, int right, int bottom, int top, int zNear, int zFar) S;
-    void (*glPixelStorei) (unsigned int pname, int param) S;
-    void (*glPointSize) (float size) S;
-    void (*glPointSizex) (int size) S;
-    void (*glPolygonOffset) (float factor, float units) S;
-    void (*glPolygonOffsetx) (int factor, int units) S;
-    void (*glPopMatrix) (void) S;
-    void (*glPushMatrix) (void) S;
-    unsigned int (*glQueryMatrixxOES) (int mantissa[16], int exponent[16]) S;
-    void (*glReadPixels) (int x, int y, int width, int height, unsigned int format, unsigned int type, void *pixels) S;
-    void (*glRotatef) (float angle, float x, float y, float z) S;
-    void (*glRotatex) (int angle, int x, int y, int z) S;
-    void (*glSampleCoverage) (float value, unsigned char invert) S;
-    void (*glSampleCoveragex) (int value, unsigned char invert) S;
-    void (*glScalef) (float x, float y, float z) S;
-    void (*glScalex) (int x, int y, int z) S;
-    void (*glScissor) (int x, int y, int width, int height) S;
-    void (*glShadeModel) (unsigned int mode) S;
-    void (*glStencilFunc) (unsigned int func, int ref, unsigned int mask) S;
-    void (*glStencilMask) (unsigned int mask) S;
-    void (*glStencilOp) (unsigned int fail, unsigned int zfail, unsigned int zpass) S;
-    void (*glTexCoordPointer) (int size, unsigned int type, int stride, const void *pointer) S;
-    void (*glTexEnvf) (unsigned int target, unsigned int pname, float param) S;
-    void (*glTexEnvfv) (unsigned int target, unsigned int pname, const float *params) S;
-    void (*glTexEnvx) (unsigned int target, unsigned int pname, int param) S;
-    void (*glTexEnvxv) (unsigned int target, unsigned int pname, const int *params) S;
-    void (*glTexImage2D) (unsigned int target, int level, int internalformat, int width, int height, int border, unsigned int format, unsigned int type, const void *pixels) S;
-    void (*glTexParameterf) (unsigned int target, unsigned int pname, float param) S;
-    void (*glTexParameterx) (unsigned int target, unsigned int pname, int param) S;
-    void (*glTexSubImage2D) (unsigned int target, int level, int xoffset, int yoffset, int width, int height, unsigned int format, unsigned int type, const void *pixels) S;
-    void (*glTranslatef) (float x, float y, float z) S;
-    void (*glTranslatex) (int x, int y, int z) S;
-    void (*glVertexPointer) (int size, unsigned int type, int stride, const void *pointer) S;
-    void (*glViewport) (int x, int y, int width, int height) S;
+    void ( APIENTRY *glActiveTexture) (unsigned int texture) S;
+    void ( APIENTRY *glAlphaFunc) (unsigned int func, float ref) S;
+    void ( APIENTRY *glAlphaFuncx) (unsigned int func, int ref) S;
+    void ( APIENTRY *glBindTexture) (unsigned int target, unsigned int texture) S;
+    void ( APIENTRY *glBlendFunc) (unsigned int sfactor, unsigned int dfactor) S;
+    void ( APIENTRY *glClear) (unsigned int mask) S;
+    void ( APIENTRY *glClearColor) (float red, float green, float blue, float alpha) S;
+    void ( APIENTRY *glClearColorx) (int red, int green, int blue, int alpha) S;
+    void ( APIENTRY *glClearDepthf) (float depth) S;
+    void ( APIENTRY *glClearDepthx) (int depth) S;
+    void ( APIENTRY *glClearStencil) (int s) S;
+    void ( APIENTRY *glClientActiveTexture) (unsigned int texture) S;
+    void ( APIENTRY *glColor4f) (float red, float green, float blue, float alpha) S;
+    void ( APIENTRY *glColor4x) (int red, int green, int blue, int alpha) S;
+    void ( APIENTRY *glColorMask) (unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha) S;
+    void ( APIENTRY *glColorPointer) (int size, unsigned int type, int stride, const void *pointer) S;
+       void ( APIENTRY *glCompressedTexImage2D) (unsigned int target, int level, unsigned int internalformat, int width, int height, int border, int imageSize, const void *data) S;
+       void ( APIENTRY *glCompressedTexSubImage2D) (unsigned int target, int level, int xoffset, int yoffset, int width, int height, unsigned int format, int imageSize, const void *data) S;
+       void ( APIENTRY *glCopyTexImage2D) (unsigned int target, int level, unsigned int internalformat, int x, int y, int width, int height, int border) S;
+       void ( APIENTRY *glCopyTexSubImage2D) (unsigned int target, int level, int xoffset, int yoffset, int x, int y, int width, int height) S;
+       void ( APIENTRY *glCullFace) (unsigned int mode) S;
+    void ( APIENTRY *glDeleteTextures) (int n, const unsigned int *textures) S;
+    void ( APIENTRY *glDepthFunc) (unsigned int func) S;
+    void ( APIENTRY *glDepthMask) (unsigned char flag) S;
+    void ( APIENTRY *glDepthRangef) (float zNear, float zFar) S;
+    void ( APIENTRY *glDepthRangex) (int zNear, int zFar) S;
+    void ( APIENTRY *glDisable) (unsigned int cap) S;
+    void ( APIENTRY *glDisableClientState) (unsigned int array) S;
+    void ( APIENTRY *glDrawArrays) (unsigned int mode, int first, int count) S;
+    void ( APIENTRY *glDrawElements) (unsigned int mode, int count, unsigned int type, const void *indices) S;
+    void ( APIENTRY *glEnable) (unsigned int cap) S;
+    void ( APIENTRY *glEnableClientState) (unsigned int array) S;
+    void ( APIENTRY *glFinish) (void) S;
+    void ( APIENTRY *glFlush) (void) S;
+    void ( APIENTRY *glFogf) (unsigned int pname, float param) S;
+       void ( APIENTRY *glFogfv) (unsigned int pname, const float *params) S;
+    void ( APIENTRY *glFogx) (unsigned int pname, int param) S;
+    void ( APIENTRY *glFogxv) (unsigned int pname, const int *params) S;
+    void ( APIENTRY *glFrontFace) (unsigned int mode) S;
+    void ( APIENTRY *glFrustumf) (float left, float right, float bottom, float top, float zNear, float zFar) S;
+       void ( APIENTRY *glFrustumx) (int left, int right, int bottom, int top, int zNear, int zFar) S;
+    void ( APIENTRY *glGenTextures) (int n, unsigned int *textures) S;
+    unsigned int ( APIENTRY *glGetError) (void) S;
+       void ( APIENTRY *glGetIntegerv) (unsigned int pname, int *params) S;
+    const unsigned char * ( APIENTRY *glGetString) (unsigned int name) S;
+    void ( APIENTRY *glHint) (unsigned int target, unsigned int mode) S;
+       void ( APIENTRY *glLightModelf) (unsigned int pname, float param) S;
+    void ( APIENTRY *glLightModelfv) (unsigned int pname, const float *params) S;
+    void ( APIENTRY *glLightModelx) (unsigned int pname, int param) S;
+    void ( APIENTRY *glLightModelxv) (unsigned int pname, const int *params) S;
+    void ( APIENTRY *glLightf) (unsigned int light, unsigned int pname, float param) S;
+    void ( APIENTRY *glLightfv) (unsigned int light, unsigned int pname, const float *params) S;
+    void ( APIENTRY *glLightx) (unsigned int light, unsigned int pname, int param) S;
+    void ( APIENTRY *glLightxv) (unsigned int light, unsigned int pname, const int *params) S;
+    void ( APIENTRY *glLineWidth) (float width) S;
+    void ( APIENTRY *glLineWidthx) (int width) S;
+    void ( APIENTRY *glLoadIdentity) (void) S;
+    void ( APIENTRY *glLoadMatrixf) (const float *m) S;
+    void ( APIENTRY *glLoadMatrixx) (const int *m) S;
+    void ( APIENTRY *glLogicOp) (unsigned int opcode) S;
+    void ( APIENTRY *glMaterialf) (unsigned int face, unsigned int pname, float param) S;
+    void ( APIENTRY *glMaterialfv) (unsigned int face, unsigned int pname, const float *params) S;
+    void ( APIENTRY *glMaterialx) (unsigned int face, unsigned int pname, int param) S;
+    void ( APIENTRY *glMaterialxv) (unsigned int face, unsigned int pname, const int *params) S;
+    void ( APIENTRY *glMatrixMode) (unsigned int mode) S;
+    void ( APIENTRY *glMultMatrixf) (const float *m) S;
+    void ( APIENTRY *glMultMatrixx) (const int *m) S;
+    void ( APIENTRY *glMultiTexCoord4f) (unsigned int target, float s, float t, float r, float q) S;
+    void ( APIENTRY *glMultiTexCoord4x) (unsigned int target, int s, int t, int r, int q) S;
+    void ( APIENTRY *glNormal3f) (float nx, float ny, float nz) S;
+    void ( APIENTRY *glNormal3x) (int nx, int ny, int nz) S;
+    void ( APIENTRY *glNormalPointer) (unsigned int type, int stride, const void *pointer) S;
+    void ( APIENTRY *glOrthof) (float left, float right, float bottom, float top, float zNear, float zFar) S;
+    void ( APIENTRY *glOrthox) (int left, int right, int bottom, int top, int zNear, int zFar) S;
+    void ( APIENTRY *glPixelStorei) (unsigned int pname, int param) S;
+    void ( APIENTRY *glPointSize) (float size) S;
+    void ( APIENTRY *glPointSizex) (int size) S;
+    void ( APIENTRY *glPolygonOffset) (float factor, float units) S;
+    void ( APIENTRY *glPolygonOffsetx) (int factor, int units) S;
+    void ( APIENTRY *glPopMatrix) (void) S;
+    void ( APIENTRY *glPushMatrix) (void) S;
+    unsigned int ( APIENTRY *glQueryMatrixxOES) (int mantissa[16], int exponent[16]) S;
+    void ( APIENTRY *glReadPixels) (int x, int y, int width, int height, unsigned int format, unsigned int type, void *pixels) S;
+    void ( APIENTRY *glRotatef) (float angle, float x, float y, float z) S;
+    void ( APIENTRY *glRotatex) (int angle, int x, int y, int z) S;
+    void ( APIENTRY *glSampleCoverage) (float value, unsigned char invert) S;
+    void ( APIENTRY *glSampleCoveragex) (int value, unsigned char invert) S;
+    void ( APIENTRY *glScalef) (float x, float y, float z) S;
+    void ( APIENTRY *glScalex) (int x, int y, int z) S;
+    void ( APIENTRY *glScissor) (int x, int y, int width, int height) S;
+    void ( APIENTRY *glShadeModel) (unsigned int mode) S;
+    void ( APIENTRY *glStencilFunc) (unsigned int func, int ref, unsigned int mask) S;
+    void ( APIENTRY *glStencilMask) (unsigned int mask) S;
+    void ( APIENTRY *glStencilOp) (unsigned int fail, unsigned int zfail, unsigned int zpass) S;
+    void ( APIENTRY *glTexCoordPointer) (int size, unsigned int type, int stride, const void *pointer) S;
+    void ( APIENTRY *glTexEnvf) (unsigned int target, unsigned int pname, float param) S;
+    void ( APIENTRY *glTexEnvfv) (unsigned int target, unsigned int pname, const float *params) S;
+    void ( APIENTRY *glTexEnvx) (unsigned int target, unsigned int pname, int param) S;
+    void ( APIENTRY *glTexEnvxv) (unsigned int target, unsigned int pname, const int *params) S;
+    void ( APIENTRY *glTexImage2D) (unsigned int target, int level, int internalformat, int width, int height, int border, unsigned int format, unsigned int type, const void *pixels) S;
+    void ( APIENTRY *glTexParameterf) (unsigned int target, unsigned int pname, float param) S;
+    void ( APIENTRY *glTexParameterx) (unsigned int target, unsigned int pname, int param) S;
+    void ( APIENTRY *glTexSubImage2D) (unsigned int target, int level, int xoffset, int yoffset, int width, int height, unsigned int format, unsigned int type, const void *pixels) S;
+    void ( APIENTRY *glTranslatef) (float x, float y, float z) S;
+    void ( APIENTRY *glTranslatex) (int x, int y, int z) S;
+    void ( APIENTRY *glVertexPointer) (int size, unsigned int type, int stride, const void *pointer) S;
+    void ( APIENTRY *glViewport) (int x, int y, int width, int height) S;
     int (*eglSwapInterval) (int dpy, int interval) S;
-    void (*glBindBuffer) (unsigned int target, unsigned int buffer) S;
-    void (*glBufferData) (unsigned int target, int size, const void *data, unsigned int usage) S;
-    void (*glBufferSubData) (unsigned int target, int offset,int size, const void *data) S;
-    void (*glClipPlanef) (unsigned int plane, const float *equation) S;
-    void (*glClipPlanex) (unsigned int plane, const int *equation) S;
-    void (*glColor4ub) (unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha) S;
-    void (*glDeleteBuffers) (int n, const unsigned int *buffers) S;
-    void (*glGenBuffers) (int n, unsigned int *buffers) S;
-    void (*glGetBooleanv) (unsigned int pname, unsigned char *params) S;
-    void (*glGetBufferParameteriv) (unsigned int target, unsigned int pname, int *params) S;
-    void (*glGetClipPlanef) (unsigned int pname, float eqn[4]) S;
-    void (*glGetClipPlanex) (unsigned int pname, int eqn[4]) S;
-    void (*glGetFixedv) (unsigned int pname, int *params) S;
-    void (*glGetFloatv) (unsigned int pname, float *params) S;
-    void (*glGetLightfv) (unsigned int light, unsigned int pname, float *params) S;
-    void (*glGetLightxv) (unsigned int light, unsigned int pname, int *params) S;
-    void (*glGetMaterialfv) (unsigned int face, unsigned int pname, float *params) S;
-    void (*glGetMaterialxv) (unsigned int face, unsigned int pname, int *params) S;
-    void (*glGetPointerv) (unsigned int pname, void **params) S;
-    void (*glGetTexEnvfv) (unsigned int env, unsigned int pname, float *params) S;
-    void (*glGetTexEnviv) (unsigned int env, unsigned int pname, int *params) S;
-    void (*glGetTexEnvxv) (unsigned int env, unsigned int pname, int *params) S;
-    void (*glGetTexParameterfv) (unsigned int target, unsigned int pname, float *params) S;
-    void (*glGetTexParameteriv) (unsigned int target, unsigned int pname, int *params) S;
-    void (*glGetTexParameterxv) (unsigned int target, unsigned int pname, int *params) S;
-    unsigned char (*glIsBuffer) (unsigned int buffer) S;
-    unsigned char (*glIsEnabled) (unsigned int cap) S;
-    unsigned char (*glIsTexture) (unsigned int texture) S;
-    void (*glPointParameterf) (unsigned int pname, float param) S;
-    void (*glPointParameterfv) (unsigned int pname, const float *params) S;
-    void (*glPointParameterx) (unsigned int pname, int param) S;
-    void (*glPointParameterxv) (unsigned int pname, const int *params) S;
-    void (*glPointSizePointerOES) (unsigned int type, int stride, const void *pointer) S;
-    void (*glTexEnvi) (unsigned int target, unsigned int pname, int param) S;
-    void (*glTexEnviv) (unsigned int target, unsigned int pname, const int *params) S;
-    void (*glTexParameterfv) (unsigned int target, unsigned int pname, const float *params) S;
-    void (*glTexParameteri) (unsigned int target, unsigned int pname, int param) S;
-    void (*glTexParameteriv) (unsigned int target, unsigned int pname, const int *params) S;
-    void (*glTexParameterxv) (unsigned int target, unsigned int pname, const int *params) S;
+    void ( APIENTRY *glBindBuffer) (unsigned int target, unsigned int buffer) S;
+    void ( APIENTRY *glBufferData) (unsigned int target, int size, const void *data, unsigned int usage) S;
+    void ( APIENTRY *glBufferSubData) (unsigned int target, int offset,int size, const void *data) S;
+    void ( APIENTRY *glClipPlanef) (unsigned int plane, const float *equation) S;
+    void ( APIENTRY *glClipPlanex) (unsigned int plane, const int *equation) S;
+    void ( APIENTRY *glColor4ub) (unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha) S;
+    void ( APIENTRY *glDeleteBuffers) (int n, const unsigned int *buffers) S;
+    void ( APIENTRY *glGenBuffers) (int n, unsigned int *buffers) S;
+    void ( APIENTRY *glGetBooleanv) (unsigned int pname, unsigned char *params) S;
+    void ( APIENTRY *glGetBufferParameteriv) (unsigned int target, unsigned int pname, int *params) S;
+    void ( APIENTRY *glGetClipPlanef) (unsigned int pname, float eqn[4]) S;
+    void ( APIENTRY *glGetClipPlanex) (unsigned int pname, int eqn[4]) S;
+    void ( APIENTRY *glGetFixedv) (unsigned int pname, int *params) S;
+    void ( APIENTRY *glGetFloatv) (unsigned int pname, float *params) S;
+    void ( APIENTRY *glGetLightfv) (unsigned int light, unsigned int pname, float *params) S;
+    void ( APIENTRY *glGetLightxv) (unsigned int light, unsigned int pname, int *params) S;
+    void ( APIENTRY *glGetMaterialfv) (unsigned int face, unsigned int pname, float *params) S;
+    void ( APIENTRY *glGetMaterialxv) (unsigned int face, unsigned int pname, int *params) S;
+    void ( APIENTRY *glGetPointerv) (unsigned int pname, void **params) S;
+    void ( APIENTRY *glGetTexEnvfv) (unsigned int env, unsigned int pname, float *params) S;
+    void ( APIENTRY *glGetTexEnviv) (unsigned int env, unsigned int pname, int *params) S;
+    void ( APIENTRY *glGetTexEnvxv) (unsigned int env, unsigned int pname, int *params) S;
+    void ( APIENTRY *glGetTexParameterfv) (unsigned int target, unsigned int pname, float *params) S;
+    void ( APIENTRY *glGetTexParameteriv) (unsigned int target, unsigned int pname, int *params) S;
+    void ( APIENTRY *glGetTexParameterxv) (unsigned int target, unsigned int pname, int *params) S;
+    unsigned char ( APIENTRY *glIsBuffer) (unsigned int buffer) S;
+    unsigned char ( APIENTRY *glIsEnabled) (unsigned int cap) S;
+    unsigned char ( APIENTRY *glIsTexture) (unsigned int texture) S;
+    void ( APIENTRY *glPointParameterf) (unsigned int pname, float param) S;
+    void ( APIENTRY *glPointParameterfv) (unsigned int pname, const float *params) S;
+    void ( APIENTRY *glPointParameterx) (unsigned int pname, int param) S;
+    void ( APIENTRY *glPointParameterxv) (unsigned int pname, const int *params) S;
+    void ( APIENTRY *glPointSizePointerOES) (unsigned int type, int stride, const void *pointer) S;
+    void ( APIENTRY *glTexEnvi) (unsigned int target, unsigned int pname, int param) S;
+    void ( APIENTRY *glTexEnviv) (unsigned int target, unsigned int pname, const int *params) S;
+    void ( APIENTRY *glTexParameterfv) (unsigned int target, unsigned int pname, const float *params) S;
+    void ( APIENTRY *glTexParameteri) (unsigned int target, unsigned int pname, int param) S;
+    void ( APIENTRY *glTexParameteriv) (unsigned int target, unsigned int pname, const int *params) S;
+    void ( APIENTRY *glTexParameterxv) (unsigned int target, unsigned int pname, const int *params) S;
 
     int (*eglBindTexImage) (int dpy, int surface, int buffer) S;
     int (*eglReleaseTexImage) (int dpy, int surface, int buffer) S;
     int (*eglSurfaceAttrib) (int dpy, int surface, int attribute, int value) S;
 
+#ifdef USE_CORE_PROFILE
+       void ( APIENTRY *glOrtho) (double left, double right, double bottom, double top, double zNear, double zFar) S;
+       void ( APIENTRY *glDepthRange) (double zNear, double zFar) S;
+#endif 
+
     };
 #if !defined (__WINS__)
     #if        defined(__TARGET_FPU_VFP)
index 0e6bd208514f5a779a13cb5e69427636e8d8262d..7237c5be7278fa2f76a552c1de06dca73c1f7a64 100644 (file)
@@ -28,7 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 extern "C++" GlESInterface* glEsImpl;
 extern "C++" void FlushOnStateChange();
-void gl_unimplemented();
+void APIENTRY gl_unimplemented(GLenum none);
 
 EGLint eglGetError (void)
     {
diff --git a/funcnames.h b/funcnames.h
new file mode 100644 (file)
index 0000000..8a88e29
--- /dev/null
@@ -0,0 +1,186 @@
+    "eglChooseConfig",\r
+    "eglCopyBuffers",\r
+    "eglCreateContext",\r
+    "eglCreatePbufferSurface",\r
+    "eglCreatePixmapSurface",\r
+    "eglCreateWindowSurface",\r
+    "eglDestroyContext",\r
+    "eglDestroySurface",\r
+    "eglGetConfigAttrib",\r
+    "eglGetConfigs",\r
+    "eglGetCurrentContext",\r
+    "eglGetCurrentDisplay",\r
+    "eglGetCurrentSurface",\r
+    "eglGetDisplay",\r
+    "eglGetError",\r
+\r
+    "eglGetProcAddress",\r
+\r
+    "eglInitialize",\r
+    "eglMakeCurrent",\r
+    "eglQueryContext",\r
+    "eglQueryString",\r
+    "eglQuerySurface",\r
+    "eglSwapBuffers",\r
+    "eglTerminate",\r
+    "eglWaitGL",\r
+    "eglWaitNative",\r
+\r
+\r
+    "glActiveTexture",\r
+    "glAlphaFunc",\r
+    "glAlphaFuncx",\r
+    "glBindTexture",\r
+    "glBlendFunc",\r
+    "glClear",\r
+    "glClearColor",\r
+    "glClearColorx",\r
+    "glClearDepthf",\r
+    "glClearDepthx",\r
+    "glClearStencil",\r
+    "glClientActiveTexture",\r
+    "glColor4f",\r
+    "glColor4x",\r
+    "glColorMask",\r
+    "glColorPointer",\r
+    "glCompressedTexImage2D",\r
+    "glCompressedTexSubImage2D",\r
+    "glCopyTexImage2D",\r
+    "glCopyTexSubImage2D",\r
+    "glCullFace",\r
+    "glDeleteTextures",\r
+    "glDepthFunc",\r
+    "glDepthMask",\r
+    "glDepthRangef",\r
+    "glDepthRangex",\r
+    "glDisable",\r
+    "glDisableClientState",\r
+    "glDrawArrays",\r
+    "glDrawElements",\r
+    "glEnable",\r
+    "glEnableClientState",\r
+    "glFinish",\r
+    "glFlush",\r
+    "glFogf",\r
+    "glFogfv",\r
+    "glFogx",\r
+    "glFogxv",\r
+    "glFrontFace",\r
+    "glFrustumf",\r
+    "glFrustumx",\r
+    "glGenTextures",\r
+    "glGetError",\r
+    "glGetIntegerv",\r
+    "glGetString",\r
+    "glHint",\r
+    "glLightModelf",\r
+    "glLightModelfv",\r
+    "glLightModelx",\r
+    "glLightModelxv",\r
+    "glLightf",\r
+    "glLightfv",\r
+    "glLightx",\r
+    "glLightxv",\r
+    "glLineWidth",\r
+    "glLineWidthx",\r
+    "glLoadIdentity",\r
+    "glLoadMatrixf",\r
+    "glLoadMatrixx",\r
+    "glLogicOp",\r
+    "glMaterialf",\r
+    "glMaterialfv",\r
+    "glMaterialx",\r
+    "glMaterialxv",\r
+    "glMatrixMode",\r
+    "glMultMatrixf",\r
+    "glMultMatrixx",\r
+    "glMultiTexCoord4f",\r
+    "glMultiTexCoord4x",\r
+    "glNormal3f",\r
+    "glNormal3x",\r
+    "glNormalPointer",\r
+    "glOrthof",\r
+    "glOrthox",\r
+    "glPixelStorei",\r
+    "glPointSize",\r
+    "glPointSizex",\r
+    "glPolygonOffset",\r
+    "glPolygonOffsetx",\r
+    "glPopMatrix",\r
+    "glPushMatrix",\r
+    "glQueryMatrixxOES",\r
+    "glReadPixels",\r
+    "glRotatef",\r
+    "glRotatex",\r
+    "glSampleCoverage",\r
+    "glSampleCoveragex",\r
+    "glScalef",\r
+    "glScalex",\r
+    "glScissor",\r
+    "glShadeModel",\r
+    "glStencilFunc",\r
+    "glStencilMask",\r
+    "glStencilOp",\r
+    "glTexCoordPointer",\r
+    "glTexEnvf",\r
+    "glTexEnvfv",\r
+    "glTexEnvx",\r
+    "glTexEnvxv",\r
+    "glTexImage2D",\r
+    "glTexParameterf",\r
+    "glTexParameterx",\r
+    "glTexSubImage2D",\r
+    "glTranslatef",\r
+    "glTranslatex",\r
+    "glVertexPointer",\r
+    "glViewport",\r
+    "eglSwapInterval",\r
+    "glBindBuffer",\r
+    "glBufferData",\r
+    "glBufferSubData",\r
+    "glClipPlanef",\r
+    "glClipPlanex",\r
+    "glColor4ub",\r
+    "glDeleteBuffers",\r
+    "glGenBuffers",\r
+    "glGetBooleanv",\r
+    "glGetBufferParameteriv",\r
+    "glGetClipPlanef",\r
+    "glGetClipPlanex",\r
+    "glGetFixedv",\r
+    "glGetFloatv",\r
+    "glGetLightfv",\r
+    "glGetLightxv",\r
+    "glGetMaterialfv",\r
+    "glGetMaterialxv",\r
+    "glGetPointerv",\r
+    "glGetTexEnvfv",\r
+    "glGetTexEnviv",\r
+    "glGetTexEnvxv",\r
+    "glGetTexParameterfv",\r
+    "glGetTexParameteriv",\r
+    "glGetTexParameterxv",\r
+    "glIsBuffer",\r
+    "glIsEnabled",\r
+    "glIsTexture",\r
+    "glPointParameterf",\r
+    "glPointParameterfv",\r
+    "glPointParameterx",\r
+    "glPointParameterxv",\r
+    "glPointSizePointerOES",\r
+    "glTexEnvi",\r
+    "glTexEnviv",\r
+    "glTexParameterfv",\r
+    "glTexParameteri",\r
+    "glTexParameteriv",\r
+    "glTexParameterxv",\r
+\r
+\r
+    "eglBindTexImage",\r
+    "eglReleaseTexImage",\r
+    "eglSurfaceAttrib",\r
+\r
+#ifdef USE_CORE_PROFILE\r
+    "glOrtho",\r
+    "glDepthRange",\r
+#endif\r
index a30a009de2421771b32292914fa1ae480c96ed7a..c13aea311d72a7f902275de277d4f156227a7039 100644 (file)
@@ -324,7 +324,9 @@ void FlushOnStateChange()
     if (delayedttmuchange)
         {
         delayedttmuchange = GL_FALSE;
+#ifndef USE_CORE_PROFILE
         glEsImpl->glActiveTexture(delayedtmutarget);
+#endif
         }
 
     if (!vertexCount)
@@ -994,7 +996,11 @@ void glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
 void glOrtho (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
     {
     FlushOnStateChange();
+#ifdef USE_CORE_PROFILE
+       glEsImpl->glOrtho(left,right,bottom,top, zNear,zFar);
+#else
     glEsImpl->glOrthof(left,right,bottom,top, zNear,zFar);
+#endif
     }
 
 void glMatrixMode (GLenum mode)
@@ -1071,7 +1077,11 @@ void glDepthRange(GLclampf zNear, GLclampf zFar)
         nanoglState.depth_range_far = zFar;
         }
     FlushOnStateChange();
+#ifdef USE_CORE_PROFILE
+       glEsImpl->glDepthRange(zNear, zFar);
+#else
     glEsImpl->glDepthRangef(zNear, zFar);
+#endif
     }
 
 void glDepthFunc (GLenum func)
index 11bd1eac4faf162e8d1bd5e9063deaee398499f1..bd699da41c968ebe4af9455963bb0afac9e2b35a 100644 (file)
@@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include <stdio.h>
 #include <stdlib.h>
-#include <dlfcn.h>
+
 
 //#include <cutils/log.h>
 
@@ -42,19 +42,34 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG,__VA_ARGS__)
 #define LOGW(...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG,__VA_ARGS__)
 #else
+#ifndef _MSC_VER
+#define LOGI(...) printf("I: "__VA_ARGS__);printf("\n")
+#define LOGD(...) if(DEBUG_NANO) {printf("D: "__VA_ARGS__);printf("\n");} 
+#define LOGE(...) printf("E: "__VA_ARGS__);printf("\n")
+#define LOGW(...) printf("W: "__VA_ARGS__);printf("\n")
+#else
+#define LOGI printf
+#define LOGD printf
+#define LOGE printf
+#define LOGW printf
 
-#define LOGI(...) printf("I: "__VA_ARGS__)
-#define LOGD(...) if(DEBUG_NANO) printf("D: "__VA_ARGS__) 
-#define LOGE(...) printf("E: "__VA_ARGS__)
-#define LOGW(...) printf("W: "__VA_ARGS__)
+#endif
+#endif
 
+#ifdef _WIN32
+#include <windows.h>
+#define dlopen(x,y) LoadLibraryA(x)
+#define dlsym(x,y) (void*)GetProcAddress((HINSTANCE)x,y)
+#define dlclose(x) FreeLibrary((HINSTANCE)x)
+#else
+#include <dlfcn.h>
 #endif
 
 
-#define GL_ENTRY(_r, _api, ...) #_api,
+//#define GL_ENTRY(_r, _api, ...) #_api,
 
 static char const * const gl_names[] = {
-    #include "gl_entries.in"
+    #include "funcnames.h"
     NULL
 };
 
@@ -66,8 +81,10 @@ GlESInterface* glEsImpl = NULL;
 
 extern void InitGLStructs();
 
-void gl_unimplemented() {
-       LOGE ("Called unimplemented OpenGL ES API\n"); 
+void APIENTRY gl_unimplemented(GLenum none) {
+#ifndef USE_CORE_PROFILE
+       LOGE ("Called unimplemented OpenGL ES API\n");
+#endif
 }
 
 void *nanoGL_GetProcAddress(const char *name)
@@ -112,6 +129,19 @@ static int CreateGlEsInterface( const char * name, void * lib, void * lib1, void
                
                f = dlsym(lib, *api); // try libGLESxx_CM.so
 
+#ifdef USE_CORE_PROFILE
+               // Hack: try ARB and EXT suffix
+               if (f == NULL) {
+                       char namearb[256];
+                       snprintf( namearb, 256, "%sARB", *api );
+                       f = dlsym( lib, namearb );
+               }
+               if (f == NULL) {
+                       char namearb[256];
+                       snprintf( namearb, 256, "%sEXT", *api );
+                       f = dlsym( lib, namearb );
+               }
+#endif
                if (f == NULL) {
                        LOGW( "<%s> not found in %s. Trying libEGL.so.", *api, name); //driver);
                        
@@ -139,7 +169,7 @@ static int CreateGlEsInterface( const char * name, void * lib, void * lib1, void
                        
            *ptr++ = f;
         api++;
-    }
+    }  
 
        return 1;
 }
@@ -154,6 +184,60 @@ static int loadDriver(const char * name) {
 /**
  * Init
  */
+#ifdef _WIN32
+int nanoGL_Init()
+{
+       const char * lib1 = "opengl32.dll";     // Has both gl* & egl* funcs SDK < 1.5
+       const char * lib2 = "opengl32.dll";     // Only gl* funcs SDK >= 1.5
+       const char * lib3 = "opengl32.dll";             // Only egl* funcs SDK >= 1.5
+       const char * driver;
+       
+       // load lib
+       LOGI("nanoGL: Init loading driver %s\n", lib1);
+       //LOG (ANDROID_LOG_DEBUG, LOG_TAG, "nanoGL: Init loading driver %s\n", lib1);
+
+       if ( ! loadDriver(lib1) ) 
+       {
+               LOGE("Failed to load driver %s. Trying %s\n", lib1, lib2);
+
+               if ( ! loadDriver(lib2) ) {
+                       LOGE ("Failed to load  %s.\n", lib2);
+                       return 0;
+               }
+               else
+                       driver = lib2;
+       }
+       else
+               driver = lib1;
+
+       void * eglLib;
+       
+       //if ( strcmp(driver, lib2) == 0 ) {
+               LOGD ("**** Will Load EGL subs from %s ****", lib3);
+               
+               eglLib = dlopen(lib3, RTLD_NOW | RTLD_LOCAL);
+               
+               if ( ! eglLib ) {
+                       LOGE ( "Failed to load %s", lib3);
+               }
+       //}
+       
+       // Load API gl* for 1.5+  else egl* gl* 
+       //if (CreateGlEsInterface(driver, glesLib, eglLib, NULL) == -1)
+       if ( !CreateGlEsInterface(driver, glesLib, eglLib, (void *) gl_unimplemented) == -1)
+    {
+               // release lib
+               LOGE ( "CreateGlEsInterface failed.");
+
+               dlclose(glesLib);
+           return 0;
+    }
+
+       // Init nanoGL
+       InitGLStructs();
+       return 1;
+}
+#else
 int nanoGL_Init()
 {
        const char * lib1 = "libGLESv1_CM.so";  // Has both gl* & egl* funcs SDK < 1.5
@@ -206,17 +290,17 @@ int nanoGL_Init()
        InitGLStructs();
        return 1;
 }
-
+#endif
 void nanoGL_Destroy()
 {
        LOGD ("nanoGL_Destroy");
        
        if (glEsImpl) {
-        free( glEsImpl); 
+        free( glEsImpl);
         glEsImpl = NULL;
     }
        
        // release lib
        dlclose(glesLib);
 }
-    
+