X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=source%2Frice_gles%2Fsrc%2FOGLRender.cpp;h=ffbbbd7cc738dff6a594b8ff4eca38ed84ded8db;hb=2f75cc30366660c2405780c1490f37a5882104ad;hp=e723de9f5ac0cb295c857fee7e62ae4b6295474d;hpb=d07c171fa694cae985ad7045f9ce2b2f1a5699b4;p=mupen64plus-pandora.git diff --git a/source/rice_gles/src/OGLRender.cpp b/source/rice_gles/src/OGLRender.cpp index e723de9..ffbbbd7 100755 --- a/source/rice_gles/src/OGLRender.cpp +++ b/source/rice_gles/src/OGLRender.cpp @@ -624,16 +624,10 @@ bool OGLRender::RenderTexRect() if( m_bMultiTexture ) { glClientActiveTexture( GL_TEXTURE1 ); - //if (m_texUnitEnabled[1]) - glTexCoordPointer(2, GL_FLOAT, 0, &tex2); - /*else - glDisableClientState(GL_TEXTURE_COORD_ARRAY);*/ + glTexCoordPointer(2, GL_FLOAT, 0, &tex2); glClientActiveTexture( GL_TEXTURE0 ); } - //if (m_texUnitEnabled[0]) - glTexCoordPointer(2, GL_FLOAT, 0, &tex); - /*else - glDisableClientState(GL_TEXTURE_COORD_ARRAY);*/ + glTexCoordPointer(2, GL_FLOAT, 0, &tex); glColorPointer(4, GL_FLOAT,0, &colour ); glVertexPointer(4,GL_FLOAT, 0, &vertices); @@ -646,17 +640,11 @@ bool OGLRender::RenderTexRect() glColorPointer( 4, GL_UNSIGNED_BYTE, sizeof(uint8)*4, &(g_oglVtxColors[0][0]) ); glVertexPointer( 4, GL_FLOAT, sizeof(float)*5, &(g_vtxProjected5[0][0]) ); -// if (m_texUnitEnabled[0]) - glTexCoordPointer( 2, GL_FLOAT, sizeof( TLITVERTEX ), &(g_vtxBuffer[0].tcord[0].u) ); -/* else - glEnableClientState(GL_TEXTURE_COORD_ARRAY);*/ + glTexCoordPointer( 2, GL_FLOAT, sizeof( TLITVERTEX ), &(g_vtxBuffer[0].tcord[0].u) ); if( m_bMultiTexture ) { glClientActiveTexture( GL_TEXTURE1 ); -// if (m_texUnitEnabled[1]) - glTexCoordPointer( 2, GL_FLOAT, sizeof( TLITVERTEX ), &(g_vtxBuffer[0].tcord[1].u) ); -/* else - glEnableClientState( GL_TEXTURE_COORD_ARRAY );*/ + glTexCoordPointer( 2, GL_FLOAT, sizeof( TLITVERTEX ), &(g_vtxBuffer[0].tcord[1].u) ); } #else @@ -1013,6 +1001,15 @@ void OGLRender::DrawSimple2DTexture(float x0, float y0, float x1, float y1, floa g_texRectTVtx[3].tcord[0].u,g_texRectTVtx[3].tcord[0].v }; + GLfloat tex2[] = { + g_texRectTVtx[0].tcord[1].u,g_texRectTVtx[0].tcord[1].v, + g_texRectTVtx[1].tcord[1].u,g_texRectTVtx[1].tcord[1].v, + g_texRectTVtx[2].tcord[1].u,g_texRectTVtx[2].tcord[1].v, + g_texRectTVtx[0].tcord[1].u,g_texRectTVtx[0].tcord[1].v, + g_texRectTVtx[2].tcord[1].u,g_texRectTVtx[2].tcord[1].v, + g_texRectTVtx[3].tcord[1].u,g_texRectTVtx[3].tcord[1].v + }; + GLfloat vertices[] = { g_texRectTVtx[0].x, g_texRectTVtx[0].y, -g_texRectTVtx[0].z, 1, g_texRectTVtx[1].x, g_texRectTVtx[1].y, -g_texRectTVtx[1].z, 1, @@ -1027,31 +1024,19 @@ void OGLRender::DrawSimple2DTexture(float x0, float y0, float x1, float y1, floa if( m_bMultiTexture ) { glClientActiveTexture( GL_TEXTURE1 ); -// if (m_texUnitEnabled[1]) - glTexCoordPointer(2, GL_FLOAT, 0, &tex); -/* else - glDisableClientState( GL_TEXTURE_COORD_ARRAY );*/ + glTexCoordPointer(2, GL_FLOAT, 0, &tex2); glClientActiveTexture( GL_TEXTURE0 ); } -// if (m_texUnitEnabled[0]) - glTexCoordPointer(2, GL_FLOAT, 0, &tex); -/* else - glDisableClientState( GL_TEXTURE_COORD_ARRAY );*/ + glTexCoordPointer(2, GL_FLOAT, 0, &tex); glDrawArrays(GL_TRIANGLES,0,6); //Restore old pointers glColorPointer( 4, GL_UNSIGNED_BYTE, sizeof(uint8)*4, &(g_oglVtxColors[0][0]) ); glTexCoordPointer( 2, GL_FLOAT, sizeof( TLITVERTEX ), &(g_vtxBuffer[0].tcord[0].u) ); -// if (m_texUnitEnabled[1]) - glVertexPointer( 4, GL_FLOAT, sizeof(float)*5, &(g_vtxProjected5[0][0]) ); -/* else - glEnableClientState( GL_TEXTURE_COORD_ARRAY );*/ + glVertexPointer( 4, GL_FLOAT, sizeof(float)*5, &(g_vtxProjected5[0][0]) ); if( m_bMultiTexture ) { glClientActiveTexture( GL_TEXTURE1 ); -// if (m_texUnitEnabled[1]) - glTexCoordPointer( 2, GL_FLOAT, sizeof( TLITVERTEX ), &(g_vtxBuffer[0].tcord[1].u) ); -/* else - glEnableClientState( GL_TEXTURE_COORD_ARRAY );*/ + glTexCoordPointer( 2, GL_FLOAT, sizeof( TLITVERTEX ), &(g_vtxBuffer[0].tcord[1].u) ); } #else glBegin(GL_TRIANGLES); @@ -1164,17 +1149,14 @@ void OGLRender::DrawSimpleRect(int nX0, int nY0, int nX1, int nY1, uint32 dwColo if( m_bMultiTexture ) { glClientActiveTexture( GL_TEXTURE1 ); - if (m_texUnitEnabled[1]) { - glActiveTexture( GL_TEXTURE1 ); - glDisable(GL_TEXTURE_2D); - } + glActiveTexture( GL_TEXTURE1 ); + glDisable(GL_TEXTURE_2D); glDisableClientState( GL_TEXTURE_COORD_ARRAY ); glClientActiveTexture( GL_TEXTURE0 ); } - if (m_texUnitEnabled[0]) { - glActiveTexture( GL_TEXTURE0 ); - glDisable(GL_TEXTURE_2D); - } + glActiveTexture( GL_TEXTURE0 ); + glDisable(GL_TEXTURE_2D); + glDisableClientState( GL_TEXTURE_COORD_ARRAY ); OPENGL_CHECK_ERRORS; glColor4f(r,g,b,a); @@ -1184,15 +1166,11 @@ void OGLRender::DrawSimpleRect(int nX0, int nY0, int nX1, int nY1, uint32 dwColo glColorPointer( 4, GL_UNSIGNED_BYTE, sizeof(uint8)*4, &(g_oglVtxColors[0][0]) ); glEnableClientState( GL_TEXTURE_COORD_ARRAY ); glVertexPointer( 4, GL_FLOAT, sizeof(float)*5, &(g_vtxProjected5[0][0]) ); - if (m_texUnitEnabled[0]) { - glEnable(GL_TEXTURE_2D); - } + glEnable(GL_TEXTURE_2D); if( m_bMultiTexture ) { - if (m_texUnitEnabled[1]) { - glActiveTexture( GL_TEXTURE1 ); - glEnable(GL_TEXTURE_2D); - } + glActiveTexture( GL_TEXTURE1 ); + glEnable(GL_TEXTURE_2D); glClientActiveTexture( GL_TEXTURE1 ); glEnableClientState( GL_TEXTURE_COORD_ARRAY ); } @@ -1417,7 +1395,7 @@ void OGLRender::UpdateScissor() uint32 height = (gRDP.scissor.right*gRDP.scissor.bottom)/width; glEnable(GL_SCISSOR_TEST); OPENGL_CHECK_ERRORS; - glScissor(0, int(height*windowSetting.fMultY+windowSetting.statusBarHeightToUse), + glScissor(windowSetting.uDisplayX, windowSetting.uDisplayY+int(height*windowSetting.fMultY+windowSetting.statusBarHeightToUse), int(width*windowSetting.fMultX), int(height*windowSetting.fMultY) ); OPENGL_CHECK_ERRORS; } @@ -1438,13 +1416,13 @@ void OGLRender::ApplyRDPScissor(bool force) uint32 height = (gRDP.scissor.right*gRDP.scissor.bottom)/width; glEnable(GL_SCISSOR_TEST); OPENGL_CHECK_ERRORS; - glScissor(0, int(height*windowSetting.fMultY+windowSetting.statusBarHeightToUse), + glScissor(windowSetting.uDisplayX, windowSetting.uDisplayY+int(height*windowSetting.fMultY+windowSetting.statusBarHeightToUse), int(width*windowSetting.fMultX), int(height*windowSetting.fMultY) ); OPENGL_CHECK_ERRORS; } else { - glScissor(int(gRDP.scissor.left*windowSetting.fMultX), int((windowSetting.uViHeight-gRDP.scissor.bottom)*windowSetting.fMultY+windowSetting.statusBarHeightToUse), + glScissor(windowSetting.uDisplayX+int(gRDP.scissor.left*windowSetting.fMultX), windowSetting.uDisplayY+int((windowSetting.uViHeight-gRDP.scissor.bottom)*windowSetting.fMultY+windowSetting.statusBarHeightToUse), int((gRDP.scissor.right-gRDP.scissor.left)*windowSetting.fMultX), int((gRDP.scissor.bottom-gRDP.scissor.top)*windowSetting.fMultY )); OPENGL_CHECK_ERRORS; } @@ -1458,7 +1436,7 @@ void OGLRender::ApplyScissorWithClipRatio(bool force) glEnable(GL_SCISSOR_TEST); OPENGL_CHECK_ERRORS; - glScissor(windowSetting.clipping.left, int((windowSetting.uViHeight-gRSP.real_clip_scissor_bottom)*windowSetting.fMultY)+windowSetting.statusBarHeightToUse, + glScissor(windowSetting.uDisplayX+windowSetting.clipping.left, windowSetting.uDisplayY+int((windowSetting.uViHeight-gRSP.real_clip_scissor_bottom)*windowSetting.fMultY)+windowSetting.statusBarHeightToUse, windowSetting.clipping.width, windowSetting.clipping.height); OPENGL_CHECK_ERRORS; @@ -1569,6 +1547,9 @@ void OGLRender::glViewportWrapper(GLint x, GLint y, GLsizei width, GLsizei heigh static GLint mx=0,my=0; static GLsizei m_width=0, m_height=0; static bool mflag=true; + + x+=windowSetting.uDisplayX; + y+=windowSetting.uDisplayY; if( x!=mx || y!=my || width!=m_width || height!=m_height || mflag!=flag) {