void AGOSEngine::vc62_fastFadeOut() { vc29_stopAllSounds(); if (!_fastFadeOutFlag) { uint i, fadeSize, fadeCount; _fastFadeCount = 256; if (getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) { if (_windowNum == 4) _fastFadeCount = 208; } if (getGameType() == GType_FF || getGameType() == GType_PP) { if (getGameType() == GType_FF && getBitFlag(75)) { fadeCount = 4; fadeSize = 64; } else { fadeCount = 32; fadeSize = 8; } } else { fadeCount = 64; fadeSize = 4; } for (i = fadeCount; i != 0; --i) { paletteFadeOut(_currentPalette, _fastFadeCount, fadeSize); _system->setPalette(_currentPalette, 0, _fastFadeCount); delay(5); } if (getGameType() == GType_WW || getGameType() == GType_FF || getGameType() == GType_PP) { clearSurfaces(); } else { if (_windowNum != 4) { clearSurfaces(); } } } if (getGameType() == GType_SIMON2) { if (_nextMusicToPlay != -1) loadMusic(_nextMusicToPlay); } }
void COpenGL::transformScreenToDisplay() { glEnable(GL_TEXTURE_2D); // Set up an array of values to use as the sprite vertices. GLfloat vertices[] = { 0, 0, 1, 0, 1, 1, 0, 1, }; // Set up an array of values for the texture coordinates. GLfloat texcoords[] = { 0, 0, 1, 0, 1, 1, 0, 1, }; //Render the vertices by pointing to the arrays. glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glVertexPointer(2, GL_FLOAT, 0, vertices); glTexCoordPointer(2, GL_FLOAT, 0, texcoords); glEnable(GL_BLEND); loadSurface(m_texture, *mpScreenSfc.getSDLSurface()); renderTexture(m_texture); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisable(GL_BLEND); glDisable(GL_TEXTURE_2D); gInput.renderOverlay(); #if SDL_VERSION_ATLEAST(2, 0, 0) SDL_GL_SwapWindow(window); #else SDL_GL_SwapBuffers(); #endif clearSurfaces(); }
bool COpenGL::resizeDisplayScreen(const GsRect<Uint16>& newDim) { // NOTE: try not to free the last SDL_Surface of the screen, this is freed automatically by SDL const int w = m_VidConfig.mAspectCorrection.w; const int h = m_VidConfig.mAspectCorrection.h; // Render a black surface which cleans the screen, in case there already is some content in the screen if(mpScreenSfc->empty()) { clearSurfaces(); transformScreenToDisplay(); } #if SDL_VERSION_ATLEAST(2, 0, 0) updateAspectRect(newDim, w, h); setUpViewPort(mAspectCorrectionRect); #else mDisplaySfc.setPtr(SDL_SetVideoMode( newDim.w, newDim.h, 32, m_Mode )); if (mDisplaySfc.empty()) { gLogging.textOut(RED,"VidDrv_Start(): Couldn't create a SDL surface: %s<br>", SDL_GetError()); return false; } updateAspectRect(newDim, w, h); setUpViewPort(mAspectCorrectionRect); #endif return true; }