[Scummvm-cvs-logs] CVS: scummvm/backends/sdl sdl-common.cpp,1.2,1.3 sdl-common.h,1.1,1.2
Michael Pearce
chuzwuzza at users.sourceforge.net
Sun Sep 8 22:57:03 CEST 2002
Update of /cvsroot/scummvm/scummvm/backends/sdl
In directory usw-pr-cvs1:/tmp/cvs-serv24674/backends/sdl
Modified Files:
sdl-common.cpp sdl-common.h
Log Message:
Applied roever's screen effects patch (#602595) and fixed LethalWP's Makefile ;)
Index: sdl-common.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/sdl/sdl-common.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- sdl-common.cpp 8 Sep 2002 01:08:11 -0000 1.2
+++ sdl-common.cpp 9 Sep 2002 05:56:10 -0000 1.3
@@ -135,6 +135,43 @@
}
+void OSystem_SDL_Common::move_screen(int dx, int dy, int height) {
+
+ if ((dx == 0) && (dy == 0))
+ return;
+
+ if (dx == 0) {
+ // vertical movement
+ if (dy > 0) {
+ // move down
+ // copy from bottom to top
+ for (int y = height - 1; y >= dy; y--)
+ copy_rect((byte *)sdl_screen->pixels + SCREEN_WIDTH * (y - dy), SCREEN_WIDTH, 0, y, SCREEN_WIDTH, 1);
+ } else {
+ // move up
+ // copy from top to bottom
+ for (int y = 0; y < height + dx; y++)
+ copy_rect((byte *)sdl_screen->pixels + SCREEN_WIDTH * (y - dy), SCREEN_WIDTH, 0, y, SCREEN_WIDTH, 1);
+ }
+ } else if (dy == 0) {
+ // horizontal movement
+ if (dx > 0) {
+ // move right
+ // copy from right to left
+ for (int x = SCREEN_WIDTH - 1; x >= dx; x--)
+ copy_rect((byte *)sdl_screen->pixels + x - dx, SCREEN_WIDTH, x, 0, 1, height);
+ } else {
+ // move left
+ // copy from left to right
+ for (int x = 0; x < SCREEN_WIDTH; x++)
+ copy_rect((byte *)sdl_screen->pixels + x - dx, SCREEN_WIDTH, x, 0, 1, height);
+ }
+ } else {
+ // free movement
+ // not neccessary for now
+ }
+}
+
void OSystem_SDL_Common::add_dirty_rect(int x, int y, int w, int h) {
if (force_full)
return;
Index: sdl-common.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/sdl/sdl-common.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- sdl-common.h 24 Aug 2002 10:41:32 -0000 1.1
+++ sdl-common.h 9 Sep 2002 05:56:10 -0000 1.2
@@ -42,6 +42,8 @@
// The screen will not be updated to reflect the new bitmap
void copy_rect(const byte *buf, int pitch, int x, int y, int w, int h);
+ void move_screen(int dx, int dy, int height);
+
// Update the dirty areas of the screen
void update_screen() = 0;
More information about the Scummvm-git-logs
mailing list