LibGL+LibSoftGPU: Pass along lighting flag to Software GPU

This was currently only set in the OpenGL context, as the previous
architecture did all of the transformation in LibGL before passing the
transformed triangles onto the rasterizer. As this has now changed, and
we require the vertex data to be in eye-space before we can apply
lighting, we need to pass this flag along as well via the GPU options.
This commit is contained in:
Jesse Buhagiar 2022-01-08 18:52:12 +11:00 committed by Linus Groh
parent 775ef000e0
commit 4035532ee8
2 changed files with 5 additions and 0 deletions

View file

@ -668,6 +668,8 @@ void SoftwareGLContext::gl_enable(GLenum capability)
break;
case GL_LIGHTING:
m_lighting_enabled = true;
rasterizer_options.lighting_enabled = true;
update_rasterizer_options = true;
break;
case GL_NORMALIZE:
m_normalize = true;
@ -762,6 +764,8 @@ void SoftwareGLContext::gl_disable(GLenum capability)
break;
case GL_LIGHTING:
m_lighting_enabled = false;
rasterizer_options.lighting_enabled = false;
update_rasterizer_options = true;
break;
case GL_LIGHT0:
case GL_LIGHT1:

View file

@ -69,6 +69,7 @@ struct RasterizerOptions {
u8 texcoord_generation_enabled_coordinates { TexCoordGenerationCoordinate::None };
Array<TexCoordGenerationConfig, 4> texcoord_generation_config {};
Gfx::IntRect viewport;
bool lighting_enabled { false };
};
struct LightModelParameters {