[Scummvm-git-logs] scummvm master -> 141a8e2d4f7c5c87efdf06d5159c5e6ec850842e

aquadran noreply at scummvm.org
Sun Nov 3 18:38:16 UTC 2024


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:
141a8e2d4f WINTERMUTE: Added disabling blend mode at flip to prevent interfere with backend renderer


Commit: 141a8e2d4f7c5c87efdf06d5159c5e6ec850842e
    https://github.com/scummvm/scummvm/commit/141a8e2d4f7c5c87efdf06d5159c5e6ec850842e
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2024-11-03T19:38:11+01:00

Commit Message:
WINTERMUTE: Added disabling blend mode at flip to prevent interfere with backend renderer

Changed paths:
    engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
    engines/wintermute/base/gfx/opengl/base_render_opengl3d.h
    engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
    engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.h


diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
index 57a728073fc..3a56f804959 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
@@ -111,6 +111,16 @@ bool BaseRenderOpenGL3D::initRenderer(int width, int height, bool windowed) {
 	return true;
 }
 
+bool BaseRenderOpenGL3D::flip() {
+	_lastTexture = nullptr;
+	// Disable blend mode to prevent interfere with backend renderer
+	bool prevStateBlend = glIsEnabled(GL_BLEND);
+	glDisable(GL_BLEND);
+	g_system->updateScreen();
+	prevStateBlend ? glEnable(GL_BLEND) : glDisable(GL_BLEND);
+	return true;
+}
+
 bool BaseRenderOpenGL3D::fill(byte r, byte g, byte b, Common::Rect *rect) {
 	if(!_gameRef->_editorMode) {
 		glViewport(0, _height, _width, _height);
diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.h b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.h
index 58a825e20fa..c9511b689cb 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.h
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.h
@@ -90,6 +90,7 @@ public:
 	BaseImage *takeScreenshot() override;
 	void fadeToColor(byte r, byte g, byte b, byte a) override;
 
+	bool flip() override;
 	bool fill(byte r, byte g, byte b, Common::Rect *rect = nullptr) override;
 
 	bool setViewport(int left, int top, int right, int bottom) override;
diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
index 5648d088bba..f325f42d34d 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
@@ -138,6 +138,16 @@ bool BaseRenderOpenGL3DShader::initRenderer(int width, int height, bool windowed
 	return true;
 }
 
+bool BaseRenderOpenGL3DShader::flip() {
+	_lastTexture = nullptr;
+	// Disable blend mode to prevent interfere with backend renderer
+	bool prevStateBlend = glIsEnabled(GL_BLEND);
+	glDisable(GL_BLEND);
+	g_system->updateScreen();
+	prevStateBlend ? glEnable(GL_BLEND) : glDisable(GL_BLEND);
+	return true;
+}
+
 bool BaseRenderOpenGL3DShader::fill(byte r, byte g, byte b, Common::Rect *rect) {
 	if(!_gameRef->_editorMode) {
 		glViewport(0, _height, _width, _height);
diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.h b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.h
index f80a6b9c6fb..649a76d9d3b 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.h
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.h
@@ -79,6 +79,7 @@ public:
 	void dumpData(const char *filename) override {}
 	BaseImage *takeScreenshot() override;
 	void fadeToColor(byte r, byte g, byte b, byte a) override;
+	bool flip() override;
 	bool fill(byte r, byte g, byte b, Common::Rect *rect = nullptr) override;
 
 	bool setViewport(int left, int top, int right, int bottom) override;




More information about the Scummvm-git-logs mailing list