[Scummvm-git-logs] scummvm master -> eae84917220c41a28a6aaf59c4f2ad3ee7b9ab87

lephilousophe noreply at scummvm.org
Sun Nov 26 12:02:51 UTC 2023


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
eae8491722 GRAPHICS3D: Properly disable scissor test while rendering surfaces


Commit: eae84917220c41a28a6aaf59c4f2ad3ee7b9ab87
    https://github.com/scummvm/scummvm/commit/eae84917220c41a28a6aaf59c4f2ad3ee7b9ab87
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2023-11-26T13:02:33+01:00

Commit Message:
GRAPHICS3D: Properly disable scissor test while rendering surfaces

Restore it afterwards for the engine.

Changed paths:
    backends/graphics3d/opengl/surfacerenderer.cpp
    backends/graphics3d/opengl/surfacerenderer.h


diff --git a/backends/graphics3d/opengl/surfacerenderer.cpp b/backends/graphics3d/opengl/surfacerenderer.cpp
index 0afa4ad634b..141624b11d1 100644
--- a/backends/graphics3d/opengl/surfacerenderer.cpp
+++ b/backends/graphics3d/opengl/surfacerenderer.cpp
@@ -104,6 +104,7 @@ void FixedSurfaceRenderer::prepareState() {
 	glEnable(GL_TEXTURE_2D);
 	glDisable(GL_DEPTH_TEST);
 	glDisable(GL_ALPHA_TEST);
+	glDisable(GL_SCISSOR_TEST);
 	glDepthMask(GL_FALSE);
 }
 
@@ -239,6 +240,8 @@ void ShaderSurfaceRenderer::prepareState() {
 	_prevStateBlend = glIsEnabled(GL_BLEND);
 	glGetIntegerv(GL_BLEND_SRC_ALPHA, &_prevStateBlendFunc);
 	glGetIntegerv(GL_VIEWPORT, _prevStateViewport);
+	_prevStateScissorTest = glIsEnabled(GL_SCISSOR_TEST);
+	glDisable(GL_SCISSOR_TEST);
 }
 
 void ShaderSurfaceRenderer::render(const TextureGL *tex, const Math::Rect2d &dest) {
@@ -259,6 +262,7 @@ void ShaderSurfaceRenderer::render(const TextureGL *tex, const Math::Rect2d &des
 void ShaderSurfaceRenderer::restorePreviousState() {
 	_prevStateDepthTest ? glEnable(GL_DEPTH_TEST) : glDisable(GL_DEPTH_TEST);
 	glDepthMask(_prevStateDepthWriteMask);
+	_prevStateScissorTest ? glEnable(GL_SCISSOR_TEST) : glDisable(GL_SCISSOR_TEST);
 	_prevStateBlend ? glEnable(GL_BLEND) : glDisable(GL_BLEND);
 	glBlendFunc(GL_BLEND_SRC_ALPHA, _prevStateBlendFunc);
 	glViewport(_prevStateViewport[0], _prevStateViewport[1], _prevStateViewport[2], _prevStateViewport[3]);
diff --git a/backends/graphics3d/opengl/surfacerenderer.h b/backends/graphics3d/opengl/surfacerenderer.h
index 6dba63ffde3..090a54ef46f 100644
--- a/backends/graphics3d/opengl/surfacerenderer.h
+++ b/backends/graphics3d/opengl/surfacerenderer.h
@@ -108,6 +108,7 @@ private:
 	GLboolean _prevStateDepthTest;
 	GLboolean _prevStateDepthWriteMask;
 	GLboolean _prevStateBlend;
+	GLboolean _prevStateScissorTest;
 	GLint _prevStateBlendFunc;
 	GLint _prevStateViewport[4];
 };




More information about the Scummvm-git-logs mailing list