mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-10 13:00:29 +03:00
LibGL+LibSoftGPU: Add GL_MAX_LIGHTS
to get_context_parameter
This is required to allow lighting to work properly in the GL. We currently have the maximum number of lights in the software GL context set to 8, as this is the minimum that OpenGL mandates according to the spec.
This commit is contained in:
parent
9ec2b379a4
commit
192befa84b
Notes:
sideshowbarker
2024-07-17 21:07:00 +09:00
Author: https://github.com/Quaker762 Commit: https://github.com/SerenityOS/serenity/commit/192befa84bb Pull-request: https://github.com/SerenityOS/serenity/pull/11764 Reviewed-by: https://github.com/alimpfard Reviewed-by: https://github.com/gmta Reviewed-by: https://github.com/linusg Reviewed-by: https://github.com/sunverwerth ✅
@ -98,6 +98,8 @@ Optional<ContextParameter> SoftwareGLContext::get_context_parameter(GLenum name)
|
||||
return ContextParameter { .type = GL_INT, .value = { .integer_value = sizeof(float) * 8 } };
|
||||
case GL_LIGHTING:
|
||||
return ContextParameter { .type = GL_BOOL, .is_capability = true, .value = { .boolean_value = m_lighting_enabled } };
|
||||
case GL_MAX_LIGHTS:
|
||||
return ContextParameter { .type = GL_INT, .value = { .integer_value = static_cast<GLint>(m_device_info.num_lights) } };
|
||||
case GL_MAX_MODELVIEW_STACK_DEPTH:
|
||||
return ContextParameter { .type = GL_INT, .value = { .integer_value = MODELVIEW_MATRIX_STACK_LIMIT } };
|
||||
case GL_MAX_PROJECTION_STACK_DEPTH:
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2021, Stephan Unverwerth <s.unverwerth@serenityos.org>
|
||||
* Copyright (c) 2021-2022, Jesse Buhagiar <jooster669@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
@ -17,6 +17,7 @@ namespace SoftGPU {
|
||||
static constexpr bool ENABLE_STATISTICS_OVERLAY = false;
|
||||
static constexpr int NUM_SAMPLERS = 32;
|
||||
static constexpr int SUBPIXEL_BITS = 5;
|
||||
static constexpr int NUM_LIGHTS = 8;
|
||||
|
||||
// See: https://www.khronos.org/opengl/wiki/Common_Mistakes#Texture_edge_color_problem
|
||||
// FIXME: make this dynamically configurable through ConfigServer
|
||||
|
@ -476,7 +476,8 @@ DeviceInfo Device::info() const
|
||||
return {
|
||||
.vendor_name = "SerenityOS",
|
||||
.device_name = "SoftGPU",
|
||||
.num_texture_units = NUM_SAMPLERS
|
||||
.num_texture_units = NUM_SAMPLERS,
|
||||
.num_lights = NUM_LIGHTS
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,7 @@ struct DeviceInfo final {
|
||||
String vendor_name;
|
||||
String device_name;
|
||||
unsigned num_texture_units;
|
||||
unsigned num_lights;
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user