Skip to content

Commit

Permalink
Incorporated slightly modified version of Rainer's WinCE patch
Browse files Browse the repository at this point in the history
  • Loading branch information
Sam Lantinga committed Jul 18, 2001
1 parent ad8bed1 commit 25b66e9
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/main/win32/SDL_main.c
Expand Up @@ -16,8 +16,10 @@
#include "SDL.h"
#include "SDL_main.h"
#ifdef main
#ifndef _WIN32_WCE_EMULATION
#undef main
#endif
#endif

/* Do we really not want stdio redirection with Windows CE? */
#ifdef _WIN32_WCE
Expand All @@ -28,7 +30,7 @@
#define STDOUT_FILE TEXT("stdout.txt")
#define STDERR_FILE TEXT("stderr.txt")

#ifdef _WIN32_WCE
#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'))

Expand All @@ -52,7 +54,7 @@ char *strrchr(char *str, int c)
}
return p;
}
#endif /* _WIN32_WCE */
#endif /* _WIN32_WCE < 300 */

/* Parse a command line buffer into arguments */
static int ParseCommandLine(char *cmdline, char **argv)
Expand Down Expand Up @@ -274,7 +276,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw)
nLen = wcslen(szCmdLine)+128+1;
bufp = (wchar_t *)alloca(nLen*2);
GetModuleFileName(NULL, bufp, 128);
wcsncpy(bufp+wcslen(bufp), szCmdLine,nLen);
wcsncpy(bufp+wcslen(bufp), szCmdLine,nLen-wcslen(bufp));
nLen = wcslen(bufp)+1;
cmdline = (char *)alloca(nLen);
if ( cmdline == NULL ) {
Expand Down
20 changes: 20 additions & 0 deletions src/video/windib/SDL_dibevents.c
Expand Up @@ -87,6 +87,26 @@ LONG
wParam = VK_LMENU;
break;
}
#ifdef NO_GETKEYBOARDSTATE
/* this is the workaround for the missing ToAscii() and ToUnicode() in CE (not necessary at KEYUP!) */
if ( SDL_TranslateUNICODE ) {
MSG msg;

msg.hwnd = hwnd;
msg.message = msg;
msg.wParam = wParam;
msg.lParam = lParam;
msg.time = 0;
if ( TranslateMessage(&m) && PeekMessage(&msg, hwnd, 0, WM_USER, PM_NOREMOVE) && (m.message == WM_CHAR) ) {
GetMessage(&m, hwnd, 0, WM_USER);
wParam = m.wParam;
} else {
wParam = 0;
}
} else {
wParam = 0;
}
#endif /* NO_GETKEYBOARDSTATE */
posted = SDL_PrivateKeyboard(SDL_PRESSED,
TranslateKey(wParam,HIWORD(lParam),&keysym,1));
}
Expand Down
3 changes: 3 additions & 0 deletions src/video/windib/SDL_dibvideo.c
Expand Up @@ -375,9 +375,12 @@ static int DIB_SussScreenDepth()
hdc = GetDC(SDL_Window);
depth = GetDeviceCaps(hdc, PLANES) * GetDeviceCaps(hdc, BITSPIXEL);
ReleaseDC(SDL_Window, hdc);
#ifndef _WIN32_WCE
// AFAIK 16 bit CE devices have indeed RGB 565
if ( depth == 16 ) {
depth = 15; /* GDI defined as RGB 555 */
}
#endif
return(depth);
#else
int dib_size;
Expand Down

0 comments on commit 25b66e9

Please sign in to comment.