[Scummvm-cvs-logs] scummvm master -> 51d415733cc7823a0fc4e1694a8671713c9f0292

lordhoto lordhoto at gmail.com
Sat Feb 6 22:52:54 CET 2016


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
74154f2101 SCI: Properly use pitch in GfxScreen::copyFromScreen.
51d415733c SCI: Implement kernelSyncWithFramebuffer using copyFromScreen.


Commit: 74154f2101c55c261ad0113923fa9beafcbd387b
    https://github.com/scummvm/scummvm/commit/74154f2101c55c261ad0113923fa9beafcbd387b
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2016-02-06T22:50:53+01:00

Commit Message:
SCI: Properly use pitch in GfxScreen::copyFromScreen.

Changed paths:
    engines/sci/graphics/screen.cpp



diff --git a/engines/sci/graphics/screen.cpp b/engines/sci/graphics/screen.cpp
index 4cd6344..a76f462 100644
--- a/engines/sci/graphics/screen.cpp
+++ b/engines/sci/graphics/screen.cpp
@@ -270,9 +270,21 @@ void GfxScreen::copyToScreen() {
 }
 
 void GfxScreen::copyFromScreen(byte *buffer) {
-	// TODO this ignores the pitch
 	Graphics::Surface *screen = g_system->lockScreen();
-	memcpy(buffer, screen->getPixels(), _displayPixels);
+
+	if (screen->pitch == _displayWidth) {
+		memcpy(buffer, screen->getPixels(), _displayPixels);
+	} else {
+		const byte *src = (const byte *)screen->getPixels();
+		uint height = _displayHeight;
+
+		while (height--) {
+			memcpy(buffer, src, _displayWidth);
+			buffer += _displayWidth;
+			src    += screen->pitch;
+		}
+	}
+
 	g_system->unlockScreen();
 }
 


Commit: 51d415733cc7823a0fc4e1694a8671713c9f0292
    https://github.com/scummvm/scummvm/commit/51d415733cc7823a0fc4e1694a8671713c9f0292
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2016-02-06T22:50:53+01:00

Commit Message:
SCI: Implement kernelSyncWithFramebuffer using copyFromScreen.

Changed paths:
    engines/sci/graphics/screen.cpp



diff --git a/engines/sci/graphics/screen.cpp b/engines/sci/graphics/screen.cpp
index a76f462..ea65d11 100644
--- a/engines/sci/graphics/screen.cpp
+++ b/engines/sci/graphics/screen.cpp
@@ -289,10 +289,7 @@ void GfxScreen::copyFromScreen(byte *buffer) {
 }
 
 void GfxScreen::kernelSyncWithFramebuffer() {
-	// TODO this ignores the pitch
-	Graphics::Surface *screen = g_system->lockScreen();
-	memcpy(_displayScreen, screen->getPixels(), _displayPixels);
-	g_system->unlockScreen();
+	copyFromScreen(_displayScreen);
 }
 
 void GfxScreen::copyRectToScreen(const Common::Rect &rect) {






More information about the Scummvm-git-logs mailing list