void clearSet() { //bool forceClear int i; //bool doClear = forceClear; if (usingPoolId == -1) { if (isEntity) { usingPoolId = singleton->entityPool->requestPoolId(blockId,holderId); gpuRes = singleton->entityPool->holderPoolItems[usingPoolId]; } else { usingPoolId = singleton->gpuPool->requestPoolId(blockId,holderId); gpuRes = singleton->gpuPool->holderPoolItems[usingPoolId]; } readyForClear = true; } if (readyForClear) { readyForClear = false; for (i = 0; i < MAX_LAYERS; i++) { // clear fbo by binding it with auto flag singleton->bindFBODirect(gpuRes->getFBOS(i)); singleton->unbindFBO(); } } }
void renderGUI(float newZoom, int activeFBO) { int i; int j; int k; int m; int n; int maxLoop = 0; float shadowOffset = 0.0; testOver(singleton->guiX,singleton->guiY); doRefresh(); Singleton::UICont* curCont = NULL; baseComp->updateSS(); singleton->bindFBO("guiFBO"); singleton->drawFBO("resultFBO", 0, newZoom, activeFBO); glEnable (GL_BLEND); singleton->bindShader("GUIShader"); singleton->setShaderTexture(0,singleton->fontWrappers[EFW_TEXT]->fontImage->tid); singleton->setShaderTexture(1,singleton->fontWrappers[EFW_ICONS]->fontImage->tid); singleton->sampleFBO("swapFBOBLin0", 2); for (i = 0; i < 2; i++) { if (i == 0) { maxLoop = 1; } else { maxLoop = 2; } singleton->setShaderFloat("passNum", i); singleton->setShaderFloat("zoom", singleton->cameraZoom); singleton->setShaderVec2("resolution", singleton->currentFBOResolutionX, singleton->currentFBOResolutionY); glBegin (GL_QUADS); //baseComp->renderAll(i == 0); for (j = 0; j < MAX_UI_LAYERS; j++) { for (k = 0; k < singleton->guiLayers[j].size(); k++) { curCont = (singleton->guiLayers[j][k]); if (curCont->uiComp->visible) { for (m = 0; m < maxLoop; m++) { shadowOffset = ((1-m)*i)*4.0f; // only shadow text if (shadowOffset == 0.0f) { if (curCont->bg.fontId > -1) { renderQuad( curCont->uiComp, curCont->bg.hitBounds, shadowOffset ); } } if (i == 0) { // don't render text in first pass } else { if (false) { //curCont->locked) { // busy updating characters } else { for (n = 0; n < curCont->charVec.size(); n++) { renderCharAt( curCont->uiComp, curCont->charVec[n].cs, singleton->fontWrappers[curCont->charVec[n].fontId], curCont->charVec[n].hitBounds.xMin, curCont->charVec[n].hitBounds.yMin, shadowOffset ); } } } } } } } glEnd (); } singleton->unsampleFBO("swapFBOBLin0", 2); singleton->setShaderTexture(1,0); singleton->setShaderTexture(0,0); singleton->unbindShader(); singleton->unbindFBO(); glDisable(GL_BLEND); singleton->drawFBO("guiFBO", 0, 1.0f); }