- removed backend dependencies on game data.

This commit is contained in:
Christoph Oelckers 2023-01-15 08:20:50 +01:00
commit bafd6be342
6 changed files with 35 additions and 27 deletions

View file

@ -29,8 +29,6 @@
#include "stats.h"
#include "g_levellocals.h"
Postprocess hw_postprocess;
PPResource *PPResource::First = nullptr;
@ -601,9 +599,9 @@ void PPTonemap::UpdateTextures()
void PPTonemap::Render(PPRenderState *renderstate)
{
ETonemapMode level_tonemap = (level.info && level.info->tonemap != ETonemapMode::None) ? level.info->tonemap : ETonemapMode((int)gl_tonemap);
ETonemapMode current_tonemap = (level_tonemap != ETonemapMode::None) ? level_tonemap : ETonemapMode((int)gl_tonemap);
if (level_tonemap == ETonemapMode::None)
if (current_tonemap == ETonemapMode::None)
{
return;
}
@ -611,7 +609,7 @@ void PPTonemap::Render(PPRenderState *renderstate)
UpdateTextures();
PPShader *shader = nullptr;
switch (level_tonemap)
switch (current_tonemap)
{
default:
case ETonemapMode::Linear: shader = &LinearShader; break;
@ -627,7 +625,7 @@ void PPTonemap::Render(PPRenderState *renderstate)
renderstate->Shader = shader;
renderstate->Viewport = screen->mScreenViewport;
renderstate->SetInputCurrent(0);
if (level_tonemap == ETonemapMode::Palette)
if (current_tonemap == ETonemapMode::Palette)
renderstate->SetInputTexture(1, &PaletteTexture);
renderstate->SetOutputNext();
renderstate->SetNoBlend();

View file

@ -13,6 +13,19 @@ typedef IntRect PPViewport;
class PPTexture;
class PPShader;
enum class ETonemapMode : uint8_t
{
None,
Uncharted2,
HejlDawson,
Reinhard,
Linear,
Palette,
NumTonemapModes
};
enum class PPFilterMode { Nearest, Linear };
enum class PPWrapMode { Clamp, Repeat };
enum class PPTextureType { CurrentPipelineTexture, NextPipelineTexture, PPTexture, SceneColor, SceneFog, SceneNormal, SceneDepth, SwapChain, ShadowMap };
@ -541,6 +554,7 @@ private:
class PPTonemap
{
public:
void SetTonemapMode(ETonemapMode tm) { level_tonemap = tm; }
void Render(PPRenderState *renderstate);
void ClearTonemapPalette() { PaletteTexture = {}; }
@ -554,7 +568,7 @@ private:
PPShader HejlDawsonShader = { "shaders/pp/tonemap.fp", "#define HEJLDAWSON\n", {} };
PPShader Uncharted2Shader = { "shaders/pp/tonemap.fp", "#define UNCHARTED2\n", {} };
PPShader PaletteShader = { "shaders/pp/tonemap.fp", "#define PALETTE\n", {} };
ETonemapMode level_tonemap = ETonemapMode::None;
};
/////////////////////////////////////////////////////////////////////////////
@ -830,8 +844,11 @@ public:
PPCustomShaders customShaders;
void SetTonemapMode(ETonemapMode tm) { tonemap.SetTonemapMode(tm); }
void Pass1(PPRenderState *state, int fixedcm, int sceneWidth, int sceneHeight);
void Pass2(PPRenderState* state, int fixedcm, float flash, int sceneWidth, int sceneHeight);
};
extern Postprocess hw_postprocess;