X-Git-Url: http://deadsoftware.ru/gitweb?p=nanogl.git;a=blobdiff_plain;f=nanoWrap.cpp;h=a30a009de2421771b32292914fa1ae480c96ed7a;hp=0428487e698841da06738fb165d5ddfb97e6685f;hb=4f937221b421f3c63856af69e4d620a7f8b0a6b0;hpb=63045ea16759232df455140efd8d5ed67986882d diff --git a/nanoWrap.cpp b/nanoWrap.cpp index 0428487..a30a009 100644 --- a/nanoWrap.cpp +++ b/nanoWrap.cpp @@ -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,6 +260,64 @@ 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() { @@ -302,7 +361,14 @@ void FlushOnStateChange() ptrIndexArray = indexArray; useTexCoordArray = GL_FALSE; } - +void nanoGL_Flush() + { + FlushOnStateChange(); + } +void nanoGL_Reset() +{ + ResetNanoState(); +} void glBegin(GLenum mode) { wrapperPrimitiveMode = mode; @@ -1354,7 +1420,7 @@ void glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) GLenum glGetError (void) { - FlushOnStateChange(); + //FlushOnStateChange(); return GL_NO_ERROR;//glEsImpl->glGetError(); }