diff --git a/src/gl/scene/gl_scene.cpp b/src/gl/scene/gl_scene.cpp index ad3af273b..681af98a6 100644 --- a/src/gl/scene/gl_scene.cpp +++ b/src/gl/scene/gl_scene.cpp @@ -1175,13 +1175,13 @@ uint32_t FGLInterface::GetCaps() else if (!(FGLRenderBuffers::IsEnabled())) { // truecolor is always available when renderbuffers are unavailable because palette tonemap is not possible - FlagSet |= RFF_TRUECOLOR | RFF_MATSHADER; + FlagSet |= RFF_TRUECOLOR | RFF_MATSHADER | RFF_BRIGHTMAP; } else { if (gl_tonemap != 5) // not running palette tonemap shader FlagSet |= RFF_TRUECOLOR; - FlagSet |= RFF_MATSHADER | RFF_POSTSHADER; + FlagSet |= RFF_MATSHADER | RFF_POSTSHADER | RFF_BRIGHTMAP; } return (uint32_t)FlagSet; } diff --git a/src/swrenderer/r_swrenderer.cpp b/src/swrenderer/r_swrenderer.cpp index 026252dc8..fec82c30e 100644 --- a/src/swrenderer/r_swrenderer.cpp +++ b/src/swrenderer/r_swrenderer.cpp @@ -378,3 +378,20 @@ void FSoftwareRenderer::PreprocessLevel() void FSoftwareRenderer::CleanLevelData() { } + +uint32_t FSoftwareRenderer::GetCaps() +{ + ActorRenderFeatureFlags FlagSet = RFF_UNCLIPPEDTEX; + + if (r_polyrenderer) + FlagSet |= RFF_POLYGONAL | RFF_TILTPITCH; + else + FlagSet |= RFF_VOXELS; + + if (screen && screen->IsBgra()) + FlagSet |= RFF_TRUECOLOR; + else + FlagSet |= RFF_COLORMAP; + + return (uint32_t)FlagSet; +} \ No newline at end of file diff --git a/src/swrenderer/r_swrenderer.h b/src/swrenderer/r_swrenderer.h index 91b4dcdfb..06946321f 100644 --- a/src/swrenderer/r_swrenderer.h +++ b/src/swrenderer/r_swrenderer.h @@ -35,6 +35,8 @@ struct FSoftwareRenderer : public FRenderer void PreprocessLevel() override; void CleanLevelData() override; + uint32_t GetCaps() override; + private: void PrecacheTexture(FTexture *tex, int cache);