DEADSOFTWARE

Use SDL for GetProcAddress
[nanogl.git] / nanoWrap.cpp
index 0428487e698841da06738fb165d5ddfb97e6685f..c13aea311d72a7f902275de277d4f156227a7039 100644 (file)
@@ -28,6 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "gl.h"
 #include "glesinterface.h"
+#include "nanogl.h"
 
 #define GL_TEXTURE0_ARB                     0x84C0
 #define GL_TEXTURE1_ARB                     0x84C1
@@ -259,13 +260,73 @@ void InitGLStructs()
     arraysValid = GL_FALSE;
     }
 
+void ResetNanoState()
+{
+
+       if (tmuState0.color_array.enabled)
+       {
+               glEsImpl->glEnableClientState(GL_COLOR_ARRAY);
+       }
+       else
+       {
+               glEsImpl->glDisableClientState(GL_COLOR_ARRAY);
+       }
+
+       if (tmuState0.vertex_array.enabled)
+       {
+               glEsImpl->glEnableClientState(GL_VERTEX_ARRAY);
+       }
+       else
+       {
+               glEsImpl->glDisableClientState(GL_VERTEX_ARRAY);
+       }
+
+       if (tmuState0.texture_coord_array.enabled)
+       {
+               glEsImpl->glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+       }
+       else
+       {
+               glEsImpl->glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+       }
+       glEsImpl->glVertexPointer(tmuState0.vertex_array.size,
+                       tmuState0.vertex_array.type,
+                       tmuState0.vertex_array.stride,
+                       tmuState0.vertex_array.ptr);
+
+       glEsImpl->glTexCoordPointer(tmuState0.texture_coord_array.size,
+                       tmuState0.texture_coord_array.type,
+                       tmuState0.texture_coord_array.stride,
+                       tmuState0.texture_coord_array.ptr);
+
+       glEsImpl->glColorPointer(tmuState0.color_array.size,
+                       tmuState0.color_array.type,
+                       tmuState0.color_array.stride,
+                       tmuState0.color_array.ptr);
+
+       glEsImpl->glMatrixMode(nanoglState.matrixmode);
+
+
+
+       glEsImpl->glColor4f (currentVertexAttrib.red, currentVertexAttrib.green, currentVertexAttrib.blue, currentVertexAttrib.alpha);
+
+       glEsImpl->glBlendFunc(nanoglState.sfactor, nanoglState.dfactor);
+
+       //glEsImpl->glBindTexture(GL_TEXTURE_2D, stackTextureState);
+
+       glEsImpl->glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, activetmuState->texture_env_mode.value);
+
+       arraysValid = GL_FALSE;
+}
 
 void FlushOnStateChange()
     {
     if (delayedttmuchange)
         {
         delayedttmuchange = GL_FALSE;
+#ifndef USE_CORE_PROFILE
         glEsImpl->glActiveTexture(delayedtmutarget);
+#endif
         }
 
     if (!vertexCount)
@@ -302,7 +363,14 @@ void FlushOnStateChange()
     ptrIndexArray = indexArray;
     useTexCoordArray = GL_FALSE;
     }
-
+void nanoGL_Flush()
+       {
+       FlushOnStateChange();
+       }
+void nanoGL_Reset()
+{
+       ResetNanoState();
+}
 void glBegin(GLenum mode)
     {
     wrapperPrimitiveMode = mode;
@@ -928,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)
@@ -1005,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)
@@ -1354,7 +1430,7 @@ void glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
 
 GLenum glGetError (void)
     {
-    FlushOnStateChange();
+    //FlushOnStateChange();
     return GL_NO_ERROR;//glEsImpl->glGetError();
     }