Removed spurious carriage returns
This commit is contained in:
parent
d980c084c7
commit
7d245d0532
4 changed files with 1094 additions and 1094 deletions
1602
include/SDL_stdinc.h
1602
include/SDL_stdinc.h
File diff suppressed because it is too large
Load diff
|
@ -43,35 +43,35 @@ typedef struct
|
|||
} NDS_HapticData;
|
||||
|
||||
|
||||
void
|
||||
NDS_EZF_OpenNorWrite()
|
||||
void
|
||||
NDS_EZF_OpenNorWrite()
|
||||
{
|
||||
GBA_BUS[0x0FF0000] = 0xD200;
|
||||
GBA_BUS[0x0000000] = 0x1500;
|
||||
GBA_BUS[0x0010000] = 0xD200;
|
||||
GBA_BUS[0x0020000] = 0x1500;
|
||||
GBA_BUS[0x0E20000] = 0x1500;
|
||||
GBA_BUS[0x0FE0000] = 0x1500;
|
||||
}
void
|
||||
GBA_BUS[0x0FF0000] = 0xD200;
|
||||
GBA_BUS[0x0000000] = 0x1500;
|
||||
GBA_BUS[0x0010000] = 0xD200;
|
||||
GBA_BUS[0x0020000] = 0x1500;
|
||||
GBA_BUS[0x0E20000] = 0x1500;
|
||||
GBA_BUS[0x0FE0000] = 0x1500;
|
||||
}
void
|
||||
|
||||
NDS_EZF_CloseNorWrite()
|
||||
NDS_EZF_CloseNorWrite()
|
||||
{
|
||||
GBA_BUS[0x0FF0000] = 0xD200;
|
||||
GBA_BUS[0x0000000] = 0x1500;
|
||||
GBA_BUS[0x0010000] = 0xD200;
|
||||
GBA_BUS[0x0020000] = 0x1500;
|
||||
GBA_BUS[0x0E20000] = 0xD200;
|
||||
GBA_BUS[0x0FE0000] = 0x1500;
|
||||
}
|
||||
GBA_BUS[0x0FF0000] = 0xD200;
|
||||
GBA_BUS[0x0000000] = 0x1500;
|
||||
GBA_BUS[0x0010000] = 0xD200;
|
||||
GBA_BUS[0x0020000] = 0x1500;
|
||||
GBA_BUS[0x0E20000] = 0xD200;
|
||||
GBA_BUS[0x0FE0000] = 0x1500;
|
||||
}
|
||||
|
||||
void
|
||||
NDS_EZF_ChipReset()
|
||||
{
|
||||
GBA_BUS[0x0000] = 0x00F0;
|
||||
GBA_BUS[0x1000] = 0x00F0;
|
||||
}
uint32 NDS_EZF_IsPresent()
|
||||
GBA_BUS[0x0000] = 0x00F0;
|
||||
GBA_BUS[0x1000] = 0x00F0;
|
||||
} uint32 NDS_EZF_IsPresent()
|
||||
{
|
||||
vuint16 id1, id2;
|
||||
vuint16 id1, id2;
|
||||
|
||||
NDS_EZF_OpenNorWrite();
|
||||
|
||||
|
@ -81,35 +81,35 @@ NDS_EZF_ChipReset()
|
|||
GBA_BUS[0x1555] = 0x00AA;
|
||||
GBA_BUS[0x12AA] = 0x0055;
|
||||
GBA_BUS[0x1555] = 0x0090;
|
||||
id1 = GBA_BUS[0x0001];
|
||||
id2 = GBA_BUS[0x1001];
|
||||
if ((id1 != 0x227E) || (id2 != 0x227E)) {
|
||||
id1 = GBA_BUS[0x0001];
|
||||
id2 = GBA_BUS[0x1001];
|
||||
if ((id1 != 0x227E) || (id2 != 0x227E)) {
|
||||
NDS_EZF_CloseNorWrite();
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
id1 = GBA_BUS[0x000E];
|
||||
id2 = GBA_BUS[0x100E];
|
||||
id1 = GBA_BUS[0x000E];
|
||||
id2 = GBA_BUS[0x100E];
|
||||
|
||||
NDS_EZF_CloseNorWrite();
|
||||
if (id1 == 0x2218 && id2 == 0x2218) {
|
||||
return 1;
|
||||
if (id1 == 0x2218 && id2 == 0x2218) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
void
|
||||
NDS_EZF_SetShake(u8 pos)
|
||||
return 0;
|
||||
}
|
||||
void
|
||||
NDS_EZF_SetShake(u8 pos)
|
||||
{
|
||||
u16 data = ((pos % 3) | 0x00F0);
|
||||
GBA_BUS[0x0FF0000] = 0xD200;
|
||||
GBA_BUS[0x0000000] = 0x1500;
|
||||
GBA_BUS[0x0010000] = 0xD200;
|
||||
GBA_BUS[0x0020000] = 0x1500;
|
||||
GBA_BUS[0x0F10000] = data;
|
||||
GBA_BUS[0x0FE0000] = 0x1500;
|
||||
GBA_BUS[0x0FF0000] = 0xD200;
|
||||
GBA_BUS[0x0000000] = 0x1500;
|
||||
GBA_BUS[0x0010000] = 0xD200;
|
||||
GBA_BUS[0x0020000] = 0x1500;
|
||||
GBA_BUS[0x0F10000] = data;
|
||||
GBA_BUS[0x0FE0000] = 0x1500;
|
||||
|
||||
GBA_BUS[0] = 0x0000; /* write any value for vibration. */
|
||||
GBA_BUS[0] = 0x0002;
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
SDL_SYS_LogicError(void)
|
||||
|
|
|
@ -45,7 +45,7 @@ int
|
|||
SDL_SYS_JoystickInit(void)
|
||||
{
|
||||
SDL_numjoysticks = 1;
|
||||
return (1);
|
||||
return (1);
|
||||
}
|
||||
|
||||
/* Function to get the device-dependent name of a joystick */
|
||||
|
@ -73,7 +73,7 @@ SDL_SYS_JoystickOpen(SDL_Joystick * joystick)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Function to update the state of a joystick - called as a device poll.
|
||||
* This function shouldn't update the joystick structure directly,
|
||||
* but instead should call SDL_PrivateJoystick*() to deliver events
|
||||
|
@ -84,8 +84,8 @@ SDL_SYS_JoystickUpdate(SDL_Joystick * joystick)
|
|||
{
|
||||
u32 keysd, keysu;
|
||||
int magnitude = 16384;
|
||||
|
||||
/*scanKeys(); - this is done in PumpEvents, because touch uses it too */
|
||||
|
||||
/*scanKeys(); - this is done in PumpEvents, because touch uses it too */
|
||||
keysd = keysDown();
|
||||
keysu = keysUp();
|
||||
|
||||
|
@ -101,61 +101,61 @@ SDL_SYS_JoystickUpdate(SDL_Joystick * joystick)
|
|||
if ((keysd & KEY_RIGHT)) {
|
||||
SDL_PrivateJoystickAxis(joystick, 0, magnitude);
|
||||
}
|
||||
if ((keysu & (KEY_UP | KEY_DOWN))) {
|
||||
if ((keysu & (KEY_UP | KEY_DOWN))) {
|
||||
SDL_PrivateJoystickAxis(joystick, 1, 0);
|
||||
}
|
||||
if ((keysu & (KEY_LEFT | KEY_RIGHT))) {
|
||||
if ((keysu & (KEY_LEFT | KEY_RIGHT))) {
|
||||
SDL_PrivateJoystickAxis(joystick, 0, 0);
|
||||
}
|
||||
if ((keysd & KEY_A)) {
|
||||
if ((keysd & KEY_A)) {
|
||||
SDL_PrivateJoystickButton(joystick, 0, SDL_PRESSED);
|
||||
}
|
||||
if ((keysd & KEY_B)) {
|
||||
if ((keysd & KEY_B)) {
|
||||
SDL_PrivateJoystickButton(joystick, 1, SDL_PRESSED);
|
||||
}
|
||||
if ((keysd & KEY_X)) {
|
||||
if ((keysd & KEY_X)) {
|
||||
SDL_PrivateJoystickButton(joystick, 2, SDL_PRESSED);
|
||||
}
|
||||
if ((keysd & KEY_Y)) {
|
||||
if ((keysd & KEY_Y)) {
|
||||
SDL_PrivateJoystickButton(joystick, 3, SDL_PRESSED);
|
||||
}
|
||||
if ((keysd & KEY_L)) {
|
||||
if ((keysd & KEY_L)) {
|
||||
SDL_PrivateJoystickButton(joystick, 4, SDL_PRESSED);
|
||||
}
|
||||
if ((keysd & KEY_R)) {
|
||||
if ((keysd & KEY_R)) {
|
||||
SDL_PrivateJoystickButton(joystick, 5, SDL_PRESSED);
|
||||
}
|
||||
if ((keysd & KEY_SELECT)) {
|
||||
if ((keysd & KEY_SELECT)) {
|
||||
SDL_PrivateJoystickButton(joystick, 6, SDL_PRESSED);
|
||||
}
|
||||
if ((keysd & KEY_START)) {
|
||||
if ((keysd & KEY_START)) {
|
||||
SDL_PrivateJoystickButton(joystick, 7, SDL_PRESSED);
|
||||
}
|
||||
if ((keysu & KEY_A)) {
|
||||
if ((keysu & KEY_A)) {
|
||||
SDL_PrivateJoystickButton(joystick, 0, SDL_RELEASED);
|
||||
}
|
||||
if ((keysu & KEY_B)) {
|
||||
if ((keysu & KEY_B)) {
|
||||
SDL_PrivateJoystickButton(joystick, 1, SDL_RELEASED);
|
||||
}
|
||||
if ((keysu & KEY_X)) {
|
||||
if ((keysu & KEY_X)) {
|
||||
SDL_PrivateJoystickButton(joystick, 2, SDL_RELEASED);
|
||||
}
|
||||
if ((keysu & KEY_Y)) {
|
||||
if ((keysu & KEY_Y)) {
|
||||
SDL_PrivateJoystickButton(joystick, 3, SDL_RELEASED);
|
||||
}
|
||||
if ((keysu & KEY_L)) {
|
||||
if ((keysu & KEY_L)) {
|
||||
SDL_PrivateJoystickButton(joystick, 4, SDL_RELEASED);
|
||||
}
|
||||
if ((keysu & KEY_R)) {
|
||||
if ((keysu & KEY_R)) {
|
||||
SDL_PrivateJoystickButton(joystick, 5, SDL_RELEASED);
|
||||
}
|
||||
if ((keysu & KEY_SELECT)) {
|
||||
if ((keysu & KEY_SELECT)) {
|
||||
SDL_PrivateJoystickButton(joystick, 6, SDL_RELEASED);
|
||||
}
|
||||
if ((keysu & KEY_START)) {
|
||||
if ((keysu & KEY_START)) {
|
||||
SDL_PrivateJoystickButton(joystick, 7, SDL_RELEASED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Function to close a joystick after use */
|
||||
void
|
||||
|
|
|
@ -1,230 +1,230 @@
|
|||
/*
|
||||
SDL - Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2010 Sam Lantinga
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Sam Lantinga
|
||||
slouken@libsdl.org
|
||||
*/
|
||||
#include "SDL_config.h"
|
||||
|
||||
#include "SDL_main.h"
|
||||
#include "SDL_video.h"
|
||||
#include "SDL_mouse.h"
|
||||
#include "../SDL_sysvideo.h"
|
||||
#include "../SDL_pixels_c.h"
|
||||
|
||||
#include "SDL_win32video.h"
|
||||
#include "SDL_d3drender.h"
|
||||
#include "SDL_gdirender.h"
|
||||
|
||||
/* Initialization/Query functions */
|
||||
static int WIN_VideoInit(_THIS);
|
||||
static void WIN_VideoQuit(_THIS);
|
||||
|
||||
/* Sets an error message based on GetLastError() */
|
||||
void
|
||||
WIN_SetError(const char *prefix)
|
||||
{
|
||||
TCHAR buffer[1024];
|
||||
char *message;
|
||||
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0,
|
||||
buffer, SDL_arraysize(buffer), NULL);
|
||||
message = WIN_StringToUTF8(buffer);
|
||||
SDL_SetError("%s%s%s", prefix ? prefix : "", prefix ? ": " : "", message);
|
||||
SDL_free(message);
|
||||
}
|
||||
|
||||
/* WIN32 driver bootstrap functions */
|
||||
|
||||
static int
|
||||
WIN_Available(void)
|
||||
{
|
||||
return (1);
|
||||
}
|
||||
|
||||
static void
|
||||
WIN_DeleteDevice(SDL_VideoDevice * device)
|
||||
{
|
||||
SDL_VideoData *data = (SDL_VideoData *) device->driverdata;
|
||||
|
||||
SDL_UnregisterApp();
|
||||
#if SDL_VIDEO_RENDER_D3D
|
||||
if (data->d3d) {
|
||||
IDirect3D9_Release(data->d3d);
|
||||
FreeLibrary(data->d3dDLL);
|
||||
}
|
||||
#endif
|
||||
#if SDL_VIDEO_RENDER_DDRAW
|
||||
if (data->ddraw) {
|
||||
data->ddraw->lpVtbl->Release(data->ddraw);
|
||||
FreeLibrary(data->ddrawDLL);
|
||||
}
|
||||
#endif
|
||||
SDL_free(device->driverdata);
|
||||
SDL_free(device);
|
||||
}
|
||||
|
||||
static SDL_VideoDevice *
|
||||
WIN_CreateDevice(int devindex)
|
||||
{
|
||||
SDL_VideoDevice *device;
|
||||
SDL_VideoData *data;
|
||||
|
||||
SDL_RegisterApp(NULL, 0, NULL);
|
||||
|
||||
/* Initialize all variables that we clean on shutdown */
|
||||
device = (SDL_VideoDevice *) SDL_calloc(1, sizeof(SDL_VideoDevice));
|
||||
if (device) {
|
||||
data = (struct SDL_VideoData *) SDL_calloc(1, sizeof(SDL_VideoData));
|
||||
} else {
|
||||
data = NULL;
|
||||
}
|
||||
if (!data) {
|
||||
SDL_OutOfMemory();
|
||||
if (device) {
|
||||
SDL_free(device);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
device->driverdata = data;
|
||||
|
||||
#if SDL_VIDEO_RENDER_D3D
|
||||
data->d3dDLL = LoadLibrary(TEXT("D3D9.DLL"));
|
||||
if (data->d3dDLL) {
|
||||
IDirect3D9 *(WINAPI * D3DCreate) (UINT SDKVersion);
|
||||
|
||||
D3DCreate =
|
||||
(IDirect3D9 * (WINAPI *) (UINT)) GetProcAddress(data->d3dDLL,
|
||||
"Direct3DCreate9");
|
||||
if (D3DCreate) {
|
||||
data->d3d = D3DCreate(D3D_SDK_VERSION);
|
||||
}
|
||||
if (!data->d3d) {
|
||||
FreeLibrary(data->d3dDLL);
|
||||
data->d3dDLL = NULL;
|
||||
}
|
||||
}
|
||||
#endif /* SDL_VIDEO_RENDER_D3D */
|
||||
#if SDL_VIDEO_RENDER_DDRAW
|
||||
data->ddrawDLL = LoadLibrary(TEXT("ddraw.dll"));
|
||||
if (data->ddrawDLL) {
|
||||
IDirectDraw *(WINAPI * DDCreate) (GUID FAR * lpGUID,
|
||||
LPDIRECTDRAW FAR * lplpDD,
|
||||
IUnknown FAR * pUnkOuter);
|
||||
|
||||
DDCreate =
|
||||
(IDirectDraw *
|
||||
(WINAPI *) (GUID FAR *, LPDIRECTDRAW FAR *, IUnknown FAR *))
|
||||
GetProcAddress(data->ddrawDLL, TEXT("DirectDrawCreate"));
|
||||
if (!DDCreate || DDCreate(NULL, &data->ddraw, NULL) != DD_OK) {
|
||||
FreeLibrary(data->ddrawDLL);
|
||||
data->ddrawDLL = NULL;
|
||||
data->ddraw = NULL;
|
||||
}
|
||||
}
|
||||
#endif /* SDL_VIDEO_RENDER_DDRAW */
|
||||
|
||||
/* Set the function pointers */
|
||||
device->VideoInit = WIN_VideoInit;
|
||||
device->VideoQuit = WIN_VideoQuit;
|
||||
device->GetDisplayBounds = WIN_GetDisplayBounds;
|
||||
device->GetDisplayModes = WIN_GetDisplayModes;
|
||||
device->SetDisplayMode = WIN_SetDisplayMode;
|
||||
device->SetDisplayGammaRamp = WIN_SetDisplayGammaRamp;
|
||||
device->GetDisplayGammaRamp = WIN_GetDisplayGammaRamp;
|
||||
device->PumpEvents = WIN_PumpEvents;
|
||||
|
||||
#undef CreateWindow
|
||||
device->CreateWindow = WIN_CreateWindow;
|
||||
device->CreateWindowFrom = WIN_CreateWindowFrom;
|
||||
device->SetWindowTitle = WIN_SetWindowTitle;
|
||||
device->SetWindowIcon = WIN_SetWindowIcon;
|
||||
device->SetWindowPosition = WIN_SetWindowPosition;
|
||||
device->SetWindowSize = WIN_SetWindowSize;
|
||||
device->ShowWindow = WIN_ShowWindow;
|
||||
device->HideWindow = WIN_HideWindow;
|
||||
device->RaiseWindow = WIN_RaiseWindow;
|
||||
device->MaximizeWindow = WIN_MaximizeWindow;
|
||||
device->MinimizeWindow = WIN_MinimizeWindow;
|
||||
device->RestoreWindow = WIN_RestoreWindow;
|
||||
device->SetWindowGrab = WIN_SetWindowGrab;
|
||||
device->DestroyWindow = WIN_DestroyWindow;
|
||||
device->GetWindowWMInfo = WIN_GetWindowWMInfo;
|
||||
#ifdef SDL_VIDEO_OPENGL_WGL
|
||||
device->GL_LoadLibrary = WIN_GL_LoadLibrary;
|
||||
device->GL_GetProcAddress = WIN_GL_GetProcAddress;
|
||||
device->GL_UnloadLibrary = WIN_GL_UnloadLibrary;
|
||||
device->GL_CreateContext = WIN_GL_CreateContext;
|
||||
device->GL_MakeCurrent = WIN_GL_MakeCurrent;
|
||||
device->GL_SetSwapInterval = WIN_GL_SetSwapInterval;
|
||||
device->GL_GetSwapInterval = WIN_GL_GetSwapInterval;
|
||||
device->GL_SwapWindow = WIN_GL_SwapWindow;
|
||||
device->GL_DeleteContext = WIN_GL_DeleteContext;
|
||||
#endif
|
||||
device->StartTextInput = WIN_StartTextInput;
|
||||
device->StopTextInput = WIN_StopTextInput;
|
||||
device->SetTextInputRect = WIN_SetTextInputRect;
|
||||
|
||||
device->SetClipboardText = WIN_SetClipboardText;
|
||||
device->GetClipboardText = WIN_GetClipboardText;
|
||||
device->HasClipboardText = WIN_HasClipboardText;
|
||||
|
||||
device->free = WIN_DeleteDevice;
|
||||
|
||||
return device;
|
||||
}
|
||||
|
||||
VideoBootStrap WIN32_bootstrap = {
|
||||
"win32", "SDL Win32/64 video driver", WIN_Available, WIN_CreateDevice
|
||||
};
|
||||
|
||||
|
||||
int
|
||||
WIN_VideoInit(_THIS)
|
||||
{
|
||||
if (WIN_InitModes(_this) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
#if SDL_VIDEO_RENDER_D3D
|
||||
D3D_AddRenderDriver(_this);
|
||||
#endif
|
||||
#if SDL_VIDEO_RENDER_DDRAW
|
||||
DDRAW_AddRenderDriver(_this);
|
||||
#endif
|
||||
#if SDL_VIDEO_RENDER_GDI
|
||||
GDI_AddRenderDriver(_this);
|
||||
#endif
|
||||
#if SDL_VIDEO_RENDER_GAPI
|
||||
GAPI_AddRenderDriver(_this);
|
||||
#endif
|
||||
|
||||
WIN_InitKeyboard(_this);
|
||||
WIN_InitMouse(_this);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
WIN_VideoQuit(_THIS)
|
||||
{
|
||||
WIN_QuitModes(_this);
|
||||
WIN_QuitKeyboard(_this);
|
||||
WIN_QuitMouse(_this);
|
||||
}
|
||||
|
||||
/* vim: set ts=4 sw=4 expandtab: */
|
||||
/*
|
||||
SDL - Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2010 Sam Lantinga
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Sam Lantinga
|
||||
slouken@libsdl.org
|
||||
*/
|
||||
#include "SDL_config.h"
|
||||
|
||||
#include "SDL_main.h"
|
||||
#include "SDL_video.h"
|
||||
#include "SDL_mouse.h"
|
||||
#include "../SDL_sysvideo.h"
|
||||
#include "../SDL_pixels_c.h"
|
||||
|
||||
#include "SDL_win32video.h"
|
||||
#include "SDL_d3drender.h"
|
||||
#include "SDL_gdirender.h"
|
||||
|
||||
/* Initialization/Query functions */
|
||||
static int WIN_VideoInit(_THIS);
|
||||
static void WIN_VideoQuit(_THIS);
|
||||
|
||||
/* Sets an error message based on GetLastError() */
|
||||
void
|
||||
WIN_SetError(const char *prefix)
|
||||
{
|
||||
TCHAR buffer[1024];
|
||||
char *message;
|
||||
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0,
|
||||
buffer, SDL_arraysize(buffer), NULL);
|
||||
message = WIN_StringToUTF8(buffer);
|
||||
SDL_SetError("%s%s%s", prefix ? prefix : "", prefix ? ": " : "", message);
|
||||
SDL_free(message);
|
||||
}
|
||||
|
||||
/* WIN32 driver bootstrap functions */
|
||||
|
||||
static int
|
||||
WIN_Available(void)
|
||||
{
|
||||
return (1);
|
||||
}
|
||||
|
||||
static void
|
||||
WIN_DeleteDevice(SDL_VideoDevice * device)
|
||||
{
|
||||
SDL_VideoData *data = (SDL_VideoData *) device->driverdata;
|
||||
|
||||
SDL_UnregisterApp();
|
||||
#if SDL_VIDEO_RENDER_D3D
|
||||
if (data->d3d) {
|
||||
IDirect3D9_Release(data->d3d);
|
||||
FreeLibrary(data->d3dDLL);
|
||||
}
|
||||
#endif
|
||||
#if SDL_VIDEO_RENDER_DDRAW
|
||||
if (data->ddraw) {
|
||||
data->ddraw->lpVtbl->Release(data->ddraw);
|
||||
FreeLibrary(data->ddrawDLL);
|
||||
}
|
||||
#endif
|
||||
SDL_free(device->driverdata);
|
||||
SDL_free(device);
|
||||
}
|
||||
|
||||
static SDL_VideoDevice *
|
||||
WIN_CreateDevice(int devindex)
|
||||
{
|
||||
SDL_VideoDevice *device;
|
||||
SDL_VideoData *data;
|
||||
|
||||
SDL_RegisterApp(NULL, 0, NULL);
|
||||
|
||||
/* Initialize all variables that we clean on shutdown */
|
||||
device = (SDL_VideoDevice *) SDL_calloc(1, sizeof(SDL_VideoDevice));
|
||||
if (device) {
|
||||
data = (struct SDL_VideoData *) SDL_calloc(1, sizeof(SDL_VideoData));
|
||||
} else {
|
||||
data = NULL;
|
||||
}
|
||||
if (!data) {
|
||||
SDL_OutOfMemory();
|
||||
if (device) {
|
||||
SDL_free(device);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
device->driverdata = data;
|
||||
|
||||
#if SDL_VIDEO_RENDER_D3D
|
||||
data->d3dDLL = LoadLibrary(TEXT("D3D9.DLL"));
|
||||
if (data->d3dDLL) {
|
||||
IDirect3D9 *(WINAPI * D3DCreate) (UINT SDKVersion);
|
||||
|
||||
D3DCreate =
|
||||
(IDirect3D9 * (WINAPI *) (UINT)) GetProcAddress(data->d3dDLL,
|
||||
"Direct3DCreate9");
|
||||
if (D3DCreate) {
|
||||
data->d3d = D3DCreate(D3D_SDK_VERSION);
|
||||
}
|
||||
if (!data->d3d) {
|
||||
FreeLibrary(data->d3dDLL);
|
||||
data->d3dDLL = NULL;
|
||||
}
|
||||
}
|
||||
#endif /* SDL_VIDEO_RENDER_D3D */
|
||||
#if SDL_VIDEO_RENDER_DDRAW
|
||||
data->ddrawDLL = LoadLibrary(TEXT("ddraw.dll"));
|
||||
if (data->ddrawDLL) {
|
||||
IDirectDraw *(WINAPI * DDCreate) (GUID FAR * lpGUID,
|
||||
LPDIRECTDRAW FAR * lplpDD,
|
||||
IUnknown FAR * pUnkOuter);
|
||||
|
||||
DDCreate =
|
||||
(IDirectDraw *
|
||||
(WINAPI *) (GUID FAR *, LPDIRECTDRAW FAR *, IUnknown FAR *))
|
||||
GetProcAddress(data->ddrawDLL, TEXT("DirectDrawCreate"));
|
||||
if (!DDCreate || DDCreate(NULL, &data->ddraw, NULL) != DD_OK) {
|
||||
FreeLibrary(data->ddrawDLL);
|
||||
data->ddrawDLL = NULL;
|
||||
data->ddraw = NULL;
|
||||
}
|
||||
}
|
||||
#endif /* SDL_VIDEO_RENDER_DDRAW */
|
||||
|
||||
/* Set the function pointers */
|
||||
device->VideoInit = WIN_VideoInit;
|
||||
device->VideoQuit = WIN_VideoQuit;
|
||||
device->GetDisplayBounds = WIN_GetDisplayBounds;
|
||||
device->GetDisplayModes = WIN_GetDisplayModes;
|
||||
device->SetDisplayMode = WIN_SetDisplayMode;
|
||||
device->SetDisplayGammaRamp = WIN_SetDisplayGammaRamp;
|
||||
device->GetDisplayGammaRamp = WIN_GetDisplayGammaRamp;
|
||||
device->PumpEvents = WIN_PumpEvents;
|
||||
|
||||
#undef CreateWindow
|
||||
device->CreateWindow = WIN_CreateWindow;
|
||||
device->CreateWindowFrom = WIN_CreateWindowFrom;
|
||||
device->SetWindowTitle = WIN_SetWindowTitle;
|
||||
device->SetWindowIcon = WIN_SetWindowIcon;
|
||||
device->SetWindowPosition = WIN_SetWindowPosition;
|
||||
device->SetWindowSize = WIN_SetWindowSize;
|
||||
device->ShowWindow = WIN_ShowWindow;
|
||||
device->HideWindow = WIN_HideWindow;
|
||||
device->RaiseWindow = WIN_RaiseWindow;
|
||||
device->MaximizeWindow = WIN_MaximizeWindow;
|
||||
device->MinimizeWindow = WIN_MinimizeWindow;
|
||||
device->RestoreWindow = WIN_RestoreWindow;
|
||||
device->SetWindowGrab = WIN_SetWindowGrab;
|
||||
device->DestroyWindow = WIN_DestroyWindow;
|
||||
device->GetWindowWMInfo = WIN_GetWindowWMInfo;
|
||||
#ifdef SDL_VIDEO_OPENGL_WGL
|
||||
device->GL_LoadLibrary = WIN_GL_LoadLibrary;
|
||||
device->GL_GetProcAddress = WIN_GL_GetProcAddress;
|
||||
device->GL_UnloadLibrary = WIN_GL_UnloadLibrary;
|
||||
device->GL_CreateContext = WIN_GL_CreateContext;
|
||||
device->GL_MakeCurrent = WIN_GL_MakeCurrent;
|
||||
device->GL_SetSwapInterval = WIN_GL_SetSwapInterval;
|
||||
device->GL_GetSwapInterval = WIN_GL_GetSwapInterval;
|
||||
device->GL_SwapWindow = WIN_GL_SwapWindow;
|
||||
device->GL_DeleteContext = WIN_GL_DeleteContext;
|
||||
#endif
|
||||
device->StartTextInput = WIN_StartTextInput;
|
||||
device->StopTextInput = WIN_StopTextInput;
|
||||
device->SetTextInputRect = WIN_SetTextInputRect;
|
||||
|
||||
device->SetClipboardText = WIN_SetClipboardText;
|
||||
device->GetClipboardText = WIN_GetClipboardText;
|
||||
device->HasClipboardText = WIN_HasClipboardText;
|
||||
|
||||
device->free = WIN_DeleteDevice;
|
||||
|
||||
return device;
|
||||
}
|
||||
|
||||
VideoBootStrap WIN32_bootstrap = {
|
||||
"win32", "SDL Win32/64 video driver", WIN_Available, WIN_CreateDevice
|
||||
};
|
||||
|
||||
|
||||
int
|
||||
WIN_VideoInit(_THIS)
|
||||
{
|
||||
if (WIN_InitModes(_this) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
#if SDL_VIDEO_RENDER_D3D
|
||||
D3D_AddRenderDriver(_this);
|
||||
#endif
|
||||
#if SDL_VIDEO_RENDER_DDRAW
|
||||
DDRAW_AddRenderDriver(_this);
|
||||
#endif
|
||||
#if SDL_VIDEO_RENDER_GDI
|
||||
GDI_AddRenderDriver(_this);
|
||||
#endif
|
||||
#if SDL_VIDEO_RENDER_GAPI
|
||||
GAPI_AddRenderDriver(_this);
|
||||
#endif
|
||||
|
||||
WIN_InitKeyboard(_this);
|
||||
WIN_InitMouse(_this);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
WIN_VideoQuit(_THIS)
|
||||
{
|
||||
WIN_QuitModes(_this);
|
||||
WIN_QuitKeyboard(_this);
|
||||
WIN_QuitMouse(_this);
|
||||
}
|
||||
|
||||
/* vim: set ts=4 sw=4 expandtab: */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue