Fixed compiling on Windows Mobile SDK 5.0 with Visual Studio 2008
This commit is contained in:
parent
b33881a48e
commit
10b8372bd3
42 changed files with 1137 additions and 3437 deletions
File diff suppressed because it is too large
Load diff
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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: */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#include <windows.h>
|
||||
|
||||
#ifndef __GNUC__
|
||||
#if defined(_MSC_VER) && !defined(_WIN32_WCE)
|
||||
#include <msctf.h>
|
||||
#else
|
||||
#include "SDL_msctf.h"
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue