mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 02:37:35 +00:00
LibGL: Implement glIsEnabled()
This commit is contained in:
parent
b2627c8b74
commit
a36ee213b9
5 changed files with 30 additions and 0 deletions
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue