/* ================== FullscreenFX_Helltime::AccumPass ================== */ void FullscreenFX_Helltime::AccumPass( const renderView_t* view ) { int level = DetermineLevel(); // for testing if( level < 0 || level > 2 ) { level = 0; } renderSystem->SetColor4( 1.0f, 1.0f, 1.0f, 1.0f ); float t0 = 1.0f; float t1 = 0.0f; // capture pass if( clearAccumBuffer ) { clearAccumBuffer = false; renderSystem->DrawStretchPic( 0.0f, 0.0f, renderSystem->GetVirtualWidth(), renderSystem->GetVirtualHeight(), 0.0f, t0, 1.0f, t1, initMaterial ); } else { renderSystem->DrawStretchPic( 0.0f, 0.0f, renderSystem->GetVirtualWidth(), renderSystem->GetVirtualHeight(), 0.0f, t0, 1.0f, t1, captureMaterials[level] ); } }
/* ================== FullscreenFX_Helltime::HighQuality ================== */ void FullscreenFX_Helltime::HighQuality() { idVec2 shiftScale; int level = DetermineLevel(); // for testing if ( level < 0 || level > 2 ) { level = 0; } shiftScale = fxman->GetShiftScale(); renderSystem->SetColor4( 1, 1, 1, 1 ); // draw pass renderSystem->DrawStretchPic( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 1, 1, 0, acDrawMaterials[level] ); renderSystem->DrawStretchPic( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, shiftScale.y, shiftScale.x, 0, crDrawMaterials[level] ); }
/* ================== FullscreenFX_Multiplayer::Active ================== */ bool FullscreenFX_Multiplayer::Active() { if ( !common->IsMultiplayer() && g_testMultiplayerFX.GetInteger() == -1 ) { return false; } if ( DetermineLevel() >= 0 ) { return true; } else { // latch the clear flag if ( fader.GetAlpha() == 0 ) { clearAccumBuffer = true; } } return false; }
/* ================== FullscreenFX_Helltime::Active ================== */ bool FullscreenFX_Helltime::Active() { if ( gameLocal.inCinematic || common->IsMultiplayer() ) { return false; } if ( DetermineLevel() >= 0 ) { return true; } else { // latch the clear flag if ( fader.GetAlpha() == 0 ) { clearAccumBuffer = true; } } return false; }
/* ================== FullscreenFX_Helltime::AccumPass ================== */ void FullscreenFX_Helltime::AccumPass( const renderView_t *view ) { idVec2 shiftScale; int level = DetermineLevel(); // for testing if ( level < 0 || level > 2 ) { level = 0; } shiftScale = fxman->GetShiftScale(); renderSystem->SetColor4( 1, 1, 1, 1 ); // capture pass if ( clearAccumBuffer ) { clearAccumBuffer = false; renderSystem->DrawStretchPic( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 1, 1, 0, acInitMaterials[level] ); } else { renderSystem->DrawStretchPic( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 1, 1, 0, acCaptureMaterials[level] ); renderSystem->DrawStretchPic( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, shiftScale.y, shiftScale.x, 0, crCaptureMaterials[level] ); } renderSystem->CaptureRenderToImage( "_accum" ); }