1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
#include "../Platform/Platform.h"
#include "../Render/Render_GL_Device.h"
namespace OVR { namespace Platform { namespace OSX {
class PlatformCore : public Platform::PlatformCore
{
public:
void* Win;
void* View;
void* NsApp;
bool Quit;
int ExitCode;
int Width, Height;
MouseMode MMode;
void RunIdle();
public:
PlatformCore(Application* app, void* nsapp);
~PlatformCore();
bool SetupWindow(int w, int h);
void Exit(int exitcode);
RenderDevice* SetupGraphics(const SetupGraphicsDeviceSet& setupGraphicsDesc,
const char* gtype, const Render::RendererParams& rp);
void SetMouseMode(MouseMode mm);
void GetWindowSize(int* w, int* h) const;
void SetWindowTitle(const char*title);
void ShowWindow(bool show);
void DestroyWindow();
bool SetFullscreen(const Render::RendererParams& rp, int fullscreen);
int GetDisplayCount();
Render::DisplayId GetDisplay(int screen);
String GetContentDirectory() const;
};
}}
namespace Render { namespace GL { namespace OSX {
class RenderDevice : public Render::GL::RenderDevice
{
public:
void* Context;
RenderDevice(const Render::RendererParams& p, void* context)
: GL::RenderDevice(p), Context(context) {}
virtual void Shutdown();
virtual void Present();
virtual bool SetFullscreen(DisplayMode fullscreen);
// oswnd = X11::PlatformCore*
static Render::RenderDevice* CreateDevice(const RendererParams& rp, void* oswnd);
};
}}}}
// OVR_PLATFORM_APP_ARGS specifies the Application class to use for startup,
// providing it with startup arguments.
#define OVR_PLATFORM_APP_ARGS(AppClass, args) \
OVR::Platform::Application* OVR::Platform::Application::CreateApplication() \
{ OVR::System::Init(OVR::Log::ConfigureDefaultLog(OVR::LogMask_All)); \
return new AppClass args; } \
void OVR::Platform::Application::DestroyApplication(OVR::Platform::Application* app) \
{ OVR::Platform::PlatformCore* platform = app->pPlatform; \
delete app; delete platform; OVR::System::Destroy(); };
// OVR_PLATFORM_APP_ARGS specifies the Application startup class with no args.
#define OVR_PLATFORM_APP(AppClass) OVR_PLATFORM_APP_ARGS(AppClass, ())
|