add '-1' as the default cvar option

This commit is contained in:
Ricardo Luís Vaz Silva 2025-01-19 12:53:46 -03:00 committed by Magnus Norddahl
commit 5a3a415811
5 changed files with 17 additions and 6 deletions

View file

@ -168,7 +168,14 @@ CUSTOM_CVAR(Int, gl_wireframe, 0, CVAR_GLOBALCONFIG | CVAR_ARCHIVE)
CVAR(Color, gl_wireframecolor, -1, CVAR_GLOBALCONFIG | CVAR_ARCHIVE)
CUSTOM_CVAR(Int, gl_spritelight, 1, CVAR_GLOBALCONFIG | CVAR_ARCHIVE)
CUSTOM_CVAR(Int, gl_spritelight, -1, CVAR_GLOBALCONFIG | CVAR_ARCHIVE)
{
if (self < 0 || self > 2) self = 1; // default gpu vertex, 0 = cpu, 1 = gpu vertex, 2 = gpu pixel
if (self < -1 || self > 2) self = -1; // default auto, auto (rt 1, non-rt 0) = -1 gpu vertex, 0 = cpu, 1 = gpu vertex, 2 = gpu pixel
}
#include "common/rendering/vulkan/vk_renderdevice.h"
int get_gl_spritelight()
{
return gl_spritelight < 0 ? (static_cast<VulkanRenderDevice *>(screen)->IsRayQueryEnabled() ? 1 : 0) : gl_spritelight;
}

View file

@ -63,4 +63,4 @@ EXTERN_CVAR(Bool, gl_strict_gldefs)
EXTERN_CVAR(Int, gl_wireframe)
EXTERN_CVAR(Color, gl_wireframecolor)
EXTERN_CVAR(Int, gl_spritelight)
int get_gl_spritelight();

View file

@ -129,7 +129,7 @@ float inverseSquareAttenuation(float dist, float radius, float strength)
void HWDrawInfo::GetDynSpriteLight(AActor *self, sun_trace_cache_t * traceCache, double x, double y, double z, FLightNode *node, int portalgroup, float *out, bool fullbright)
{
if (fullbright || gl_spritelight > 0)
if (fullbright || get_gl_spritelight() > 0)
return;
FDynamicLight *light;
@ -280,6 +280,8 @@ void HWDrawInfo::GetDynSpriteLightList(AActor *self, FDynLightData &modellightda
ActorTraceStaticLight staticLight(self);
int gl_spritelight = get_gl_spritelight();
if ((level.lightmaps && gl_spritelight > 0) || ActorTraceStaticLight::TraceSunVisibility(x, y, z, (self ? &self->StaticLightsTraceCache : nullptr), (self ? staticLight.ActorMoved : false)))
{
AddSunLightToList(modellightdata, x, y, z, self->Level->SunDirection, self->Level->SunColor * self->Level->SunIntensity, gl_spritelight > 0);

View file

@ -109,6 +109,8 @@ CVARD(Bool, r_showhitbox, false, CVAR_GLOBALCONFIG | CVAR_CHEAT, "show actor hit
void HWSprite::DrawSprite(HWDrawInfo *di, FRenderState &state, bool translucent)
{
int gl_spritelight = get_gl_spritelight();
state.SetShadeVertex(gl_spritelight == 1);
bool additivefog = false;
bool foglayer = false;
@ -650,7 +652,7 @@ bool HWSprite::CalculateVertices(HWDrawInfo* di, FVector3* v, DVector3* vp)
inline void HWSprite::PutSprite(HWDrawInfo *di, FRenderState& state, bool translucent)
{
// That's a lot of checks...
if ((gl_spritelight > 0 || (modelframe && !modelframe->isVoxel && !(modelframeflags & MDL_NOPERPIXELLIGHTING))) && RenderStyle.BlendOp != STYLEOP_Shadow && gl_light_sprites && di->Level->HasDynamicLights && !di->isFullbrightScene() && !fullbright)
if ((get_gl_spritelight() > 0 || (modelframe && !modelframe->isVoxel && !(modelframeflags & MDL_NOPERPIXELLIGHTING))) && RenderStyle.BlendOp != STYLEOP_Shadow && gl_light_sprites && di->Level->HasDynamicLights && !di->isFullbrightScene() && !fullbright)
{
di->GetDynSpriteLightList(actor, lightdata);
dynlightindex = state.UploadLights(lightdata);

View file

@ -740,7 +740,7 @@ void HWDrawInfo::PreparePlayerSprites2D(sector_t * viewsector, area_t in_area, F
if (hudsprite.RenderStyle.BlendOp != STYLEOP_Shadow && Level->HasDynamicLights && !isFullbrightScene() && gl_light_sprites)
{
GetDynSpriteLight(playermo, nullptr, nullptr, hudsprite.dynrgb);
if (gl_spritelight > 0)
if (get_gl_spritelight() > 0)
{
GetDynSpriteLightList(playermo, lightdata);
}