1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 02:37:35 +00:00

LibGL: Implement glIsEnabled()

This commit is contained in:
Jelle Raaijmakers 2021-10-18 01:31:21 +02:00 committed by Brian Gianforcaro
parent b2627c8b74
commit a36ee213b9
5 changed files with 30 additions and 0 deletions

View file

@ -371,6 +371,7 @@ GLAPI void glVertex4sv(const GLshort* v);
GLAPI void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
GLAPI void glEnable(GLenum cap);
GLAPI void glDisable(GLenum cap);
GLAPI GLboolean glIsEnabled(GLenum cap);
GLAPI void glCullFace(GLenum mode);
GLAPI void glFrontFace(GLenum mode);
GLAPI GLuint glGenLists(GLsizei range);

View file

@ -42,6 +42,7 @@ public:
virtual void gl_viewport(GLint x, GLint y, GLsizei width, GLsizei height) = 0;
virtual void gl_enable(GLenum) = 0;
virtual void gl_disable(GLenum) = 0;
virtual GLboolean gl_is_enabled(GLenum) = 0;
virtual void gl_front_face(GLenum) = 0;
virtual void gl_cull_face(GLenum) = 0;
virtual GLuint gl_gen_lists(GLsizei range) = 0;

View file

@ -20,6 +20,11 @@ void glDisable(GLenum cap)
g_gl_context->gl_disable(cap);
}
GLboolean glIsEnabled(GLenum cap)
{
return g_gl_context->gl_is_enabled(cap);
}
void glFrontFace(GLenum mode)
{
g_gl_context->gl_front_face(mode);

View file

@ -597,6 +597,28 @@ void SoftwareGLContext::gl_disable(GLenum capability)
m_rasterizer.set_options(rasterizer_options);
}
GLboolean SoftwareGLContext::gl_is_enabled(GLenum capability)
{
RETURN_VALUE_WITH_ERROR_IF(m_in_draw_state, GL_INVALID_OPERATION, 0);
auto rasterizer_options = m_rasterizer.options();
switch (capability) {
case GL_CULL_FACE:
return m_cull_faces;
case GL_DEPTH_TEST:
return m_depth_test_enabled;
case GL_BLEND:
return m_blend_enabled;
case GL_ALPHA_TEST:
return m_alpha_test_enabled;
case GL_FOG:
return rasterizer_options.fog_enabled;
}
RETURN_VALUE_WITH_ERROR_IF(true, GL_INVALID_ENUM, 0);
}
void SoftwareGLContext::gl_gen_textures(GLsizei n, GLuint* textures)
{
RETURN_WITH_ERROR_IF(n < 0, GL_INVALID_VALUE);

View file

@ -52,6 +52,7 @@ public:
virtual void gl_viewport(GLint x, GLint y, GLsizei width, GLsizei height) override;
virtual void gl_enable(GLenum) override;
virtual void gl_disable(GLenum) override;
virtual GLboolean gl_is_enabled(GLenum) override;
virtual void gl_front_face(GLenum) override;
virtual void gl_cull_face(GLenum) override;
virtual GLuint gl_gen_lists(GLsizei range) override;