mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-24 02:12:09 -05:00
LibGL: Implement the GL_LIGHTING
parameter
This commit is contained in:
parent
b1ac181537
commit
b89524c981
3 changed files with 13 additions and 0 deletions
|
@ -178,6 +178,7 @@ extern "C" {
|
||||||
#define GL_RGBA 0x1908
|
#define GL_RGBA 0x1908
|
||||||
|
|
||||||
// Lighting related defines
|
// Lighting related defines
|
||||||
|
#define GL_LIGHTING 0x0B50
|
||||||
#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
|
#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
|
||||||
#define GL_LIGHT_MODEL_AMBIENT 0x0B53
|
#define GL_LIGHT_MODEL_AMBIENT 0x0B53
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,8 @@ Optional<ContextParameter> SoftwareGLContext::get_context_parameter(GLenum name)
|
||||||
return ContextParameter { .type = GL_BOOL, .value = { .boolean_value = true } };
|
return ContextParameter { .type = GL_BOOL, .value = { .boolean_value = true } };
|
||||||
case GL_GREEN_BITS:
|
case GL_GREEN_BITS:
|
||||||
return ContextParameter { .type = GL_INT, .value = { .integer_value = sizeof(float) * 8 } };
|
return ContextParameter { .type = GL_INT, .value = { .integer_value = sizeof(float) * 8 } };
|
||||||
|
case GL_LIGHTING:
|
||||||
|
return ContextParameter { .type = GL_BOOL, .value = { .boolean_value = m_lighting_enabled } };
|
||||||
case GL_MAX_TEXTURE_SIZE:
|
case GL_MAX_TEXTURE_SIZE:
|
||||||
return ContextParameter { .type = GL_INT, .value = { .integer_value = 4096 } };
|
return ContextParameter { .type = GL_INT, .value = { .integer_value = 4096 } };
|
||||||
case GL_MAX_TEXTURE_UNITS:
|
case GL_MAX_TEXTURE_UNITS:
|
||||||
|
@ -655,6 +657,9 @@ void SoftwareGLContext::gl_enable(GLenum capability)
|
||||||
rasterizer_options.fog_enabled = true;
|
rasterizer_options.fog_enabled = true;
|
||||||
update_rasterizer_options = true;
|
update_rasterizer_options = true;
|
||||||
break;
|
break;
|
||||||
|
case GL_LIGHTING:
|
||||||
|
m_lighting_enabled = true;
|
||||||
|
break;
|
||||||
case GL_SCISSOR_TEST:
|
case GL_SCISSOR_TEST:
|
||||||
rasterizer_options.scissor_enabled = true;
|
rasterizer_options.scissor_enabled = true;
|
||||||
update_rasterizer_options = true;
|
update_rasterizer_options = true;
|
||||||
|
@ -714,6 +719,9 @@ void SoftwareGLContext::gl_disable(GLenum capability)
|
||||||
rasterizer_options.fog_enabled = false;
|
rasterizer_options.fog_enabled = false;
|
||||||
update_rasterizer_options = true;
|
update_rasterizer_options = true;
|
||||||
break;
|
break;
|
||||||
|
case GL_LIGHTING:
|
||||||
|
m_lighting_enabled = false;
|
||||||
|
break;
|
||||||
case GL_SCISSOR_TEST:
|
case GL_SCISSOR_TEST:
|
||||||
rasterizer_options.scissor_enabled = false;
|
rasterizer_options.scissor_enabled = false;
|
||||||
update_rasterizer_options = true;
|
update_rasterizer_options = true;
|
||||||
|
@ -758,6 +766,8 @@ GLboolean SoftwareGLContext::gl_is_enabled(GLenum capability)
|
||||||
return m_alpha_test_enabled;
|
return m_alpha_test_enabled;
|
||||||
case GL_FOG:
|
case GL_FOG:
|
||||||
return rasterizer_options.fog_enabled;
|
return rasterizer_options.fog_enabled;
|
||||||
|
case GL_LIGHTING:
|
||||||
|
return m_lighting_enabled;
|
||||||
case GL_SCISSOR_TEST:
|
case GL_SCISSOR_TEST:
|
||||||
return rasterizer_options.scissor_enabled;
|
return rasterizer_options.scissor_enabled;
|
||||||
case GL_STENCIL_TEST:
|
case GL_STENCIL_TEST:
|
||||||
|
|
|
@ -357,6 +357,8 @@ private:
|
||||||
|
|
||||||
float m_line_width { 1.0f };
|
float m_line_width { 1.0f };
|
||||||
|
|
||||||
|
// Lighting configuration
|
||||||
|
bool m_lighting_enabled { false };
|
||||||
FloatVector4 m_light_model_ambient { 0.2f, 0.2f, 0.2f, 1.0f };
|
FloatVector4 m_light_model_ambient { 0.2f, 0.2f, 0.2f, 1.0f };
|
||||||
GLfloat m_light_model_two_side { 0.0f };
|
GLfloat m_light_model_two_side { 0.0f };
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue