Etterna 0.74.4
Loading...
Searching...
No Matches
LowLevelWindow_MacOSX.h
1#ifndef LOW_LEVEL_WINDOW_MACOSX_H
2#define LOW_LEVEL_WINDOW_MACOSX_H
3
4#include "LowLevelWindow.h"
5#include "RageUtil/Graphics/RageDisplay.h"
6#include <objc/objc.h>
7
8typedef const struct __CFDictionary* CFDictionaryRef;
9typedef uint32_t CGDirectDisplayID;
10
12{
13 ActualVideoModeParams m_ActualParams;
14 VideoModeParams m_CurrentParams;
15 id m_WindowDelegate;
16 id m_Context;
17 id m_BGContext;
18 CFDictionaryRef m_CurrentDisplayMode;
19 CGDirectDisplayID m_DisplayID;
20
21 public:
24 void* GetProcAddress(const std::string& s);
25 std::string TryVideoMode(const VideoModeParams& p, bool& newDeviceOut);
26 void GetDisplaySpecs(DisplaySpecs& dr) const;
27
28 void SwapBuffers();
29 void Update();
30
31 const ActualVideoModeParams* GetActualVideoModeParams() const
32 {
33 return &m_ActualParams;
34 }
35
36 bool SupportsRenderToTexture() const { return true; }
37 RenderTarget* CreateRenderTarget();
38
39 bool SupportsThreadedRendering() { return m_BGContext; }
40 void BeginConcurrentRendering();
41
42 private:
43 void ShutDownFullScreen();
44 int ChangeDisplayMode(const VideoModeParams& p);
45 void SetActualParamsFromMode(CFDictionaryRef mode);
46};
47
48#ifdef ARCH_LOW_LEVEL_WINDOW
49#error "More than one LowLevelWindow selected!"
50#endif
51#define ARCH_LOW_LEVEL_WINDOW LowLevelWindow_MacOSX
52
53#endif
The actual VideoModeParams determined by the LowLevelWindow implementation. Contains all the attribut...
Definition RageDisplay.h:207
Definition LowLevelWindow_MacOSX.h:12
Handle low-level operations that OGL 1.x doesn't give us.
Definition LowLevelWindow.h:14
Definition RageDisplay_D3D.h:113
The parameters used for the present Video Mode.
Definition RageDisplay.h:101