[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