From 36a732e98eefbbe4af8110c454a04def0a821ca4 Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Mon, 21 Feb 2022 01:22:23 +0100 Subject: [PATCH] LibGL: Ignore stack on projection and model view matrix retrieval Our implementation keeps the top-most item on the matrix stacks in a member variable, so we can always use that instead of considering the actual stack. Additionally, the current matrix mode should not influence retrieving the projection or model view matrix. --- Userland/Libraries/LibGL/SoftwareGLContext.cpp | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/Userland/Libraries/LibGL/SoftwareGLContext.cpp b/Userland/Libraries/LibGL/SoftwareGLContext.cpp index f980ac67e4..608963d07e 100644 --- a/Userland/Libraries/LibGL/SoftwareGLContext.cpp +++ b/Userland/Libraries/LibGL/SoftwareGLContext.cpp @@ -1,6 +1,7 @@ /* * Copyright (c) 2021, Jesse Buhagiar * Copyright (c) 2021, Stephan Unverwerth + * Copyright (c) 2022, Jelle Raaijmakers * * SPDX-License-Identifier: BSD-2-Clause */ @@ -1931,20 +1932,10 @@ void SoftwareGLContext::get_floating_point(GLenum pname, T* params) }; switch (pname) { case GL_MODELVIEW_MATRIX: - if (m_current_matrix_mode == GL_MODELVIEW) - flatten_and_assign_matrix(m_model_view_matrix); - else if (m_model_view_matrix_stack.is_empty()) - flatten_and_assign_matrix(FloatMatrix4x4::identity()); - else - flatten_and_assign_matrix(m_model_view_matrix_stack.last()); + flatten_and_assign_matrix(m_model_view_matrix); return; case GL_PROJECTION_MATRIX: - if (m_current_matrix_mode == GL_PROJECTION) - flatten_and_assign_matrix(m_projection_matrix); - else if (m_projection_matrix_stack.is_empty()) - flatten_and_assign_matrix(FloatMatrix4x4::identity()); - else - flatten_and_assign_matrix(m_projection_matrix_stack.last()); + flatten_and_assign_matrix(m_projection_matrix); return; }