Fixed compiling on Windows Mobile SDK 5.0 with Visual Studio 2008

This commit is contained in:
Sam Lantinga 2011-01-24 15:46:11 -08:00
parent b33881a48e
commit 10b8372bd3
42 changed files with 1137 additions and 3437 deletions

File diff suppressed because it is too large Load diff

View file

@ -167,8 +167,10 @@ GDI_CreateRenderer(SDL_Window * window, Uint32 flags)
SDL_WindowData *windowdata = (SDL_WindowData *) window->driverdata;
SDL_Renderer *renderer;
GDI_RenderData *data;
#ifndef NO_GETDIBBITS
int bmi_size;
HBITMAP hbm;
#endif
int i, n;
renderer = (SDL_Renderer *) SDL_calloc(1, sizeof(*renderer));

View file

@ -192,20 +192,20 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
case WM_MOUSEMOVE:
#ifdef _WIN32_WCE
/* transform coords for VGA, WVGA... */
{
SDL_VideoData *videodata = data->videodata;
if(videodata->CoordTransform &&
(videodata->render == RENDER_GAPI || videodata->render == RENDER_RAW))
{
POINT pt;
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);
videodata->CoordTransform(data->window, &pt);
SDL_SendMouseMotion(data->window, 0, pt.x, pt.y);
break;
}
}
/* transform coords for VGA, WVGA... */
{
SDL_VideoData *videodata = data->videodata;
if(videodata->CoordTransform &&
(videodata->render == RENDER_GAPI || videodata->render == RENDER_RAW))
{
POINT pt;
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);
videodata->CoordTransform(data->window, &pt);
SDL_SendMouseMotion(data->window, 0, pt.x, pt.y);
break;
}
}
#endif
SDL_SendMouseMotion(data->window, 0, LOWORD(lParam), HIWORD(lParam));
break;
@ -252,12 +252,15 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
break;
}
#ifdef WM_MOUSELEAVE
/* FIXME: Do we need the SDL 1.2 hack to generate WM_MOUSELEAVE now? */
case WM_MOUSELEAVE:
if (SDL_GetMouseFocus() == data->window) {
SDL_SetMouseFocus(NULL);
}
returnCode = 0;
break;
#endif /* WM_MOUSELEAVE */
case WM_SYSKEYDOWN:
case WM_KEYDOWN:
@ -382,13 +385,16 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
returnCode = 0;
break;
#ifdef WM_INPUTLANGCHANGE
case WM_INPUTLANGCHANGE:
{
WIN_UpdateKeymap();
}
returnCode = 1;
break;
#endif /* WM_INPUTLANGCHANGE */
#ifdef WM_GETMINMAXINFO
case WM_GETMINMAXINFO:
{
MINMAXINFO *info;
@ -447,6 +453,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
}
returnCode = 0;
break;
#endif /* WM_GETMINMAXINFO */
case WM_WINDOWPOSCHANGED:
{
@ -534,6 +541,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
}
return (1);
#if defined(SC_SCREENSAVE) || defined(SC_MONITORPOWER)
case WM_SYSCOMMAND:
{
/* Don't start the screensaver or blank the monitor in fullscreen apps */
@ -545,6 +553,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
}
}
break;
#endif /* System has screensaver support */
case WM_CLOSE:
{
@ -656,7 +665,9 @@ SDL_RegisterApp(char *name, Uint32 style, void *hInst)
}
if (!name && !SDL_Appname) {
name = "SDL_app";
#if defined(CS_BYTEALIGNCLIENT) || defined(CS_OWNDC)
SDL_Appstyle = (CS_BYTEALIGNCLIENT | CS_OWNDC);
#endif
SDL_Instance = hInst ? hInst : GetModuleHandle(NULL);
}

View file

@ -21,6 +21,10 @@
*/
#include "SDL_config.h"
#ifdef _WIN32_WCE
#define SDL_DISABLE_WINDOWS_IME
#endif
#include "SDL_windowsvideo.h"
#include "../../events/SDL_keyboard_c.h"
@ -29,10 +33,12 @@
#include <imm.h>
#include <oleauto.h>
#ifndef SDL_DISABLE_WINDOWS_IME
static void IME_Init(SDL_VideoData *videodata, HWND hwnd);
static void IME_Enable(SDL_VideoData *videodata, HWND hwnd);
static void IME_Disable(SDL_VideoData *videodata, HWND hwnd);
static void IME_Quit(SDL_VideoData *videodata);
#endif /* !SDL_DISABLE_WINDOWS_IME */
#ifndef MAPVK_VK_TO_VSC
#define MAPVK_VK_TO_VSC 0
@ -172,12 +178,15 @@ WIN_UpdateKeymap()
void
WIN_QuitKeyboard(_THIS)
{
#ifndef SDL_DISABLE_WINDOWS_IME
IME_Quit((SDL_VideoData *)_this->driverdata);
#endif
}
void
WIN_StartTextInput(_THIS)
{
#ifndef SDL_DISABLE_WINDOWS_IME
SDL_Window *window = SDL_GetKeyboardFocus();
if (window) {
HWND hwnd = ((SDL_WindowData *) window->driverdata)->hwnd;
@ -186,11 +195,13 @@ WIN_StartTextInput(_THIS)
IME_Init(videodata, hwnd);
IME_Enable(videodata, hwnd);
}
#endif /* !SDL_DISABLE_WINDOWS_IME */
}
void
WIN_StopTextInput(_THIS)
{
#ifndef SDL_DISABLE_WINDOWS_IME
SDL_Window *window = SDL_GetKeyboardFocus();
if (window) {
HWND hwnd = ((SDL_WindowData *) window->driverdata)->hwnd;
@ -198,6 +209,7 @@ WIN_StopTextInput(_THIS)
IME_Init(videodata, hwnd);
IME_Disable(videodata, hwnd);
}
#endif /* !SDL_DISABLE_WINDOWS_IME */
}
void
@ -207,6 +219,21 @@ WIN_SetTextInputRect(_THIS, SDL_Rect *rect)
videodata->ime_rect = *rect;
}
#ifdef SDL_DISABLE_WINDOWS_IME
SDL_bool
IME_HandleMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM *lParam, SDL_VideoData *videodata)
{
return SDL_FALSE;
}
void IME_Present(SDL_VideoData *videodata)
{
}
#else
#ifdef __GNUC__
#undef DEFINE_GUID
#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) static const GUID n = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
@ -1552,4 +1579,6 @@ void IME_Present(SDL_VideoData *videodata)
SDL_RenderCopy(videodata->ime_candtex, NULL, &videodata->ime_candlistrect);
}
#endif /* SDL_DISABLE_WINDOWS_IME */
/* vi: set ts=4 sw=4 expandtab: */

