From 3883b42764f8e6c33ad0fbf7b2bbd2e358c3a3ab Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Fri, 24 Dec 2021 14:42:33 +0100 Subject: [PATCH] LibGL: Stub `GL_(UN)PACK_*` context parameters Libraries like GLU depend on their memory initialization by requesting these parameters, so if we do not support them, segfaults will occur. --- .../Libraries/LibGL/SoftwareGLContext.cpp | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Userland/Libraries/LibGL/SoftwareGLContext.cpp b/Userland/Libraries/LibGL/SoftwareGLContext.cpp index 72da04c7cb..2aad429270 100644 --- a/Userland/Libraries/LibGL/SoftwareGLContext.cpp +++ b/Userland/Libraries/LibGL/SoftwareGLContext.cpp @@ -105,6 +105,18 @@ Optional SoftwareGLContext::get_context_parameter(GLenum name) return ContextParameter { .type = GL_INT, .value = { .integer_value = static_cast(m_texture_units.size()) } }; case GL_PACK_ALIGNMENT: return ContextParameter { .type = GL_INT, .value = { .integer_value = m_pack_alignment } }; + case GL_PACK_IMAGE_HEIGHT: + return ContextParameter { .type = GL_BOOL, .value = { .integer_value = 0 } }; + case GL_PACK_LSB_FIRST: + return ContextParameter { .type = GL_BOOL, .value = { .boolean_value = false } }; + case GL_PACK_ROW_LENGTH: + return ContextParameter { .type = GL_INT, .value = { .integer_value = 0 } }; + case GL_PACK_SKIP_PIXELS: + return ContextParameter { .type = GL_INT, .value = { .integer_value = 0 } }; + case GL_PACK_SKIP_ROWS: + return ContextParameter { .type = GL_INT, .value = { .integer_value = 0 } }; + case GL_PACK_SWAP_BYTES: + return ContextParameter { .type = GL_BOOL, .value = { .boolean_value = false } }; case GL_RED_BITS: return ContextParameter { .type = GL_INT, .value = { .integer_value = sizeof(float) * 8 } }; case GL_SCISSOR_BOX: { @@ -135,8 +147,18 @@ Optional SoftwareGLContext::get_context_parameter(GLenum name) return ContextParameter { .type = GL_BOOL, .value = { .boolean_value = m_active_texture_unit->texture_cube_map_enabled() } }; case GL_UNPACK_ALIGNMENT: return ContextParameter { .type = GL_INT, .value = { .integer_value = m_unpack_alignment } }; + case GL_UNPACK_IMAGE_HEIGHT: + return ContextParameter { .type = GL_BOOL, .value = { .integer_value = 0 } }; + case GL_UNPACK_LSB_FIRST: + return ContextParameter { .type = GL_BOOL, .value = { .boolean_value = false } }; case GL_UNPACK_ROW_LENGTH: return ContextParameter { .type = GL_INT, .value = { .integer_value = m_unpack_row_length } }; + case GL_UNPACK_SKIP_PIXELS: + return ContextParameter { .type = GL_INT, .value = { .integer_value = 0 } }; + case GL_UNPACK_SKIP_ROWS: + return ContextParameter { .type = GL_INT, .value = { .integer_value = 0 } }; + case GL_UNPACK_SWAP_BYTES: + return ContextParameter { .type = GL_BOOL, .value = { .boolean_value = false } }; default: dbgln_if(GL_DEBUG, "get_context_parameter({:#x}): unknown context parameter", name); return {};