mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 05:17:35 +00:00
LibGL: Implement texture unit texturing states
This commit is contained in:
parent
c7b90fa7d3
commit
5788a139d8
5 changed files with 67 additions and 4 deletions
|
@ -553,6 +553,18 @@ void SoftwareGLContext::gl_enable(GLenum capability)
|
|||
rasterizer_options.scissor_enabled = true;
|
||||
update_rasterizer_options = true;
|
||||
break;
|
||||
case GL_TEXTURE_1D:
|
||||
m_active_texture_unit->set_texture_1d_enabled(true);
|
||||
break;
|
||||
case GL_TEXTURE_2D:
|
||||
m_active_texture_unit->set_texture_2d_enabled(true);
|
||||
break;
|
||||
case GL_TEXTURE_3D:
|
||||
m_active_texture_unit->set_texture_3d_enabled(true);
|
||||
break;
|
||||
case GL_TEXTURE_CUBE_MAP:
|
||||
m_active_texture_unit->set_texture_cube_map_enabled(true);
|
||||
break;
|
||||
default:
|
||||
RETURN_WITH_ERROR_IF(true, GL_INVALID_ENUM);
|
||||
}
|
||||
|
@ -597,6 +609,18 @@ void SoftwareGLContext::gl_disable(GLenum capability)
|
|||
rasterizer_options.scissor_enabled = false;
|
||||
update_rasterizer_options = true;
|
||||
break;
|
||||
case GL_TEXTURE_1D:
|
||||
m_active_texture_unit->set_texture_1d_enabled(false);
|
||||
break;
|
||||
case GL_TEXTURE_2D:
|
||||
m_active_texture_unit->set_texture_2d_enabled(false);
|
||||
break;
|
||||
case GL_TEXTURE_3D:
|
||||
m_active_texture_unit->set_texture_3d_enabled(false);
|
||||
break;
|
||||
case GL_TEXTURE_CUBE_MAP:
|
||||
m_active_texture_unit->set_texture_cube_map_enabled(false);
|
||||
break;
|
||||
default:
|
||||
RETURN_WITH_ERROR_IF(true, GL_INVALID_ENUM);
|
||||
}
|
||||
|
@ -1458,6 +1482,18 @@ void SoftwareGLContext::gl_get_booleanv(GLenum pname, GLboolean* data)
|
|||
case GL_CULL_FACE:
|
||||
*data = m_cull_faces ? GL_TRUE : GL_FALSE;
|
||||
break;
|
||||
case GL_TEXTURE_1D:
|
||||
*data = m_active_texture_unit->texture_1d_enabled() ? GL_TRUE : GL_FALSE;
|
||||
break;
|
||||
case GL_TEXTURE_2D:
|
||||
*data = m_active_texture_unit->texture_2d_enabled() ? GL_TRUE : GL_FALSE;
|
||||
break;
|
||||
case GL_TEXTURE_3D:
|
||||
*data = m_active_texture_unit->texture_3d_enabled() ? GL_TRUE : GL_FALSE;
|
||||
break;
|
||||
case GL_TEXTURE_CUBE_MAP:
|
||||
*data = m_active_texture_unit->texture_cube_map_enabled() ? GL_TRUE : GL_FALSE;
|
||||
break;
|
||||
default:
|
||||
// According to the Khronos docs, we always return GL_INVALID_ENUM if we encounter a non-accepted value
|
||||
// for `pname`
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue