Commit fdf2d42e authored by CeRiAl's avatar CeRiAl

Quick 1.2.10 "fixes" (surely broken for now)

parent 9582f364
...@@ -12,17 +12,17 @@ CFLAGS += -DWINCE_EXTRADEBUG ...@@ -12,17 +12,17 @@ CFLAGS += -DWINCE_EXTRADEBUG
#CFLAGS += -DDEBUG -g #CFLAGS += -DDEBUG -g
CFLAGS += -O3 -march=armv4 -mtune=xscale CFLAGS += -O3 -march=armv4 -mtune=xscale
OBJS = src/audio/SDL_audio.o src/audio/SDL_audiocvt.o src/audio/SDL_audiodev.o src/audio/SDL_audiomem.o src/audio/SDL_mixer.o src/audio/SDL_wave.o OBJS = src/audio/SDL_audio.o src/audio/SDL_audiocvt.o src/audio/SDL_audiodev.o src/audio/windib/SDL_dibaudio.o src/audio/SDL_mixer.o src/audio/SDL_wave.o
OBJS += src/audio/windib/SDL_dibaudio.o OBJS += src/audio/windib/SDL_dibaudio.o
OBJS += src/cdrom/SDL_cdrom.o src/cdrom/win32/SDL_syscdrom.o src/endian/SDL_endian.o src/events/SDL_active.o src/events/SDL_events.o src/events/SDL_expose.o OBJS += src/cdrom/SDL_cdrom.o src/cdrom/win32/SDL_syscdrom.o src/events/SDL_active.o src/events/SDL_events.o src/events/SDL_expose.o
OBJS += src/events/SDL_keyboard.o src/events/SDL_mouse.o src/events/SDL_quit.o src/events/SDL_resize.o src/file/SDL_rwops.o src/joystick/SDL_joystick.o OBJS += src/events/SDL_keyboard.o src/events/SDL_mouse.o src/events/SDL_quit.o src/events/SDL_resize.o src/file/SDL_rwops.o src/joystick/SDL_joystick.o
OBJS += src/joystick/win32/SDL_mmjoystick.o src/thread/win32/SDL_sysmutex.o src/thread/win32/SDL_syssem.o src/thread/win32/SDL_systhread.o OBJS += src/joystick/win32/SDL_mmjoystick.o src/thread/win32/SDL_sysmutex.o src/thread/win32/SDL_syssem.o src/thread/win32/SDL_systhread.o
OBJS += src/thread/SDL_thread.o src/thread/win32/win_ce_semaphore.o src/timer/win32/SDL_systimer.o src/timer/SDL_timer.o src/video/windib/SDL_dibevents.o OBJS += src/thread/SDL_thread.o src/thread/win32/win_ce_semaphore.o src/timer/win32/SDL_systimer.o src/timer/SDL_timer.o src/video/windib/SDL_dibevents.o
OBJS += src/video/windib/SDL_dibvideo.o src/video/wincommon/SDL_sysevents.o src/video/wincommon/SDL_sysmouse.o src/video/wincommon/SDL_syswm.o OBJS += src/video/wincommon/SDL_sysmouse.o src/video/wincommon/SDL_syswm.o src/video/windib/SDL_dibvideo.o src/video/wincommon/SDL_sysevents.o
OBJS += src/video/wingapi/SDL_gapivideo.o src/video/wingapi/ARM_rot.o src/video/SDL_blit.o src/video/SDL_blit_0.o src/video/SDL_blit_1.o src/video/SDL_blit_A.o OBJS += src/video/wingapi/SDL_gapivideo.o src/video/wingapi/ARM_rot.o src/video/SDL_blit.o src/video/SDL_blit_0.o src/video/SDL_blit_1.o src/video/SDL_blit_A.o
OBJS += src/video/ARM_blit1to2.o src/video/SDL_blit_N.o src/video/SDL_bmp.o src/video/SDL_cursor.o src/video/SDL_gamma.o src/video/SDL_pixels.o src/video/SDL_RLEaccel.o OBJS += src/video/ARM_blit1to2.o src/video/SDL_blit_N.o src/video/SDL_bmp.o src/video/SDL_cursor.o src/video/SDL_gamma.o src/video/SDL_pixels.o src/video/SDL_RLEaccel.o
OBJS += src/video/SDL_stretch.o src/video/SDL_surface.o src/video/SDL_video.o src/video/SDL_yuv.o src/video/SDL_yuv_mmx.o src/video/SDL_yuv_sw.o OBJS += src/video/SDL_stretch.o src/video/SDL_surface.o src/video/SDL_video.o src/video/SDL_yuv.o src/video/SDL_yuv_mmx.o src/video/SDL_yuv_sw.o
OBJS += src/main/win32/SDL_win32_main.o src/SDL.o src/SDL_error.o src/SDL_fatal.o src/SDL_getenv.o src/SDL_loadso.o OBJS += src/main/win32/SDL_win32_main.o src/SDL.o src/SDL_error.o src/SDL_fatal.o src/stdlib/SDL_getenv.o src/loadso/win32/SDL_sysloadso.o
create-output-directories := \ create-output-directories := \
$(shell for f in $(OBJS); \ $(shell for f in $(OBJS); \
......
...@@ -400,8 +400,6 @@ void SDL_SYS_CDQuit(void) ...@@ -400,8 +400,6 @@ void SDL_SYS_CDQuit(void)
} }
} }
<<<<<<< HEAD
#endif /* SDL_CDROM_WIN32 */
=======
#endif #endif
>>>>>>> b84a788... Applied patch libsdl_20090809_diff from http://users.uoa.gr/~knakos/scummvm/libraries/
#endif /* SDL_CDROM_WIN32 */
...@@ -253,6 +253,7 @@ int console_main(int argc, char *argv[]) ...@@ -253,6 +253,7 @@ int console_main(int argc, char *argv[])
is called later in the video initialization. is called later in the video initialization.
*/ */
SDL_SetModuleHandle(GetModuleHandle(NULL)); SDL_SetModuleHandle(GetModuleHandle(NULL));
#endif
/* Run the application main() code */ /* Run the application main() code */
status = SDL_main(argc, argv); status = SDL_main(argc, argv);
......
...@@ -54,7 +54,6 @@ ...@@ -54,7 +54,6 @@
#define NO_CHANGEDISPLAYSETTINGS #define NO_CHANGEDISPLAYSETTINGS
#undef WM_MOUSELEAVE #undef WM_MOUSELEAVE
#define DM_DISPLAYORIENTATION 0x00800000L
typedef struct _devicemode { typedef struct _devicemode {
WCHAR dmDeviceName[CCHDEVICENAME]; WCHAR dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion; WORD dmSpecVersion;
...@@ -166,7 +165,8 @@ static void LoadAygshell(void) ...@@ -166,7 +165,8 @@ static void LoadAygshell(void)
} }
/* for gapi landscape mode */ /* for gapi landscape mode */
static void GapiTransform(SDL_ScreenOrientation rotate, char hires, Sint16 *x, Sint16 *y) { //static void GapiTransform(SDL_ScreenOrientation rotate, char hires, Sint16 *x, Sint16 *y) {
static void GapiTransform(SDL_RotateAttr rotate, char hires, Sint16 *x, Sint16 *y) {
Sint16 rotatedX; Sint16 rotatedX;
Sint16 rotatedY; Sint16 rotatedY;
...@@ -239,7 +239,7 @@ void WIN_FlushMessageQueue() ...@@ -239,7 +239,7 @@ void WIN_FlushMessageQueue()
static void SDL_RestoreGameMode(void) static void SDL_RestoreGameMode(void)
{ {
#ifdef _WIN32_WCE #ifdef _WIN32_WCE_NEWGAPI
SDL_VideoDevice *this = current_video; SDL_VideoDevice *this = current_video;
if(SDL_strcmp(this->name, "gapi") == 0) if(SDL_strcmp(this->name, "gapi") == 0)
{ {
...@@ -261,7 +261,7 @@ static void SDL_RestoreGameMode(void) ...@@ -261,7 +261,7 @@ static void SDL_RestoreGameMode(void)
static void SDL_RestoreDesktopMode(void) static void SDL_RestoreDesktopMode(void)
{ {
#ifdef _WIN32_WCE #ifdef _WIN32_WCE_NEWGAPI
SDL_VideoDevice *this = current_video; SDL_VideoDevice *this = current_video;
if(SDL_strcmp(this->name, "gapi") == 0) if(SDL_strcmp(this->name, "gapi") == 0)
{ {
...@@ -494,11 +494,15 @@ void transform(SDL_RotateAttr rotate, char ozone, Sint16 *x, Sint16 *y) { ...@@ -494,11 +494,15 @@ void transform(SDL_RotateAttr rotate, char ozone, Sint16 *x, Sint16 *y) {
/* then, rotate sccording to surface */ /* then, rotate sccording to surface */
switch(rotate) { switch(rotate) {
case SDL_ROTATE_NONE: case SDL_ORIENTATION_UP:
*x -= padWidth; *x -= padWidth;
*y -= padHeight; *y -= padHeight;
break; break;
case SDL_ROTATE_LEFT: case SDL_ORIENTATION_DOWN:
*x = padWidth;
*y = padHeight;
break;
case SDL_ORIENTATION_LEFT:
if (!SDL_VideoSurface) if (!SDL_VideoSurface)
break; break;
*x -= padHeight; *x -= padHeight;
...@@ -508,7 +512,7 @@ void transform(SDL_RotateAttr rotate, char ozone, Sint16 *x, Sint16 *y) { ...@@ -508,7 +512,7 @@ void transform(SDL_RotateAttr rotate, char ozone, Sint16 *x, Sint16 *y) {
*x = rotatedX; *x = rotatedX;
*y = rotatedY; *y = rotatedY;
break; break;
case SDL_ROTATE_RIGHT: case SDL_ORIENTATION_RIGHT:
if (!SDL_VideoSurface) if (!SDL_VideoSurface)
break; break;
*x -= padHeight; *x -= padHeight;
...@@ -646,7 +650,8 @@ LRESULT CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) ...@@ -646,7 +650,8 @@ LRESULT CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
} else { } else {
#ifdef _WIN32_WCE #ifdef _WIN32_WCE
if (SDL_VideoSurface) if (SDL_VideoSurface)
GapiTransform(this->hidden->userOrientation, this->hidden->hiresFix, &x, &y); // GapiTransform(this->hidden->userOrientation, this->hidden->hiresFix, &x, &y);
GapiTransform(rotation, ozoneHack, &x, &y);
#endif #endif
posted = SDL_PrivateMouseMotion(0, 0, x, y); posted = SDL_PrivateMouseMotion(0, 0, x, y);
} }
...@@ -738,7 +743,8 @@ LRESULT CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) ...@@ -738,7 +743,8 @@ LRESULT CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
y = (Sint16)HIWORD(lParam); y = (Sint16)HIWORD(lParam);
#ifdef _WIN32_WCE #ifdef _WIN32_WCE
if (SDL_VideoSurface) if (SDL_VideoSurface)
GapiTransform(this->hidden->userOrientation, this->hidden->hiresFix, &x, &y); // GapiTransform(this->hidden->userOrientation, this->hidden->hiresFix, &x, &y);
GapiTransform(rotation, ozoneHack, &x, &y);
#endif #endif
} }
#ifdef _WIN32_WCE #ifdef _WIN32_WCE
......
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
/* The translation table from a Microsoft VK keysym to a SDL keysym */ /* The translation table from a Microsoft VK keysym to a SDL keysym */
static SDLKey VK_keymap[SDLK_LAST]; static SDLKey VK_keymap[SDLK_LAST];
static SDL_keysym *TranslateKey(WPARAM vkey, UINT scancode, SDL_keysym *keysym, int pressed); static SDL_keysym *TranslateKey(WPARAM vkey, UINT scancode, SDL_keysym *keysym, int pressed);
static BOOL prev_shiftstates[2];
/* Masks for processing the windows KEYDOWN and KEYUP messages */ /* Masks for processing the windows KEYDOWN and KEYUP messages */
#define REPEATED_KEYMASK (1<<30) #define REPEATED_KEYMASK (1<<30)
...@@ -61,36 +62,24 @@ static WNDPROCTYPE userWindowProc = NULL; ...@@ -61,36 +62,24 @@ static WNDPROCTYPE userWindowProc = NULL;
#ifdef _WIN32_WCE #ifdef _WIN32_WCE
WPARAM rotateKey(WPARAM key,SDL_ScreenOrientation direction) WPARAM rotateKey(WPARAM key, SDL_ScreenOrientation direction) {
{
if (direction != SDL_ORIENTATION_LEFT)
return key;
switch (key) {
case 0x26: /* up */
return 0x27;
case 0x27: /* right */
return 0x28;
case 0x28: /* down */
return 0x25;
case 0x25: /* left */
return 0x26;
}
return key;
}
#endif
#ifdef _WIN32_WCE
WPARAM rotateKey(WPARAM key, SDL_RotateAttr direction) {
switch (direction) { switch (direction) {
case SDL_ROTATE_NONE: case SDL_ORIENTATION_UP:
return key; return key;
case SDL_ROTATE_LEFT: case SDL_ORIENTATION_DOWN:
switch (key) {
case VK_UP:
return VK_DOWN;
case VK_RIGHT:
return VK_LEFT;
case VK_DOWN:
return VK_UP;
case VK_LEFT:
return VK_RIGHT;
}
case SDL_ORIENTATION_LEFT:
switch (key) { switch (key) {
case VK_UP: case VK_UP:
return VK_RIGHT; return VK_RIGHT;
...@@ -102,7 +91,7 @@ WPARAM rotateKey(WPARAM key, SDL_RotateAttr direction) { ...@@ -102,7 +91,7 @@ WPARAM rotateKey(WPARAM key, SDL_RotateAttr direction) {
return VK_UP; return VK_UP;
} }
case SDL_ROTATE_RIGHT: case SDL_ORIENTATION_RIGHT:
switch (key) { switch (key) {
case VK_UP: case VK_UP:
return VK_LEFT; return VK_LEFT;
......
...@@ -832,7 +832,7 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current, ...@@ -832,7 +832,7 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current,
/* See if we need to rotate the buffer (WinCE specific) */ /* See if we need to rotate the buffer (WinCE specific) */
screenWidth = GetDeviceCaps(hdc, HORZRES); screenWidth = GetDeviceCaps(hdc, HORZRES);
screenHeight = GetDeviceCaps(hdc, VERTRES); screenHeight = GetDeviceCaps(hdc, VERTRES);
rotation = SDL_ROTATE_NONE; this->hidden->orientation = SDL_ORIENTATION_UP;
work_pixels = NULL; work_pixels = NULL;
if (rotation_pixels) { if (rotation_pixels) {
free(rotation_pixels); free(rotation_pixels);
...@@ -844,16 +844,16 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current, ...@@ -844,16 +844,16 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current,
video->pixels = malloc(video->h * video->pitch); video->pixels = malloc(video->h * video->pitch);
rotation_pixels = video->pixels; rotation_pixels = video->pixels;
if (video->pixels) if (video->pixels)
rotation = SDL_ROTATE_LEFT; this->hidden->orientation = SDL_ORIENTATION_LEFT;
OutputDebugString(TEXT("will rotate\r\n")); OutputDebugString(TEXT("will rotate\r\n"));
} }
screen_bmp = CreateDIBSection(hdc, binfo, DIB_RGB_COLORS, screen_bmp = CreateDIBSection(hdc, binfo, DIB_RGB_COLORS,
(rotation == SDL_ROTATE_NONE ? (void **)(&video->pixels) : (void**)&work_pixels), NULL, 0); (this->hidden->orientation == SDL_ORIENTATION_UP ? (void **)(&video->pixels) : (void**)&work_pixels), NULL, 0);
ReleaseDC(SDL_Window, hdc); ReleaseDC(SDL_Window, hdc);
#if defined(UNDER_CE) #if defined(UNDER_CE)
/* keep bitmapinfo for palette in 8-bit modes for devices that don't have SetDIBColorTable */ /* keep bitmapinfo for palette in 8-bit modes for devices that don't have SetDIBColorTable */
last_bits = (rotation == SDL_ROTATE_NONE ? (void **)(&video->pixels) : (void**)&work_pixels); last_bits = (this->hidden->orientation == SDL_ORIENTATION_UP ? (void **)(&video->pixels) : (void**)&work_pixels);
if(last_bitmapinfo) if(last_bitmapinfo)
free(last_bitmapinfo); free(last_bitmapinfo);
if(is16bitmode) if(is16bitmode)
...@@ -911,7 +911,7 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current, ...@@ -911,7 +911,7 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current,
bounds.right = SDL_windowX+video->w; bounds.right = SDL_windowX+video->w;
bounds.bottom = SDL_windowY+video->h; bounds.bottom = SDL_windowY+video->h;
#ifdef UNDER_CE #ifdef UNDER_CE
if(rotation != SDL_ROTATE_NONE) if(this->hidden->orientation != SDL_ORIENTATION_UP)
{ {
int t=bounds.right; int t=bounds.right;
bounds.right = bounds.bottom; bounds.right = bounds.bottom;
...@@ -1217,7 +1217,7 @@ int DIB_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors) ...@@ -1217,7 +1217,7 @@ int DIB_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors)
#if defined(UNDER_CE) #if defined(UNDER_CE)
#if !defined(NO_SETDIBCOLORTABLE) #if !defined(NO_SETDIBCOLORTABLE)
/* BUG: For some reason SetDIBColorTable is not working when screen is not rotated */ /* BUG: For some reason SetDIBColorTable is not working when screen is not rotated */
if(rotation == SDL_ROTATE_NONE && last_bitmapinfo) if(rotation == SDL_ORIENTATION_UP && last_bitmapinfo)
#else #else
if(1) if(1)
#endif #endif
...@@ -1247,6 +1247,7 @@ int DIB_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors) ...@@ -1247,6 +1247,7 @@ int DIB_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors)
} }
#endif #endif
DeleteDC(mdc); DeleteDC(mdc);
#endif
ReleaseDC(SDL_Window, hdc); ReleaseDC(SDL_Window, hdc);
return(1); return(1);
} }
......
...@@ -42,7 +42,6 @@ struct SDL_PrivateVideoData { ...@@ -42,7 +42,6 @@ struct SDL_PrivateVideoData {
HPALETTE screen_pal; HPALETTE screen_pal;
void *work_pixels; /* if the display needs to be rotated, memory allocated by the API */ void *work_pixels; /* if the display needs to be rotated, memory allocated by the API */
void *rotation_pixels; /* if the display needs to be rotated, memory allocated by the code */ void *rotation_pixels; /* if the display needs to be rotated, memory allocated by the code */
SDL_RotateAttr rotation;
char ozoneHack; /* force stylus translation if running without Hi Res flag */ char ozoneHack; /* force stylus translation if running without Hi Res flag */
#define NUM_MODELISTS 4 /* 8, 16, 24, and 32 bits-per-pixel */ #define NUM_MODELISTS 4 /* 8, 16, 24, and 32 bits-per-pixel */
......
...@@ -85,9 +85,10 @@ struct GXKeyList { ...@@ -85,9 +85,10 @@ struct GXKeyList {
/* Rotation direction */ /* Rotation direction */
typedef enum { typedef enum {
SDL_ROTATE_NONE, SDL_ORIENTATION_UP,
SDL_ROTATE_LEFT, SDL_ORIENTATION_DOWN,
SDL_ROTATE_RIGHT SDL_ORIENTATION_LEFT,
SDL_ORIENTATION_RIGHT
} SDL_RotateAttr; } SDL_RotateAttr;
/* GAPI video mode */ /* GAPI video mode */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment