Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/engine/renderer/tr_init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1283,7 +1283,7 @@ ScreenshotCmd screenshotPNGRegistration("screenshotPNG", ssFormat_t::SSF_PNG, "p
}

static float convertFloatFromSRGB_NOP( float f ) { return f; }
static Color::Color convertColorFromSRGB_NOP( Color::Color c ) { return c; }
Color::Color convertColorFromSRGB_NOP( Color::Color c ) { return c; }

/*
===============
Expand Down
12 changes: 9 additions & 3 deletions src/engine/renderer/tr_local.h
Original file line number Diff line number Diff line change
Expand Up @@ -979,6 +979,11 @@ enum
ALL = BIT( 3 )
};

using floatProcessor_t = float(*)(float);
using colorProcessor_t = Color::Color(*)(Color::Color);

Color::Color convertColorFromSRGB_NOP( Color::Color c );

struct shaderStage_t
{
stageType_t type;
Expand All @@ -998,6 +1003,8 @@ enum
stageShaderBinder_t shaderBinder;
stageMaterialProcessor_t materialProcessor;

colorProcessor_t convertColorFromSRGB;

textureBundle_t bundle[ MAX_TEXTURE_BUNDLES ];

expression_t ifExp;
Expand Down Expand Up @@ -1269,6 +1276,8 @@ enum
| GLS_BLUEMASK_FALSE
| GLS_ALPHAMASK_FALSE,

GLS_NAIVECOLORS = ( 1 << 30 ),

GLS_DEFAULT = GLS_DEPTHMASK_TRUE
};

Expand Down Expand Up @@ -2397,9 +2406,6 @@ enum
int h;
};

using floatProcessor_t = float(*)(float);
using colorProcessor_t = Color::Color(*)(Color::Color);

/*
** trGlobals_t
**
Expand Down
8 changes: 4 additions & 4 deletions src/engine/renderer/tr_shade.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1698,7 +1698,7 @@ void Tess_ComputeColor( shaderStage_t *pStage )
{
tess.svars.color = pStage->constantColor;
tess.svars.color.Clamp();
tess.svars.color = tr.convertColorFromSRGB( tess.svars.color );
tess.svars.color = pStage->convertColorFromSRGB( tess.svars.color );
break;
}

Expand All @@ -1708,7 +1708,7 @@ void Tess_ComputeColor( shaderStage_t *pStage )
{
tess.svars.color = backEnd.currentEntity->e.shaderRGBA;
tess.svars.color.Clamp();
tess.svars.color = tr.convertColorFromSRGB( tess.svars.color );
tess.svars.color = pStage->convertColorFromSRGB( tess.svars.color );
}
else
{
Expand All @@ -1724,7 +1724,7 @@ void Tess_ComputeColor( shaderStage_t *pStage )
{
tess.svars.color = backEnd.currentEntity->e.shaderRGBA;
tess.svars.color.Clamp();
tess.svars.color = tr.convertColorFromSRGB( tess.svars.color );
tess.svars.color = pStage->convertColorFromSRGB( tess.svars.color );
}
else
{
Expand Down Expand Up @@ -1757,7 +1757,7 @@ void Tess_ComputeColor( shaderStage_t *pStage )

tess.svars.color = Color::White * glow;
tess.svars.color.Clamp();
tess.svars.color = tr.convertColorFromSRGB( tess.svars.color );
tess.svars.color = pStage->convertColorFromSRGB( tess.svars.color );
break;
}

Expand Down
Loading