aboutsummaryrefslogtreecommitdiff
path: root/backends/PalmOS
diff options
context:
space:
mode:
authorChris Apers2006-02-11 09:09:20 +0000
committerChris Apers2006-02-11 09:09:20 +0000
commita1e21760a4102e228bb358c2109b8de528d7f476 (patch)
tree42a34dc1b4d4ef178b38db3745613c29889ccc20 /backends/PalmOS
parent0ae5c6fe60fa5af9a843853f4eec70c2f9df530b (diff)
downloadscummvm-rg350-a1e21760a4102e228bb358c2109b8de528d7f476.tar.gz
scummvm-rg350-a1e21760a4102e228bb358c2109b8de528d7f476.tar.bz2
scummvm-rg350-a1e21760a4102e228bb358c2109b8de528d7f476.zip
- Fixed gfx mode : normal = default, fixed using 1x instead
- Use palette only if we need it - draw_mouse() is part if int_updateScreen - Moved OSD redraw in common updateScreen - Added base draw_osd(...) svn-id: r20499
Diffstat (limited to 'backends/PalmOS')
-rwxr-xr-xbackends/PalmOS/Src/base_gfx.cpp87
1 files changed, 75 insertions, 12 deletions
diff --git a/backends/PalmOS/Src/base_gfx.cpp b/backends/PalmOS/Src/base_gfx.cpp
index 79d03b0fc6..9dddc0d14d 100755
--- a/backends/PalmOS/Src/base_gfx.cpp
+++ b/backends/PalmOS/Src/base_gfx.cpp
@@ -1,7 +1,7 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2001 Ludvig Strigeus
* Copyright (C) 2001-2006 The ScummVM project
- * Copyright (C) 2002-2005 Chris Apers - PalmOS Backend
+ * Copyright (C) 2002-2006 Chris Apers - PalmOS Backend
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -17,7 +17,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $Header$
+ * $URL$
+ * $Id$
*
*/
@@ -33,7 +34,7 @@
*/
static const OSystem::GraphicsMode s_supportedGraphicsModes[] = {
- {"normal", "Normal", GFX_NORMAL},
+ {"1x", "Normal", GFX_NORMAL},
{"wide", "Wide", GFX_WIDE},
{0, 0, 0}
};
@@ -137,16 +138,21 @@ void OSystem_PalmBase::setShakePos(int shakeOffset) {
void OSystem_PalmBase::updateScreen() {
// Check whether the palette was changed in the meantime and update the
// screen surface accordingly.
- if (_paletteDirtyEnd != 0) {
+ if (_paletteDirtyEnd != 0 && _setPalette) {
WinSetDrawWindow(WinGetDisplayWindow());
WinPalette(winPaletteSet, _paletteDirtyStart, _paletteDirtyEnd - _paletteDirtyStart, _currentPalette + _paletteDirtyStart);
_paletteDirtyEnd = 0;
+ //_redawOSD = true;
-/* UInt8 oldCol;
+#ifdef PALMOS_68Ks
+ UInt8 oldCol;
oldCol = gVars->indicator.on;
gVars->indicator.on = RGBToColor(0,255,0);
- if (oldCol != gVars->indicator.on) {
+ if (oldCol != gVars->indicator.on)
+ _redrawOSD = true;
+
+/* {
// redraw if needed
if (_lastKeyModifier)
draw1BitGfx((kDrawKeyState + _lastKeyModifier - 1), 2, getHeight() + 2, true);
@@ -155,12 +161,17 @@ void OSystem_PalmBase::updateScreen() {
draw1BitGfx(kDrawNumPad, (getWidth() >> 1) - 32, getHeight() + 2, true);
if (_showBatLow)
- draw1BitGfx(kDrawBatLow, (getWidth() >> 1), -16, true);
- }
-*/ }
-
+ draw1BitGfx(kDrawBatLow, (getWidth() >> 1), -16, true);
+ }*/
+#endif
+ }
+ if (_redawOSD) {
+ _redawOSD = false;
+ draw_osd(kDrawBatLow, _screenDest.w - 18, -16, _showBatLow, 2);
+ draw_osd(kDrawFight, _screenDest.w - 34, _screenDest.h + 2, (_useNumPad && !_overlayVisible), 1);
+ }
int_updateScreen();
- draw_mouse();
+
}
void OSystem_PalmBase::clearScreen() {
@@ -170,7 +181,59 @@ void OSystem_PalmBase::clearScreen() {
}
void OSystem_PalmBase::draw_osd(UInt16 id, Int32 x, Int32 y, Boolean show, UInt8 color) {
+//return;
+
+#ifdef PALMOS_68K
MemHandle hTemp = DmGetResource(bitmapRsc, id);
+#else
+ MemHandle hTemp = DmGetResource('abmp', id + 100);
+#endif
+
+ if (hTemp) {
+ /*static const UInt32 pal[3] = {
+ (TwGfxComponentsToPackedRGB(0,255,0)),
+ (TwGfxComponentsToPackedRGB(255,255,0)),
+ (TwGfxComponentsToPackedRGB(255,0,0))
+ };*/
+
+ BitmapType *bmTemp;
+ bmTemp = (BitmapType *)MemHandleLock(hTemp);
+
+ Coord w, h;
+#ifdef PALMOS_68K
+ BmpGlueGetDimensions(bmTemp, &w, &h, 0);
+#else
+ BmpGetDimensions(bmTemp, &w, &h, 0);
+#endif
+ PointType dst = { _screenOffset.x + x, _screenOffset.y + y };
+ RectangleType r = { dst.x, dst.y, w, h };
+
+ RectangleType c;
+
+ UInt16 old = WinSetCoordinateSystem(kCoordinatesNative);
+ WinGetClip(&c);
+ WinResetClip();
+ if (show) {
+ WinSetDrawWindow(_screenH);
+ WinSetBackColor(0);
+ WinSetForeColor(120); // pal[color]
+ WinFillRectangle(&r, 0);
+ WinSetDrawMode(winOverlay);
+ WinDrawBitmap(bmTemp, 0, 0);
+ WinSetDrawMode(winPaint);
+
+ } else {
+ WinSetBackColor(0);
+ WinFillRectangle(&r, 0);
+ }
+ WinSetClip(&c);
+ WinSetCoordinateSystem(old);
+
+ MemPtrUnlock(bmTemp);
+ DmReleaseResource(hTemp);
+ }
+
+/* MemHandle hTemp = DmGetResource(bitmapRsc, id);
if (hTemp) {
BitmapType *bmTemp;
@@ -213,5 +276,5 @@ void OSystem_PalmBase::draw_osd(UInt16 id, Int32 x, Int32 y, Boolean show, UInt8
MemHandleUnlock(hTemp);
DmReleaseResource(hTemp);
- }
+ }*/
}