CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
hrydgard

CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!

GitHub Repository: hrydgard/ppsspp
Path: blob/master/UWP/PPSSPP_UWPMain.h
Views: 1401
1
#pragma once
2
3
#include <mutex>
4
5
#include "Common/GPU/thin3d.h"
6
#include "Common/Input/InputState.h"
7
8
#include "Common/GraphicsContext.h"
9
#include "Common/DeviceResources.h"
10
11
// Renders Direct2D and 3D content on the screen.
12
namespace UWP {
13
14
ref class App;
15
enum class HardwareButton;
16
17
class UWPGraphicsContext : public GraphicsContext {
18
public:
19
UWPGraphicsContext(std::shared_ptr<DX::DeviceResources> resources);
20
21
void Shutdown() override;
22
void Resize() override {}
23
Draw::DrawContext * GetDrawContext() override {
24
return draw_;
25
}
26
27
private:
28
Draw::DrawContext *draw_;
29
std::shared_ptr<DX::DeviceResources> resources_;
30
};
31
32
class PPSSPP_UWPMain : public DX::IDeviceNotify {
33
public:
34
PPSSPP_UWPMain(App ^app, const std::shared_ptr<DX::DeviceResources>& deviceResources);
35
~PPSSPP_UWPMain();
36
void CreateWindowSizeDependentResources();
37
void UpdateScreenState();
38
bool Render();
39
40
// IDeviceNotify
41
virtual void OnDeviceLost();
42
virtual void OnDeviceRestored();
43
44
// Various forwards from App, in simplified format.
45
// Not sure whether this abstraction is worth it.
46
void OnKeyDown(int scanCode, Windows::System::VirtualKey virtualKey, int repeatCount);
47
void OnKeyUp(int scanCode, Windows::System::VirtualKey virtualKey);
48
void OnCharacterReceived(int scanCode,unsigned int keyCode);
49
50
void OnTouchEvent(int touchEvent, int touchId, float x, float y, double timestamp);
51
52
void OnMouseWheel(float delta);
53
54
bool OnHardwareButton(HardwareButton button);
55
56
void RotateXYToDisplay(float &x, float &y);
57
58
// Save state fast if we can!
59
void OnSuspend();
60
void Close();
61
62
private:
63
App ^app_;
64
65
// Cached pointer to device resources.
66
std::shared_ptr<DX::DeviceResources> m_deviceResources;
67
68
std::unique_ptr<UWPGraphicsContext> ctx_;
69
};
70
71
}
72
73