diff --git a/src/render/direct3d/SDL_render_d3d.c b/src/render/direct3d/SDL_render_d3d.c index d99057e3c..0248b21a0 100644 --- a/src/render/direct3d/SDL_render_d3d.c +++ b/src/render/direct3d/SDL_render_d3d.c @@ -28,11 +28,13 @@ #include "SDL_hints.h" #include "SDL_loadso.h" #include "SDL_syswm.h" +#include "SDL_system.h" #include "../SDL_sysrender.h" -#include "../../video/SDL_sysvideo.h" -#include "../../video/windows/SDL_windowsmodes.h" #include +#include "../../video/SDL_sysvideo.h" +#include "../../video/windows/SDL_windowswindow.h" + #if SDL_VIDEO_RENDER_D3D #define D3D_DEBUG_INFO #include @@ -533,72 +535,6 @@ D3D_ActivateRenderer(SDL_Renderer * renderer) return 0; } -SDL_bool -D3D_LoadDLL( void **pD3DDLL, IDirect3D9 **pDirect3D9Interface ) -{ - *pD3DDLL = SDL_LoadObject("D3D9.DLL"); - if (*pD3DDLL) { - IDirect3D9 *(WINAPI * D3DCreate) (UINT SDKVersion); - - D3DCreate = - (IDirect3D9 * (WINAPI *) (UINT)) SDL_LoadFunction(*pD3DDLL, - "Direct3DCreate9"); - if (D3DCreate) { - *pDirect3D9Interface = D3DCreate(D3D_SDK_VERSION); - } - if (!*pDirect3D9Interface) { - SDL_UnloadObject(*pD3DDLL); - *pD3DDLL = NULL; - return SDL_FALSE; - } - - return SDL_TRUE; - } else { - *pDirect3D9Interface = NULL; - return SDL_FALSE; - } -} - - -int -SDL_Direct3D9GetAdapterIndex( int displayIndex ) -{ - void *pD3DDLL; - IDirect3D9 *pD3D; - if (!D3D_LoadDLL( &pD3DDLL, &pD3D)) { - SDL_SetError("Unable to create Direct3D interface"); - return D3DADAPTER_DEFAULT; - } else { - SDL_DisplayData *pData = (SDL_DisplayData *)SDL_GetDisplayDriverData( displayIndex ); - int adapterIndex = D3DADAPTER_DEFAULT; - - if (!pData) { - SDL_SetError( "Invalid display index" ); - } else { - char *displayName = WIN_StringToUTF8( pData->DeviceName ); - unsigned int count = IDirect3D9_GetAdapterCount( pD3D ); - unsigned int i; - for (i=0; i + /* Windows CE compatibility */ #ifndef SWP_NOCOPYBITS #define SWP_NOCOPYBITS 0 @@ -683,6 +691,74 @@ void WIN_OnWindowEnter(_THIS, SDL_Window * window) #endif /* WM_MOUSELEAVE */ } +SDL_bool +D3D_LoadDLL( void **pD3DDLL, IDirect3D9 **pDirect3D9Interface ) +{ + *pD3DDLL = SDL_LoadObject("D3D9.DLL"); + if (*pD3DDLL) { + IDirect3D9 *(WINAPI * D3DCreate) (UINT SDKVersion); + + D3DCreate = + (IDirect3D9 * (WINAPI *) (UINT)) SDL_LoadFunction(*pD3DDLL, + "Direct3DCreate9"); + if (D3DCreate) { + *pDirect3D9Interface = D3DCreate(D3D_SDK_VERSION); + } + if (!*pDirect3D9Interface) { + SDL_UnloadObject(*pD3DDLL); + *pD3DDLL = NULL; + return SDL_FALSE; + } + + return SDL_TRUE; + } else { + *pDirect3D9Interface = NULL; + return SDL_FALSE; + } +} + + +int +SDL_Direct3D9GetAdapterIndex( int displayIndex ) +{ + void *pD3DDLL; + IDirect3D9 *pD3D; + if (!D3D_LoadDLL(&pD3DDLL, &pD3D)) { + SDL_SetError("Unable to create Direct3D interface"); + return D3DADAPTER_DEFAULT; + } else { + SDL_DisplayData *pData = (SDL_DisplayData *)SDL_GetDisplayDriverData(displayIndex); + int adapterIndex = D3DADAPTER_DEFAULT; + + if (!pData) { + SDL_SetError("Invalid display index"); + adapterIndex = -1; /* make sure we return something invalid */ + } else { + char *displayName = WIN_StringToUTF8(pData->DeviceName); + unsigned int count = IDirect3D9_GetAdapterCount(pD3D); + unsigned int i; + for (i=0; i