View file

@ -23,13 +23,19 @@
#include "SDL_windowsvideo.h"
/* Windows CE compatibility */
#ifndef CDS_FULLSCREEN
#define CDS_FULLSCREEN 0
#endif
static SDL_bool
WIN_GetDisplayMode(LPCTSTR deviceName, DWORD index, SDL_DisplayMode * mode)
{
SDL_DisplayModeData *data;
DEVMODE devmode;
#ifndef _WIN32_WCE
HDC hdc;
#endif
devmode.dmSize = sizeof(devmode);
devmode.dmDriverExtra = 0;

View file

@ -161,9 +161,9 @@ WIN_CreateDevice(int devindex)
data->userDLL = LoadLibrary(TEXT("USER32.DLL"));
if (data->userDLL) {
data->CloseTouchInputHandle = (BOOL (WINAPI *)( HTOUCHINPUT )) GetProcAddress(data->userDLL, "CloseTouchInputHandle");
data->GetTouchInputInfo = (BOOL (WINAPI *)( HTOUCHINPUT, UINT, PTOUCHINPUT, int )) GetProcAddress(data->userDLL, "GetTouchInputInfo");
data->RegisterTouchWindow = (BOOL (WINAPI *)( HWND, ULONG )) GetProcAddress(data->userDLL, "RegisterTouchWindow");
data->CloseTouchInputHandle = (BOOL (WINAPI *)( HTOUCHINPUT )) GetProcAddress(data->userDLL, TEXT("CloseTouchInputHandle"));
data->GetTouchInputInfo = (BOOL (WINAPI *)( HTOUCHINPUT, UINT, PTOUCHINPUT, int )) GetProcAddress(data->userDLL, TEXT("GetTouchInputInfo"));
data->RegisterTouchWindow = (BOOL (WINAPI *)( HWND, ULONG )) GetProcAddress(data->userDLL, TEXT("RegisterTouchWindow"));
}
/* Set the function pointers */
@ -222,11 +222,7 @@ WIN_CreateDevice(int devindex)
}
VideoBootStrap WINDOWS_bootstrap = {
#ifdef _WIN32_WCE
"wince", "SDL WinCE video driver", WINCE_Available, WIN_CreateDevice
#else
"windows", "SDL Win32/64 video driver", WIN_Available, WIN_CreateDevice
#endif
"windows", "SDL Windows video driver", WIN_Available, WIN_CreateDevice
};
int

View file

@ -36,7 +36,7 @@
#include <windows.h>
#ifndef __GNUC__
#if defined(_MSC_VER) && !defined(_WIN32_WCE)
#include <msctf.h>
#else
#include "SDL_msctf.h"

View file

@ -32,6 +32,10 @@
#include "SDL_syswm.h"
#include "SDL_gapirender.h"
/* Windows CE compatibility */
#ifndef SWP_NOCOPYBITS
#define SWP_NOCOPYBITS 0
#endif
/* Fake window to help with DirectInput events. */
HWND SDL_HelperWindow = NULL;
@ -68,13 +72,21 @@ SetupWindowData(_THIS, SDL_Window * window, HWND hwnd, SDL_bool created)
}
/* Set up the window proc function */
#ifdef GWLP_WNDPROC
data->wndproc = (WNDPROC) GetWindowLongPtr(hwnd, GWLP_WNDPROC);
if (data->wndproc == WIN_WindowProc) {
data->wndproc = NULL;
}
else {
} else {
SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR) WIN_WindowProc);
}
#else
data->wndproc = (WNDPROC) GetWindowLong(hwnd, GWL_WNDPROC);
if (data->wndproc == WIN_WindowProc) {
data->wndproc = NULL;
} else {
SetWindowLong(hwnd, GWL_WNDPROC, (LONG_PTR) WIN_WindowProc);
}
#endif
/* Fill in the SDL window with the window data */
{
@ -112,14 +124,20 @@ SetupWindowData(_THIS, SDL_Window * window, HWND hwnd, SDL_bool created)
} else {
window->flags &= ~SDL_WINDOW_RESIZABLE;
}
#ifdef WS_MAXIMIZE
if (style & WS_MAXIMIZE) {
window->flags |= SDL_WINDOW_MAXIMIZED;
} else {
} else
#endif
{
window->flags &= ~SDL_WINDOW_MAXIMIZED;
}
#ifdef WS_MINIMIZE
if (style & WS_MINIMIZE) {
window->flags |= SDL_WINDOW_MINIMIZED;
} else {
} else
#endif
{
window->flags &= ~SDL_WINDOW_MINIMIZED;
}
}