diff options
Diffstat (limited to 'backends/PalmOS/Src/palmrdr.cpp')
-rw-r--r-- | backends/PalmOS/Src/palmrdr.cpp | 278 |
1 files changed, 0 insertions, 278 deletions
diff --git a/backends/PalmOS/Src/palmrdr.cpp b/backends/PalmOS/Src/palmrdr.cpp deleted file mode 100644 index 906e551f8b..0000000000 --- a/backends/PalmOS/Src/palmrdr.cpp +++ /dev/null @@ -1,278 +0,0 @@ -/* ScummVM - Scumm Interpreter - * Copyright (C) 2001 Ludvig Strigeus - * Copyright (C) 2001-2005 The ScummVM project - * - * 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. - * - * $Header$ - * - */ -#include "common/stdafx.h" -#include "palm.h" - -#include "rumble.h" -#include "shared.h" - -#ifndef DISABLE_TAPWAVE -#include "tapwave.h" -#include "i_zodiac.h" -#endif - -#include "init_arm.h" -#include "arm/native.h" -#include "arm/macros.h" - -static void rumblePack(Boolean active) { - if (!gVars->vibrator) - return; - - RumbleRun(active); -} - - -void OSystem_PALMOS::setShakePos(int shake_pos) { - _new_shake_pos = shake_pos; - - if (shake_pos == 0) - rumblePack(false); -} - -#ifndef DISABLE_TAPWAVE -void OSystem_PALMOS::updateScreen_wideZodiac() { - Err e; - TwGfxRectType destRect, srcRect; - TwGfxPointType destPoint = {0,0}; - Int32 h; - - if (_screenHeight == 200) - h = (_adjustAspectRatio ? 300 : 320); // 320x200 - else - h = (_adjustAspectRatio ? 360 : 320); // 640x480, 320x240 - - srcRect.x = 0; - srcRect.y = 0; - srcRect.w = _screenWidth; - srcRect.h = _screenHeight; - - destRect.w = 480; - destRect.h = h; - destRect.x = 0; - destRect.y = ((gVars->screenFullHeight - destRect.h) / 2); - - _screenOffset.y = destRect.y; - - // shake screen - if (_current_shake_pos != _new_shake_pos) { - RectangleType r; - - WinSetBackColor(0); - // clear top - RctSetRectangle(&r, 0, _screenOffset.y, 480, _new_shake_pos); - WinFillRectangle(&r, 0); - // clear bottom - RctSetRectangle(&r, 0, _screenOffset.y + h, 480, _current_shake_pos); - WinFillRectangle(&r, 0); - - destRect.y += _new_shake_pos; - _screenOffset.y += _new_shake_pos; - - rumblePack(_new_shake_pos >= 3); - _current_shake_pos = _new_shake_pos; - } - - // update screen - WinSetDrawWindow(WinGetDisplayWindow()); - e = TwGfxDrawPalmBitmap((TwGfxSurfaceType *)_twSrc, &destPoint, (BitmapPtr)_twBmpV3); - e = TwGfxStretchBlt2((TwGfxSurfaceType *)_twDst, &destRect, (TwGfxSurfaceType *)_twSrc, &srcRect, twGfxStretchFast| (gVars->filter ? twGfxStretchSmooth : 0)); -} -#endif - -void OSystem_PALMOS::updateScreen_widePortrait() { - UInt8 *dst = _screenP + _screenOffset.y; - UInt8 *src = _offScreenP + WIDE_PITCH - 1; - - // shake screen - if (_current_shake_pos != _new_shake_pos) { - RectangleType r; - - WinSetBackColor(0); - // clear top - RctSetRectangle(&r, _screenOffset.y, 0, _new_shake_pos, 480); - WinFillRectangle(&r, 0); - // clear bottom - RctSetRectangle(&r, _screenOffset.y + 300, 0, _current_shake_pos, 480); - WinFillRectangle(&r, 0); - - dst += _new_shake_pos; - - rumblePack(_new_shake_pos >= 3); - _current_shake_pos = _new_shake_pos; - } - - // update screen - ARM_START(WideType) - ARM_INIT(COMMON_WPORTRAIT) - ARM_ADDM(dst) - ARM_ADDM(src) - ARM_CALL(ARM_COMMON, PNO_DATA()) - ARM_CONTINUE() - { - Coord x, y; - UInt8 *src2 = src; - - for (x = 0; x < WIDE_HALF_WIDTH; x++) { - for (y = 0; y < WIDE_HALF_HEIGHT; y++) { - *dst++ = *src; - src += WIDE_PITCH; - *dst++ = *src; - *dst++ = *src; - src += WIDE_PITCH; - } - src = --src2; - dst += 20; // we draw 200pix scaled to 1.5 = 300, screen width=320, so next is 20 - - for (y = 0; y < WIDE_HALF_HEIGHT; y++) { - *dst++ = *src; - src += WIDE_PITCH; - *dst++ = *src; - *dst++ = *src; - src += WIDE_PITCH; - } - src = --src2; - dst += 20; - - MemMove(dst, dst - WIDE_PITCH, 300); // 300 = 200 x 1.5 - dst += WIDE_PITCH; - } - } - - WinScreenUnlock(); - _screenP = WinScreenLock(winLockCopy) + _screenOffset.addr; -} - -void OSystem_PALMOS::updateScreen_wideLandscape() { - UInt8 *dst = _screenP; - UInt8 *src = _offScreenP; - - // shake screen - if (_current_shake_pos != _new_shake_pos) { - RectangleType r; - - WinSetBackColor(0); - // clear top - RctSetRectangle(&r, 0, _screenOffset.y, 480, _new_shake_pos); - WinFillRectangle(&r, 0); - // clear bottom - RctSetRectangle(&r, 0, _screenOffset.y + 300, 480, _current_shake_pos); - WinFillRectangle(&r, 0); - - dst += _new_shake_pos * 480; - - rumblePack(_new_shake_pos >= 3); - _current_shake_pos = _new_shake_pos; - } - - // update screen - ARM_START(WideType) - ARM_INIT(COMMON_WLANDSCAPE) - ARM_ADDM(dst) - ARM_ADDM(src) - ARM_CALL(ARM_COMMON, PNO_DATA()) - ARM_CONTINUE() - { - Coord x, y; - - for (y = 0; y < WIDE_HALF_HEIGHT; y++) { - // draw 2 lines - for (x = 0; x < WIDE_FULL_WIDTH; x++) { - *dst++ = *src++; - *dst++ = *src; - *dst++ = *src++; - } - // copy the second to the next line - MemMove(dst, dst - 480, 480); - dst += 480; - } - } - - WinScreenUnlock(); - _screenP = WinScreenLock(winLockCopy) + _screenOffset.addr; -} - -void OSystem_PALMOS::updateScreen_flipping() { - RectangleType r, dummy; - Boolean shaked = false; - - // shake screen - if (_current_shake_pos != _new_shake_pos) { - RctSetRectangle(&r, _screenOffset.x, _screenOffset.y - _new_shake_pos, _screenWidth, _screenHeight + (_new_shake_pos << 2)); - - if (_useHRmode) - HRWinScrollRectangle(gVars->HRrefNum, &r, winDown, _new_shake_pos, &dummy); - else - WinScrollRectangle(&r, winDown, _new_shake_pos, &dummy); - - rumblePack(_new_shake_pos >= 3); - _current_shake_pos = _new_shake_pos; - shaked = true; - } - - // update screen - WinScreenUnlock(); - _offScreenP = WinScreenLock(winLockCopy) + _screenOffset.addr; - _screenP = _offScreenP; - - if (shaked) { - if (_useHRmode) - HRWinScrollRectangle(gVars->HRrefNum, &r, winUp, _new_shake_pos, &dummy); - else - WinScrollRectangle(&r, winUp, _new_shake_pos, &dummy); - } - -} - -void OSystem_PALMOS::updateScreen_buffered() { - RectangleType r; - - // shake screen - if (_current_shake_pos != _new_shake_pos) { - if (_new_shake_pos != 0) { - RctSetRectangle(&r, _screenOffset.x, _screenOffset.y + _screenHeight, _screenWidth, _new_shake_pos); - - if (OPTIONS_TST(kOptModeHiDensity)) - WinCopyRectangle(_screenH, _screenH, &r, _screenOffset.x, _screenOffset.y, winPaint); - else - HRWinCopyRectangle(gVars->HRrefNum, _screenH, _screenH, &r, _screenOffset.x, _screenOffset.y, winPaint); - } - - rumblePack(_new_shake_pos >= 3); - _current_shake_pos = _new_shake_pos; - } - - // update screen - RctSetRectangle(&r, 0, 0, _screenWidth, _screenHeight - _current_shake_pos); - - if (OPTIONS_TST(kOptModeHiDensity)) - WinCopyRectangle(_offScreenH, _screenH, &r, _screenOffset.x, _screenOffset.y + _current_shake_pos, winPaint); - else - HRWinCopyRectangle(gVars->HRrefNum, _offScreenH, _screenH, &r, _screenOffset.x, _screenOffset.y + _current_shake_pos, winPaint); -} - -void OSystem_PALMOS::updateScreen_direct() { - if (_current_shake_pos != _new_shake_pos) { - rumblePack(_new_shake_pos >= 3); - _current_shake_pos = _new_shake_pos; - } -} |