This repository has been archived by the owner on Feb 11, 2021. It is now read-only.
/
SDL_WinRTApp.h
64 lines (55 loc) · 2.9 KB
1
2
3
#pragma once
#include "SDLmain_WinRT_common.h"
4
#include "SDL_winrtvideo.h"
5
#include "SDL_winrtrenderer.h"
6
7
8
#include <vector>
using namespace Windows::UI::Core;
9
10
11
12
ref class SDL_WinRTApp sealed : public Windows::ApplicationModel::Core::IFrameworkView
{
public:
13
14
15
16
17
18
19
20
SDL_WinRTApp();
// IFrameworkView Methods.
virtual void Initialize(Windows::ApplicationModel::Core::CoreApplicationView^ applicationView);
virtual void SetWindow(Windows::UI::Core::CoreWindow^ window);
virtual void Load(Platform::String^ entryPoint);
virtual void Run();
virtual void Uninitialize();
21
22
23
24
internal:
// SDL-specific methods
SDL_DisplayMode GetMainDisplayMode();
25
void PumpEvents();
26
const SDL_WindowData * GetSDLWindowData() const;
27
bool HasSDLWindowData() const;
28
void SetRelativeMouseMode(bool enable);
29
void SetSDLWindowData(const SDL_WindowData * windowData);
30
void UpdateWindowFramebuffer(SDL_Surface * surface, SDL_Rect * rects, int numrects);
31
void ResizeMainTexture(int w, int h);
32
Windows::Foundation::Point TransformCursor(Windows::Foundation::Point rawPosition);
33
34
protected:
35
36
37
38
39
40
41
42
43
44
45
// Event Handlers.
void OnWindowSizeChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::WindowSizeChangedEventArgs^ args);
void OnLogicalDpiChanged(Platform::Object^ sender);
void OnActivated(Windows::ApplicationModel::Core::CoreApplicationView^ applicationView, Windows::ApplicationModel::Activation::IActivatedEventArgs^ args);
void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ args);
void OnResuming(Platform::Object^ sender, Platform::Object^ args);
void OnWindowClosed(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::CoreWindowEventArgs^ args);
void OnVisibilityChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::VisibilityChangedEventArgs^ args);
void OnPointerPressed(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args);
void OnPointerReleased(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args);
void OnPointerMoved(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args);
46
void OnMouseMoved(Windows::Devices::Input::MouseDevice^ mouseDevice, Windows::Devices::Input::MouseEventArgs^ args);
47
48
void OnKeyDown(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::KeyEventArgs^ args);
void OnKeyUp(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::KeyEventArgs^ args);
49
50
internal:
51
SDL_winrtrenderer^ m_renderer;
52
53
private:
54
55
bool m_windowClosed;
bool m_windowVisible;
56
const SDL_WindowData* m_sdlWindowData;
57
bool m_useRelativeMouseMode;
58
59
60
61
62
};
ref class Direct3DApplicationSource sealed : Windows::ApplicationModel::Core::IFrameworkViewSource
{
public:
63
virtual Windows::ApplicationModel::Core::IFrameworkView^ CreateView();
64
};