1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 04:17:35 +00:00

LibGL: Implement glGetLight

This commit is contained in:
Jesse Buhagiar 2022-01-20 22:48:08 +11:00 committed by Andreas Kling
parent f657362fda
commit f5cde1b6fb
5 changed files with 79 additions and 2 deletions

View file

@ -150,6 +150,7 @@ public:
virtual void gl_materialf(GLenum face, GLenum pname, GLfloat param) override;
virtual void gl_materialfv(GLenum face, GLenum pname, GLfloat const* params) override;
virtual void gl_color_material(GLenum face, GLenum mode) override;
virtual void gl_get_light(GLenum light, GLenum pname, void* params, GLenum type) override;
virtual void present() override;
private:
@ -181,6 +182,8 @@ private:
template<typename T>
void get_floating_point(GLenum pname, T* params);
template<typename T>
void get_light_param(GLenum light, GLenum pname, T* params);
void invoke_list(size_t list_index);
[[nodiscard]] bool should_append_to_listing() const { return m_current_listing_index.has_value(); }
@ -370,7 +373,8 @@ private:
decltype(&SoftwareGLContext::gl_lightfv),
decltype(&SoftwareGLContext::gl_materialf),
decltype(&SoftwareGLContext::gl_materialfv),
decltype(&SoftwareGLContext::gl_color_material)>;
decltype(&SoftwareGLContext::gl_color_material),
decltype(&SoftwareGLContext::gl_get_light)>;
using ExtraSavedArguments = Variant<
FloatMatrix4x4>;