Use the tonemap PP pass to convert blended render styles back to palette colors

This commit is contained in:
Magnus Norddahl 2025-05-20 04:09:31 +02:00
commit a85cd66747
9 changed files with 27 additions and 19 deletions

View file

@ -207,7 +207,7 @@ sector_t* RenderViewpoint(FRenderViewpoint& mainvp, AActor* camera, IntRect* bou
RenderState.EnableDrawBuffers(1);
}
screen->PostProcessScene(false, cm, flash, [&]() { di->DrawEndScene2D(mainvp.sector, RenderState); });
screen->PostProcessScene(false, cm, flash, !V_IsTrueColor(), [&]() { di->DrawEndScene2D(mainvp.sector, RenderState); });
PostProcess.Unclock();
}
// Reset colormap so 2D drawing isn't affected

View file

@ -118,7 +118,7 @@ sector_t *SWSceneDrawer::RenderView(player_t *player)
DrawTexture(twod, fbtex.get(), 0, 0, DTA_SpecialColormap, map, TAG_DONE);
screen->Draw2D();
twod->Clear();
screen->PostProcessScene(true, CM_DEFAULT, 1.f, [&]() {
screen->PostProcessScene(true, CM_DEFAULT, 1.f, false, [&]() {
SWRenderer->DrawRemainingPlayerSprites();
screen->Draw2D();
twod->Clear();
@ -134,7 +134,7 @@ sector_t *SWSceneDrawer::RenderView(player_t *player)
int cm = CM_DEFAULT;
auto map = swrenderer::CameraLight::Instance()->ShaderColormap();
if (map) cm = (int)(ptrdiff_t)(map - SpecialColormaps.Data()) + CM_FIRSTSPECIALCOLORMAP;
screen->PostProcessScene(true, cm, 1.f, [&]() { });
screen->PostProcessScene(true, cm, 1.f, false, [&]() { });
SWRenderer->DrawRemainingPlayerSprites();
screen->Draw2D();