void SurfaceSdlGraphicsManager::updateScreen() { #ifdef USE_OPENGL if (_opengl) { if (_frameBuffer) { _frameBuffer->detach(); glViewport(0, 0, _screen->w, _screen->h); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); #ifndef USE_OPENGL_SHADERS drawFramebufferOpenGL(); #else drawFramebufferOpenGLShaders(); #endif } if (_overlayVisible) { if (_overlayDirty) { updateOverlayTextures(); } #ifndef USE_OPENGL_SHADERS drawOverlayOpenGL(); #else drawOverlayOpenGLShaders(); #endif } SDL_GL_SwapBuffers(); if (_frameBuffer) { _frameBuffer->attach(); } } else #endif { SDL_Rect dstrect; dstrect.x = _gameRect.getTopLeft().getX(); dstrect.y = _gameRect.getTopLeft().getY(); dstrect.w = _gameRect.getWidth(); dstrect.h = _gameRect.getHeight(); SDL_BlitSurface(_subScreen, NULL, _screen, &dstrect); if (_overlayVisible) { drawOverlay(); } SDL_Flip(_screen); } }
void SurfaceSdlGraphicsManager::updateScreen() { #ifdef USE_OPENGL if (_opengl) { if (_overlayVisible) { if (_overlayDirty) { updateOverlayTextures(); } #ifndef USE_OPENGL_SHADERS drawOverlayOpenGL(); #else drawOverlayOpenGLShaders(); #endif } SDL_GL_SwapBuffers(); } else #endif { if (_overlayVisible) { drawOverlay(); } SDL_Flip(_screen); } }