1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* 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_zodiac.h"
#include "common/endian.h"
void OSystem_PalmZodiac::clearOverlay() {
if (!_overlayVisible)
return;
Err e;
TwGfxPointType pos = {0, 0};
TwGfxBitmapType bmp = {
sizeof(TwGfxBitmapType),
_screenWidth, _screenHeight, _screenWidth, twGfxPixelFormat8bpp,
(void *)_offScreenP, (UInt16 *)_nativePal
};
e = TwGfxDrawBitmap(_overlayP, &pos, &bmp);
}
void OSystem_PalmZodiac::grabOverlay(OverlayColor *buf, int pitch) {
Err e;
OverlayColor *src;
e = TwGfxLockSurface(_overlayP, (void **)&src);
int h = _screenHeight;
do {
memcpy(buf, src, _screenWidth * 2);
src += _screenWidth;
buf += pitch;
} while (--h);
e = TwGfxUnlockSurface(_overlayP, 0);
}
void OSystem_PalmZodiac::copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h) {
Err e;
TwGfxPointType pos = {x, y};
TwGfxBitmapType bmp = {
sizeof(TwGfxBitmapType),
w, h, pitch * 2 , twGfxPixelFormatRGB565_LE,
(void *)buf, 0
};
e = TwGfxDrawBitmap(_overlayP, &pos, &bmp);
}
OverlayColor OSystem_PalmZodiac::RGBToColor(uint8 r, uint8 g, uint8 b) {
return TwGfxMakeDisplayRGB(r, g, b);
}
void OSystem_PalmZodiac::colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) {
r = ((color >> 8) & 0xF8);
g = ((color >> 3) & 0xFC);
b = ((color << 3) & 0xF8);
}
|