- added a flash component to the colormap shader.

Its main purpose is for RR's lightning flash in Raze but this looks very useful for manipulating fullscreen colormaps. Currently not exposed, though.
This commit is contained in:
Christoph Oelckers 2020-06-07 09:16:56 +02:00
commit b06af634e2
17 changed files with 46 additions and 38 deletions

View file

@ -515,10 +515,10 @@ void OpenGLFrameBuffer::Draw2D()
}
}
void OpenGLFrameBuffer::PostProcessScene(bool swscene, int fixedcm, const std::function<void()> &afterBloomDrawEndScene2D)
void OpenGLFrameBuffer::PostProcessScene(bool swscene, int fixedcm, float flash, const std::function<void()> &afterBloomDrawEndScene2D)
{
if (!swscene) GLRenderer->mBuffers->BlitSceneToTexture(); // Copy the resulting scene to the current post process texture
GLRenderer->PostProcessScene(fixedcm, afterBloomDrawEndScene2D);
GLRenderer->PostProcessScene(fixedcm, flash, afterBloomDrawEndScene2D);
}
//==========================================================================

View file

@ -61,7 +61,7 @@ public:
void SetVSync(bool vsync);
void Draw2D() override;
void PostProcessScene(bool swscene, int fixedcm, const std::function<void()> &afterBloomDrawEndScene2D) override;
void PostProcessScene(bool swscene, int fixedcm, float flash, const std::function<void()> &afterBloomDrawEndScene2D) override;
bool HWGammaActive = false; // Are we using hardware or software gamma?
std::shared_ptr<FGLDebug> mDebug; // Debug API

View file

@ -52,7 +52,7 @@ void FGLRenderer::RenderScreenQuad()
glDrawArrays(GL_TRIANGLE_STRIP, FFlatVertexBuffer::PRESENT_INDEX, 4);
}
void FGLRenderer::PostProcessScene(int fixedcm, const std::function<void()> &afterBloomDrawEndScene2D)
void FGLRenderer::PostProcessScene(int fixedcm, float flash, const std::function<void()> &afterBloomDrawEndScene2D)
{
int sceneWidth = mBuffers->GetSceneWidth();
int sceneHeight = mBuffers->GetSceneHeight();
@ -62,7 +62,7 @@ void FGLRenderer::PostProcessScene(int fixedcm, const std::function<void()> &aft
hw_postprocess.Pass1(&renderstate, fixedcm, sceneWidth, sceneHeight);
mBuffers->BindCurrentFB();
if (afterBloomDrawEndScene2D) afterBloomDrawEndScene2D();
hw_postprocess.Pass2(&renderstate, fixedcm, sceneWidth, sceneHeight);
hw_postprocess.Pass2(&renderstate, fixedcm, flash, sceneWidth, sceneHeight);
}
//-----------------------------------------------------------------------------

View file

@ -72,7 +72,7 @@ public:
void PresentStereo();
void RenderScreenQuad();
void PostProcessScene(int fixedcm, const std::function<void()> &afterBloomDrawEndScene2D);
void PostProcessScene(int fixedcm, float flash, const std::function<void()> &afterBloomDrawEndScene2D);
void AmbientOccludeScene(float m5);
void ClearTonemapPalette();
void BlurScene(float gameinfobluramount);