diff --git a/src/skel/symbian/symbian.cpp b/src/skel/symbian/symbian.cpp index 531dddd..7416920 100644 --- a/src/skel/symbian/symbian.cpp +++ b/src/skel/symbian/symbian.cpp @@ -355,6 +355,7 @@ public: // container->gGameState = GS_INIT_PLAYING_GAME; break; case GS_FRONTEND: + if (!IsForegroundApp()) break; RsEventHandler(rsFRONTENDIDLE, nil); if ( !FrontEndMenuManager.m_bMenuActive || FrontEndMenuManager.m_bWantToLoad ) { @@ -377,6 +378,7 @@ public: TRACE("gGameState = GS_PLAYING_GAME;"); break; case GS_PLAYING_GAME: + if (!IsForegroundApp()) break; // float ms = (float)CTimer::GetCurrentTimeInCycles() / (float)tickPeriod; //(float)CTimer::GetCyclesPerMillisecond(); // if ( RwInitialised ) // { diff --git a/vendor/librw/src/gl/gl3render.cpp b/vendor/librw/src/gl/gl3render.cpp index f7f3d2e..d5809af 100644 --- a/vendor/librw/src/gl/gl3render.cpp +++ b/vendor/librw/src/gl/gl3render.cpp @@ -26,50 +26,15 @@ void drawInst_simple(InstanceDataHeader *header, InstanceData *inst) { draw++; + flushCache(); glDrawElements(header->primType, inst->numIndex, GL_UNSIGNED_SHORT, ((uint8*) header->indexBuffer) + inst->offset); } -// Emulate PS2 GS alpha test FB_ONLY case: failed alpha writes to frame- but not to depth buffer -void -drawInst_GSemu(InstanceDataHeader *header, InstanceData *inst) -{ - uint32 hasAlpha; - int alphafunc, alpharef, gsalpharef; - int zwrite; - hasAlpha = getAlphaBlend(); - if(hasAlpha){ - zwrite = rw::GetRenderState(rw::ZWRITEENABLE); - alphafunc = rw::GetRenderState(rw::ALPHATESTFUNC); - if(zwrite){ - alpharef = rw::GetRenderState(rw::ALPHATESTREF); - gsalpharef = rw::GetRenderState(rw::GSALPHATESTREF); - - SetRenderState(rw::ALPHATESTFUNC, rw::ALPHAGREATEREQUAL); - SetRenderState(rw::ALPHATESTREF, gsalpharef); - drawInst_simple(header, inst); - SetRenderState(rw::ALPHATESTFUNC, rw::ALPHALESS); - SetRenderState(rw::ZWRITEENABLE, 0); - drawInst_simple(header, inst); - SetRenderState(rw::ZWRITEENABLE, 1); - SetRenderState(rw::ALPHATESTFUNC, alphafunc); - SetRenderState(rw::ALPHATESTREF, alpharef); - }else{ - SetRenderState(rw::ALPHATESTFUNC, rw::ALPHAALWAYS); - drawInst_simple(header, inst); - SetRenderState(rw::ALPHATESTFUNC, alphafunc); - } - }else - drawInst_simple(header, inst); -} - void drawInst(InstanceDataHeader *header, InstanceData *inst) { -// if(rw::GetRenderState(rw::GSALPHATEST)) -// drawInst_GSemu(header, inst); -// else - drawInst_simple(header, inst); + drawInst_simple(header, inst); }