aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/gp2x
diff options
context:
space:
mode:
authorDavid Corrales2007-06-23 18:51:33 +0000
committerDavid Corrales2007-06-23 18:51:33 +0000
commitcacd7a28fd51d960947de88abbf30c487e66529d (patch)
treef3baa59853bfb307e452b86b9d93c4737b1fa6ab /backends/platform/gp2x
parent0ac96302fe9c04df79cb01a77d19535b45fe2db0 (diff)
parent90c2210dae8c91fa8babc6b05564e15c9d445d18 (diff)
downloadscummvm-rg350-cacd7a28fd51d960947de88abbf30c487e66529d.tar.gz
scummvm-rg350-cacd7a28fd51d960947de88abbf30c487e66529d.tar.bz2
scummvm-rg350-cacd7a28fd51d960947de88abbf30c487e66529d.zip
Merged the FSNode branch with trunk r27031:27680
svn-id: r27681
Diffstat (limited to 'backends/platform/gp2x')
-rw-r--r--backends/platform/gp2x/build/bundle.sh1
-rw-r--r--backends/platform/gp2x/events.cpp32
-rw-r--r--backends/platform/gp2x/gp2x-common.h7
-rw-r--r--backends/platform/gp2x/graphics.cpp34
4 files changed, 30 insertions, 44 deletions
diff --git a/backends/platform/gp2x/build/bundle.sh b/backends/platform/gp2x/build/bundle.sh
index b5e3161c9b..93ae45f0e3 100644
--- a/backends/platform/gp2x/build/bundle.sh
+++ b/backends/platform/gp2x/build/bundle.sh
@@ -23,6 +23,7 @@ cp ../../../../scummvm.gp2x ./scummvm-gp2x-`date '+%Y-%m-%d'`/
cp ../../../../AUTHORS ./scummvm-gp2x-`date '+%Y-%m-%d'`/
cp ../../../../README ./scummvm-gp2x-`date '+%Y-%m-%d'`/
cp ../../../../COPYING ./scummvm-gp2x-`date '+%Y-%m-%d'`/
+cp ../../../../COPYRIGHT ./scummvm-gp2x-`date '+%Y-%m-%d'`/
cp ../../../../NEWS ./scummvm-gp2x-`date '+%Y-%m-%d'`/
cp ../../../../gui/themes/modern.ini ./scummvm-gp2x-`date '+%Y-%m-%d'`/
cp ../../../../gui/themes/modern.zip ./scummvm-gp2x-`date '+%Y-%m-%d'`/
diff --git a/backends/platform/gp2x/events.cpp b/backends/platform/gp2x/events.cpp
index 80cdad924b..72b188afd2 100644
--- a/backends/platform/gp2x/events.cpp
+++ b/backends/platform/gp2x/events.cpp
@@ -65,7 +65,7 @@
static int mapKey(SDLKey key, SDLMod mod, Uint16 unicode)
{
if (key >= SDLK_F1 && key <= SDLK_F9) {
- return key - SDLK_F1 + 315;
+ return key - SDLK_F1 + Common::ASCII_F1;
} else if (key >= SDLK_KP0 && key <= SDLK_KP9) {
return key - SDLK_KP0 + '0';
} else if (key >= SDLK_UP && key <= SDLK_PAGEDOWN) {
@@ -468,10 +468,10 @@ bool OSystem_GP2X::pollEvent(Common::Event &event) {
break;
case GP2X_BUTTON_R:
if (GP2X_BUTTON_STATE_L == TRUE) {
- event.kbd.keycode = SDLK_0;
+ event.kbd.keycode = Common::KEYCODE_0;
event.kbd.ascii = mapKey(SDLK_0, ev.key.keysym.mod, 0);
} else {
- event.kbd.keycode = SDLK_F5;
+ event.kbd.keycode = Common::KEYCODE_F5;
event.kbd.ascii = mapKey(SDLK_F5, ev.key.keysym.mod, 0);
}
break;
@@ -479,28 +479,28 @@ bool OSystem_GP2X::pollEvent(Common::Event &event) {
if (GP2X_BUTTON_STATE_L == TRUE) {
event.type = Common::EVENT_QUIT;
} else {
- event.kbd.keycode = SDLK_ESCAPE;
+ event.kbd.keycode = Common::KEYCODE_ESCAPE;
event.kbd.ascii = mapKey(SDLK_ESCAPE, ev.key.keysym.mod, 0);
}
break;
case GP2X_BUTTON_A:
- event.kbd.keycode = SDLK_PERIOD;
+ event.kbd.keycode = Common::KEYCODE_PERIOD;
event.kbd.ascii = mapKey(SDLK_PERIOD, ev.key.keysym.mod, 0);
break;
case GP2X_BUTTON_Y:
if (GP2X_BUTTON_STATE_L == TRUE) {
setZoomOnMouse();
} else {
- event.kbd.keycode = SDLK_SPACE;
+ event.kbd.keycode = Common::KEYCODE_SPACE;
event.kbd.ascii = mapKey(SDLK_SPACE, ev.key.keysym.mod, 0);
}
break;
case JOY_BUT_RETURN:
- event.kbd.keycode = SDLK_RETURN;
+ event.kbd.keycode = Common::KEYCODE_RETURN;
event.kbd.ascii = mapKey(SDLK_RETURN, ev.key.keysym.mod, 0);
break;
case JOY_BUT_ZERO:
- event.kbd.keycode = SDLK_0;
+ event.kbd.keycode = Common::KEYCODE_0;
event.kbd.ascii = mapKey(SDLK_0, ev.key.keysym.mod, 0);
break;
@@ -514,7 +514,7 @@ bool OSystem_GP2X::pollEvent(Common::Event &event) {
// displayMessageOnOSD("Left Trigger Pressed");
// break;
// } else if ((ev.jbutton.button == GP2X_BUTTON_R) && (ev.jbutton.button != GP2X_BUTTON_L)) {
- // event.kbd.keycode = SDLK_F5;
+ // event.kbd.keycode = Common::KEYCODE_F5;
// event.kbd.ascii = mapKey(SDLK_F5, ev.key.keysym.mod, 0);
// break;
// } else {
@@ -525,7 +525,7 @@ bool OSystem_GP2X::pollEvent(Common::Event &event) {
if (GP2X_BUTTON_STATE_L == TRUE) {
displayMessageOnOSD("Setting CPU Speed at 230MHz");
GP2X_setCpuspeed(200);
- //event.kbd.keycode = SDLK_PLUS;
+ //event.kbd.keycode = Common::KEYCODE_PLUS;
//event.kbd.ascii = mapKey(SDLK_PLUS, ev.key.keysym.mod, 0);
} else {
GP2X_mixer_move_volume(1);
@@ -536,7 +536,7 @@ bool OSystem_GP2X::pollEvent(Common::Event &event) {
if (GP2X_BUTTON_STATE_L == TRUE) {
displayMessageOnOSD("Setting CPU Speed at 60MHz");
GP2X_setCpuspeed(60);
- //event.kbd.keycode = SDLK_MINUS;
+ //event.kbd.keycode = Common::KEYCODE_MINUS;
//event.kbd.ascii = mapKey(SDLK_MINUS, ev.key.keysym.mod, 0);
} else {
GP2X_mixer_move_volume(0);
@@ -564,26 +564,26 @@ bool OSystem_GP2X::pollEvent(Common::Event &event) {
event.kbd.flags = 0;
switch (ev.jbutton.button) {
case GP2X_BUTTON_SELECT:
- event.kbd.keycode = SDLK_ESCAPE;
+ event.kbd.keycode = Common::KEYCODE_ESCAPE;
event.kbd.ascii = mapKey(SDLK_ESCAPE, ev.key.keysym.mod, 0);
break;
case GP2X_BUTTON_A:
- event.kbd.keycode = SDLK_PERIOD;
+ event.kbd.keycode = Common::KEYCODE_PERIOD;
event.kbd.ascii = mapKey(SDLK_PERIOD, ev.key.keysym.mod, 0);
break;
case GP2X_BUTTON_Y:
-// event.kbd.keycode = SDLK_SPACE;
+// event.kbd.keycode = Common::KEYCODE_SPACE;
// event.kbd.ascii = mapKey(SDLK_SPACE, ev.key.keysym.mod, 0);
break;
case GP2X_BUTTON_START:
- event.kbd.keycode = SDLK_RETURN;
+ event.kbd.keycode = Common::KEYCODE_RETURN;
event.kbd.ascii = mapKey(SDLK_RETURN, ev.key.keysym.mod, 0);
break;
case GP2X_BUTTON_L:
GP2X_BUTTON_STATE_L = FALSE;
break;
case GP2X_BUTTON_R:
- event.kbd.keycode = SDLK_F5;
+ event.kbd.keycode = Common::KEYCODE_F5;
event.kbd.ascii = mapKey(SDLK_F5, ev.key.keysym.mod, 0);
break;
case GP2X_BUTTON_VOLUP:
diff --git a/backends/platform/gp2x/gp2x-common.h b/backends/platform/gp2x/gp2x-common.h
index 4c91a00247..68f2fb997e 100644
--- a/backends/platform/gp2x/gp2x-common.h
+++ b/backends/platform/gp2x/gp2x-common.h
@@ -90,11 +90,8 @@ public:
// The screen will not be updated to reflect the new bitmap
void copyRectToScreen(const byte *src, int pitch, int x, int y, int w, int h);
- // Copies the screen to a buffer
- bool grabRawScreen(Graphics::Surface *surf);
-
- // Clear the screen
- void clearScreen();
+ virtual Graphics::Surface *lockScreen();
+ virtual void unlockScreen();
// Update the dirty areas of the screen
void updateScreen();
diff --git a/backends/platform/gp2x/graphics.cpp b/backends/platform/gp2x/graphics.cpp
index a482689e43..c3ed5c627c 100644
--- a/backends/platform/gp2x/graphics.cpp
+++ b/backends/platform/gp2x/graphics.cpp
@@ -687,22 +687,6 @@ void OSystem_GP2X::setZoomOnMouse() {
}
}
-void OSystem_GP2X::clearScreen() {
- assert (_transactionMode == kTransactionNone);
-
- // Try to lock the screen surface
- if (SDL_LockSurface(_screen) == -1)
- error("SDL_LockSurface failed: %s", SDL_GetError());
-
- byte *dst = (byte *)_screen->pixels;
-
- // Clear the screen
- memset(dst, 0, _screenWidth * _screenHeight);
-
- // Unlock the screen surface
- SDL_UnlockSurface(_screen);
-}
-
void OSystem_GP2X::copyRectToScreen(const byte *src, int pitch, int x, int y, int w, int h) {
assert (_transactionMode == kTransactionNone);
assert(src);
@@ -772,15 +756,19 @@ void OSystem_GP2X::copyRectToScreen(const byte *src, int pitch, int x, int y, in
SDL_UnlockSurface(_screen);
}
-// TIDY: DIRTY HACK: Try a REALLY simple version of grabRawScreen to
-// debug why it will not work on the GP2X.
-bool OSystem_GP2X::grabRawScreen(Graphics::Surface *surf) {
- assert(surf);
+Graphics::Surface *OSystem_GP2X::lockScreen() {
+ _framebuffer.pixels = _screen->pixels;
+ _framebuffer.w = _screen->w;
+ _framebuffer.h = _screen->h;
+ _framebuffer.pitch = _screen->pitch;
+ _framebuffer.bytesPerPixel = 1;
- surf->create(_screenWidth, _screenHeight, 1);
- memcpy(surf->pixels, _screen->pixels, _screenWidth * _screenHeight);
+ return &_framebuffer;
+}
- return true;
+void OSystem_GP2X::unlockScreen() {
+ // Force screen update
+ _forceFull = true;
}
void OSystem_GP2X::addDirtyRect(int x, int y, int w, int h, bool realCoordinates) {