From 7d970e27e2712a27681affe4107b09de7a1b18cc Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 4 Mar 2006 08:24:35 +0000 Subject: [PATCH] Updated WinCE support by Dmitry (with some tweaks) Converted the disk audio driver to SDL_RWops for portability --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401469 --- VisualC.zip | Bin 42516 -> 52980 bytes VisualCE.zip | Bin 41295 -> 49431 bytes include/SDL_config_win32.h | 32 ++++++-- include/SDL_thread.h | 5 +- src/SDL.c | 6 +- src/audio/SDL_wave.c | 13 +-- src/audio/disk/SDL_diskaudio.c | 82 ++++++------------- src/audio/disk/SDL_diskaudio.h | 9 ++- src/file/SDL_rwops.c | 60 ++++++++++---- src/main/win32/SDL_win32_main.c | 33 +++----- src/stdlib/SDL_malloc.c | 15 ++-- src/video/gapi/SDL_gapivideo.c | 102 ++++++++++++++++++++---- src/video/gapi/SDL_gapivideo.h | 1 + src/video/wincommon/SDL_lowvideo.h | 10 +++ src/video/wincommon/SDL_sysevents.c | 37 ++++++++- src/video/wincommon/SDL_syswm.c | 3 - src/video/windib/SDL_dibvideo.c | 118 ++++++++++++++++++++++++---- src/video/windib/SDL_dibvideo.h | 8 +- test/testalpha.c | 23 +++--- 19 files changed, 377 insertions(+), 180 deletions(-) diff --git a/VisualC.zip b/VisualC.zip index 9e5f6e2551f297302ff6050bfa123d62395f8e23..b99187216fa751f966271fd0527d1edb9830edcf 100644 GIT binary patch literal 52980 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�+QeHml@9B-RHWoCK{wm6|wM%!?iv`Z& zCU<iTE#0_&4w%F8ntgYv_KUJi$`A9&N zv(<*W7Uw?>f3`kZ*V%aTUGbyh_8%|Lnb=xt*?n-c*z-?6z?+dtoEfrL60~U*wyp>S zI2m}MTmgo+jv!`OW^rj^jCqKWSJh3bl zV%S~q>Qk6uA`A=+91Oa9l1(;SU1?g9wrv-!>WuqL~xy;-eSl>;sONH4dOfU#MZZ zcTcj($8S?NeM@IxD4NEPW}LVXR^tM|#$5%kAwx9|^N2!7S^-7PlE#oKEXE;)8|c77 zbO&M{+JJ20lulF=AxAi{GJub8KsO3=_cgLnVtr^vf%jtLNY9x2hmrHd{C-rUpu34# z8L-AE=00L%XFbMd7Rs(-RtE5{VszhPuK7kbwr?I5Cn6aOOUj@X;0Ti;Nf~poA+qQ5 zmmrx8YAM5(9 zVl*rmKoiFZ)3FDGAWAUY*@k91WKbMOAYcxMBV78nQDHk4v!I<2cmRL~#}Q71ge_(- l24U=y#sdfO8w>M1s80hinUxJx+zW%2m$ET1oIC-l2LOJs(`Enw literal 42516 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

_D4UCy_Fv->0ifA)b8v*#GE>)UemTBy4}(H+j5z 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 delta 37913 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

0RZ?kFK$tj`L|qGC%AARCY<7<4YYy_oRjsQ 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 diff --git a/include/SDL_config_win32.h b/include/SDL_config_win32.h index 92d57f0f0..049c38879 100644 --- a/include/SDL_config_win32.h +++ b/include/SDL_config_win32.h @@ -26,18 +26,34 @@ /* This is a set of defines to configure the SDL features */ #ifdef _MSC_VER -typedef __int8 int8_t; +typedef signed __int8 int8_t; typedef unsigned __int8 uint8_t; -typedef __int16 int16_t; +typedef signed __int16 int16_t; typedef unsigned __int16 uint16_t; -typedef __int32 int32_t; +typedef signed __int32 int32_t; typedef unsigned __int32 uint32_t; -typedef __int64 int64_t; +typedef signed __int64 int64_t; typedef unsigned __int64 uint64_t; -#if _MSC_VER <= 1200 +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned int uintptr_t; +#endif +#define _UINTPTR_T_DEFINED +#endif +#else +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +typedef unsigned int size_t; typedef unsigned long uintptr_t; -#endif -#endif +#endif /* _MSC_VER */ #define SDL_HAS_64BIT_TYPE 1 /* Useful headers */ @@ -79,8 +95,10 @@ typedef unsigned long uintptr_t; #define SDL_VIDEO_DRIVER_WINDIB 1 /* Enable OpenGL support */ +#ifndef _WIN32_WCE #define SDL_VIDEO_OPENGL 1 #define SDL_VIDEO_OPENGL_WGL 1 +#endif /* Enable assembly routines */ #define SDL_ASSEMBLY_ROUTINES 1 diff --git a/include/SDL_thread.h b/include/SDL_thread.h index cf3ba82c3..fc430224f 100644 --- a/include/SDL_thread.h +++ b/include/SDL_thread.h @@ -59,7 +59,9 @@ typedef struct SDL_Thread SDL_Thread; So, in short: Always use the _beginthread() and _endthread() of the calling runtime library! */ +#ifndef _WIN32_WCE #include // This has _beginthread() and _endthread() defined! +#endif #ifdef __EMX__ #include // This has _beginthread() and _endthread() defined, if -Zmt flag is used! #endif @@ -68,9 +70,6 @@ typedef struct SDL_Thread SDL_Thread; typedef int (*pfnSDL_CurrentBeginThread)(void (*func)(void *), void *, unsigned, void *arg); typedef void (*pfnSDL_CurrentEndThread)(void); #else -#ifdef __GNUC__ -#include -#endif typedef uintptr_t (__cdecl *pfnSDL_CurrentBeginThread) (void *, unsigned, unsigned (__stdcall *func)(void *), void *arg, unsigned, unsigned *threadID); diff --git a/src/SDL.c b/src/SDL.c index 47368c1b8..f170ef149 100644 --- a/src/SDL.c +++ b/src/SDL.c @@ -325,8 +325,8 @@ unsigned _System LibMain(unsigned hmod, unsigned termination) #elif defined(__WIN32__) -#if !defined(HAVE_LIBC) || defined(_WIN32_WCE) || (defined(__WATCOMC__) && defined(BUILD_DLL)) -/* Need to include DllMain() on Windows CE and Watcom C for some reason.. */ +#if !defined(HAVE_LIBC) || (defined(__WATCOMC__) && defined(BUILD_DLL)) +/* Need to include DllMain() on Watcom C for some reason.. */ #define WIN32_LEAN_AND_MEAN #include @@ -343,6 +343,6 @@ BOOL APIENTRY _DllMainCRTStartup( HANDLE hModule, } return TRUE; } -#endif /* _WIN32_WCE and building DLL with Watcom C */ +#endif /* building DLL with Watcom C */ #endif /* OS/2 elif __WIN32__ */ diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c index 7e3f4a5b1..b2399bd96 100644 --- a/src/audio/SDL_wave.c +++ b/src/audio/SDL_wave.c @@ -550,12 +550,13 @@ done: if ( format != NULL ) { SDL_free(format); } - if ( freesrc && src ) { - SDL_RWclose(src); - } - else { - // seek to the end of the file (given by the RIFF chunk) - SDL_RWseek(src, wavelen - chunk.length - headerDiff, RW_SEEK_CUR); + if ( src ) { + if ( freesrc ) { + SDL_RWclose(src); + } else { + // seek to the end of the file (given by the RIFF chunk) + SDL_RWseek(src, wavelen - chunk.length - headerDiff, RW_SEEK_CUR); + } } if ( was_error ) { spec = NULL; diff --git a/src/audio/disk/SDL_diskaudio.c b/src/audio/disk/SDL_diskaudio.c index 04f50f337..e0ba43332 100644 --- a/src/audio/disk/SDL_diskaudio.c +++ b/src/audio/disk/SDL_diskaudio.c @@ -26,16 +26,11 @@ /* Output raw audio data to a file. */ +#if HAVE_STDIO_H #include -#include /* For strerror() */ -#include -#include -#include -#include -#include -#include - +#endif +#include "SDL_rwops.h" #include "SDL_timer.h" #include "SDL_audio.h" #include "../SDL_audiomem.h" @@ -61,44 +56,18 @@ static void DISKAUD_CloseAudio(_THIS); static const char *DISKAUD_GetOutputFilename(void) { - const char *envr = SDL_getenv(DISKENVR_OUTFILE); - return((envr != NULL) ? envr : DISKDEFAULT_OUTFILE); + const char *envr = SDL_getenv(DISKENVR_OUTFILE); + return((envr != NULL) ? envr : DISKDEFAULT_OUTFILE); } /* Audio driver bootstrap functions */ static int DISKAUD_Available(void) { -#if 0 - int fd; - int available; - int exists = 0; - struct stat statbuf; - const char *fname = DISKAUD_GetOutputFilename(); const char *envr = SDL_getenv("SDL_AUDIODRIVER"); - available = 0; - - if ((envr) && (SDL_strcmp(envr, DISKAUD_DRIVER_NAME) == 0)) { - if (stat(fname, &statbuf) == 0) - exists = 1; - - fd = open(fname, O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR); - if ( fd != -1 ) { - available = 1; - close(fd); - if (!exists) { - unlink(fname); - } - } - } - return(available); -#else - const char *envr = SDL_getenv("SDL_AUDIODRIVER"); - if ((envr) && (SDL_strcmp(envr, DISKAUD_DRIVER_NAME) == 0)) { + if (envr && (SDL_strcmp(envr, DISKAUD_DRIVER_NAME) == 0)) { return(1); } - return(0); -#endif } static void DISKAUD_DeleteDevice(SDL_AudioDevice *device) @@ -110,7 +79,7 @@ static void DISKAUD_DeleteDevice(SDL_AudioDevice *device) static SDL_AudioDevice *DISKAUD_CreateDevice(int devindex) { SDL_AudioDevice *this; - const char *envr; + const char *envr; /* Initialize all variables that we clean on shutdown */ this = (SDL_AudioDevice *)SDL_malloc(sizeof(SDL_AudioDevice)); @@ -128,8 +97,8 @@ static SDL_AudioDevice *DISKAUD_CreateDevice(int devindex) } SDL_memset(this->hidden, 0, (sizeof *this->hidden)); - envr = SDL_getenv(DISKENVR_WRITEDELAY); - this->hidden->write_delay = (envr) ? SDL_atoi(envr) : DISKDEFAULT_WRITEDELAY; + envr = SDL_getenv(DISKENVR_WRITEDELAY); + this->hidden->write_delay = (envr) ? SDL_atoi(envr) : DISKDEFAULT_WRITEDELAY; /* Set the function pointers */ this->OpenAudio = DISKAUD_OpenAudio; @@ -151,26 +120,20 @@ AudioBootStrap DISKAUD_bootstrap = { /* This function waits until it is possible to write a full sound buffer */ static void DISKAUD_WaitAudio(_THIS) { - SDL_Delay(this->hidden->write_delay); + SDL_Delay(this->hidden->write_delay); } static void DISKAUD_PlayAudio(_THIS) { int written; - /* Write the audio data, checking for EAGAIN on broken audio drivers */ - do { - written = write(this->hidden->audio_fd, - this->hidden->mixbuf, + /* Write the audio data */ + written = SDL_RWwrite(this->hidden->output, + this->hidden->mixbuf, 1, this->hidden->mixlen); - if ( (written < 0) && ((errno == 0) || (errno == EAGAIN)) ) { - SDL_Delay(1); /* Let a little CPU time go by */ - } - } while ( (written < 0) && - ((errno == 0) || (errno == EAGAIN) || (errno == EINTR)) ); /* If we couldn't write, assume fatal error for now */ - if ( written < 0 ) { + if ( written != this->hidden->mixlen ) { this->enabled = 0; } #ifdef DEBUG_AUDIO @@ -189,25 +152,26 @@ static void DISKAUD_CloseAudio(_THIS) SDL_FreeAudioMem(this->hidden->mixbuf); this->hidden->mixbuf = NULL; } - if ( this->hidden->audio_fd >= 0 ) { - close(this->hidden->audio_fd); - this->hidden->audio_fd = -1; + if ( this->hidden->output != NULL ) { + SDL_RWclose(this->hidden->output); + this->hidden->output = NULL; } } static int DISKAUD_OpenAudio(_THIS, SDL_AudioSpec *spec) { - const char *fname = DISKAUD_GetOutputFilename(); + const char *fname = DISKAUD_GetOutputFilename(); /* Open the audio device */ - this->hidden->audio_fd = open(fname, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); - if ( this->hidden->audio_fd < 0 ) { - SDL_SetError("Couldn't open %s: %s", fname, strerror(errno)); + this->hidden->output = SDL_RWFromFile(fname, "wb"); + if ( this->hidden->output == NULL ) { return(-1); } - fprintf(stderr, "WARNING: You are using the SDL disk writer" +#if HAVE_STDIO_H + fprintf(stderr, "WARNING: You are using the SDL disk writer" " audio driver!\n Writing to file [%s].\n", fname); +#endif /* Allocate mixing buffer */ this->hidden->mixlen = spec->size; diff --git a/src/audio/disk/SDL_diskaudio.h b/src/audio/disk/SDL_diskaudio.h index 891ae3412..2ddd68f95 100644 --- a/src/audio/disk/SDL_diskaudio.h +++ b/src/audio/disk/SDL_diskaudio.h @@ -24,6 +24,7 @@ #ifndef _SDL_diskaudio_h #define _SDL_diskaudio_h +#include "SDL_rwops.h" #include "../SDL_sysaudio.h" /* Hidden "this" pointer for the video functions */ @@ -31,10 +32,10 @@ struct SDL_PrivateAudioData { /* The file descriptor for the audio device */ - int audio_fd; - Uint8 *mixbuf; - Uint32 mixlen; - Uint32 write_delay; + SDL_RWops *output; + Uint8 *mixbuf; + Uint32 mixlen; + Uint32 write_delay; }; #endif /* _SDL_diskaudio_h */ diff --git a/src/file/SDL_rwops.c b/src/file/SDL_rwops.c index c09718a29..c4b2b1807 100644 --- a/src/file/SDL_rwops.c +++ b/src/file/SDL_rwops.c @@ -29,16 +29,25 @@ #include "SDL_rwops.h" -#ifdef __WIN32__ +#if defined(__WIN32__) /* Functions to read/write Win32 API file pointers */ +/* Will not use it on WinCE because stdio is buffered, it means + faster, and all stdio functions anyway are embedded in coredll.dll - + the main wince dll*/ #define WINDOWS_LEAN_AND_MEAN #include -static int win32_file_open(SDL_RWops *context, const char *filename, const char *mode) { - +#ifndef INVALID_SET_FILE_POINTER +#define INVALID_SET_FILE_POINTER 0xFFFFFFFF +#endif + +static int win32_file_open(SDL_RWops *context, const char *filename, const char *mode) +{ +#ifndef _WIN32_WCE UINT old_error_mode; +#endif HANDLE h; DWORD r_right, w_right; DWORD must_exist, truncate; @@ -64,15 +73,31 @@ static int win32_file_open(SDL_RWops *context, const char *filename, const char if (!r_right && !w_right) /* inconsistent mode */ return -1; /* failed (invalid call)*/ - + +#ifdef _WIN32_WCE + { + size_t size = SDL_strlen(filename)+1; + wchar_t *filenameW = SDL_stack_alloc(wchar_t, size); + + if ( MultiByteToWideChar(CP_UTF8, 0, filename, -1, filenameW, size) == 0 ) { + SDL_SetError("Unable to convert filename to Unicode"); + SDL_stack_free(filenameW); + return -1; + } + h = CreateFile(filenameW, (w_right|r_right), (w_right)? 0 : FILE_SHARE_READ, + NULL, (must_exist|truncate|a_mode), FILE_ATTRIBUTE_NORMAL,NULL); + SDL_stack_free(filenameW); + } +#else /* Do not open a dialog box if failure */ - old_error_mode = SetErrorMode(SEM_NOOPENFILEERRORBOX|SEM_FAILCRITICALERRORS); - + old_error_mode = SetErrorMode(SEM_NOOPENFILEERRORBOX|SEM_FAILCRITICALERRORS); + h = CreateFile(filename, (w_right|r_right), (w_right)? 0 : FILE_SHARE_READ, NULL, (must_exist|truncate|a_mode), FILE_ATTRIBUTE_NORMAL,NULL); - + /* restore old behaviour */ SetErrorMode(old_error_mode); +#endif /* _WIN32_WCE */ if (h==INVALID_HANDLE_VALUE) { SDL_SetError("Couldn't open %s",filename); @@ -83,7 +108,8 @@ static int win32_file_open(SDL_RWops *context, const char *filename, const char return 0; /* ok */ } -static int win32_file_seek(SDL_RWops *context, int offset, int whence) { +static int win32_file_seek(SDL_RWops *context, int offset, int whence) +{ DWORD win32whence; int file_pos; @@ -112,7 +138,8 @@ static int win32_file_seek(SDL_RWops *context, int offset, int whence) { SDL_Error(SDL_EFSEEK); return -1; /* error */ } -static int win32_file_read(SDL_RWops *context, void *ptr, int size, int maxnum) { +static int win32_file_read(SDL_RWops *context, void *ptr, int size, int maxnum) +{ int total_bytes; DWORD byte_read,nread; @@ -129,7 +156,8 @@ static int win32_file_read(SDL_RWops *context, void *ptr, int size, int maxnum) nread = byte_read/size; return nread; } -static int win32_file_write(SDL_RWops *context, const void *ptr, int size, int num) { +static int win32_file_write(SDL_RWops *context, const void *ptr, int size, int num) +{ int total_bytes; DWORD byte_written,nwritten; @@ -155,7 +183,8 @@ static int win32_file_write(SDL_RWops *context, const void *ptr, int size, int n nwritten = byte_written/size; return nwritten; } -static int win32_file_close(SDL_RWops *context) { +static int win32_file_close(SDL_RWops *context) +{ if ( context ) { if (context->hidden.win32io.h != INVALID_HANDLE_VALUE) { @@ -249,7 +278,7 @@ static int mem_read(SDL_RWops *context, void *ptr, int size, int maxnum) size_t mem_available; total_bytes = (maxnum * size); - if ( (maxnum <= 0) || (size <= 0) || ((total_bytes / maxnum) != size) ) { + if ( (maxnum <= 0) || (size <= 0) || ((total_bytes / maxnum) != (size_t) size) ) { return 0; } @@ -335,13 +364,15 @@ static char *unix_to_mac(const char *file) SDL_RWops *SDL_RWFromFile(const char *file, const char *mode) { SDL_RWops *rwops = NULL; - +#ifdef HAVE_STDIO_H + FILE *fp = NULL; +#endif if ( !file || !*file || !mode || !*mode ) { SDL_SetError("SDL_RWFromFile(): No file or no mode specified"); return NULL; } -#ifdef __WIN32__ +#if defined(__WIN32__) rwops = SDL_AllocRW(); if (!rwops) return NULL; /* SDL_SetError already setup by SDL_AllocRW() */ @@ -356,7 +387,6 @@ SDL_RWops *SDL_RWFromFile(const char *file, const char *mode) rwops->close = win32_file_close; #elif HAVE_STDIO_H - FILE *fp; #ifdef __MACOS__ { diff --git a/src/main/win32/SDL_win32_main.c b/src/main/win32/SDL_win32_main.c index fa4ef2761..7f6393d16 100644 --- a/src/main/win32/SDL_win32_main.c +++ b/src/main/win32/SDL_win32_main.c @@ -51,27 +51,6 @@ #if defined(_WIN32_WCE) && _WIN32_WCE < 300 /* seems to be undefined in Win CE although in online help */ #define isspace(a) (((CHAR)a == ' ') || ((CHAR)a == '\t')) - -/* seems to be undefined in Win CE although in online help */ -char *SDL_strrchr(char *str, int c) -{ - char *p; - - /* Skip to the end of the string */ - p=str; - while (*p) - p++; - - /* Look for the given character */ - while ( (p >= str) && (*p != (CHAR)c) ) - p--; - - /* Return NULL if character not found */ - if ( p < str ) { - p = NULL; - } - return p; -} #endif /* _WIN32_WCE < 300 */ /* Parse a command line buffer into arguments */ @@ -281,8 +260,13 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) } path[pathlen] = '\0'; +#ifdef _WIN32_WCE + wcsncpy( stdoutPath, path, SDL_arraysize(stdoutPath) ); + wcsncat( stdoutPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) ); +#else SDL_strlcpy( stdoutPath, path, SDL_arraysize(stdoutPath) ); SDL_strlcat( stdoutPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) ); +#endif /* Redirect standard input and standard output */ newfp = freopen(stdoutPath, TEXT("w"), stdout); @@ -300,8 +284,13 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) } #endif /* _WIN32_WCE */ +#ifdef _WIN32_WCE + wcsncpy( stderrPath, path, SDL_arraysize(stdoutPath) ); + wcsncat( stderrPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) ); +#else SDL_strlcpy( stderrPath, path, SDL_arraysize(stderrPath) ); SDL_strlcat( stderrPath, DIR_SEPERATOR STDERR_FILE, SDL_arraysize(stderrPath) ); +#endif newfp = freopen(stderrPath, TEXT("w"), stderr); #ifndef _WIN32_WCE @@ -329,7 +318,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) wcscpy (bufp+wcslen(bufp), TEXT("\" ")); wcsncpy(bufp+wcslen(bufp), szCmdLine,nLen-wcslen(bufp)); nLen = wcslen(bufp)+1; - cmdline = SDL_stack_alloc(wchar_t, nLen); + cmdline = SDL_stack_alloc(char, nLen); if ( cmdline == NULL ) { return OutOfMemory(); } diff --git a/src/stdlib/SDL_malloc.c b/src/stdlib/SDL_malloc.c index 550937c9c..3d973f625 100644 --- a/src/stdlib/SDL_malloc.c +++ b/src/stdlib/SDL_malloc.c @@ -27,17 +27,12 @@ #ifndef HAVE_MALLOC +#define LACKS_SYS_TYPES_H #define LACKS_STDIO_H #define LACKS_STRINGS_H #define LACKS_STRING_H #define LACKS_STDLIB_H #define ABORT -#define memset SDL_memset -#define memcpy SDL_memcpy -#define malloc SDL_malloc -#define calloc SDL_calloc -#define realloc SDL_realloc -#define free SDL_free /* This is a version (aka dlmalloc) of malloc/free/realloc written by @@ -496,6 +491,7 @@ DEFAULT_MMAP_THRESHOLD default: 256K #define LACKS_STRINGS_H #define LACKS_SYS_TYPES_H #define LACKS_ERRNO_H +#define LACKS_FCNTL_H #define MALLOC_FAILURE_ACTION #define MMAP_CLEARS 0 /* WINCE and some others apparently don't clear */ #endif /* WIN32 */ @@ -613,6 +609,13 @@ DEFAULT_MMAP_THRESHOLD default: 256K #define MALLINFO_FIELD_TYPE size_t #endif /* MALLINFO_FIELD_TYPE */ +#define memset SDL_memset +#define memcpy SDL_memcpy +#define malloc SDL_malloc +#define calloc SDL_calloc +#define realloc SDL_realloc +#define free SDL_free + /* mallopt tuning options. SVID/XPG defines four standard parameter numbers for mallopt, normally defined in malloc.h. None of these diff --git a/src/video/gapi/SDL_gapivideo.c b/src/video/gapi/SDL_gapivideo.c index f9d8fed67..d79a7b582 100644 --- a/src/video/gapi/SDL_gapivideo.c +++ b/src/video/gapi/SDL_gapivideo.c @@ -33,15 +33,24 @@ Inspired by http://arisme.free.fr/ports/SDL.php // TODO: windib on SH3 PPC2000 landscape test // TODO: optimize 8bpp landscape mode +// there is some problems in runnings apps from a device landscape mode +// due to WinCE bugs. Some works and some - does not. +// TODO: finish Axim Dell X30 and user landscape mode, device landscape mode +// TODO: finish Axim Dell X30 user portrait, device landscape stylus conversion +// TODO: fix running GAPI apps from landscape mode - +// wince goes to portrait mode, but does not update video memory + + +#include "SDL.h" +#include "SDL_error.h" #include "SDL_video.h" #include "SDL_mouse.h" #include "../SDL_sysvideo.h" #include "../SDL_pixels_c.h" #include "../../events/SDL_events_c.h" - -#include "SDL_syswm_c.h" -#include "SDL_sysmouse_c.h" -#include "SDL_dibevents_c.h" +#include "../wincommon/SDL_syswm_c.h" +#include "../wincommon/SDL_sysmouse_c.h" +#include "../windib/SDL_dibevents_c.h" #include "SDL_gapivideo.h" @@ -55,6 +64,8 @@ Inspired by http://arisme.free.fr/ports/SDL.php // for testing with GapiEmu #define USE_GAPI_EMU 0 +#define EMULATE_AXIM_X30 0 +#define WITHOUT_GAPI 0 #if USE_GAPI_EMU && !REPORT_VIDEO_INFO #pragma message("Warning: Using GapiEmu in release build. I assume you'd like to set USE_GAPI_EMU to zero.") @@ -113,7 +124,25 @@ static struct _RawFrameBufferInfo g_RawFrameBufferInfo = {0}; #define FORMAT_565 1 #define FORMAT_555 2 -#define FORMAT_OTHER 3 +#define FORMAT_OTHER 3 + +/* Dell Axim x30 hangs when we use GAPI from landscape, + so lets avoid using GxOpenDisplay there via GETGXINFO trick + It seems that GAPI subsystem use the same ExtEscape code. +*/ +#define GETGXINFO 0x00020000 + +typedef struct GXDeviceInfo +{ +long Version; //00 (should filled with 100 before calling ExtEscape) +void * pvFrameBuffer; //04 +unsigned long cbStride; //08 +unsigned long cxWidth; //0c +unsigned long cyHeight; //10 +unsigned long cBPP; //14 +unsigned long ffFormat; //18 +char Unused[0x84-7*4]; +} GXDeviceInfo; static int GAPI_Available(void) { @@ -123,6 +152,10 @@ static int GAPI_Available(void) ReleaseDC(NULL, hdc); g_bRawBufferAvailable = result > 0; +#if WITHOUT_GAPI + return g_bRawBufferAvailable; +#endif + #if USE_GAPI_EMU g_hGapiLib = LoadLibrary(_T("GAPI_Emu.dll")); if( !g_hGapiLib ) @@ -332,6 +365,8 @@ static void FillStructs(_THIS, BOOL useVga) this->hidden->needUpdate = 1; this->hidden->hiresFix = 0; this->hidden->useVga = 0; + this->hidden->useGXOpenDisplay = 1; + #ifdef _ARM_ /* check some devices and extract addition info */ SystemParametersInfo( SPI_GETOEMINFO, sizeof( oemstr ), oemstr, 0 ); @@ -344,6 +379,29 @@ static void FillStructs(_THIS, BOOL useVga) this->hidden->gxProperties.cbyPitch = 2; this->hidden->needUpdate = 0; } +#if (EMULATE_AXIM_X30 == 0) + // buggy Dell Axim X30 + if( _tcsncmp(oemstr, L"Dell Axim X30", 13) == 0 ) +#endif + { + GXDeviceInfo gxInfo = {0}; + HDC hdc = GetDC(NULL); + int result; + + gxInfo.Version = 100; + result = ExtEscape(hdc, GETGXINFO, 0, NULL, sizeof(gxInfo), (char *)&gxInfo); + if( result > 0 ) + { + this->hidden->useGXOpenDisplay = 0; + this->hidden->videoMem = gxInfo.pvFrameBuffer; + this->hidden->needUpdate = 0; + this->hidden->gxProperties.cbxPitch = 2; + this->hidden->gxProperties.cbyPitch = 480; + this->hidden->gxProperties.cxWidth = gxInfo.cxWidth; + this->hidden->gxProperties.cyHeight = gxInfo.cyHeight; + this->hidden->gxProperties.ffFormat = gxInfo.ffFormat; + } + } #endif } else { @@ -598,7 +656,7 @@ SDL_Surface *GAPI_SetVideoMode(_THIS, SDL_Surface *current, return(NULL); } - /* detect landscape mode */ + /* detect user landscape mode */ if( (width > height) && (GetSystemMetrics(SM_CXSCREEN) < GetSystemMetrics(SM_CYSCREEN))) gapi->userOrientation = SDL_ORIENTATION_RIGHT; @@ -610,7 +668,8 @@ SDL_Surface *GAPI_SetVideoMode(_THIS, SDL_Surface *current, gapi->hiresFix = 1; } else if( (width > GetSystemMetrics(SM_CXSCREEN)) || (height > GetSystemMetrics(SM_CYSCREEN))) - gapi->hiresFix = 1; + if( !((width == GetSystemMetrics(SM_CYSCREEN)) && (height == GetSystemMetrics(SM_CXSCREEN)))) // user portrait, device landscape + gapi->hiresFix = 1; switch( gapi->userOrientation ) { @@ -652,7 +711,7 @@ SDL_Surface *GAPI_SetVideoMode(_THIS, SDL_Surface *current, if (!SDL_windowid) SetWindowLong(SDL_Window, GWL_STYLE, style); - + /* Allocate bitmap */ if(gapiBuffer) { @@ -672,6 +731,14 @@ SDL_Surface *GAPI_SetVideoMode(_THIS, SDL_Surface *current, ShowWindow(SDL_Window, SW_SHOW); SetForegroundWindow(SDL_Window); + /* Open GAPI display */ + if( !gapi->useVga && this->hidden->useGXOpenDisplay ) + if( !gapi->gxFunc.GXOpenDisplay(SDL_Window, GX_FULLSCREEN) ) + { + SDL_SetError("Couldn't initialize GAPI"); + return(NULL); + } + #if REPORT_VIDEO_INFO printf("Video properties:\n"); printf("display bpp: %d\n", gapi->gxProperties.cBPP); @@ -680,24 +747,24 @@ SDL_Surface *GAPI_SetVideoMode(_THIS, SDL_Surface *current, printf("x pitch: %d\n", gapi->gxProperties.cbxPitch); printf("y pitch: %d\n", gapi->gxProperties.cbyPitch); printf("gapi flags: 0x%x\n", gapi->gxProperties.ffFormat); + + if( !gapi->useVga && this->hidden->useGXOpenDisplay && gapi->needUpdate) + { + gapi->videoMem = gapi->gxFunc.GXBeginDraw(); + gapi->gxFunc.GXEndDraw(); + } + printf("video memory: 0x%x\n", gapi->videoMem); printf("need update: %d\n", gapi->needUpdate); printf("hi-res fix: %d\n", gapi->hiresFix); printf("VGA is available on the device: %d\n", g_bRawBufferAvailable); - printf("use VGA resolution: %d\n", gapi->useVga); + printf("use raw framebuffer: %d\n", gapi->useVga); printf("video surface bpp: %d\n", video->format->BitsPerPixel); printf("video surface width: %d\n", video->w); printf("video surface height: %d\n", video->h); #endif - /* Open GAPI display */ - if( !gapi->useVga ) - if( !gapi->gxFunc.GXOpenDisplay(SDL_Window, GX_FULLSCREEN) ) - { - SDL_SetError("Couldn't initialize GAPI"); - return(NULL); - } - + /* Blank screen */ allScreen.x = allScreen.y = 0; allScreen.w = video->w - 1; @@ -790,6 +857,7 @@ static int updateLine16to16(_THIS, PIXEL *srcPointer, PIXEL *destPointer, int wi else { destPointer += gapi->gxProperties.cbyPitch / 2; + while(width--) // iPaq 3660 { *(DWORD*)destPointer =(*line1++ << 16) | *line2++; diff --git a/src/video/gapi/SDL_gapivideo.h b/src/video/gapi/SDL_gapivideo.h index a0de69e5e..ffef78e07 100644 --- a/src/video/gapi/SDL_gapivideo.h +++ b/src/video/gapi/SDL_gapivideo.h @@ -136,6 +136,7 @@ struct SDL_PrivateVideoData { int invert; char hiresFix; // using hires mode without defining hires resource // -------------- + int useGXOpenDisplay; /* use GXOpenDispplay */ int w, h; enum SDL_ScreenOrientation gapiOrientation; diff --git a/src/video/wincommon/SDL_lowvideo.h b/src/video/wincommon/SDL_lowvideo.h index 08e10bd5a..99220b190 100644 --- a/src/video/wincommon/SDL_lowvideo.h +++ b/src/video/wincommon/SDL_lowvideo.h @@ -27,6 +27,16 @@ #define WIN32_LEAN_AND_MEAN #include +#ifndef SetClassLongPtr +#define SetClassLongPtr SetClassLong +#endif +#ifndef GetWindowLongPtr +#define GetWindowLongPtr GetWindowLong +#endif +#ifndef SetWindowLongPtr +#define SetWindowLongPtr SetWindowLong +#endif + #include "../SDL_sysvideo.h" /* Hidden "this" pointer for the video functions */ diff --git a/src/video/wincommon/SDL_sysevents.c b/src/video/wincommon/SDL_sysevents.c index b26e48867..859f211a6 100644 --- a/src/video/wincommon/SDL_sysevents.c +++ b/src/video/wincommon/SDL_sysevents.c @@ -40,10 +40,14 @@ #endif #ifdef _WIN32_WCE -#include "SDL_gapivideo.h" +#include "../gapi/SDL_gapivideo.h" + +#define IsZoomed(HWND) 1 #define NO_GETKEYBOARDSTATE +#if _WIN32_WCE < 420 #define NO_CHANGEDISPLAYSETTINGS #endif +#endif /* The window we use for everything... */ #ifdef _WIN32_WCE @@ -120,6 +124,29 @@ static void GapiTransform(SDL_ScreenOrientation rotate, char hires, Sint16 *x, S switch(rotate) { case SDL_ORIENTATION_UP: + { +/* this code needs testing on a real device! + So it will be enabled later */ +/* +#ifdef _WIN32_WCE +#if _WIN32_WCE >= 420 + // test device orientation + // FIXME: do not check every mouse message + DEVMODE settings; + SDL_memset(&settings, 0, sizeof(DEVMODE)); + settings.dmSize = sizeof(DEVMODE); + settings.dmFields = DM_DISPLAYORIENTATION; + ChangeDisplaySettingsEx(NULL, &settings, NULL, CDS_TEST, NULL); + if( settings.dmOrientation == DMDO_90 ) + { + rotatedX = SDL_VideoSurface->h - *x; + rotatedY = *y; + *x = rotatedX; + *y = rotatedY; + } +#endif +#endif */ + } break; case SDL_ORIENTATION_RIGHT: if (!SDL_VideoSurface) @@ -144,17 +171,21 @@ static void GapiTransform(SDL_ScreenOrientation rotate, char hires, Sint16 *x, S static void SDL_RestoreGameMode(void) { -#ifndef NO_CHANGEDISPLAYSETTINGS ShowWindow(SDL_Window, SW_RESTORE); +#ifndef NO_CHANGEDISPLAYSETTINGS +#ifndef _WIN32_WCE ChangeDisplaySettings(&SDL_fullscreen_mode, CDS_FULLSCREEN); #endif +#endif /* NO_CHANGEDISPLAYSETTINGS */ } static void SDL_RestoreDesktopMode(void) { -#ifndef NO_CHANGEDISPLAYSETTINGS ShowWindow(SDL_Window, SW_MINIMIZE); +#ifndef NO_CHANGEDISPLAYSETTINGS +#ifndef _WIN32_WCE ChangeDisplaySettings(NULL, 0); #endif +#endif /* NO_CHANGEDISPLAYSETTINGS */ } #ifdef WM_MOUSELEAVE diff --git a/src/video/wincommon/SDL_syswm.c b/src/video/wincommon/SDL_syswm.c index 2635b0ce5..73b27bc0b 100644 --- a/src/video/wincommon/SDL_syswm.c +++ b/src/video/wincommon/SDL_syswm.c @@ -220,9 +220,6 @@ void WIN_SetWMIcon(_THIS, SDL_Surface *icon, Uint8 *mask) if ( screen_icn == NULL ) { SDL_SetError("Couldn't create Win32 icon handle"); } else { -#ifndef SetClassLongPtr -#define SetClassLongPtr SetClassLong -#endif SetClassLongPtr(SDL_Window, GCL_HICON, (LONG_PTR)screen_icn); } SDL_stack_free(icon_win32); diff --git a/src/video/windib/SDL_dibvideo.c b/src/video/windib/SDL_dibvideo.c index 2b1358b0f..9e78f0111 100644 --- a/src/video/windib/SDL_dibvideo.c +++ b/src/video/windib/SDL_dibvideo.c @@ -24,13 +24,6 @@ #define WIN32_LEAN_AND_MEAN #include -#if defined(_WIN32_WCE) - -// defined and used in SDL_sysevents.c -extern HINSTANCE aygshell; - -#endif - /* Not yet in the mingw32 cross-compile headers */ #ifndef CDS_FULLSCREEN #define CDS_FULLSCREEN 4 @@ -49,8 +42,12 @@ extern HINSTANCE aygshell; #ifdef _WIN32_WCE #define NO_GETDIBITS -#define NO_CHANGEDISPLAYSETTINGS #define NO_GAMMA_SUPPORT + #if _WIN32_WCE < 420 + #define NO_CHANGEDISPLAYSETTINGS + #else + #define ChangeDisplaySettings(lpDevMode, dwFlags) ChangeDisplaySettingsEx(NULL, (lpDevMode), 0, (dwFlags), 0) + #endif #endif #ifndef WS_MAXIMIZE #define WS_MAXIMIZE 0 @@ -65,6 +62,11 @@ extern HINSTANCE aygshell; #define PC_NOCOLLAPSE 0 #endif +#ifdef _WIN32_WCE +// defined and used in SDL_sysevents.c +extern HINSTANCE aygshell; +#endif + /* Initialization/Query functions */ static int DIB_VideoInit(_THIS, SDL_PixelFormat *vformat); static SDL_Rect **DIB_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags); @@ -190,8 +192,6 @@ VideoBootStrap WINDIB_bootstrap = { DIB_Available, DIB_CreateDevice }; -#ifndef NO_CHANGEDISPLAYSETTINGS - static int cmpmodes(const void *va, const void *vb) { SDL_Rect *a = *(SDL_Rect **)va; @@ -248,8 +248,6 @@ static int DIB_AddMode(_THIS, int bpp, int w, int h) return(0); } -#endif /* !NO_CHANGEDISPLAYSETTINGS */ - static HPALETTE DIB_CreatePalette(int bpp) { /* RJR: March 28, 2000 @@ -326,6 +324,13 @@ int DIB_VideoInit(_THIS, SDL_PixelFormat *vformat) DIB_CheckGamma(this); #ifndef NO_CHANGEDISPLAYSETTINGS + + settings.dmSize = sizeof(DEVMODE); + settings.dmDriverExtra = 0; +#ifdef _WIN32_WCE + settings.dmFields = DM_DISPLAYQUERYORIENTATION; + this->hidden->supportRotation = ChangeDisplaySettingsEx(NULL, &settings, NULL, CDS_TEST, NULL) == DISP_CHANGE_SUCCESSFUL; +#endif /* Query for the desktop resolution */ EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &SDL_desktop_mode); @@ -333,13 +338,30 @@ int DIB_VideoInit(_THIS, SDL_PixelFormat *vformat) for ( i=0; EnumDisplaySettings(NULL, i, &settings); ++i ) { DIB_AddMode(this, settings.dmBitsPerPel, settings.dmPelsWidth, settings.dmPelsHeight); +#ifdef _WIN32_WCE + if( this->hidden->supportRotation ) + DIB_AddMode(this, settings.dmBitsPerPel, + settings.dmPelsHeight, settings.dmPelsWidth); +#endif } /* Sort the mode lists */ + if( i > 1 ) for ( i=0; i 0 ) { SDL_qsort(SDL_modelist[i], SDL_nummodes[i], sizeof *SDL_modelist[i], cmpmodes); } } +#else + // WinCE and fullscreen mode: + // We use only vformat->BitsPerPixel that allow SDL to + // emulate other bpp (8, 32) and use triple buffer, + // because SDL surface conversion is much faster than the WinCE one. + // Although it should be tested on devices with graphics accelerator. + + DIB_AddMode(this, vformat->BitsPerPixel, + GetDeviceCaps(GetDC(NULL), HORZRES), + GetDeviceCaps(GetDC(NULL), VERTRES)); + #endif /* !NO_CHANGEDISPLAYSETTINGS */ /* Grab an identity palette if we are in a palettized mode */ @@ -352,6 +374,10 @@ int DIB_VideoInit(_THIS, SDL_PixelFormat *vformat) /* Fill in some window manager capabilities */ this->info.wm_available = 1; +#ifdef _WIN32_WCE + this->hidden->origRotation = -1; +#endif + /* We're done! */ return(0); } @@ -359,15 +385,11 @@ int DIB_VideoInit(_THIS, SDL_PixelFormat *vformat) /* We support any format at any dimension */ SDL_Rect **DIB_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags) { -#ifdef NO_CHANGEDISPLAYSETTINGS - return((SDL_Rect **)-1); -#else if ( (flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) { return(SDL_modelist[((format->BitsPerPixel+7)/8)-1]); } else { return((SDL_Rect **)-1); } -#endif } @@ -531,6 +553,61 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current, SDL_memset(&settings, 0, sizeof(DEVMODE)); settings.dmSize = sizeof(DEVMODE); + +#ifdef _WIN32_WCE + // try to rotate screen to fit requested resolution + if( this->hidden->supportRotation ) + { + DWORD rotation; + + // ask current mode + settings.dmFields = DM_DISPLAYORIENTATION; + ChangeDisplaySettingsEx(NULL, &settings, NULL, CDS_TEST, NULL); + rotation = settings.dmDisplayOrientation; + + if( (width > GetDeviceCaps(GetDC(NULL), HORZRES)) + && (height < GetDeviceCaps(GetDC(NULL), VERTRES))) + { + switch( rotation ) + { + case DMDO_0: + settings.dmDisplayOrientation = DMDO_90; + break; + case DMDO_270: + settings.dmDisplayOrientation = DMDO_180; + break; + } + if( settings.dmDisplayOrientation != rotation ) + { + // go to landscape + this->hidden->origRotation = rotation; + ChangeDisplaySettingsEx(NULL,&settings,NULL,CDS_RESET,NULL); + } + } + if( (width < GetDeviceCaps(GetDC(NULL), HORZRES)) + && (height > GetDeviceCaps(GetDC(NULL), VERTRES))) + { + switch( rotation ) + { + case DMDO_90: + settings.dmDisplayOrientation = DMDO_0; + break; + case DMDO_180: + settings.dmDisplayOrientation = DMDO_270; + break; + } + if( settings.dmDisplayOrientation != rotation ) + { + // go to portrait + this->hidden->origRotation = rotation; + ChangeDisplaySettingsEx(NULL,&settings,NULL,CDS_RESET,NULL); + } + } + + } +#endif + +#ifndef _WIN32_WCE settings.dmBitsPerPel = video->format->BitsPerPixel; settings.dmPelsWidth = width; settings.dmPelsHeight = height; @@ -545,10 +622,14 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current, settings.dmFields &= ~DM_DISPLAYFREQUENCY; changed = (ChangeDisplaySettings(&settings, CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL); } +#else + changed = 1; +#endif if ( changed ) { video->flags |= SDL_FULLSCREEN; SDL_fullscreen_mode = settings; } + } #endif /* !NO_CHANGEDISPLAYSETTINGS */ @@ -669,9 +750,12 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current, video->flags |= SDL_HWPALETTE; } } - +#ifndef _WIN32_WCE /* Resize the window */ if ( !SDL_windowid && !IsZoomed(SDL_Window) ) { +#else + if ( !SDL_windowid ) { +#endif HWND top; UINT swp_flags; const char *window = NULL; diff --git a/src/video/windib/SDL_dibvideo.h b/src/video/windib/SDL_dibvideo.h index 99f9b9a6d..b759bec86 100644 --- a/src/video/windib/SDL_dibvideo.h +++ b/src/video/windib/SDL_dibvideo.h @@ -46,8 +46,12 @@ struct SDL_PrivateVideoData { SDL_Rect **SDL_modelist[NUM_MODELISTS]; SDL_ScreenOrientation orientation; - int invert; - char hiresFix; // using hires mode without defining hires resource +#ifdef _WIN32_WCE + int invert; /* do to remove, used by GAPI driver! */ + char hiresFix; /* using hires mode without defining hires resource */ + int supportRotation; /* for Pocket PC devices */ + DWORD origRotation; /* for Pocket PC devices */ +#endif }; /* Old variable names */ #define screen_bmp (this->hidden->screen_bmp) diff --git a/test/testalpha.c b/test/testalpha.c index ff4633474..58f73e42c 100644 --- a/test/testalpha.c +++ b/test/testalpha.c @@ -45,7 +45,7 @@ static void FillBackground(SDL_Surface *screen) { for ( i=0; ih; ++i ) { gradient=((i*255)/screen->h); - color = SDL_MapRGB(screen->format, gradient, gradient, gradient); + color = (Uint16)SDL_MapRGB(screen->format, gradient, gradient, gradient); buffer16=(Uint16*)buffer; for (k=0; kw; k++) { @@ -340,8 +340,14 @@ int main(int argc, char *argv[]) } /* Alpha blending doesn't work well at 8-bit color */ +#ifdef _WIN32_WCE + /* Pocket PC */ + w = 240; + h = 320; +#else w = 640; h = 480; +#endif info = SDL_GetVideoInfo(); if ( info->vfmt->BitsPerPixel > 8 ) { video_bpp = info->vfmt->BitsPerPixel; @@ -386,21 +392,12 @@ int main(int argc, char *argv[]) } } - /* Set 640x480 video mode */ -#ifndef _WIN32_WCE + /* Set video mode */ if ( (screen=SDL_SetVideoMode(w,h,video_bpp,videoflags)) == NULL ) { - fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n", - video_bpp, SDL_GetError()); + fprintf(stderr, "Couldn't set %dx%dx%d video mode: %s\n", + w, h, video_bpp, SDL_GetError()); quit(2); } -#else - /* Pocket PC */ - if ( (screen=SDL_SetVideoMode(240,320,video_bpp,SDL_FULLSCREEN)) == NULL ) { - fprintf(stderr, "Couldn't set 240x320x%d video mode: %s\n", - video_bpp, SDL_GetError()); - quit(2); - } -#endif FillBackground(screen); /* Create the light */