[Scummvm-cvs-logs] SF.net SVN: scummvm:[43788] scummvm/trunk/graphics/scaler/thumbnail_intern. cpp
upthorn at users.sourceforge.net
upthorn at users.sourceforge.net
Sat Aug 29 09:23:49 CEST 2009
Revision: 43788
http://scummvm.svn.sourceforge.net/scummvm/?rev=43788&view=rev
Author: upthorn
Date: 2009-08-29 07:23:49 +0000 (Sat, 29 Aug 2009)
Log Message:
-----------
changes to graphics/scaler/thumbnail_intern.cpp that escaped earlier 16-bit merge.
Modified Paths:
--------------
scummvm/trunk/graphics/scaler/thumbnail_intern.cpp
Modified: scummvm/trunk/graphics/scaler/thumbnail_intern.cpp
===================================================================
--- scummvm/trunk/graphics/scaler/thumbnail_intern.cpp 2009-08-29 06:04:21 UTC (rev 43787)
+++ scummvm/trunk/graphics/scaler/thumbnail_intern.cpp 2009-08-29 07:23:49 UTC (rev 43788)
@@ -23,6 +23,7 @@
*
*/
+#include "common/endian.h"
#include "common/scummsys.h"
#include "common/system.h"
@@ -98,7 +99,8 @@
if (!screen)
return false;
- assert(screen->bytesPerPixel == 1 && screen->pixels != 0);
+ assert(screen->bytesPerPixel == 1 || screen->bytesPerPixel == 2);
+ assert(screen->pixels != 0);
byte palette[256 * 4];
g_system->grabPalette(&palette[0], 0, 256);
@@ -107,11 +109,17 @@
for (uint y = 0; y < screen->h; ++y) {
for (uint x = 0; x < screen->w; ++x) {
- byte r, g, b;
- r = palette[((uint8*)screen->pixels)[y * screen->pitch + x] * 4];
- g = palette[((uint8*)screen->pixels)[y * screen->pitch + x] * 4 + 1];
- b = palette[((uint8*)screen->pixels)[y * screen->pitch + x] * 4 + 2];
-
+ byte r, g, b;
+ if (screen->bytesPerPixel == 2) {
+ uint16 col = READ_UINT16(screen->getBasePtr(x, y));
+ r = ((col >> 10) & 0x1F) << 3;
+ g = ((col >> 5) & 0x1F) << 3;
+ b = ((col >> 0) & 0x1F) << 3;
+ } else {
+ r = palette[((uint8*)screen->pixels)[y * screen->pitch + x] * 4];
+ g = palette[((uint8*)screen->pixels)[y * screen->pitch + x] * 4 + 1];
+ b = palette[((uint8*)screen->pixels)[y * screen->pitch + x] * 4 + 2];
+ }
((uint16*)surf->pixels)[y * surf->w + x] = Graphics::RGBToColor<Graphics::ColorMasks<565> >(r, g, b);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list