mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 04:37:34 +00:00
LibGL: Implement glGetTexLevelParameteriv
This commit is contained in:
parent
d83702cb92
commit
dae63352a3
5 changed files with 29 additions and 0 deletions
|
@ -2658,6 +2658,27 @@ void SoftwareGLContext::gl_copy_tex_image_2d(GLenum target, GLint level, GLenum
|
|||
target, level, internalformat, x, y, width, height, border);
|
||||
}
|
||||
|
||||
void SoftwareGLContext::gl_get_tex_parameter_integerv(GLenum target, GLint level, GLenum pname, GLint* params)
|
||||
{
|
||||
RETURN_WITH_ERROR_IF(m_in_draw_state, GL_INVALID_OPERATION);
|
||||
// FIXME: support targets other than GL_TEXTURE_2D
|
||||
RETURN_WITH_ERROR_IF(target != GL_TEXTURE_2D, GL_INVALID_ENUM);
|
||||
// FIXME: support other parameter names
|
||||
RETURN_WITH_ERROR_IF(pname < GL_TEXTURE_WIDTH || pname > GL_TEXTURE_HEIGHT, GL_INVALID_ENUM);
|
||||
RETURN_WITH_ERROR_IF(level < 0 || level > Texture2D::LOG2_MAX_TEXTURE_SIZE, GL_INVALID_VALUE);
|
||||
// FIXME: GL_INVALID_VALUE is generated if target is GL_TEXTURE_BUFFER and level is not zero
|
||||
// FIXME: GL_INVALID_OPERATION is generated if GL_TEXTURE_COMPRESSED_IMAGE_SIZE is queried on texture images with an uncompressed internal format or on proxy targets
|
||||
|
||||
switch (pname) {
|
||||
case GL_TEXTURE_HEIGHT:
|
||||
*params = m_active_texture_unit->bound_texture_2d()->height_at_lod(level);
|
||||
break;
|
||||
case GL_TEXTURE_WIDTH:
|
||||
*params = m_active_texture_unit->bound_texture_2d()->width_at_lod(level);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void SoftwareGLContext::gl_rect(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
|
||||
{
|
||||
APPEND_TO_CALL_LIST_AND_RETURN_IF_NEEDED(gl_rect, x1, y1, x2, y2);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue