mirror of
https://github.com/joel16/SDL2.git
synced 2024-12-16 07:46:57 +00:00
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
activekitten.com. --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401155
This commit is contained in:
parent
91121c3104
commit
ba06fd388b
BIN
VisualCE.zip
BIN
VisualCE.zip
Binary file not shown.
@ -25,6 +25,10 @@ static char rcsid =
|
|||||||
"@(#) $Id$";
|
"@(#) $Id$";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
#define NO_SIGNAL_H
|
||||||
|
#endif
|
||||||
|
|
||||||
/* General fatal signal handling code for SDL */
|
/* General fatal signal handling code for SDL */
|
||||||
|
|
||||||
#ifdef NO_SIGNAL_H
|
#ifdef NO_SIGNAL_H
|
||||||
|
@ -31,7 +31,7 @@ static char rcsid =
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#if defined(USE_DLOPEN)
|
#if defined(USE_DLOPEN)
|
||||||
# include <dlfcn.h>
|
# include <dlfcn.h>
|
||||||
#elif defined(WIN32)
|
#elif defined(WIN32) || defined(_WIN32_WCE)
|
||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
#elif defined(__BEOS__)
|
#elif defined(__BEOS__)
|
||||||
# include <be/kernel/image.h>
|
# include <be/kernel/image.h>
|
||||||
@ -60,6 +60,30 @@ void *SDL_LoadObject(const char *sofile)
|
|||||||
/* * */
|
/* * */
|
||||||
handle = dlopen(sofile, RTLD_NOW);
|
handle = dlopen(sofile, RTLD_NOW);
|
||||||
loaderror = (char *)dlerror();
|
loaderror = (char *)dlerror();
|
||||||
|
#elif defined(_WIN32_WCE)
|
||||||
|
/* * */
|
||||||
|
char errbuf[512];
|
||||||
|
|
||||||
|
wchar_t *errbuf_t = malloc(512 * sizeof(wchar_t));
|
||||||
|
wchar_t *sofile_t = malloc((MAX_PATH+1) * sizeof(wchar_t));
|
||||||
|
|
||||||
|
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, sofile, -1, sofile_t, MAX_PATH);
|
||||||
|
handle = (void *)LoadLibrary(sofile_t);
|
||||||
|
|
||||||
|
/* Generate an error message if all loads failed */
|
||||||
|
if ( handle == NULL ) {
|
||||||
|
FormatMessage((FORMAT_MESSAGE_IGNORE_INSERTS |
|
||||||
|
FORMAT_MESSAGE_FROM_SYSTEM),
|
||||||
|
NULL, GetLastError(),
|
||||||
|
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||||
|
errbuf_t, SDL_TABLESIZE(errbuf), NULL);
|
||||||
|
WideCharToMultiByte(CP_ACP, 0, errbuf_t, -1, errbuf, 511, NULL, NULL);
|
||||||
|
loaderror = errbuf;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(sofile_t);
|
||||||
|
free(errbuf_t);
|
||||||
|
|
||||||
#elif defined(WIN32)
|
#elif defined(WIN32)
|
||||||
/* * */
|
/* * */
|
||||||
char errbuf[512];
|
char errbuf[512];
|
||||||
@ -139,6 +163,30 @@ void *SDL_LoadFunction(void *handle, const char *name)
|
|||||||
if ( symbol == NULL ) {
|
if ( symbol == NULL ) {
|
||||||
loaderror = (char *)dlerror();
|
loaderror = (char *)dlerror();
|
||||||
}
|
}
|
||||||
|
#elif defined(_WIN32_WCE)
|
||||||
|
/* * */
|
||||||
|
char errbuf[512];
|
||||||
|
int length = strlen(name);
|
||||||
|
|
||||||
|
wchar_t *name_t = malloc((length + 1) * sizeof(wchar_t));
|
||||||
|
wchar_t *errbuf_t = malloc(512 * sizeof(wchar_t));
|
||||||
|
|
||||||
|
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, name, -1, name_t, length);
|
||||||
|
|
||||||
|
symbol = (void *)GetProcAddress((HMODULE)handle, name_t);
|
||||||
|
if ( symbol == NULL ) {
|
||||||
|
FormatMessage((FORMAT_MESSAGE_IGNORE_INSERTS |
|
||||||
|
FORMAT_MESSAGE_FROM_SYSTEM),
|
||||||
|
NULL, GetLastError(),
|
||||||
|
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||||
|
errbuf_t, SDL_TABLESIZE(errbuf), NULL);
|
||||||
|
WideCharToMultiByte(CP_ACP, 0, errbuf_t, -1, errbuf, 511, NULL, NULL);
|
||||||
|
loaderror = errbuf;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(name_t);
|
||||||
|
free(errbuf_t);
|
||||||
|
|
||||||
#elif defined(WIN32)
|
#elif defined(WIN32)
|
||||||
/* * */
|
/* * */
|
||||||
char errbuf[512];
|
char errbuf[512];
|
||||||
|
@ -40,3 +40,7 @@ void SDL_SYS_CDQuit(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int SDL_CDROMInit(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
@ -101,7 +101,7 @@ CPUid by definition. But it's nice to be able to prove it. :) */
|
|||||||
:
|
:
|
||||||
: "%rax", "%rcx"
|
: "%rax", "%rcx"
|
||||||
);
|
);
|
||||||
#elif defined(_MSC_VER)
|
#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_X86_))
|
||||||
__asm {
|
__asm {
|
||||||
pushfd ; Get original EFLAGS
|
pushfd ; Get original EFLAGS
|
||||||
pop eax
|
pop eax
|
||||||
@ -140,7 +140,7 @@ static __inline__ int CPU_getCPUIDFeatures()
|
|||||||
:
|
:
|
||||||
: "%eax", "%ecx", "%edx", "%edi"
|
: "%eax", "%ecx", "%edx", "%edi"
|
||||||
);
|
);
|
||||||
#elif defined(_MSC_VER)
|
#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_X86_))
|
||||||
__asm {
|
__asm {
|
||||||
xor eax, eax ; Set up for CPUID instruction
|
xor eax, eax ; Set up for CPUID instruction
|
||||||
cpuid ; Get and save vendor ID
|
cpuid ; Get and save vendor ID
|
||||||
@ -175,7 +175,7 @@ static __inline__ int CPU_getCPUIDFeaturesExt()
|
|||||||
:
|
:
|
||||||
: "%eax", "%ecx", "%edx", "%edi"
|
: "%eax", "%ecx", "%edx", "%edi"
|
||||||
);
|
);
|
||||||
#elif defined(_MSC_VER)
|
#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_X86_))
|
||||||
__asm {
|
__asm {
|
||||||
mov eax,80000000h ; Query for extended functions
|
mov eax,80000000h ; Query for extended functions
|
||||||
cpuid ; Get extended function limit
|
cpuid ; Get extended function limit
|
||||||
|
@ -27,6 +27,10 @@ static char rcsid =
|
|||||||
|
|
||||||
/* General quit handling code for SDL */
|
/* General quit handling code for SDL */
|
||||||
|
|
||||||
|
#if defined (_WIN32_WCE)
|
||||||
|
#define NO_SIGNAL_H
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#ifndef NO_SIGNAL_H
|
#ifndef NO_SIGNAL_H
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
@ -34,6 +34,8 @@ static char rcsid =
|
|||||||
#include "SDL_sysjoystick.h"
|
#include "SDL_sysjoystick.h"
|
||||||
#include "SDL_joystick_c.h"
|
#include "SDL_joystick_c.h"
|
||||||
|
|
||||||
|
Uint8 SDL_numjoysticks = 0;
|
||||||
|
|
||||||
/* Function to scan the system for joysticks.
|
/* Function to scan the system for joysticks.
|
||||||
* This function should set SDL_numjoysticks to the number of available
|
* This function should set SDL_numjoysticks to the number of available
|
||||||
* joysticks. Joystick 0 should be the system default joystick.
|
* joysticks. Joystick 0 should be the system default joystick.
|
||||||
|
@ -40,6 +40,7 @@ static char rcsid =
|
|||||||
#include "SDL_lowvideo.h"
|
#include "SDL_lowvideo.h"
|
||||||
#include "SDL_syswm_c.h"
|
#include "SDL_syswm_c.h"
|
||||||
#include "SDL_main.h"
|
#include "SDL_main.h"
|
||||||
|
#include "SDL_loadso.h"
|
||||||
|
|
||||||
#ifdef WMMSG_DEBUG
|
#ifdef WMMSG_DEBUG
|
||||||
#include "wmmsg.h"
|
#include "wmmsg.h"
|
||||||
@ -71,13 +72,37 @@ WORD *gamma_saved = NULL;
|
|||||||
|
|
||||||
|
|
||||||
/* Functions called by the message processing function */
|
/* Functions called by the message processing function */
|
||||||
LONG
|
LONG (*HandleMessage)(_THIS, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)=NULL;
|
||||||
(*HandleMessage)(_THIS, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)=NULL;
|
|
||||||
void (*WIN_RealizePalette)(_THIS);
|
void (*WIN_RealizePalette)(_THIS);
|
||||||
void (*WIN_PaletteChanged)(_THIS, HWND window);
|
void (*WIN_PaletteChanged)(_THIS, HWND window);
|
||||||
void (*WIN_WinPAINT)(_THIS, HDC hdc);
|
void (*WIN_WinPAINT)(_THIS, HDC hdc);
|
||||||
extern void DIB_SwapGamma(_THIS);
|
extern void DIB_SwapGamma(_THIS);
|
||||||
|
|
||||||
|
#if defined(_WIN32_WCE)
|
||||||
|
|
||||||
|
// dynamically load aygshell dll because we want SDL to work on HPC and be300
|
||||||
|
HINSTANCE aygshell = NULL;
|
||||||
|
BOOL (WINAPI *SHFullScreen)(HWND hwndRequester, DWORD dwState) = 0;
|
||||||
|
|
||||||
|
#define SHFS_SHOWTASKBAR 0x0001
|
||||||
|
#define SHFS_HIDETASKBAR 0x0002
|
||||||
|
#define SHFS_SHOWSIPBUTTON 0x0004
|
||||||
|
#define SHFS_HIDESIPBUTTON 0x0008
|
||||||
|
#define SHFS_SHOWSTARTICON 0x0010
|
||||||
|
#define SHFS_HIDESTARTICON 0x0020
|
||||||
|
|
||||||
|
static void LoadAygshell(void)
|
||||||
|
{
|
||||||
|
if( !aygshell )
|
||||||
|
aygshell = SDL_LoadObject("aygshell.dll");
|
||||||
|
if( aygshell )
|
||||||
|
{
|
||||||
|
SHFullScreen = (int (WINAPI *)(struct HWND__ *,unsigned long)) SDL_LoadFunction(aygshell, "SHFullScreen");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
static void SDL_RestoreGameMode(void)
|
static void SDL_RestoreGameMode(void)
|
||||||
{
|
{
|
||||||
#ifndef NO_CHANGEDISPLAYSETTINGS
|
#ifndef NO_CHANGEDISPLAYSETTINGS
|
||||||
@ -213,6 +238,18 @@ LONG CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
|||||||
SDL_RestoreGameMode();
|
SDL_RestoreGameMode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#if defined(_WIN32_WCE)
|
||||||
|
if ( WINDIB_FULLSCREEN() )
|
||||||
|
{
|
||||||
|
LoadAygshell();
|
||||||
|
if( aygshell )
|
||||||
|
SHFullScreen(SDL_Window, SHFS_HIDESTARTICON|SHFS_HIDETASKBAR|SHFS_HIDESIPBUTTON);
|
||||||
|
else
|
||||||
|
ShowWindow(FindWindow(TEXT("HHTaskBar"),NULL),SW_HIDE);
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
posted = SDL_PrivateAppActive(1, appstate);
|
posted = SDL_PrivateAppActive(1, appstate);
|
||||||
WIN_GetKeyboardState();
|
WIN_GetKeyboardState();
|
||||||
} else {
|
} else {
|
||||||
@ -230,6 +267,14 @@ LONG CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
|||||||
}
|
}
|
||||||
if ( WINDIB_FULLSCREEN() ) {
|
if ( WINDIB_FULLSCREEN() ) {
|
||||||
SDL_RestoreDesktopMode();
|
SDL_RestoreDesktopMode();
|
||||||
|
#if defined(_WIN32_WCE)
|
||||||
|
LoadAygshell();
|
||||||
|
if( aygshell )
|
||||||
|
SHFullScreen(SDL_Window, SHFS_SHOWSTARTICON|SHFS_SHOWTASKBAR|SHFS_SHOWSIPBUTTON);
|
||||||
|
else
|
||||||
|
ShowWindow(FindWindow(TEXT("HHTaskBar"),NULL),SW_SHOW);
|
||||||
|
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
posted = SDL_PrivateAppActive(0, appstate);
|
posted = SDL_PrivateAppActive(0, appstate);
|
||||||
|
@ -36,6 +36,8 @@ static char rcsid =
|
|||||||
#include "SDL_syswm_c.h"
|
#include "SDL_syswm_c.h"
|
||||||
#include "SDL_wingl_c.h"
|
#include "SDL_wingl_c.h"
|
||||||
#include "SDL_pixels_c.h"
|
#include "SDL_pixels_c.h"
|
||||||
|
#include "SDL_loadso.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef _WIN32_WCE
|
#ifdef _WIN32_WCE
|
||||||
#define DISABLE_ICON_SUPPORT
|
#define DISABLE_ICON_SUPPORT
|
||||||
@ -48,6 +50,25 @@ static char rcsid =
|
|||||||
/* The screen icon -- needs to be freed on SDL_VideoQuit() */
|
/* The screen icon -- needs to be freed on SDL_VideoQuit() */
|
||||||
HICON screen_icn = NULL;
|
HICON screen_icn = NULL;
|
||||||
|
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
|
||||||
|
BOOL (WINAPI *CoreCatchInput)(int flag) = NULL;
|
||||||
|
int input_catched = 0;
|
||||||
|
HINSTANCE coredll = NULL;
|
||||||
|
|
||||||
|
// the same API call that gx.dll does to catch the input
|
||||||
|
void LoadInputCatchFunc()
|
||||||
|
{
|
||||||
|
coredll = SDL_LoadObject("coredll.dll");
|
||||||
|
if( coredll )
|
||||||
|
{
|
||||||
|
CoreCatchInput = (int (WINAPI *)(int)) GetProcAddress(coredll, (const unsigned short *) 1453);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Win32 icon mask semantics are different from those of SDL:
|
/* Win32 icon mask semantics are different from those of SDL:
|
||||||
SDL applies the mask to the icon and copies result to desktop.
|
SDL applies the mask to the icon and copies result to desktop.
|
||||||
Win32 applies the mask to the desktop and XORs the icon on.
|
Win32 applies the mask to the desktop and XORs the icon on.
|
||||||
@ -245,6 +266,15 @@ SDL_GrabMode WIN_GrabInput(_THIS, SDL_GrabMode mode)
|
|||||||
ClientToScreen(SDL_Window, &pt);
|
ClientToScreen(SDL_Window, &pt);
|
||||||
SetCursorPos(pt.x,pt.y);
|
SetCursorPos(pt.x,pt.y);
|
||||||
}
|
}
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
if( input_catched )
|
||||||
|
{
|
||||||
|
if( !CoreCatchInput ) LoadInputCatchFunc();
|
||||||
|
|
||||||
|
if( CoreCatchInput )
|
||||||
|
CoreCatchInput(0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
ClipCursor(&SDL_bounds);
|
ClipCursor(&SDL_bounds);
|
||||||
if ( !(SDL_cursorstate & CURSOR_VISIBLE) ) {
|
if ( !(SDL_cursorstate & CURSOR_VISIBLE) ) {
|
||||||
@ -257,6 +287,15 @@ SDL_GrabMode WIN_GrabInput(_THIS, SDL_GrabMode mode)
|
|||||||
ClientToScreen(SDL_Window, &pt);
|
ClientToScreen(SDL_Window, &pt);
|
||||||
SetCursorPos(pt.x, pt.y);
|
SetCursorPos(pt.x, pt.y);
|
||||||
}
|
}
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
if( !input_catched )
|
||||||
|
{
|
||||||
|
if( !CoreCatchInput ) LoadInputCatchFunc();
|
||||||
|
|
||||||
|
if( CoreCatchInput )
|
||||||
|
CoreCatchInput(1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return(mode);
|
return(mode);
|
||||||
}
|
}
|
||||||
|
@ -360,12 +360,25 @@ static SDL_keysym *TranslateKey(UINT vkey, UINT scancode, SDL_keysym *keysym, in
|
|||||||
|
|
||||||
int DIB_CreateWindow(_THIS)
|
int DIB_CreateWindow(_THIS)
|
||||||
{
|
{
|
||||||
|
#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
|
||||||
|
wchar_t *SDL_windowid_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CS_BYTEALIGNCLIENT
|
#ifndef CS_BYTEALIGNCLIENT
|
||||||
#define CS_BYTEALIGNCLIENT 0
|
#define CS_BYTEALIGNCLIENT 0
|
||||||
#endif
|
#endif
|
||||||
SDL_RegisterApp("SDL_app", CS_BYTEALIGNCLIENT, 0);
|
SDL_RegisterApp("SDL_app", CS_BYTEALIGNCLIENT, 0);
|
||||||
if ( SDL_windowid ) {
|
if ( SDL_windowid ) {
|
||||||
|
|
||||||
|
// wince 2.1 does not have strtol
|
||||||
|
#if defined(_WIN32_WCE) && (_WIN32_WCE < 300)
|
||||||
|
SDL_windowid_t = malloc((strlen(SDL_windowid) + 1) * sizeof(wchar_t));
|
||||||
|
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, SDL_windowid, -1, SDL_windowid_t, strlen(SDL_windowid) + 1);
|
||||||
|
SDL_Window = (HWND)wcstol(SDL_windowid_t, NULL, 0);
|
||||||
|
free(SDL_windowid_t);
|
||||||
|
#else
|
||||||
SDL_Window = (HWND)strtol(SDL_windowid, NULL, 0);
|
SDL_Window = (HWND)strtol(SDL_windowid, NULL, 0);
|
||||||
|
#endif
|
||||||
if ( SDL_Window == NULL ) {
|
if ( SDL_Window == NULL ) {
|
||||||
SDL_SetError("Couldn't get user specified window");
|
SDL_SetError("Couldn't get user specified window");
|
||||||
return(-1);
|
return(-1);
|
||||||
|
@ -29,9 +29,13 @@ static char rcsid =
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#if defined(WIN32_PLATFORM_PSPC)
|
|
||||||
#include <aygshell.h> // Add Pocket PC includes
|
|
||||||
#pragma comment( lib, "aygshell" ) // Link Pocket PC library
|
#if defined(_WIN32_WCE)
|
||||||
|
|
||||||
|
// defined and used in SDL_sysevents.c
|
||||||
|
extern HINSTANCE aygshell;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Not yet in the mingw32 cross-compile headers */
|
/* Not yet in the mingw32 cross-compile headers */
|
||||||
@ -191,7 +195,7 @@ static SDL_VideoDevice *DIB_CreateDevice(int devindex)
|
|||||||
}
|
}
|
||||||
|
|
||||||
VideoBootStrap WINDIB_bootstrap = {
|
VideoBootStrap WINDIB_bootstrap = {
|
||||||
"windib", "Win95/98/NT/2000 GDI",
|
"windib", "Win95/98/NT/2000/CE GDI",
|
||||||
DIB_Available, DIB_CreateDevice
|
DIB_Available, DIB_CreateDevice
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -389,12 +393,6 @@ static int DIB_SussScreenDepth()
|
|||||||
hdc = GetDC(SDL_Window);
|
hdc = GetDC(SDL_Window);
|
||||||
depth = GetDeviceCaps(hdc, PLANES) * GetDeviceCaps(hdc, BITSPIXEL);
|
depth = GetDeviceCaps(hdc, PLANES) * GetDeviceCaps(hdc, BITSPIXEL);
|
||||||
ReleaseDC(SDL_Window, hdc);
|
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);
|
return(depth);
|
||||||
#else
|
#else
|
||||||
int dib_size;
|
int dib_size;
|
||||||
@ -518,23 +516,18 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current,
|
|||||||
video->h = height;
|
video->h = height;
|
||||||
video->pitch = SDL_CalculatePitch(video);
|
video->pitch = SDL_CalculatePitch(video);
|
||||||
|
|
||||||
#ifdef WIN32_PLATFORM_PSPC
|
/* Small fix for WinCE/Win32 - when activating window
|
||||||
/* Stuff to hide that $#!^%#$ WinCE taskbar in fullscreen... */
|
SDL_VideoSurface is equal to zero, so activating code
|
||||||
if ( flags & SDL_FULLSCREEN ) {
|
is not called properly for fullscreen windows because
|
||||||
if ( !(prev_flags & SDL_FULLSCREEN) ) {
|
macros WINDIB_FULLSCREEN uses SDL_VideoSurface
|
||||||
SHFullScreen(SDL_Window, SHFS_HIDETASKBAR);
|
*/
|
||||||
SHFullScreen(SDL_Window, SHFS_HIDESIPBUTTON);
|
SDL_VideoSurface = video;
|
||||||
ShowWindow(FindWindow(TEXT("HHTaskBar"),NULL),SW_HIDE);
|
|
||||||
}
|
#if defined(_WIN32_WCE)
|
||||||
|
if ( flags & SDL_FULLSCREEN )
|
||||||
video->flags |= SDL_FULLSCREEN;
|
video->flags |= SDL_FULLSCREEN;
|
||||||
} else {
|
|
||||||
if ( prev_flags & SDL_FULLSCREEN ) {
|
|
||||||
SHFullScreen(SDL_Window, SHFS_SHOWTASKBAR);
|
|
||||||
SHFullScreen(SDL_Window, SHFS_SHOWSIPBUTTON);
|
|
||||||
ShowWindow(FindWindow(TEXT("HHTaskBar"),NULL),SW_SHOWNORMAL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef NO_CHANGEDISPLAYSETTINGS
|
#ifndef NO_CHANGEDISPLAYSETTINGS
|
||||||
/* Set fullscreen mode if appropriate */
|
/* Set fullscreen mode if appropriate */
|
||||||
if ( (flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) {
|
if ( (flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) {
|
||||||
@ -942,14 +935,6 @@ void DIB_VideoQuit(_THIS)
|
|||||||
if ( SDL_Window ) {
|
if ( SDL_Window ) {
|
||||||
/* Delete the screen bitmap (also frees screen->pixels) */
|
/* Delete the screen bitmap (also frees screen->pixels) */
|
||||||
if ( this->screen ) {
|
if ( this->screen ) {
|
||||||
#ifdef WIN32_PLATFORM_PSPC
|
|
||||||
if ( this->screen->flags & SDL_FULLSCREEN ) {
|
|
||||||
/* Unhide taskbar, etc. */
|
|
||||||
SHFullScreen(SDL_Window, SHFS_SHOWTASKBAR);
|
|
||||||
SHFullScreen(SDL_Window, SHFS_SHOWSIPBUTTON);
|
|
||||||
ShowWindow(FindWindow(TEXT("HHTaskBar"),NULL),SW_SHOWNORMAL);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifndef NO_CHANGEDISPLAYSETTINGS
|
#ifndef NO_CHANGEDISPLAYSETTINGS
|
||||||
if ( this->screen->flags & SDL_FULLSCREEN ) {
|
if ( this->screen->flags & SDL_FULLSCREEN ) {
|
||||||
ChangeDisplaySettings(NULL, 0);
|
ChangeDisplaySettings(NULL, 0);
|
||||||
@ -975,6 +960,17 @@ void DIB_VideoQuit(_THIS)
|
|||||||
FlushMessageQueue();
|
FlushMessageQueue();
|
||||||
|
|
||||||
SDL_Window = NULL;
|
SDL_Window = NULL;
|
||||||
|
|
||||||
|
#if defined(_WIN32_WCE)
|
||||||
|
|
||||||
|
// Unload wince aygshell library to prevent leak
|
||||||
|
if( aygshell )
|
||||||
|
{
|
||||||
|
FreeLibrary(aygshell);
|
||||||
|
aygshell = NULL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -339,12 +339,20 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Set 640x480 video mode */
|
/* Set 640x480 video mode */
|
||||||
|
#ifndef _WIN32_WCE
|
||||||
if ( (screen=SDL_SetVideoMode(640,480,video_bpp,videoflags)) == NULL ) {
|
if ( (screen=SDL_SetVideoMode(640,480,video_bpp,videoflags)) == NULL ) {
|
||||||
fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n",
|
fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n",
|
||||||
video_bpp, SDL_GetError());
|
video_bpp, SDL_GetError());
|
||||||
quit(2);
|
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
|
||||||
/* Set the surface pixels and refresh! */
|
/* Set the surface pixels and refresh! */
|
||||||
if ( SDL_LockSurface(screen) < 0 ) {
|
if ( SDL_LockSurface(screen) < 0 ) {
|
||||||
fprintf(stderr, "Couldn't lock the display surface: %s\n",
|
fprintf(stderr, "Couldn't lock the display surface: %s\n",
|
||||||
|
@ -248,11 +248,18 @@ int main(int argc, char *argv[])
|
|||||||
flip = 0;
|
flip = 0;
|
||||||
nofade = 0;
|
nofade = 0;
|
||||||
delay = 1;
|
delay = 1;
|
||||||
|
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
w = 640;
|
||||||
|
h = 320;
|
||||||
|
desired_bpp = 0;
|
||||||
|
video_flags = SDL_FULLSCREEN;
|
||||||
|
#else
|
||||||
w = 640;
|
w = 640;
|
||||||
h = 480;
|
h = 480;
|
||||||
desired_bpp = 0;
|
desired_bpp = 0;
|
||||||
video_flags = 0;
|
video_flags = 0;
|
||||||
|
#endif
|
||||||
if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) {
|
if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"Couldn't initialize SDL: %s\n", SDL_GetError());
|
"Couldn't initialize SDL: %s\n", SDL_GetError());
|
||||||
|
Loading…
Reference in New Issue
Block a user