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

npjg nathanael.gentrydb8 at gmail.com
Wed Aug 19 21:00:46 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:
d2a1102423 GRAPHICS: MACGUI: Fix screen copying with direct draw


Commit: d2a1102423981e372a9b6bd822230a5a13c8e658
    https://github.com/scummvm/scummvm/commit/d2a1102423981e372a9b6bd822230a5a13c8e658
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-08-19T16:59:18-04:00

Commit Message:
GRAPHICS: MACGUI: Fix screen copying with direct draw

Changed paths:
    graphics/macgui/macwindowmanager.cpp


diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index 63295bd351..7b1e76594f 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -343,28 +343,35 @@ void MacWindowManager::activateMenu() {
 }
 
 void MacWindowManager::activateScreenCopy() {
-	if (!_screen)
-		return;
+	if (_screen) {
+		if (!_screenCopy)
+			_screenCopy = new ManagedSurface(*_screen);	// Create a copy
+		else
+			*_screenCopy = *_screen;
+	} else {
+		Surface *surface = g_system->lockScreen();
 
-	if (!_screenCopy)
-		_screenCopy = new ManagedSurface(*_screen);	// Create a copy
-	else
-		*_screenCopy = *_screen;
+		if (!_screenCopy) {
+			_screenCopy = new ManagedSurface(_screenDims.width(), _screenDims.height());
+		}
+
+		_screenCopy->blitFrom(*surface);
+		g_system->unlockScreen();
+	}
 
 	_screenCopyPauseToken = new PauseToken(pauseEngine());
 }
 
 void MacWindowManager::disableScreenCopy() {
-	if (!_screen)
-		return;
-
 	if (_screenCopyPauseToken) {
 		_screenCopyPauseToken->clear();
 		delete _screenCopyPauseToken;
 		_screenCopyPauseToken = nullptr;
 	}
 
-	*_screen = *_screenCopy; // restore screen
+	if (_screen)
+		*_screen = *_screenCopy; // restore screen
+
 	g_system->copyRectToScreen(_screenCopy->getBasePtr(0, 0), _screenCopy->pitch, 0, 0, _screenCopy->w, _screenCopy->h);
 }
 




More information about the Scummvm-git-logs mailing list