X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=nanoWrap.cpp;h=27daf14cd5a1c048a61cdf4b50390fbc2c6e7286;hb=36696ece82d8944326abc5e5949be301ae360ef3;hp=eea514e1ea6570eca3781965a7eba33f70c6e0d0;hpb=2a342cb7b58f8e29ec4852e195beed47d5f40821;p=nanogl.git diff --git a/nanoWrap.cpp b/nanoWrap.cpp index eea514e..27daf14 100644 --- a/nanoWrap.cpp +++ b/nanoWrap.cpp @@ -24,6 +24,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #include +#include #include "gl.h" #include "glesinterface.h" @@ -204,7 +205,7 @@ struct VertexAttrib #endif }; -static VertexAttrib vertexattribs[8000]; +static VertexAttrib vertexattribs[40000]; static GLushort indexArray[30000]; @@ -258,6 +259,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() {