summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.WinCE56
-rw-r--r--configure.in78
-rw-r--r--include/SDL_assert.h4
-rw-r--r--include/SDL_atomic.h2
-rw-r--r--include/SDL_config.h.in1
-rw-r--r--include/SDL_config_windows.h17
-rw-r--r--include/SDL_cpuinfo.h2
-rw-r--r--include/SDL_thread.h12
-rwxr-xr-xsrc/SDL.c4
-rwxr-xr-xsrc/audio/SDL_audio.c2
-rwxr-xr-xsrc/audio/winmm/SDL_winmm.c23
-rwxr-xr-xsrc/file/SDL_rwops.c16
-rwxr-xr-xsrc/loadso/windows/SDL_sysloadso.c7
-rw-r--r--src/main/windows/SDL_windows_main.c29
-rwxr-xr-xsrc/power/windows/SDL_syspower.c10
-rwxr-xr-xsrc/stdlib/SDL_getenv.c2
-rwxr-xr-xsrc/thread/windows/SDL_sysmutex.c4
-rwxr-xr-xsrc/thread/windows/SDL_syssem.c24
-rwxr-xr-xsrc/thread/windows/SDL_systhread.c7
-rw-r--r--src/thread/windows/win_ce_semaphore.c233
-rw-r--r--src/thread/windows/win_ce_semaphore.h25
-rwxr-xr-xsrc/timer/SDL_timer.c2
-rwxr-xr-xsrc/timer/wince/SDL_systimer.c110
-rwxr-xr-xsrc/timer/windows/SDL_systimer.c4
-rwxr-xr-xsrc/video/SDL_stretch.c2
-rwxr-xr-xsrc/video/windows/SDL_windowsclipboard.c12
-rwxr-xr-xsrc/video/windows/SDL_windowsevents.c20
-rwxr-xr-xsrc/video/windows/SDL_windowsframebuffer.c8
-rwxr-xr-xsrc/video/windows/SDL_windowskeyboard.c4
-rwxr-xr-xsrc/video/windows/SDL_windowsmodes.c33
-rwxr-xr-xsrc/video/windows/SDL_windowsvideo.c14
-rwxr-xr-xsrc/video/windows/SDL_windowsvideo.h8
-rwxr-xr-xsrc/video/windows/SDL_windowswindow.c86
-rwxr-xr-xsrc/video/windows/SDL_windowswindow.h9
34 files changed, 22 insertions, 848 deletions
diff --git a/README.WinCE b/README.WinCE
index 6f8799ef8..8e316d35d 100644
--- a/README.WinCE
+++ b/README.WinCE
@@ -1,55 +1,9 @@
-Project files for embedded Visual C++ 3.0, 4.0 and
-Visual Studio 2005 can be found in VisualCE.zip
+Windows CE is no longer supported by SDL.
-SDL supports GAPI and WinDib output for Windows CE.
+We have left the CE support in SDL 1.2 for those that must have it, and we
+will accept patches that support more modern Windows Mobile platforms for
+SDL 2.0.
-GAPI driver supports:
+--ryan.
-- all possible WinCE devices (Pocket PC, Smartphones, HPC)
- with different orientations of video memory and resolutions.
-- 4, 8 and 16 bpp devices
-- special handling of 8bpp on 8bpp devices
-- VGA mode, you can even switch between VGA and GAPI in runtime
- (between 240x320 and 480x640 for example). On VGA devices you can
- use either GAPI or VGA.
-- Landscape mode and automatic rotation of buttons and stylus coordinates.
- To enable landscape mode make width of video screen bigger than height.
- For example:
- SDL_SetVideoMode(320,240,16,SDL_FULLSCREEN)
-- WM2005
-- SDL_ListModes
-
-NOTE:
-There are several SDL features not available in the WinCE port of SDL.
-
-- DirectX is not yet available
-- Semaphores are not available
-- Joystick support is not available
-- CD-ROM control is not available
-
-In addition, there are several features that run in "degraded" mode:
-
-Preprocessor Symbol Effect
-=================== =================================
-
-SDL_systimer.c:
-USE_GETTICKCOUNT Less accurate values for SDL time functions
-USE_SETTIMER Use only a single marginally accurate timer
-
-SDL_syswm.c:
-DISABLE_ICON_SUPPORT Can't set the runtime window icon
-
-SDL_sysmouse.c:
-USE_STATIC_CURSOR Only the arrow cursor is available
-
-SDL_sysevents.c:
-NO_GETKEYBOARDSTATE Can't get modifier state on keyboard focus
-
-SDL_dibevents.c:
-NO_GETKEYBOARDSTATE Very limited keycode translation
-
-SDL_dibvideo.c:
-NO_GETDIBITS Can't distinguish between 15 bpp and 16 bpp
-NO_CHANGEDISPLAYSETTINGS No fullscreen support
-NO_GAMMA_SUPPORT Gamma correction not available
diff --git a/configure.in b/configure.in
index f24effe5b..dc92611a2 100644
--- a/configure.in
+++ b/configure.in
@@ -1908,6 +1908,8 @@ CheckWINDOWS()
],[
],[
have_wince=yes
+ AC_MSG_ERROR([
+*** Sorry, Windows CE is no longer supported.
])
AC_MSG_RESULT($have_wince)
@@ -2239,82 +2241,6 @@ case "$host" in
have_timers=yes
fi
;;
- *-wince* | *-mingw32ce)
- ARCH=win32
- CheckDummyVideo
- CheckDiskAudio
- CheckDummyAudio
- CheckWINDOWS
- if test x$enable_video = xyes; then
- AC_DEFINE(SDL_VIDEO_DRIVER_WINDOWS, 1, [ ])
- SOURCES="$SOURCES $srcdir/src/video/windows/*.c"
- have_video=yes
- AC_ARG_ENABLE(render-d3d,
-AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
- , enable_render_d3d=yes)
- enable_render_d3d=no
- if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
- AC_DEFINE(SDL_VIDEO_RENDER_D3D, 1, [ ])
- fi
- fi
- # Set up files for the audio library
- if test x$enable_audio = xyes; then
- AC_DEFINE(SDL_AUDIO_DRIVER_WINMM, 1, [ ])
- SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c"
- if test x$have_dsound = xyes; then
- AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND, 1, [ ])
- SOURCES="$SOURCES $srcdir/src/audio/directsound/*.c"
- fi
- if test x$have_xaudio2 = xyes; then
- AC_DEFINE(SDL_AUDIO_DRIVER_XAUDIO2, 1, [ ])
- SOURCES="$SOURCES $srcdir/src/audio/xaudio2/*.c"
- fi
- have_audio=yes
- fi
- # Set up dummy files for the joystick for now
- if test x$enable_joystick = xyes; then
- AC_DEFINE(SDL_JOYSTICK_DUMMY, 1, [ ])
- SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
- have_joystick=yes
- fi
- # Set up files for the thread library
- if test x$enable_threads = xyes; then
- AC_DEFINE(SDL_THREAD_WINDOWS, 1, [ ])
- SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_sysmutex.c"
- SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_syssem.c"
- SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_systhread.c"
- SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
- have_threads=yes
- fi
- # Set up files for the timer library
- if test x$enable_timers = xyes; then
- AC_DEFINE(SDL_TIMER_WINCE, 1, [ ])
- SOURCES="$SOURCES $srcdir/src/timer/wince/*.c"
- have_timers=yes
- fi
- # Set up files for the shared object loading library
- if test x$enable_loadso = xyes; then
- AC_DEFINE(SDL_LOADSO_WINDOWS, 1, [ ])
- SOURCES="$SOURCES $srcdir/src/loadso/windows/*.c"
- have_loadso=yes
- fi
- # Set up the system libraries we need
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lcoredll -lcommctrl -lmmtimer"
-
- # mingw32ce library
- case "$host" in
- *-mingw32ce)
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lmingwex"
- ;;
- *)
- ;;
- esac
-
- # The Windows platform requires special setup
- SDLMAIN_SOURCES="$srcdir/src/main/windows/*.c"
- EXTRA_CFLAGS="$EXTRA_CFLAGS -Dmain=SDL_main -D_WIN32_WCE=0x420"
- EXTRA_LDFLAGS="-lSDL2main $EXTRA_LDFLAGS"
- ;;
*-*-cygwin* | *-*-mingw32*)
ARCH=win32
if test "$build" != "$host"; then # cross-compiling
diff --git a/include/SDL_assert.h b/include/SDL_assert.h
index 7c3887e21..ab5d3a0d3 100644
--- a/include/SDL_assert.h
+++ b/include/SDL_assert.h
@@ -49,9 +49,9 @@ on the assertion line and not in some random guts of SDL, and so each
assert can have unique static variables associated with it.
*/
-#if defined(_MSC_VER) && !defined(_WIN32_WCE)
+#if defined(_MSC_VER)
/* Don't include intrin.h here because it contains C++ code */
-extern void __cdecl __debugbreak(void);
+ extern void __cdecl __debugbreak(void);
#define SDL_TriggerBreakpoint() __debugbreak()
#elif (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)))
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" )
diff --git a/include/SDL_atomic.h b/include/SDL_atomic.h
index a036b6d28..16793bee6 100644
--- a/include/SDL_atomic.h
+++ b/include/SDL_atomic.h
@@ -65,7 +65,7 @@
/* Need to do this here because intrin.h has C++ code in it */
/* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */
-#if defined(_MSC_VER) && (_MSC_VER >= 1500) && !defined(_WIN32_WCE)
+#if defined(_MSC_VER) && (_MSC_VER >= 1500)
#include <intrin.h>
#define HAVE_MSC_ATOMICS 1
#endif
diff --git a/include/SDL_config.h.in b/include/SDL_config.h.in
index 600dbfb00..be6b5cf47 100644
--- a/include/SDL_config.h.in
+++ b/include/SDL_config.h.in
@@ -242,7 +242,6 @@
#undef SDL_TIMER_NDS
#undef SDL_TIMER_UNIX
#undef SDL_TIMER_WINDOWS
-#undef SDL_TIMER_WINCE
/* Enable various video drivers */
#undef SDL_VIDEO_DRIVER_BWINDOW
diff --git a/include/SDL_config_windows.h b/include/SDL_config_windows.h
index ac5b8a9dc..5f7e89b6a 100644
--- a/include/SDL_config_windows.h
+++ b/include/SDL_config_windows.h
@@ -85,9 +85,7 @@ typedef unsigned int uintptr_t;
#define HAVE_STRING_H 1
#define HAVE_CTYPE_H 1
#define HAVE_MATH_H 1
-#ifndef _WIN32_WCE
#define HAVE_SIGNAL_H 1
-#endif
/* C library functions */
#define HAVE_MALLOC 1
@@ -143,22 +141,15 @@ typedef unsigned int uintptr_t;
#endif
/* Enable various audio drivers */
-#ifndef _WIN32_WCE
#define SDL_AUDIO_DRIVER_DSOUND 1
#define SDL_AUDIO_DRIVER_XAUDIO2 1
-#endif
#define SDL_AUDIO_DRIVER_WINMM 1
#define SDL_AUDIO_DRIVER_DISK 1
#define SDL_AUDIO_DRIVER_DUMMY 1
/* Enable various input drivers */
-#ifdef _WIN32_WCE
-#define SDL_JOYSTICK_DISABLED 1
-#define SDL_HAPTIC_DUMMY 1
-#else
#define SDL_JOYSTICK_DINPUT 1
#define SDL_HAPTIC_DINPUT 1
-#endif
/* Enable various shared object loading systems */
#define SDL_LOADSO_WINDOWS 1
@@ -167,24 +158,17 @@ typedef unsigned int uintptr_t;
#define SDL_THREAD_WINDOWS 1
/* Enable various timer systems */
-#ifdef _WIN32_WCE
-#define SDL_TIMER_WINCE 1
-#else
#define SDL_TIMER_WINDOWS 1
-#endif
/* Enable various video drivers */
#define SDL_VIDEO_DRIVER_DUMMY 1
#define SDL_VIDEO_DRIVER_WINDOWS 1
-#ifndef _WIN32_WCE
#ifndef SDL_VIDEO_RENDER_D3D
#define SDL_VIDEO_RENDER_D3D 1
#endif
-#endif
/* Enable OpenGL support */
-#ifndef _WIN32_WCE
#ifndef SDL_VIDEO_OPENGL
#define SDL_VIDEO_OPENGL 1
#endif
@@ -194,7 +178,6 @@ typedef unsigned int uintptr_t;
#ifndef SDL_VIDEO_RENDER_OGL
#define SDL_VIDEO_RENDER_OGL 1
#endif
-#endif
/* Enable system power support */
#define SDL_POWER_WINDOWS 1
diff --git a/include/SDL_cpuinfo.h b/include/SDL_cpuinfo.h
index 3c5b94389..22d04a7ca 100644
--- a/include/SDL_cpuinfo.h
+++ b/include/SDL_cpuinfo.h
@@ -32,7 +32,7 @@
/* Need to do this here because intrin.h has C++ code in it */
/* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */
-#if defined(_MSC_VER) && (_MSC_VER >= 1500) && !defined(_WIN32_WCE)
+#if defined(_MSC_VER) && (_MSC_VER >= 1500)
#include <intrin.h>
#ifndef _WIN64
#define __MMX__
diff --git a/include/SDL_thread.h b/include/SDL_thread.h
index 65a2253b4..6eb720145 100644
--- a/include/SDL_thread.h
+++ b/include/SDL_thread.h
@@ -86,9 +86,7 @@ typedef int (SDLCALL * SDL_ThreadFunction) (void *data);
* library!
*/
#define SDL_PASSED_BEGINTHREAD_ENDTHREAD
-#ifndef _WIN32_WCE
#include <process.h> /* This has _beginthread() and _endthread() defined! */
-#endif
typedef uintptr_t(__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned,
unsigned (__stdcall *
@@ -106,21 +104,11 @@ SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data,
pfnSDL_CurrentBeginThread pfnBeginThread,
pfnSDL_CurrentEndThread pfnEndThread);
-#if defined(_WIN32_WCE)
-
-/**
- * Create a thread.
- */
-#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, NULL, NULL)
-
-#else
-
/**
* Create a thread.
*/
#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, _beginthreadex, _endthreadex)
-#endif
#else
/**
diff --git a/src/SDL.c b/src/SDL.c
index 9f8b2d4fc..9dad9a4fc 100755
--- a/src/SDL.c
+++ b/src/SDL.c
@@ -288,11 +288,7 @@ SDL_GetPlatform()
#elif __SOLARIS__
return "Solaris";
#elif __WIN32__
-#ifdef _WIN32_WCE
- return "Windows CE";
-#else
return "Windows";
-#endif
#elif __IPHONEOS__
return "iPhone OS";
#else
diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c
index 8b62cc74d..8ef616a56 100755
--- a/src/audio/SDL_audio.c
+++ b/src/audio/SDL_audio.c
@@ -1028,7 +1028,7 @@ open_audio_device(const char *devname, int iscapture,
char name[64];
SDL_snprintf(name, sizeof (name), "SDLAudioDev%d", (int) (id + 1));
/* !!! FIXME: this is nasty. */
-#if (defined(__WIN32__) && !defined(_WIN32_WCE)) && !defined(HAVE_LIBC)
+#if defined(__WIN32__) && !defined(HAVE_LIBC)
#undef SDL_CreateThread
device->thread = SDL_CreateThread(SDL_RunAudio, name, device, NULL, NULL);
#else
diff --git a/src/audio/winmm/SDL_winmm.c b/src/audio/winmm/SDL_winmm.c
index 284236bf0..63e48aa61 100755
--- a/src/audio/winmm/SDL_winmm.c
+++ b/src/audio/winmm/SDL_winmm.c
@@ -31,9 +31,6 @@
#include "SDL_audio.h"
#include "../SDL_audio_c.h"
#include "SDL_winmm.h"
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
-#include "win_ce_semaphore.h"
-#endif
#define DETECT_DEV_IMPL(typ, capstyp) \
static void DetectWave##typ##Devs(SDL_AddAudioDevice addfn) { \
@@ -75,11 +72,7 @@ CaptureSound(HWAVEIN hwi, UINT uMsg, DWORD_PTR dwInstance,
return;
/* Signal that we have a new buffer of data */
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
- ReleaseSemaphoreCE(this->hidden->audio_sem, 1, NULL);
-#else
ReleaseSemaphore(this->hidden->audio_sem, 1, NULL);
-#endif
}
@@ -95,11 +88,7 @@ FillSound(HWAVEOUT hwo, UINT uMsg, DWORD_PTR dwInstance,
return;
/* Signal that we are done playing a buffer */
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
- ReleaseSemaphoreCE(this->hidden->audio_sem, 1, NULL);
-#else
ReleaseSemaphore(this->hidden->audio_sem, 1, NULL);
-#endif
}
static void
@@ -123,11 +112,7 @@ static void
WINMM_WaitDevice(_THIS)
{
/* Wait for an audio chunk to finish */
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
- WaitForSemaphoreCE(this->hidden->audio_sem, INFINITE);
-#else
WaitForSingleObject(this->hidden->audio_sem, INFINITE);
-#endif
}
static Uint8 *
@@ -173,11 +158,7 @@ WINMM_CloseDevice(_THIS)
int i;
if (this->hidden->audio_sem) {
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
- CloseSynchHandle(this->hidden->audio_sem);
-#else
CloseHandle(this->hidden->audio_sem);
-#endif
this->hidden->audio_sem = 0;
}
@@ -349,11 +330,7 @@ WINMM_OpenDevice(_THIS, const char *devname, int iscapture)
/* Create the audio buffer semaphore */
this->hidden->audio_sem =
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
- CreateSemaphoreCE(NULL, NUM_BUFFERS - 1, NUM_BUFFERS, NULL);
-#else
CreateSemaphore(NULL, NUM_BUFFERS - 1, NUM_BUFFERS, NULL);
-#endif
if (this->hidden->audio_sem == NULL) {
WINMM_CloseDevice(this);
SDL_SetError("Couldn't create semaphore");
diff --git a/src/file/SDL_rwops.c b/src/file/SDL_rwops.c
index c6a0095ad..83f692eaa 100755
--- a/src/file/SDL_rwops.c
+++ b/src/file/SDL_rwops.c
@@ -43,9 +43,6 @@
#ifdef __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*/
#include "../core/windows/SDL_windows.h"
@@ -58,9 +55,7 @@
static int SDLCALL
windows_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;
@@ -98,16 +93,6 @@ windows_file_open(SDL_RWops * context, const char *filename, const char *mode)
SDL_OutOfMemory();
return -1;
}
-#ifdef _WIN32_WCE
- {
- LPTSTR tstr = WIN_UTF8ToString(filename);
- h = CreateFile(tstr, (w_right | r_right),
- (w_right) ? 0 : FILE_SHARE_READ, NULL,
- (must_exist | truncate | a_mode),
- FILE_ATTRIBUTE_NORMAL, NULL);
- SDL_free(tstr);
- }
-#else
/* Do not open a dialog box if failure */
old_error_mode =
SetErrorMode(SEM_NOOPENFILEERRORBOX | SEM_FAILCRITICALERRORS);
@@ -123,7 +108,6 @@ windows_file_open(SDL_RWops * context, const char *filename, const char *mode)
/* restore old behavior */
SetErrorMode(old_error_mode);
-#endif /* _WIN32_WCE */
if (h == INVALID_HANDLE_VALUE) {
SDL_free(context->hidden.windowsio.buffer.data);
diff --git a/src/loadso/windows/SDL_sysloadso.c b/src/loadso/windows/SDL_sysloadso.c
index 8b465a5e1..f07752cb8 100755
--- a/src/loadso/windows/SDL_sysloadso.c
+++ b/src/loadso/windows/SDL_sysloadso.c
@@ -49,14 +49,7 @@ SDL_LoadObject(const char *sofile)
void *
SDL_LoadFunction(void *handle, const char *name)
{
-#ifdef _WIN32_WCE
- LPTSTR tstr = WIN_UTF8ToString(name);
- void *symbol = (void *) GetProcAddress((HMODULE) handle, tstr);
- SDL_free(tstr);
-#else
void *symbol = (void *) GetProcAddress((HMODULE) handle, name);
-#endif
-
if (symbol == NULL) {
char errbuf[512];
SDL_strlcpy(errbuf, "Failed loading ", SDL_arraysize(errbuf));
diff --git a/src/main/windows/SDL_windows_main.c b/src/main/windows/SDL_windows_main.c
index 4d60e2d4e..0b483e06e 100644
--- a/src/main/windows/SDL_windows_main.c
+++ b/src/main/windows/SDL_windows_main.c
@@ -18,16 +18,9 @@
#include "SDL_main.h"
#ifdef main
-# ifndef _WIN32_WCE_EMULATION
# undef main
-# endif /* _WIN32_WCE_EMULATION */
#endif /* main */
-#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'))
-#endif /* _WIN32_WCE < 300 */
-
static void
UnEscapeQuotes(char *arg)
{
@@ -130,7 +123,7 @@ OutOfMemory(void)
return FALSE;
}
-#if defined(_MSC_VER) && !defined(_WIN32_WCE)
+#if defined(_MSC_VER)
/* The VC++ compiler needs main defined */
#define console_main main
#endif
@@ -158,28 +151,9 @@ WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int sw)
char **argv;
int argc;
char *cmdline;
-#ifdef _WIN32_WCE
- wchar_t *bufp;
- int nLen;
-#else
char *bufp;
size_t nLen;
-#endif
-#ifdef _WIN32_WCE
- nLen = wcslen(szCmdLine) + 128 + 1;
- bufp = SDL_stack_alloc(wchar_t, nLen * 2);
- wcscpy(bufp, TEXT("\""));
- GetModuleFileName(NULL, bufp + 1, 128 - 3);
- wcscpy(bufp + wcslen(bufp), TEXT("\" "));
- wcsncpy(bufp + wcslen(bufp), szCmdLine, nLen - wcslen(bufp));
- nLen = wcslen(bufp) + 1;
- cmdline = SDL_stack_alloc(char, nLen);
- if (cmdline == NULL) {
- return OutOfMemory();
- }
- WideCharToMultiByte(CP_ACP, 0, bufp, -1, cmdline, nLen, NULL, NULL);
-#else
/* Grab the command line */
bufp = GetCommandLine();
nLen = SDL_strlen(bufp) + 1;
@@ -188,7 +162,6 @@ WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int sw)
return OutOfMemory();
}
SDL_strlcpy(cmdline, bufp, nLen);
-#endif
/* Parse it into argv and argc */
argc = ParseCommandLine(cmdline, NULL);
diff --git a/src/power/windows/SDL_syspower.c b/src/power/windows/SDL_syspower.c
index 0ebb56aec..f3c75957a 100755
--- a/src/power/windows/SDL_syspower.c
+++ b/src/power/windows/SDL_syspower.c
@@ -30,19 +30,11 @@
SDL_bool
SDL_GetPowerInfo_Windows(SDL_PowerState * state, int *seconds, int *percent)
{
-#ifdef _WIN32_WCE
- SYSTEM_POWER_STATUS_EX status;
-#else
SYSTEM_POWER_STATUS status;
-#endif
SDL_bool need_details = SDL_FALSE;
- /* This API should exist back to Win95 and Windows CE. */
-#ifdef _WIN32_WCE
- if (!GetSystemPowerStatusEx(&status, FALSE))
-#else
+ /* This API should exist back to Win95. */
if (!GetSystemPowerStatus(&status))
-#endif
{
/* !!! FIXME: push GetLastError() into SDL_GetError() */
*state = SDL_POWERSTATE_UNKNOWN;
diff --git a/src/stdlib/SDL_getenv.c b/src/stdlib/SDL_getenv.c
index d90bd2564..6e6477bde 100755
--- a/src/stdlib/SDL_getenv.c
+++ b/src/stdlib/SDL_getenv.c
@@ -24,7 +24,7 @@
#ifndef HAVE_GETENV
-#if defined(__WIN32__) && !defined(_WIN32_WCE)
+#if defined(__WIN32__)
#include "../core/windows/SDL_windows.h"
diff --git a/src/thread/windows/SDL_sysmutex.c b/src/thread/windows/SDL_sysmutex.c
index 779314277..882c9c69b 100755
--- a/src/thread/windows/SDL_sysmutex.c
+++ b/src/thread/windows/SDL_sysmutex.c
@@ -44,12 +44,8 @@ SDL_CreateMutex(void)
mutex = (SDL_mutex *) SDL_malloc(sizeof(*mutex));
if (mutex) {
/* Initialize */
-#ifdef _WIN32_WCE
- InitializeCriticalSection(&mutex->cs);
-#else
/* On SMP systems, a non-zero spin count generally helps performance */
InitializeCriticalSectionAndSpinCount(&mutex->cs, 2000);
-#endif
} else {
SDL_OutOfMemory();
}
diff --git a/src/thread/windows/SDL_syssem.c b/src/thread/windows/SDL_syssem.c
index 98b5ba7de..8a958eba5 100755
--- a/src/thread/windows/SDL_syssem.c
+++ b/src/thread/windows/SDL_syssem.c
@@ -27,18 +27,10 @@
#include "../../core/windows/SDL_windows.h"
#include "SDL_thread.h"
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
-#include "win_ce_semaphore.h"
-#endif
-
struct SDL_semaphore
{
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
- SYNCHHANDLE id;
-#else
HANDLE id;
-#endif
LONG count;
};
@@ -53,11 +45,7 @@ SDL_CreateSemaphore(Uint32 initial_value)
sem = (SDL_sem *) SDL_malloc(sizeof(*sem));
if (sem) {
/* Create the semaphore, with max value 32K */
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
- sem->id = CreateSemaphoreCE(NULL, initial_value, 32 * 1024, NULL);
-#else
sem->id = CreateSemaphore(NULL, initial_value, 32 * 1024, NULL);
-#endif
sem->count = initial_value;
if (!sem->id) {
SDL_SetError("Couldn't create semaphore");
@@ -76,11 +64,7 @@ SDL_DestroySemaphore(SDL_sem * sem)
{
if (sem) {
if (sem->id) {
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
- CloseSynchHandle(sem->id);
-#else
CloseHandle(sem->id);
-#endif
sem->id = 0;
}
SDL_free(sem);
@@ -103,11 +87,7 @@ SDL_SemWaitTimeout(SDL_sem * sem, Uint32 timeout)
} else {
dwMilliseconds = (DWORD) timeout;
}
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
- switch (WaitForSemaphoreCE(sem->id, dwMilliseconds)) {
-#else
switch (WaitForSingleObject(sem->id, dwMilliseconds)) {
-#endif
case WAIT_OBJECT_0:
InterlockedDecrement(&sem->count);
retval = 0;
@@ -159,11 +139,7 @@ SDL_SemPost(SDL_sem * sem)
* is waiting for this semaphore.
*/
InterlockedIncrement(&sem->count);
-#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
- if (ReleaseSemaphoreCE(sem->id, 1, NULL) == FALSE) {
-#else
if (ReleaseSemaphore(sem->id, 1, NULL) == FALSE) {
-#endif
InterlockedDecrement(&sem->count); /* restore */
SDL_SetError("ReleaseSemaphore() failed");
return -1;
diff --git a/src/thread/windows/SDL_systhread.c b/src/thread/windows/SDL_systhread.c
index efe2ccb31..e399689dd 100755
--- a/src/thread/windows/SDL_systhread.c
+++ b/src/thread/windows/SDL_systhread.c
@@ -30,10 +30,8 @@
#include "SDL_systhread_c.h"
#ifndef SDL_PASSED_BEGINTHREAD_ENDTHREAD
-#ifndef _WIN32_WCE
/* We'll use the C library from this DLL */
#include <process.h>
-#endif
/* Cygwin gcc-3 ... MingW64 (even with a i386 host) does this like MSVC. */
#if (defined(__MINGW32__) && (__GNUC__ < 4))
@@ -112,13 +110,8 @@ SDL_SYS_CreateThread(SDL_Thread * thread, void *args,
int
SDL_SYS_CreateThread(SDL_Thread * thread, void *args)
{
-#ifdef _WIN32_WCE
- pfnSDL_CurrentBeginThread pfnBeginThread = NULL;
- pfnSDL_CurrentEndThread pfnEndThread = NULL;
-#else
pfnSDL_CurrentBeginThread pfnBeginThread = _beginthreadex;
pfnSDL_CurrentEndThread pfnEndThread = _endthreadex;
-#endif
#endif /* SDL_PASSED_BEGINTHREAD_ENDTHREAD */
pThreadStartParms pThreadParms =
(pThreadStartParms) SDL_malloc(sizeof(tThreadStartParms));
diff --git a/src/thread/windows/win_ce_semaphore.c b/src/thread/windows/win_ce_semaphore.c
deleted file mode 100644
index f243682b7..000000000
--- a/src/thread/windows/win_ce_semaphore.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/* win_ce_semaphore.c
-
- Copyright (c) 1998, Johnson M. Hart
- (with corrections 2001 by Rainer Loritz)
- Permission is granted for any and all use providing that this
- copyright is properly acknowledged.
- There are no assurances of suitability for any use whatsoever.
-
- WINDOWS CE: There is a collection of Windows CE functions to simulate
- semaphores using only a mutex and an event. As Windows CE events cannot
- be named, these simulated semaphores cannot be named either.
-
- Implementation notes:
- 1. All required internal data structures are allocated on the process's heap.
- 2. Where appropriate, a new error code is returned (see the header
- file), or, if the error is a Win32 error, that code is unchanged.
- 3. Notice the new handle type "SYNCHHANDLE" that has handles, counters,
- and other information. This structure will grow as new objects are added
- to this set; some members are specific to only one or two of the objects.
- 4. Mutexes are used for critical sections. These could be replaced with
- CRITICAL_SECTION objects but then this would give up the time out
- capability.
- 5. The implementation shows several interesting aspects of synchronization, some
- of which are specific to Win32 and some of which are general. These are pointed
- out in the comments as appropriate.
- 6. The wait function emulates WaitForSingleObject only. An emulation of
- WaitForMultipleObjects is much harder to implement outside the kernel,
- and it is not clear how to handle a mixture of WCE semaphores and normal
- events and mutexes.
-*/
-#include "SDL_config.h"
-
-#if SDL_THREAD_WINDOWS
-
-#include "../../core/windows/SDL_windows.h"
-
-#include "win_ce_semaphore.h"
-
-static SYNCHHANDLE CleanUp(SYNCHHANDLE hSynch, DWORD Flags);
-
-SYNCHHANDLE
-CreateSemaphoreCE(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, /* pointer to security attributes */
- LONG lInitialCount, /* initial count */
- LONG lMaximumCount, /* maximum count */
- LPCTSTR lpName)
-/* Semaphore for use with Windows CE that does not support them directly.
- Requires a counter, a mutex to protect the counter, and an
- autoreset event.
-
- Here are the rules that must always hold between the autoreset event
- and the mutex (any violation of these rules by the CE semaphore functions
- will, in all likelihood, result in a defect):
- 1. No thread can set, pulse, or reset the event,
- nor can it access any part of the SYNCHHANDLE structure,
- without first gaining ownership of the mutex.
- BUT, a thread can wait on the event without owning the mutex
- (this is clearly necessary or else the event could never be set).
- 2. The event is in a signaled state if and only if the current semaphore
- count ("CurCount") is greater than zero.
- 3. The semaphore count is always >= 0 and <= the maximum count */
-{
- SYNCHHANDLE hSynch = NULL, result = NULL;
-
- __try {
- if (lInitialCount > lMaximumCount || lMaximumCount < 0
- || lInitialCount < 0) {
- /* Bad parameters */
- SetLastError(SYNCH_ERROR);
- __leave;
- }
-
- hSynch =
- HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, SYNCH_HANDLE_SIZE);
- if (hSynch == NULL)
- __leave;
-
- hSynch->MaxCount = lMaximumCount;
- hSynch->CurCount = lInitialCount;
- hSynch->lpName = lpName;
-
- hSynch->hMutex = CreateMutex(lpSemaphoreAttributes, FALSE, NULL);
-
- WaitForSingleObject(hSynch->hMutex, INFINITE);
- /* Create the event. It is initially signaled if and only if the
- initial count is > 0 */
- hSynch->hEvent = CreateEvent(lpSemaphoreAttributes, FALSE,
- lInitialCount > 0, NULL);
- ReleaseMutex(hSynch->hMutex);
- hSynch->hSemph = NULL;
- }
- __finally {
- /* Return with the handle, or, if there was any error, return
- a null after closing any open handles and freeing any allocated memory. */
- result =
- CleanUp(hSynch, 6 /* An event and a mutex, but no semaphore. */ );
- }
-
- return result;
-}
-
-BOOL
-ReleaseSemaphoreCE(SYNCHHANDLE hSemCE, LONG cReleaseCount,
- LPLONG lpPreviousCount)
-/* Windows CE equivalent to ReleaseSemaphore. */
-{
- BOOL Result = TRUE;
-
- /* Gain access to the object to assure that the release count
- would not cause the total count to exceed the maximum. */
-
- __try {
- WaitForSingleObject(hSemCE->hMutex, INFINITE);
- /* reply only if asked to */
- if (lpPreviousCount != NULL)
- *lpPreviousCount = hSemCE->CurCount;
- if (hSemCE->CurCount + cReleaseCount > hSemCE->MaxCount
- || cReleaseCount <= 0) {
- SetLastError(SYNCH_ERROR);
- Result = FALSE;
- __leave;
- }
- hSemCE->CurCount += cReleaseCount;
-
- /* Set the autoreset event, releasing exactly one waiting thread, now or
- in the future. */
-
- SetEvent(hSemCE->hEvent);
- }
- __finally {
- ReleaseMutex(hSemCE->hMutex);
- }
-
- return Result;
-}
-
-DWORD
-WaitForSemaphoreCE(SYNCHHANDLE hSemCE, DWORD dwMilliseconds)
- /* Windows CE semaphore equivalent of WaitForSingleObject. */
-{
- DWORD WaitResult;
-
- WaitResult = WaitForSingleObject(hSemCE->hMutex, dwMilliseconds);
- if (WaitResult != WAIT_OBJECT_0 && WaitResult != WAIT_ABANDONED_0)
- return WaitResult;
- while (hSemCE->CurCount <= 0) {
-
- /* The count is 0, and the thread must wait on the event (which, by
- the rules, is currently reset) for semaphore resources to become
- available. First, of course, the mutex must be released so that another
- thread will be capable of setting the event. */
-
- ReleaseMutex(hSemCE->hMutex);
-
- /* Wait for the event to be signaled, indicating a semaphore state change.
- The event is autoreset and signaled with a SetEvent (not PulseEvent)
- so exactly one waiting thread (whether or not there is currently
- a waiting thread) is released as a result of the SetEvent. */
-
- WaitResult = WaitForSingleObject(hSemCE->hEvent, dwMilliseconds);
- if (WaitResult != WAIT_OBJECT_0)
- return WaitResult;
-
- /* This is where the properties of setting of an autoreset event is critical
- to assure that, even if the semaphore state changes between the
- preceding Wait and the next, and even if NO threads are waiting
- on the event at the time of the SetEvent, at least one thread
- will be released.
- Pulsing a manual reset event would appear to work, but it would have
- a defect which could appear if the semaphore state changed between
- the two waits. */
-
- WaitResult = WaitForSingleObject(hSemCE->hMutex, dwMilliseconds);
- if (WaitResult != WAIT_OBJECT_0 && WaitResult != WAIT_ABANDONED_0)
- return WaitResult;
-
- }
- /* The count is not zero and this thread owns the mutex. */
-
- hSemCE->CurCount--;
- /* The event is now unsignaled, BUT, the semaphore count may not be
- zero, in which case the event should be signaled again
- before releasing the mutex. */
-
- if (hSemCE->CurCount > 0)
- SetEvent(hSemCE->hEvent);
- ReleaseMutex(hSemCE->hMutex);
- return WaitResult;
-}
-
-BOOL
-CloseSynchHandle(SYNCHHANDLE hSynch)
-/* Close a synchronization handle.
- Improvement: Test for a valid handle before dereferencing the handle. */
-{
- BOOL Result = TRUE;
- if (hSynch->hEvent != NULL)
- Result = Result && CloseHandle(hSynch->hEvent);
- if (hSynch->hMutex != NULL)
- Result = Result && CloseHandle(hSynch->hMutex);
- if (hSynch->hSemph != NULL)
- Result = Result && CloseHandle(hSynch->hSemph);
- HeapFree(GetProcessHeap(), 0, hSynch);
- return (Result);
-}
-
-static SYNCHHANDLE
-CleanUp(SYNCHHANDLE hSynch, DWORD Flags)
-{ /* Prepare to return from a create of a synchronization handle.
- If there was any failure, free any allocated resources.
- "Flags" indicates which Win32 objects are required in the
- synchronization handle. */
-
- BOOL ok = TRUE;
-
- if (hSynch == NULL)
- return NULL;
- if ((Flags & 4) == 1 && (hSynch->hEvent == NULL))
- ok = FALSE;
- if ((Flags & 2) == 1 && (hSynch->hMutex == NULL))
- ok = FALSE;
- if ((Flags & 1) == 1 && (hSynch->hEvent == NULL))
- ok = FALSE;
- if (!ok) {
- CloseSynchHandle(hSynch);
- return NULL;
- }
- /* Everything worked */
- return hSynch;
-}
-
-#endif /* SDL_THREAD_WINDOWS */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/src/thread/windows/win_ce_semaphore.h b/src/thread/windows/win_ce_semaphore.h
deleted file mode 100644
index b9f7402eb..000000000
--- a/src/thread/windows/win_ce_semaphore.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* win_ce_semaphore.h - header file to go with win_ce_semaphore.c */
-
-typedef struct _SYNCH_HANDLE_STRUCTURE
-{
- HANDLE hEvent;
- HANDLE hMutex;
- HANDLE hSemph;
- LONG MaxCount;
- volatile LONG CurCount;
- LPCTSTR lpName;
-} SYNCH_HANDLE_STRUCTURE, *SYNCHHANDLE;
-
-#define SYNCH_HANDLE_SIZE sizeof (SYNCH_HANDLE_STRUCTURE)
-
- /* Error codes - all must have bit 29 set */
-#define SYNCH_ERROR 0X20000000 /* EXERCISE - REFINE THE ERROR NUMBERS */
-
-extern SYNCHHANDLE CreateSemaphoreCE(LPSECURITY_ATTRIBUTES, LONG, LONG,
- LPCTSTR);
-
-extern BOOL ReleaseSemaphoreCE(SYNCHHANDLE, LONG, LPLONG);
-extern DWORD WaitForSemaphoreCE(SYNCHHANDLE, DWORD);
-
-extern BOOL CloseSynchHandle(SYNCHHANDLE);
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/src/timer/SDL_timer.c b/src/timer/SDL_timer.c
index 69500450e..739bd4626 100755
--- a/src/timer/SDL_timer.c
+++ b/src/timer/SDL_timer.c
@@ -223,7 +223,7 @@ SDL_TimerInit(void)
data->active = SDL_TRUE;
/* !!! FIXME: this is nasty. */
-#if (defined(__WIN32__) && !defined(_WIN32_WCE)) && !defined(HAVE_LIBC)
+#if defined(__WIN32__) && !defined(HAVE_LIBC)
#undef SDL_CreateThread
data->thread = SDL_CreateThread(SDL_TimerThread, name, data, NULL, NULL);
#else
diff --git a/src/timer/wince/SDL_systimer.c b/src/timer/wince/SDL_systimer.c
deleted file mode 100755
index b9bac4ed2..000000000
--- a/src/timer/wince/SDL_systimer.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2012 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-#include "SDL_config.h"
-
-#ifdef SDL_TIMER_WINCE
-
-#include "../../core/windows/SDL_windows.h"
-
-#include "SDL_timer.h"
-
-static Uint64 start_date;
-static Uint64 start_ticks;
-
-static Uint64
-wce_ticks(void)
-{
- return ((Uint64) GetTickCount());
-}
-
-static Uint64
-wce_date(void)
-{
- union
- {
- FILETIME ftime;
- Uint64 itime;
- } ftime;
- SYSTEMTIME stime;
-
- GetSystemTime(&stime);
- SystemTimeToFileTime(&stime, &ftime.ftime);
- ftime.itime /= 10000; // Convert 100ns intervals to 1ms intervals
- // Remove ms portion, which can't be relied on
- ftime.itime -= (ftime.itime % 1000);
- return (ftime.itime);
-}
-
-static Sint32
-wce_rel_ticks(void)
-{
- return ((Sint32) (wce_ticks() - start_ticks));
-}
-
-static Sint32
-wce_rel_date(void)
-{
- return ((Sint32) (wce_date() - start_date));
-}
-
-/* Recard start-time of application for reference */
-void
-SDL_StartTicks(void)
-{
- start_date = wce_date();
- start_ticks = wce_ticks();
-}
-
-/* Return time in ms relative to when SDL was started */
-Uint32
-SDL_GetTicks()
-{
- Sint32 offset = wce_rel_date() - wce_rel_ticks();
- if ((offset < -1000) || (offset > 1000)) {
-// fprintf(stderr,"Time desync(%+d), resyncing\n",offset/1000);
- start_ticks -= offset;
- }
-
- return ((Uint32) wce_rel_ticks());
-}
-
-Uint64
-SDL_GetPerformanceCounter(void)
-{
- return SDL_GetTicks();
-}
-
-Uint64
-SDL_GetPerformanceFrequency(void)
-{
- return 1000;
-}
-
-/* Give up approx. givem milliseconds to the OS. */
-void
-SDL_Delay(Uint32 ms)
-{
- Sleep(ms);
-}
-
-#endif /* SDL_TIMER_WINCE */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/src/timer/windows/SDL_systimer.c b/src/timer/windows/SDL_systimer.c
index d721832f7..a08c9ff31 100755
--- a/src/timer/windows/SDL_systimer.c
+++ b/src/timer/windows/SDL_systimer.c
@@ -27,10 +27,6 @@
#include "SDL_timer.h"
-#ifdef _WIN32_WCE
-#error This is WinCE. Please use src/timer/wince/SDL_systimer.c instead.
-#endif
-
#define TIME_WRAP_VALUE (~(DWORD)0)
/* The first (low-resolution) ticks value of the application */
diff --git a/src/video/SDL_stretch.c b/src/video/SDL_stretch.c
index f64d47766..8c829f9b4 100755
--- a/src/video/SDL_stretch.c
+++ b/src/video/SDL_stretch.c
@@ -33,7 +33,7 @@
into the general blitting mechanism.
*/
-#if ((defined(_MFC_VER) && defined(_M_IX86)/* && !defined(_WIN32_WCE) still needed? */) || \
+#if ((defined(_MFC_VER) && defined(_M_IX86)) || \
defined(__WATCOMC__) || \
(defined(__GNUC__) && defined(__i386__))) && SDL_ASSEMBLY_ROUTINES
/* There's a bug with gcc 4.4.1 and -O2 where srcp doesn't get the correct
diff --git a/src/video/windows/SDL_windowsclipboard.c b/src/video/windows/SDL_windowsclipboard.c
index f3b6c6ec7..dcd7de80f 100755
--- a/src/video/windows/SDL_windowsclipboard.c
+++ b/src/video/windows/SDL_windowsclipboard.c
@@ -92,11 +92,7 @@ WIN_SetClipboardText(_THIS, const char *text)
WIN_SetError("Couldn't set clipboard data");
result = -1;
}
-#ifdef _WIN32_WCE
- data->clipboard_count = 0;
-#else
data->clipboard_count = GetClipboardSequenceNumber();
-#endif
}
SDL_free(tstr);
@@ -150,13 +146,7 @@ WIN_HasClipboardText(_THIS)
void
WIN_CheckClipboardUpdate(struct SDL_VideoData * data)
{
- DWORD count;
-
-#ifdef _WIN32_WCE
- count = 0;
-#else
- count = GetClipboardSequenceNumber();
-#endif
+ const DWORD count = GetClipboardSequenceNumber();
if (count != data->clipboard_count) {
if (data->clipboard_count) {
SDL_SendClipboardUpdate();
diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c
index fa1c33474..7f3537a82 100755
--- a/src/video/windows/SDL_windowsevents.c
+++ b/src/video/windows/SDL_windowsevents.c
@@ -164,12 +164,10 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_SHOWN, 0, 0);
SDL_SendWindowEvent(data->window,
SDL_WINDOWEVENT_RESTORED, 0, 0);
-#ifndef _WIN32_WCE /* WinCE misses IsZoomed() */
if (IsZoomed(hwnd)) {
SDL_SendWindowEvent(data->window,
SDL_WINDOWEVENT_MAXIMIZED, 0, 0);
}
-#endif
if (SDL_GetKeyboardFocus() != data->window) {
SDL_SetKeyboardFocus(data->window);
}
@@ -211,20 +209,6 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
case WM_MOUSEMOVE:
if(SDL_GetMouse()->relative_mode)
break;
-#ifdef _WIN32_WCE
- /* transform coords for VGA, WVGA... */
- {
- SDL_VideoData *videodata = data->videodata;
- if(videodata->CoordTransform) {
- 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;
@@ -463,16 +447,12 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
style = GetWindowLong(hwnd, GWL_STYLE);
-#ifdef _WIN32_WCE
- menu = FALSE;
-#else
/* DJM - according to the docs for GetMenu(), the
return value is undefined if hwnd is a child window.
Aparently it's too difficult for MS to check
inside their function, so I have to do it here.
*/
menu = (style & WS_CHILDWINDOW) ? FALSE : (GetMenu(hwnd) != NULL);
-#endif
AdjustWindowRectEx(&size, style, menu, 0);
w = size.right - size.left;
h = size.bottom - size.top;
diff --git a/src/video/windows/SDL_windowsframebuffer.c b/src/video/windows/SDL_windowsframebuffer.c
index cf28add64..5efab7662 100755
--- a/src/video/windows/SDL_windowsframebuffer.c
+++ b/src/video/windows/SDL_windowsframebuffer.c
@@ -24,18 +24,12 @@
#include "SDL_windowsvideo.h"
-#ifndef _WIN32_WCE
-#define HAVE_GETDIBITS
-#endif
-
int WIN_CreateWindowFramebuffer(_THIS, SDL_Window * window, Uint32 * format, void ** pixels, int *pitch)
{
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
size_t size;
LPBITMAPINFO info;
-#ifdef HAVE_GETDIBITS
HBITMAP hbm;
-#endif
/* Free the old framebuffer surface */
if (data->mdc) {
@@ -49,7 +43,6 @@ int WIN_CreateWindowFramebuffer(_THIS, SDL_Window * window, Uint32 * format, voi
size = sizeof(BITMAPINFOHEADER) + 256 * sizeof (RGBQUAD);
info = (LPBITMAPINFO)SDL_stack_alloc(Uint8, size);
-#ifdef HAVE_GETDIBITS
SDL_memset(info, 0, size);
info->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
@@ -69,7 +62,6 @@ int WIN_CreateWindowFramebuffer(_THIS, SDL_Window * window, Uint32 * format, voi
*format = SDL_MasksToPixelFormatEnum(bpp, masks[0], masks[1], masks[2], 0);
}
if (*format == SDL_PIXELFORMAT_UNKNOWN)
-#endif
{
/* We'll use RGB format for now */
*format = SDL_PIXELFORMAT_RGB888;
diff --git a/src/video/windows/SDL_windowskeyboard.c b/src/video/windows/SDL_windowskeyboard.c
index 625759ab7..182741bdd 100755
--- a/src/video/windows/SDL_windowskeyboard.c
+++ b/src/video/windows/SDL_windowskeyboard.c
@@ -22,10 +22,6 @@
#if SDL_VIDEO_DRIVER_WINDOWS
-#ifdef _WIN32_WCE
-#define SDL_DISABLE_WINDOWS_IME
-#endif
-
#include "SDL_windowsvideo.h"
#include "../../events/SDL_keyboard_c.h"
diff --git a/src/video/windows/SDL_windowsmodes.c b/src/video/windows/SDL_windowsmodes.c
index 0f1083f6a..9e844aa43 100755
--- a/src/video/windows/SDL_windowsmodes.c
+++ b/src/video/windows/SDL_windowsmodes.c
@@ -34,9 +34,7 @@ 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;
@@ -59,17 +57,7 @@ WIN_GetDisplayMode(LPCTSTR deviceName, DWORD index, SDL_DisplayMode * mode)
mode->h = devmode.dmPelsHeight;
mode->refresh_rate = devmode.dmDisplayFrequency;
mode->driverdata = data;
-#ifdef _WIN32_WCE
- /* In WinCE EnumDisplaySettings(ENUM_CURRENT_SETTINGS) doesn't take the user defined orientation
- into account but GetSystemMetrics does. */
- if (index == ENUM_CURRENT_SETTINGS) {
- mode->w = GetSystemMetrics(SM_CXSCREEN);
- mode->h = GetSystemMetrics(SM_CYSCREEN);
- }
-#endif
-/* WinCE has no GetDIBits, therefore we can't use it to get the display format */
-#ifndef _WIN32_WCE
if (index == ENUM_CURRENT_SETTINGS
&& (hdc = CreateDC(deviceName, NULL, NULL, NULL)) != NULL) {
char bmi_data[sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD)];
@@ -105,9 +93,7 @@ WIN_GetDisplayMode(LPCTSTR deviceName, DWORD index, SDL_DisplayMode * mode)
} else if (bmi->bmiHeader.biBitCount == 4) {
mode->format = SDL_PIXELFORMAT_INDEX4LSB;
}
- } else
-#endif /* _WIN32_WCE */
- {
+ } else {
/* FIXME: Can we tell what this will be? */
if ((devmode.dmFields & DM_BITSPERPEL) == DM_BITSPERPEL) {
switch (devmode.dmBitsPerPel) {
@@ -233,18 +219,11 @@ WIN_GetDisplayBounds(_THIS, SDL_VideoDisplay * display, SDL_Rect * rect)
{
SDL_DisplayModeData *data = (SDL_DisplayModeData *) display->current_mode.driverdata;
-#ifdef _WIN32_WCE
- // WINCE: DEVMODE.dmPosition not found, or may be mingw32ce bug
- rect->x = 0;
- rect->y = 0;
- rect->w = _this->windows->w;
- rect->h = _this->windows->h;
-#else
rect->x = (int)data->DeviceMode.dmPosition.x;
rect->y = (int)data->DeviceMode.dmPosition.y;
rect->w = data->DeviceMode.dmPelsWidth;
rect->h = data->DeviceMode.dmPelsHeight;
-#endif
+
return 0;
}
@@ -278,14 +257,6 @@ WIN_SetDisplayMode(_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode)
SDL_DisplayModeData *data = (SDL_DisplayModeData *) mode->driverdata;
LONG status;
-#ifdef _WIN32_WCE
- /* TODO: implement correctly.
- On my Asus MyPAL, if I execute the code below
- I get DISP_CHANGE_BADFLAGS and the Titlebar of the fullscreen window stays
- visible ... (SDL_RaiseWindow() would fix that one) */
- return 0;
-#endif
-
status =
ChangeDisplaySettingsEx(displaydata->DeviceName, &data->DeviceMode,
NULL, CDS_FULLSCREEN, NULL);
diff --git a/src/video/windows/SDL_windowsvideo.c b/src/video/windows/SDL_windowsvideo.c
index 05f85cfce..b044e6d2a 100755
--- a/src/video/windows/SDL_windowsvideo.c
+++ b/src/video/windows/SDL_windowsvideo.c
@@ -51,11 +51,6 @@ WIN_DeleteDevice(SDL_VideoDevice * device)
SDL_VideoData *data = (SDL_VideoData *) device->driverdata;
SDL_UnregisterApp();
-#ifdef _WIN32_WCE
- if(data->hAygShell) {
- SDL_UnloadObject(data->hAygShell);
- }
-#endif
if (data->userDLL) {
SDL_UnloadObject(data->userDLL);
}
@@ -88,15 +83,6 @@ WIN_CreateDevice(int devindex)
}
device->driverdata = data;
-#ifdef _WIN32_WCE
- data->hAygShell = SDL_LoadObject("\\windows\\aygshell.dll");
- if(0 == data->hAygShell)
- data->hAygShell = SDL_LoadObject("aygshell.dll");
- data->SHFullScreen = (0 != data->hAygShell ?
- (PFNSHFullScreen) SDL_LoadFunction(data->hAygShell, "SHFullScreen") : 0);
- data->CoordTransform = NULL;
-#endif
-
data->userDLL = SDL_LoadObject("USER32.DLL");
if (data->userDLL) {
data->CloseTouchInputHandle = (BOOL (WINAPI *)( HTOUCHINPUT )) SDL_LoadFunction(data->userDLL, "CloseTouchInputHandle");
diff --git a/src/video/windows/SDL_windowsvideo.h b/src/video/windows/SDL_windowsvideo.h
index 23dbc8553..2be2d2563 100755
--- a/src/video/windows/SDL_windowsvideo.h
+++ b/src/video/windows/SDL_windowsvideo.h
@@ -27,7 +27,7 @@
#include "../../core/windows/SDL_windows.h"
-#if defined(_MSC_VER) && !defined(_WIN32_WCE)
+#if defined(_MSC_VER)
#include <msctf.h>
#else
#include "SDL_msctf.h"
@@ -115,12 +115,6 @@ typedef struct SDL_VideoData
{
int render;
-#ifdef _WIN32_WCE
- void* hAygShell;
- PFNSHFullScreen SHFullScreen;
- PFCoordTransform CoordTransform;
-#endif
-
const SDL_Scancode *key_layout;
DWORD clipboard_count;
diff --git a/src/video/windows/SDL_windowswindow.c b/src/video/windows/SDL_windowswindow.c
index 4cd1e30bd..9f36c8fb2 100755
--- a/src/video/windows/SDL_windowswindow.c
+++ b/src/video/windows/SDL_windowswindow.c
@@ -324,10 +324,7 @@ WIN_SetWindowIcon(_THIS, SDL_Window * window, SDL_Surface * icon)
}
SDL_FreeSurface(surface);
-/* TODO: create the icon in WinCE (CreateIconFromResource isn't available) */
-#ifndef _WIN32_WCE
hicon = CreateIconFromResource(icon_bmp, icon_len, TRUE, 0x00030000);
-#endif
}
SDL_RWclose(dst);
SDL_stack_free(icon_bmp);
@@ -361,11 +358,7 @@ WIN_SetWindowPositionInternal(_THIS, SDL_Window * window, UINT flags)
rect.top = 0;
rect.right = window->w;
rect.bottom = window->h;
-#ifdef _WIN32_WCE
- menu = FALSE;
-#else
menu = (style & WS_CHILDWINDOW) ? FALSE : (GetMenu(hwnd) != NULL);
-#endif
AdjustWindowRectEx(&rect, style, menu, 0);
w = (rect.right - rect.left);
h = (rect.bottom - rect.top);
@@ -387,56 +380,18 @@ WIN_SetWindowSize(_THIS, SDL_Window * window)
WIN_SetWindowPositionInternal(_this, window, SWP_NOCOPYBITS | SWP_NOMOVE);
}
-#ifdef _WIN32_WCE
-void WINCE_ShowWindow(_THIS, SDL_Window* window, int visible)
-{
- SDL_WindowData* windowdata = (SDL_WindowData*) window->driverdata;
- SDL_VideoData *videodata = (SDL_VideoData *) _this->driverdata;
-
- if(visible) {
- if(window->flags & SDL_WINDOW_FULLSCREEN) {
- if(videodata->SHFullScreen)
- videodata->SHFullScreen(windowdata->hwnd, SHFS_HIDETASKBAR | SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON);
-
- ShowWindow(FindWindow(TEXT("HHTaskBar"), NULL), SW_HIDE);
- }
-
- ShowWindow(windowdata->hwnd, SW_SHOW);
- SetForegroundWindow(windowdata->hwnd);
- } else {
- ShowWindow(windowdata->hwnd, SW_HIDE);
-
- if(window->flags & SDL_WINDOW_FULLSCREEN) {
- if(videodata->SHFullScreen)
- videodata->SHFullScreen(windowdata->hwnd, SHFS_SHOWTASKBAR | SHFS_SHOWSTARTICON | SHFS_SHOWSIPBUTTON);
-
- ShowWindow(FindWindow(TEXT("HHTaskBar"), NULL), SW_SHOW);
-
- }
- }
-}
-#endif /* _WIN32_WCE */
-
void
WIN_ShowWindow(_THIS, SDL_Window * window)
{
-#ifdef _WIN32_WCE
- WINCE_ShowWindow(_this, window, 1);
-#else
HWND hwnd = ((SDL_WindowData *) window->driverdata)->hwnd;
ShowWindow(hwnd, SW_SHOW);
-#endif
}
void
WIN_HideWindow(_THIS, SDL_Window * window)
{
-#ifdef _WIN32_WCE
- WINCE_ShowWindow(_this, window, 0);
-#else
HWND hwnd = ((SDL_WindowData *) window->driverdata)->hwnd;
ShowWindow(hwnd, SW_HIDE);
-#endif
}
void
@@ -457,14 +412,6 @@ void
WIN_MaximizeWindow(_THIS, SDL_Window * window)
{
HWND hwnd = ((SDL_WindowData *) window->driverdata)->hwnd;
-
-#ifdef _WIN32_WCE
- if((window->flags & SDL_WINDOW_FULLSCREEN) && videodata->SHFullScreen) {
- SDL_VideoData *videodata = (SDL_VideoData *) _this->driverdata;
- videodata->SHFullScreen(hwnd, SHFS_HIDETASKBAR | SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON);
- }
-#endif
-
ShowWindow(hwnd, SW_MAXIMIZE);
}
@@ -472,15 +419,7 @@ void
WIN_MinimizeWindow(_THIS, SDL_Window * window)
{
HWND hwnd = ((SDL_WindowData *) window->driverdata)->hwnd;
-
ShowWindow(hwnd, SW_MINIMIZE);
-
-#ifdef _WIN32_WCE
- if((window->flags & SDL_WINDOW_FULLSCREEN) && videodata->SHFullScreen) {
- SDL_VideoData *videodata = (SDL_VideoData *) _this->driverdata;
- videodata->SHFullScreen(hwnd, SHFS_SHOWTASKBAR | SHFS_SHOWSTARTICON | SHFS_SHOWSIPBUTTON);
- }
-#endif
}
void
@@ -543,11 +482,7 @@ WIN_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display,
rect.top = 0;
rect.right = window->windowed.w;
rect.bottom = window->windowed.h;
-#ifdef _WIN32_WCE
- menu = FALSE;
-#else
menu = (style & WS_CHILDWINDOW) ? FALSE : (GetMenu(hwnd) != NULL);
-#endif
AdjustWindowRectEx(&rect, style, menu, 0);
w = (rect.right - rect.left);
h = (rect.bottom - rect.top);
@@ -561,10 +496,6 @@ WIN_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display,
int
WIN_SetWindowGammaRamp(_THIS, SDL_Window * window, const Uint16 * ramp)
{
-#ifdef _WIN32_WCE
- SDL_Unsupported();
- return -1;
-#else
SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window);
SDL_DisplayData *data = (SDL_DisplayData *) display->driverdata;
HDC hdc;
@@ -579,16 +510,11 @@ WIN_SetWindowGammaRamp(_THIS, SDL_Window * window, const Uint16 * ramp)
DeleteDC(hdc);
}
return succeeded ? 0 : -1;
-#endif
}
int
WIN_GetWindowGammaRamp(_THIS, SDL_Window * window, Uint16 * ramp)
{
-#ifdef _WIN32_WCE
- SDL_Unsupported();
- return -1;
-#else
SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window);
SDL_DisplayData *data = (SDL_DisplayData *) display->driverdata;
HDC hdc;
@@ -603,7 +529,6 @@ WIN_GetWindowGammaRamp(_THIS, SDL_Window * window, Uint16 * ramp)
DeleteDC(hdc);
}
return succeeded ? 0 : -1;
-#endif
}
void
@@ -629,9 +554,6 @@ WIN_DestroyWindow(_THIS, SDL_Window * window)
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
if (data) {
-#ifdef _WIN32_WCE
- WINCE_ShowWindow(_this, window, 0);
-#endif
ReleaseDC(data->hwnd, data->hdc);
if (data->created) {
DestroyWindow(data->hwnd);
@@ -675,7 +597,6 @@ SDL_HelperWindowCreate(void)
{
HINSTANCE hInstance = GetModuleHandle(NULL);
WNDCLASS wce;
- HWND hWndParent = NULL;
/* Make sure window isn't created twice. */
if (SDL_HelperWindow != NULL) {
@@ -695,17 +616,12 @@ SDL_HelperWindowCreate(void)
return -1;
}
-#ifndef _WIN32_WCE
- /* WinCE doesn't have HWND_MESSAGE */
- hWndParent = HWND_MESSAGE;
-#endif
-
/* Create the window. */
SDL_HelperWindow = CreateWindowEx(0, SDL_HelperWindowClassName,
SDL_HelperWindowName,
WS_OVERLAPPED, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
- CW_USEDEFAULT, hWndParent, NULL,
+ CW_USEDEFAULT, HWND_MESSAGE, NULL,
hInstance, NULL);
if (SDL_HelperWindow == NULL) {
UnregisterClass(SDL_HelperWindowClassName, hInstance);
diff --git a/src/video/windows/SDL_windowswindow.h b/src/video/windows/SDL_windowswindow.h
index bd58e2191..f02efb689 100755
--- a/src/video/windows/SDL_windowswindow.h
+++ b/src/video/windows/SDL_windowswindow.h
@@ -23,15 +23,6 @@
#ifndef _SDL_windowswindow_h
#define _SDL_windowswindow_h
-#ifdef _WIN32_WCE
-#define SHFS_SHOWTASKBAR 0x0001
-#define SHFS_HIDETASKBAR 0x0002
-#define SHFS_SHOWSIPBUTTON 0x0004
-#define SHFS_HIDESIPBUTTON 0x0008
-#define SHFS_SHOWSTARTICON 0x0010
-#define SHFS_HIDESTARTICON 0x0020
-#endif
-
typedef struct
{
SDL_Window *window;