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

aquadran aquadran at gmail.com
Tue Apr 27 03:17:43 UTC 2021


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:
c28cff2fe0 WINTERMUTE: Sync render creation code with other engines


Commit: c28cff2fe0d8f5aaace44628ea1a3d4538b194cf
    https://github.com/scummvm/scummvm/commit/c28cff2fe0d8f5aaace44628ea1a3d4538b194cf
Author: lb_ii (lolbot_iichan at mail.ru)
Date: 2021-04-27T05:17:40+02:00

Commit Message:
WINTERMUTE: Sync render creation code with other engines

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


diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 2e9df492f8..950ced64dd 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -504,8 +504,9 @@ bool BaseGame::initialize2() { // we know whether we are going to be accelerated
 #ifdef ENABLE_WME3D
 	Common::String rendererConfig = ConfMan.get("renderer");
 	Graphics::RendererType desiredRendererType = Graphics::parseRendererTypeCode(rendererConfig);
+	Graphics::RendererType matchingRendererType = Graphics::getBestMatchingAvailableRendererType(desiredRendererType);
 
-	if (!_playing3DGame && desiredRendererType == Graphics::kRendererTypeTinyGL) {
+	if (!_playing3DGame && (desiredRendererType == Graphics::kRendererTypeTinyGL || desiredRendererType == Graphics::kRendererTypeDefault)) {
 		_renderer = makeOSystemRenderer(this);
 		if (_renderer == nullptr) {
 			return STATUS_FAILED;
@@ -520,22 +521,27 @@ bool BaseGame::initialize2() { // we know whether we are going to be accelerated
 
 #if defined(USE_OPENGL_GAME)
 	// Check the OpenGL context actually supports shaders
-	if (backendCapableOpenGL && desiredRendererType == Graphics::kRendererTypeOpenGLShaders && !OpenGLContext.shadersSupported) {
-		desiredRendererType = Graphics::kRendererTypeOpenGL;
+	if (backendCapableOpenGL && matchingRendererType == Graphics::kRendererTypeOpenGLShaders && !OpenGLContext.shadersSupported) {
+		matchingRendererType = Graphics::kRendererTypeOpenGL;
 	}
 #endif
 
+	if (matchingRendererType != desiredRendererType && desiredRendererType != Graphics::kRendererTypeDefault) {
+		// Display a warning if unable to use the desired renderer
+		warning("Unable to create a '%s' renderer", rendererConfig.c_str());
+	}
+
 #if defined(USE_OPENGL_SHADERS) || defined(USE_GLES2)
-	if (backendCapableOpenGL && desiredRendererType == Graphics::kRendererTypeOpenGLShaders) {
+	if (backendCapableOpenGL && matchingRendererType == Graphics::kRendererTypeOpenGLShaders) {
 		_renderer3D = makeOpenGL3DShaderRenderer(this);
 	}
 #endif // defined(USE_GLES2) || defined(USE_OPENGL_SHADERS)
 #if defined(USE_OPENGL_GAME)
-	if (backendCapableOpenGL && desiredRendererType == Graphics::kRendererTypeOpenGL) {
+	if (backendCapableOpenGL && matchingRendererType == Graphics::kRendererTypeOpenGL) {
 		_renderer3D = makeOpenGL3DRenderer(this);
 	}
 #endif // defined(USE_OPENGL)
-	if (_playing3DGame && desiredRendererType == Graphics::kRendererTypeTinyGL) {
+	if (_playing3DGame && matchingRendererType == Graphics::kRendererTypeTinyGL) {
 		_renderer3D = nullptr;// TODO: makeTinyGL3DRenderer(this);
 		error("3D software renderered is not supported yet");
 	}




More information about the Scummvm-git-logs mailing list