[Scummvm-git-logs] scummvm master -> 978d7c1c5773974c3b609c6fe8ee99937af89d2c

aquadran aquadran at gmail.com
Mon Oct 19 06:11:42 UTC 2020


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:
978d7c1c57 WINTERMUTE: If backend is not capable opengl in game and game is 2d switch to 2d renderer


Commit: 978d7c1c5773974c3b609c6fe8ee99937af89d2c
    https://github.com/scummvm/scummvm/commit/978d7c1c5773974c3b609c6fe8ee99937af89d2c
Author: Paweł Kołodziejski (aquadran at users.sourceforge.net)
Date: 2020-10-19T08:11:32+02:00

Commit Message:
WINTERMUTE: If backend is not capable opengl in game and game is 2d switch to 2d renderer

Changed paths:
    engines/wintermute/base/base_game.cpp
    engines/wintermute/wintermute.cpp


diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 424b413e32..81ae51b931 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -502,9 +502,8 @@ bool BaseGame::initialize1() {
 //////////////////////////////////////////////////////////////////////
 bool BaseGame::initialize2() { // we know whether we are going to be accelerated
 #ifdef ENABLE_WME3D
-	initGraphics3d(_settings->getResWidth(), _settings->getResHeight());
-
 #if defined(USE_OPENGL_GAME) || defined(USE_OPENGL_SHADERS) || defined(USE_GLES2)
+	initGraphics3d(_settings->getResWidth(), _settings->getResHeight());
 	bool backendCapableOpenGL = g_system->hasFeature(OSystem::kFeatureOpenGLForGame);
 #endif
 
@@ -528,16 +527,15 @@ bool BaseGame::initialize2() { // we know whether we are going to be accelerated
 		_renderer3D = makeOpenGL3DRenderer(this);
 	}
 #endif // defined(USE_OPENGL)
-	if (desiredRendererType == Graphics::kRendererTypeTinyGL) {
+	if (_playing3DGame && desiredRendererType == Graphics::kRendererTypeTinyGL) {
 		// TODO
 		//_renderer3D = makeTinyGL3DRenderer(this);
 	}
-	if (!_renderer3D) {
-		error("Unable to create a 3D renderer");
-		return STATUS_FAILED;
-	}
-
 	_renderer = _renderer3D;
+#if !defined(USE_OPENGL_GAME) && !defined(USE_OPENGL_SHADERS) && !defined(USE_GLES2)
+	if (!_playing3DGame && !_renderer3D)
+		_renderer = makeOSystemRenderer(this);
+#endif
 #else
 	_renderer = makeOSystemRenderer(this);
 #endif
diff --git a/engines/wintermute/wintermute.cpp b/engines/wintermute/wintermute.cpp
index 7037495383..6a00b782cb 100644
--- a/engines/wintermute/wintermute.cpp
+++ b/engines/wintermute/wintermute.cpp
@@ -114,7 +114,7 @@ bool WintermuteEngine::hasFeature(EngineFeature f) const {
 
 Common::Error WintermuteEngine::run() {
 	// Initialize graphics using following:
-#ifndef ENABLE_WME3D
+#if !defined(ENABLE_WME3D) || (!defined(USE_OPENGL_GAME) && !defined(USE_OPENGL_SHADERS) && !defined(USE_GLES2))
 	Graphics::PixelFormat format(4, 8, 8, 8, 8, 24, 16, 8, 0);
 	if (_gameDescription->adDesc.flags & GF_LOWSPEC_ASSETS) {
 		initGraphics(320, 240, &format);
@@ -249,7 +249,13 @@ int WintermuteEngine::init() {
 		return 2;
 	}
 
-	_game->initialize2();
+	if (!_game->initialize2()) {
+		_game->LOG(0, "Error initializing renderer. Exiting.");
+
+		delete _game;
+		_game = nullptr;
+		return 3;
+	}
 
 	bool ret = _game->initRenderer();
 




More information about the Scummvm-git-logs mailing list