diff options
| author | Stenzek <stenzek@gmail.com> | 2017-11-21 18:54:11 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2017-11-22 01:52:18 +1000 |
| commit | efb97598629b96378edd783af82936185d8a99ce (patch) | |
| tree | 6be0e38fd495292ee5f5d63471732164254cccac /Source/Core/VideoCommon/LightingShaderGen.cpp | |
| parent | 18c1bf19cac3b4299c55db35117f1383a5c80318 (diff) | |
LightingShaderGen: Always calculate lighting for both color channels
Cel-damage uses the color from the lighting stage of the vertex pipeline
as texture coordinates, but sets numColorChans to zero.
We now calculate the colors in all cases, but override the color before
writing it from the vertex shader if numColorChans is set to a lower value.
Diffstat (limited to 'Source/Core/VideoCommon/LightingShaderGen.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/LightingShaderGen.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Source/Core/VideoCommon/LightingShaderGen.cpp b/Source/Core/VideoCommon/LightingShaderGen.cpp index b5556214f0..4139018552 100644 --- a/Source/Core/VideoCommon/LightingShaderGen.cpp +++ b/Source/Core/VideoCommon/LightingShaderGen.cpp @@ -79,9 +79,9 @@ static void GenerateLightShader(ShaderCode& object, const LightingUidData& uid_d // inColorName is color in vs and colors_ in ps // dest is o.colors_ in vs and colors_ in ps void GenerateLightingShaderCode(ShaderCode& object, const LightingUidData& uid_data, int components, - u32 numColorChans, const char* inColorName, const char* dest) + const char* inColorName, const char* dest) { - for (unsigned int j = 0; j < numColorChans; j++) + for (unsigned int j = 0; j < NUM_XF_COLOR_CHANNELS; j++) { object.Write("{\n"); @@ -185,7 +185,7 @@ void GenerateLightingShaderCode(ShaderCode& object, const LightingUidData& uid_d void GetLightingShaderUid(LightingUidData& uid_data) { - for (unsigned int j = 0; j < xfmem.numChan.numColorChans; j++) + for (unsigned int j = 0; j < NUM_XF_COLOR_CHANNELS; j++) { uid_data.matsource |= xfmem.color[j].matsource << j; uid_data.matsource |= xfmem.alpha[j].matsource << (j + 2); |
