[Scummvm-git-logs] scummvm master -> 18f75444b2bc967d1ed69dc60e6ecd584efc9175

aquadran noreply at scummvm.org
Tue Nov 15 22:23:57 UTC 2022


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:
18f75444b2 BACKENDS3D: Revert my changes to Framebuffer viewport state.


Commit: 18f75444b2bc967d1ed69dc60e6ecd584efc9175
    https://github.com/scummvm/scummvm/commit/18f75444b2bc967d1ed69dc60e6ecd584efc9175
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2022-11-15T23:23:50+01:00

Commit Message:
BACKENDS3D: Revert my changes to Framebuffer viewport state.

It's useless for backend code flow.
Instead move into UpdateScreen() as short time solution.

Changed paths:
    backends/graphics3d/opengl/framebuffer.cpp
    backends/graphics3d/opengl/framebuffer.h
    backends/graphics3d/openglsdl/openglsdl-graphics3d.cpp


diff --git a/backends/graphics3d/opengl/framebuffer.cpp b/backends/graphics3d/opengl/framebuffer.cpp
index f757a661f9a..2e851a5cf6e 100644
--- a/backends/graphics3d/opengl/framebuffer.cpp
+++ b/backends/graphics3d/opengl/framebuffer.cpp
@@ -115,13 +115,11 @@ void FrameBuffer::init() {
 
 void FrameBuffer::attach() {
 	glBindFramebuffer(GL_FRAMEBUFFER, _frameBuffer);
-	glGetIntegerv(GL_VIEWPORT, _prevStateViewport);
 	glViewport(0, 0, _width, _height);
 }
 
 void FrameBuffer::detach() {
 	glBindFramebuffer(GL_FRAMEBUFFER, 0);
-	glViewport(_prevStateViewport[0], _prevStateViewport[1], _prevStateViewport[2], _prevStateViewport[3]);
 }
 
 #if !USE_FORCED_GLES2
@@ -174,7 +172,6 @@ void MultiSampleFrameBuffer::init() {
 void MultiSampleFrameBuffer::attach() {
 	glBindFramebuffer(GL_READ_FRAMEBUFFER, getFrameBufferName());
 	glBindFramebuffer(GL_DRAW_FRAMEBUFFER, _msFrameBufferId);
-	glGetIntegerv(GL_VIEWPORT, _prevStateViewport);
 	glViewport(0, 0, getWidth(), getHeight());
 }
 
@@ -183,7 +180,6 @@ void MultiSampleFrameBuffer::detach() {
 	glBindFramebuffer(GL_DRAW_FRAMEBUFFER, getFrameBufferName());
 	glBlitFramebuffer(0, 0, getWidth(), getHeight(), 0, 0, getWidth(), getHeight(), GL_COLOR_BUFFER_BIT, GL_NEAREST);
 	glBindFramebuffer(GL_FRAMEBUFFER, 0);
-	glViewport(_prevStateViewport[0], _prevStateViewport[1], _prevStateViewport[2], _prevStateViewport[3]);
 }
 
 #endif // !USE_FORCED_GLES2
diff --git a/backends/graphics3d/opengl/framebuffer.h b/backends/graphics3d/opengl/framebuffer.h
index 976e59c8b09..83202a0f4e8 100644
--- a/backends/graphics3d/opengl/framebuffer.h
+++ b/backends/graphics3d/opengl/framebuffer.h
@@ -46,7 +46,6 @@ private:
 	void init();
 	GLuint _renderBuffers[2];
 	GLuint _frameBuffer;
-	GLint _prevStateViewport[4];
 };
 
 #if !USE_FORCED_GLES2
@@ -64,7 +63,6 @@ private:
 	GLuint _msColorId;
 	GLuint _msDepthId;
 	GLuint _msSamples;
-	GLint _prevStateViewport[4];
 };
 #endif
 
diff --git a/backends/graphics3d/openglsdl/openglsdl-graphics3d.cpp b/backends/graphics3d/openglsdl/openglsdl-graphics3d.cpp
index abbf70b2179..353ea86128a 100644
--- a/backends/graphics3d/openglsdl/openglsdl-graphics3d.cpp
+++ b/backends/graphics3d/openglsdl/openglsdl-graphics3d.cpp
@@ -637,6 +637,8 @@ OpenGL::FrameBuffer *OpenGLSdlGraphics3dManager::createFramebuffer(uint width, u
 }
 
 void OpenGLSdlGraphics3dManager::updateScreen() {
+	GLint prevStateViewport[4];
+	glGetIntegerv(GL_VIEWPORT, prevStateViewport);
 	if (_frameBuffer) {
 		_frameBuffer->detach();
 		_surfaceRenderer->prepareState();
@@ -666,6 +668,7 @@ void OpenGLSdlGraphics3dManager::updateScreen() {
 	if (_frameBuffer) {
 		_frameBuffer->attach();
 	}
+	glViewport(prevStateViewport[0], prevStateViewport[1], prevStateViewport[2], prevStateViewport[3]);
 }
 
 int16 OpenGLSdlGraphics3dManager::getHeight() const {




More information about the Scummvm-git-logs mailing list