[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