WinRT: moved the WinRT SDL_VideoDevice out of SDL_WinRTApp

This was done to help pave the way for XAML support.
This commit is contained in:
David Ludwig 2013-08-27 12:13:45 -04:00
parent 253b9aae89
commit 6dc2a410eb
3 changed files with 14 additions and 14 deletions

View File

@ -40,6 +40,7 @@ extern "C" {
#include "SDL_winrtapp.h"
extern SDL_Window * WINRT_GlobalSDLWindow;
extern SDL_VideoDevice * WINRT_GlobalSDLVideoDevice;
// Compile-time debugging options:
@ -145,8 +146,7 @@ static void WINRT_SetDisplayOrientationsPreference(void *userdata, const char *n
SDL_WinRTApp::SDL_WinRTApp() :
m_windowClosed(false),
m_windowVisible(true),
m_sdlVideoDevice(NULL)
m_windowVisible(true)
{
}
@ -306,9 +306,9 @@ void SDL_WinRTApp::OnWindowSizeChanged(CoreWindow^ sender, WindowSizeChangedEven
// size, and the Direct3D 11.1 renderer wouldn't resize its swap
// chain.
SDL_DisplayMode resizedDisplayMode = CalcCurrentDisplayMode();
m_sdlVideoDevice->displays[0].current_mode = resizedDisplayMode;
m_sdlVideoDevice->displays[0].desktop_mode = resizedDisplayMode;
m_sdlVideoDevice->displays[0].display_modes[0] = resizedDisplayMode;
WINRT_GlobalSDLVideoDevice->displays[0].current_mode = resizedDisplayMode;
WINRT_GlobalSDLVideoDevice->displays[0].desktop_mode = resizedDisplayMode;
WINRT_GlobalSDLVideoDevice->displays[0].display_modes[0] = resizedDisplayMode;
// Send the window-resize event to the rest of SDL, and to apps:
const int windowWidth = (int) ceil(args->Size.Width);
@ -487,8 +487,3 @@ SDL_DisplayMode SDL_WinRTApp::CalcCurrentDisplayMode()
return mode;
}
void SDL_WinRTApp::SetSDLVideoDevice(const SDL_VideoDevice * videoDevice)
{
m_sdlVideoDevice = videoDevice;
}

View File

@ -16,7 +16,6 @@ internal:
// SDL-specific methods
SDL_DisplayMode CalcCurrentDisplayMode();
void PumpEvents();
void SetSDLVideoDevice(const SDL_VideoDevice * videoDevice);
Windows::Foundation::Point TransformCursor(Windows::Foundation::Point rawPosition);
protected:
@ -40,5 +39,4 @@ protected:
private:
bool m_windowClosed;
bool m_windowVisible;
const SDL_VideoDevice* m_sdlVideoDevice;
};

View File

@ -79,6 +79,11 @@ struct SDL_WindowData
SDL_Window * WINRT_GlobalSDLWindow = NULL;
/* The global, WinRT, video device.
*/
SDL_VideoDevice * WINRT_GlobalSDLVideoDevice = NULL;
/* WinRT driver bootstrap functions */
static int
@ -90,7 +95,9 @@ WINRT_Available(void)
static void
WINRT_DeleteDevice(SDL_VideoDevice * device)
{
SDL_WinRTGlobalApp->SetSDLVideoDevice(NULL);
if (device == WINRT_GlobalSDLVideoDevice) {
WINRT_GlobalSDLVideoDevice = NULL;
}
SDL_free(device);
}
@ -118,7 +125,7 @@ WINRT_CreateDevice(int devindex)
device->PumpEvents = WINRT_PumpEvents;
device->GetWindowWMInfo = WINRT_GetWindowWMInfo;
device->free = WINRT_DeleteDevice;
SDL_WinRTGlobalApp->SetSDLVideoDevice(device);
WINRT_GlobalSDLVideoDevice = NULL;
return device;
}