diff options
Diffstat (limited to 'backends/PalmOS/Src/os5_gfx.cpp')
-rw-r--r-- | backends/PalmOS/Src/os5_gfx.cpp | 317 |
1 files changed, 0 insertions, 317 deletions
diff --git a/backends/PalmOS/Src/os5_gfx.cpp b/backends/PalmOS/Src/os5_gfx.cpp deleted file mode 100644 index 2e2ec68454..0000000000 --- a/backends/PalmOS/Src/os5_gfx.cpp +++ /dev/null @@ -1,317 +0,0 @@ -/* ScummVM - Scumm Interpreter - * Copyright (C) 2001 Ludvig Strigeus - * Copyright (C) 2001-2006 The ScummVM project - * 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 - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include "be_os5.h" -#include <PenInputMgr.h> -#include <palmOneResources.h> - -#ifdef PALMOS_ARM -#include <System/WIP.h> -#include <Libraries/AIA/palmOneStatusBarMgrARM.h> -#endif - -#include "oscalls.h" - -void OSystem_PalmOS5::int_initSize(uint w, uint h) { -} - -WinHandle OSystem_PalmOS5::alloc_screen(Coord w, Coord h) { - Err e; - WinHandle winH; - UInt16 old = WinSetCoordinateSystem(kCoordinatesNative); - winH = WinCreateOffscreenWindow(w, h, nativeFormat, &e); - WinSetCoordinateSystem(old); - - return winH; -} - -void OSystem_PalmOS5::load_gfx_mode() { - Err e; - - if (_gfxLoaded) - return; - _gfxLoaded = true; - - - _mouseBackupP = (byte *)MemPtrNew(MAX_MOUSE_W * MAX_MOUSE_H * 2); // *2 if 16bit - _mouseDataP = (byte *)MemPtrNew(MAX_MOUSE_W * MAX_MOUSE_H); - _offScreenP = (byte *)malloc(_screenWidth * _screenHeight); - - UInt32 depth = 16; - WinScreenMode(winScreenModeSet, NULL, NULL, &depth, NULL); - clearScreen(); - - gVars->indicator.on = RGBToColor(0,255,0); - gVars->indicator.off = RGBToColor(0,0,0); - - _overlayH = alloc_screen(_screenWidth, _screenHeight); - _screenH = WinGetDisplayWindow(); - - _overlayP = (OverlayColor *)(BmpGetBits(WinGetBitmap(_overlayH))); - _screenP = (byte *)(BmpGetBits(WinGetBitmap(_screenH))); - - MemSet(_offScreenP, _screenWidth * _screenHeight, 0); - MemSet(_nativePal, sizeof(_nativePal), 0); - MemSet(_currentPalette, sizeof(_currentPalette), 0); - - _isSwitchable = (_screenWidth == 320 && _screenHeight == 200 && OPTIONS_TST(kOptCollapsible)); - if (_screenWidth > 320 || _screenHeight > 200 || !_isSwitchable) - _mode = GFX_NORMAL; - - hotswap_gfx_mode(_mode); -} - -void OSystem_PalmOS5::hotswap_gfx_mode(int mode) { - Err e; - UInt32 device; - - if (_mode != GFX_NORMAL && !_isSwitchable) - return; - - if (_workScreenH) - WinDeleteWindow(_workScreenH, false); - _workScreenH = NULL; - -#ifdef PALMOS_ARM - Boolean isT3 = false; - if (!FtrGet(sysFileCSystem, sysFtrNumOEMDeviceID, &device)) - isT3 = (device == kPalmOneDeviceIDTungstenT3); -#endif - - // prevent bad DIA redraw (Stat part) - if (mode == GFX_NORMAL) { - // only if this API is available - if (_stretched && OPTIONS_TST(kOptCollapsible)) { -#ifdef PALMOS_ARM - if (isT3) { - //AiaSetInputAreaState(aiaInputAreaShow); - StatShow_68k(); - PINSetInputAreaState_68k(pinInputAreaOpen); - } else -#endif - { - StatShow(); - PINSetInputAreaState(pinInputAreaOpen); - } - } - - _redawOSD = true; - _stretched = false; - OPTIONS_RST(kOptDisableOnScrDisp); - _screenDest.w = _screenWidth; - _screenDest.h = _screenHeight; - - if (_wasRotated) { - // restore controls rotation - SWAP(_keyMouse.bitLeft, _keyMouse.bitRight); - SWAP(_keyMouse.bitRight, _keyMouse.bitDown); - SWAP(_keyMouse.bitLeft, _keyMouse.bitUp); - _wasRotated = false; - } - - _workScreenH = alloc_screen(_screenWidth, _screenHeight); - _workScreenP = (int16 *)(BmpGetBits(WinGetBitmap(_workScreenH))); - MemSet(_workScreenP, _screenWidth * _screenHeight * 2, 0); - - _screenOffset.x = (gVars->screenWidth - _screenWidth) / 2; - _screenOffset.y = (gVars->screenHeight - _screenHeight) / 2; - - _render = &OSystem_PalmOS5::render_1x; - - } else { -#ifdef PALMOS_ARM - // T3 DIA library is 68k base, there is no possible native call - if (isT3) { - //AiaSetInputAreaState(aiaInputAreaFullScreen); - PINSetInputAreaState_68k(pinInputAreaClosed); - StatHide_68k(); - } else -#endif - { - PINSetInputAreaState(pinInputAreaClosed); - StatHide(); - } - - _redawOSD = false; - _stretched = true; - OPTIONS_SET(kOptDisableOnScrDisp); - - if (OPTIONS_TST(kOptModeLandscape)) { - _screenDest.w = 480; - _screenDest.h = 300; - _workScreenH = alloc_screen(480, 300); - _render = &OSystem_PalmOS5::render_landscape; - - } else { - _screenDest.w = 300; - _screenDest.h = 480; - _workScreenH = alloc_screen(300, 480); - _render = &OSystem_PalmOS5::render_portrait; - // This mode need a controls rotation - SWAP(_keyMouse.bitLeft, _keyMouse.bitUp); - SWAP(_keyMouse.bitRight, _keyMouse.bitDown); - SWAP(_keyMouse.bitLeft, _keyMouse.bitRight); - _wasRotated = true; - } - - _workScreenP = (int16 *)(BmpGetBits(WinGetBitmap(_workScreenH))); - MemSet(_workScreenP, 480 * 300 * 2, 0); - - _screenOffset.x = 0; - _screenOffset.y = 10; - } - - _mode = mode; - clearScreen(); -} - -void OSystem_PalmOS5::unload_gfx_mode() { - if (!_gfxLoaded) - return; - _gfxLoaded = false; - - MemPtrFree(_mouseBackupP); - MemPtrFree(_mouseDataP); - free(_offScreenP); - - if (_workScreenH) - WinDeleteWindow(_workScreenH, false); - if (_overlayH) - WinDeleteWindow(_overlayH, false); - - _workScreenH = NULL; - _overlayH = NULL; - - UInt32 depth = 8; - WinScreenMode(winScreenModeSet, NULL, NULL, &depth, NULL); - clearScreen(); - - WinSetCoordinateSystem(_sysOldCoord); -} - -void OSystem_PalmOS5::copyRectToScreen(const byte *buf, int pitch, int x, int y, int w, int h) { - // Clip the coordinates - if (x < 0) { - w += x; - buf -= x; - x = 0; - } - - if (y < 0) { - h += y; - buf -= y * pitch; - y = 0; - } - - if (w > _screenWidth - x) - w = _screenWidth - x; - - if (h > _screenHeight - y) - h = _screenHeight - y; - - if (w <= 0 || h <= 0) - return; - - byte *dst = _offScreenP + y * _screenWidth + x; - - if (w == pitch && w == _screenWidth) { - MemMove(dst, buf, w * h); - } else { - do { - MemMove(dst, buf, w); - dst += _screenWidth; - buf += pitch; - } while (--h); - } -} - -void OSystem_PalmOS5::int_updateScreen() { - RectangleType r; - PointType p; - - draw_mouse(); - ((this)->*(_render))(r, p); - - _sysOldCoord = WinSetCoordinateSystem(kCoordinatesNative); - WinCopyRectangle(_workScreenH, _screenH, &r, p.x, p.y, winPaint); - WinSetCoordinateSystem(_sysOldCoord); - undraw_mouse(); -} - -void OSystem_PalmOS5::clearScreen() { - RGBColorType rgb = { 0,0,0,0 }; - WinSetDrawWindow(WinGetDisplayWindow()); - WinSetBackColorRGB(&rgb, 0); - WinEraseWindow(); -} - -void OSystem_PalmOS5::extras_palette(uint8 index, uint8 r, uint8 g, uint8 b) { - _nativePal[index] = gfxMakeDisplayRGB( r, g, b); -} - -void OSystem_PalmOS5::draw_osd(UInt16 id, Int32 x, Int32 y, Boolean show, UInt8 color) { - if (_mode != GFX_NORMAL) - return; -// MemHandle hTemp = DmGetResource(bitmapRsc, id); - MemHandle hTemp = DmGetResource('abmp', id + 100); - - if (hTemp) { - RGBColorType oldRGB; - static const RGBColorType pal[4] = { - {0,0,255,0}, - {0,255,255,0}, - {0,255,0,0}, - {0,0,0,0} - }; - - BitmapType *bmTemp; - bmTemp = (BitmapType *)MemHandleLock(hTemp); - - Coord w, h; - BmpGetDimensions(bmTemp, &w, &h, 0); - - PointType dst = { _screenOffset.x + x, _screenOffset.y + y }; - RectangleType c, r = { dst.x, dst.y, w, h }; - - UInt16 old = WinSetCoordinateSystem(kCoordinatesNative); - WinSetDrawWindow(_screenH); - WinGetClip(&c); - WinResetClip(); - - if (show) { - WinSetForeColorRGB(&pal[3], &oldRGB); - WinSetBackColorRGB(&pal[color], &oldRGB); - WinDrawBitmap(bmTemp, dst.x, dst.y); - } else { - WinSetBackColorRGB(&pal[3], &oldRGB); - WinFillRectangle(&r, 0); - } - - WinSetClip(&c); - WinSetCoordinateSystem(old); - - MemPtrUnlock(bmTemp); - DmReleaseResource(hTemp); - } -} |