bool StGLStereoFrameBuffer::initLazy(StGLContext& theCtx, const GLsizei theSizeX, const GLsizei theSizeY, const bool theNeedDepthBuffer, const bool theToCompress) { if(isValid() && (theSizeX <= getSizeX() && getSizeX() < theCtx.getMaxTextureSize()) && (theSizeY <= getSizeY() && getSizeY() < theCtx.getMaxTextureSize())) { if(!theToCompress || (((getSizeX() - theSizeX) < 256) && ((getSizeY() - theSizeY) < 256))) { setVPDimensions(theCtx, theSizeX, theSizeY); return true; } } release(theCtx); GLsizei aSizeX = stMax(32, (GLsizei )getAligned(theSizeX, 256)); GLsizei aSizeY = stMax(32, (GLsizei )getAligned(theSizeY, 256)); if(!theCtx.arbNPTW) { StGLFrameBuffer::convertToPowerOfTwo(theCtx, aSizeX, aSizeY); } if(!init(theCtx, aSizeX, aSizeY, theNeedDepthBuffer)) { return false; } theCtx.stglFillBitsFBO(myGLFBufferIds[StGLStereoTexture::LEFT_TEXTURE], aSizeX, aSizeY); ST_DEBUG_LOG("FBO resized to " + aSizeX + " x " + aSizeY + " (for " + theSizeX + " x " + theSizeY + ")"); setVPDimensions(theCtx, theSizeX, theSizeY); return true; }