- did a bit of cleanup on DFrameBuffer, most notably taking GetCaps out of it.

With the old softpoly renderer and OpenGL 2.x being gone there is no more need for such complex handling, it is now a single function in d_main.cpp.
This commit is contained in:
Christoph Oelckers 2020-04-27 22:24:41 +02:00
parent 3ee1aa76c3
commit 5f3e4a5d0e
12 changed files with 45 additions and 102 deletions

View file

@ -802,6 +802,36 @@ CVAR (Flag, compat_railing, compatflags2, COMPATF2_RAILING);
CVAR(Bool, vid_activeinbackground, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
EXTERN_CVAR(Bool, r_drawvoxels)
EXTERN_CVAR(Int, gl_tonemap)
static uint32_t GetCaps()
{
ActorRenderFeatureFlags FlagSet;
if (!V_IsHardwareRenderer())
{
FlagSet = RFF_UNCLIPPEDTEX;
if (V_IsTrueColor())
FlagSet |= RFF_TRUECOLOR;
else
FlagSet |= RFF_COLORMAP;
}
else
{
// describe our basic feature set
FlagSet = RFF_FLATSPRITES | RFF_MODELS | RFF_SLOPE3DFLOORS |
RFF_TILTPITCH | RFF_ROLLSPRITES | RFF_POLYGONAL | RFF_MATSHADER | RFF_POSTSHADER | RFF_BRIGHTMAP;
if (gl_tonemap != 5) // not running palette tonemap shader
FlagSet |= RFF_TRUECOLOR;
}
if (r_drawvoxels)
FlagSet |= RFF_VOXELS;
return (uint32_t)FlagSet;
}
//==========================================================================
//
// D_Display
@ -830,7 +860,7 @@ void D_Display ()
cycles.Clock();
r_UseVanillaTransparency = UseVanillaTransparency(); // [SP] Cache UseVanillaTransparency() call
r_renderercaps = screen->GetCaps(); // [SP] Get the current capabilities of the renderer
r_renderercaps = GetCaps(); // [SP] Get the current capabilities of the renderer
if (players[consoleplayer].camera == NULL)
{

View file

@ -63,7 +63,7 @@ protected:
private:
void SetRavenDefaults (bool isHexen);
void ReadCVars (uint32_t flags);
void ReadCVars (unsigned flags);
bool bModSetup;

View file

@ -241,23 +241,6 @@ void OpenGLFrameBuffer::RenderTextureView(FCanvasTexture* tex, std::function<voi
//
//===========================================================================
uint32_t OpenGLFrameBuffer::GetCaps()
{
if (!V_IsHardwareRenderer())
return Super::GetCaps();
// describe our basic feature set
ActorRenderFeatureFlags FlagSet = RFF_FLATSPRITES | RFF_MODELS | RFF_SLOPE3DFLOORS |
RFF_TILTPITCH | RFF_ROLLSPRITES | RFF_POLYGONAL | RFF_MATSHADER | RFF_POSTSHADER | RFF_BRIGHTMAP;
if (r_drawvoxels)
FlagSet |= RFF_VOXELS;
if (gl_tonemap != 5) // not running palette tonemap shader
FlagSet |= RFF_TRUECOLOR;
return (uint32_t)FlagSet;
}
const char* OpenGLFrameBuffer::DeviceName() const
{
return gl.modelstring;

View file

@ -39,7 +39,6 @@ public:
FRenderState* RenderState() override;
void UpdatePalette() override;
uint32_t GetCaps() override;
const char* DeviceName() const override;
void SetTextureFilterMode() override;
IHardwareTexture *CreateHardwareTexture() override;

View file

@ -287,22 +287,6 @@ void PolyFrameBuffer::PostProcessScene(bool swscene, int fixedcm, const std::fun
}
}
uint32_t PolyFrameBuffer::GetCaps()
{
if (!V_IsHardwareRenderer())
return Super::GetCaps();
// describe our basic feature set
ActorRenderFeatureFlags FlagSet = RFF_FLATSPRITES | RFF_MODELS | RFF_SLOPE3DFLOORS |
RFF_TILTPITCH | RFF_ROLLSPRITES | RFF_POLYGONAL | RFF_MATSHADER | RFF_POSTSHADER | RFF_BRIGHTMAP;
if (r_drawvoxels)
FlagSet |= RFF_VOXELS;
if (gl_tonemap != 5) // not running palette tonemap shader
FlagSet |= RFF_TRUECOLOR;
return (uint32_t)FlagSet;
}
void PolyFrameBuffer::SetVSync(bool vsync)
{

View file

@ -36,7 +36,6 @@ public:
FRenderState* RenderState() override;
void PrecacheMaterial(FMaterial *mat, int translation) override;
void UpdatePalette() override;
uint32_t GetCaps() override;
void SetTextureFilterMode() override;
void TextureFilterChanged() override;
void BeginFrame() override;

View file

@ -196,7 +196,7 @@ namespace swrenderer
void R_UpdateFuzzPosFrameStart()
{
if (r_fuzzscale || V_IsPolyRenderer())
if (r_fuzzscale)
{
static int next_random = 0;
@ -210,7 +210,7 @@ namespace swrenderer
void R_UpdateFuzzPos(const SpriteDrawerArgs &args)
{
if (!r_fuzzscale && !V_IsPolyRenderer())
if (!r_fuzzscale)
{
int yl = MAX(args.FuzzY1(), 1);
int yh = MIN(args.FuzzY2(), fuzzviewheight);

View file

@ -284,35 +284,6 @@ FTexture *DFrameBuffer::WipeEndScreen()
return nullptr;
}
//==========================================================================
//
// DFrameBuffer :: GetCaps
//
//==========================================================================
EXTERN_CVAR(Bool, r_drawvoxels)
uint32_t DFrameBuffer::GetCaps()
{
ActorRenderFeatureFlags FlagSet = 0;
if (V_IsPolyRenderer())
FlagSet |= RFF_POLYGONAL | RFF_TILTPITCH | RFF_SLOPE3DFLOORS;
else
{
FlagSet |= RFF_UNCLIPPEDTEX;
if (r_drawvoxels)
FlagSet |= RFF_VOXELS;
}
if (V_IsTrueColor())
FlagSet |= RFF_TRUECOLOR;
else
FlagSet |= RFF_COLORMAP;
return (uint32_t)FlagSet;
}
//==========================================================================
//
// Calculates the viewport values needed for 2D and 3D operations
@ -455,15 +426,6 @@ FMaterial* DFrameBuffer::CreateMaterial(FGameTexture* tex, int scaleflags)
return new FMaterial(tex, scaleflags);
}
DEFINE_ACTION_FUNCTION(_Screen, GetViewWindow)
{
PARAM_PROLOGUE;
if (numret > 0) ret[0].SetInt(viewwindowx);
if (numret > 1) ret[1].SetInt(viewwindowy);
if (numret > 2) ret[2].SetInt(viewwidth);
if (numret > 3) ret[3].SetInt(viewheight);
return MIN(numret, 4);
}
//==========================================================================
//

View file

@ -102,14 +102,9 @@ inline bool V_IsSoftwareRenderer()
return vid_rendermode < 2;
}
inline bool V_IsPolyRenderer()
{
return vid_rendermode == 2 || vid_rendermode == 3;
}
inline bool V_IsTrueColor()
{
return vid_rendermode == 1 || vid_rendermode == 3 || vid_rendermode == 4;
return vid_rendermode == 1 || vid_rendermode == 4;
}
@ -270,7 +265,6 @@ public:
// Report a game restart
void SetClearColor(int color);
virtual uint32_t GetCaps();
virtual int Backend() { return 0; }
virtual const char* DeviceName() const { return "Unknown"; }
virtual void AmbientOccludeScene(float m5) {}

View file

@ -356,23 +356,6 @@ void VulkanFrameBuffer::PostProcessScene(bool swscene, int fixedcm, const std::f
mPostprocess->PostProcessScene(fixedcm, afterBloomDrawEndScene2D);
}
uint32_t VulkanFrameBuffer::GetCaps()
{
if (!V_IsHardwareRenderer())
return Super::GetCaps();
// describe our basic feature set
ActorRenderFeatureFlags FlagSet = RFF_FLATSPRITES | RFF_MODELS | RFF_SLOPE3DFLOORS |
RFF_TILTPITCH | RFF_ROLLSPRITES | RFF_POLYGONAL | RFF_MATSHADER | RFF_POSTSHADER | RFF_BRIGHTMAP;
if (r_drawvoxels)
FlagSet |= RFF_VOXELS;
if (gl_tonemap != 5) // not running palette tonemap shader
FlagSet |= RFF_TRUECOLOR;
return (uint32_t)FlagSet;
}
const char* VulkanFrameBuffer::DeviceName() const
{
const auto &props = device->PhysicalDevice.Properties;

View file

@ -74,7 +74,6 @@ public:
void PrecacheMaterial(FMaterial *mat, int translation) override;
void UpdatePalette() override;
uint32_t GetCaps() override;
const char* DeviceName() const override;
int Backend() override { return 1; }
void SetTextureFilterMode() override;

View file

@ -3300,6 +3300,16 @@ DEFINE_ACTION_FUNCTION(DObject, S_ChangeMusic)
}
DEFINE_ACTION_FUNCTION(_Screen, GetViewWindow)
{
PARAM_PROLOGUE;
if (numret > 0) ret[0].SetInt(viewwindowx);
if (numret > 1) ret[1].SetInt(viewwindowy);
if (numret > 2) ret[2].SetInt(viewwidth);
if (numret > 3) ret[3].SetInt(viewheight);
return MIN(numret, 4);
}
//==========================================================================
//
//