Etterna 0.74.4
Loading...
Searching...
No Matches
LowLevelWindow.h
1#ifndef LOW_LEVEL_WINDOW_H
2#define LOW_LEVEL_WINDOW_H
3
4#include <set>
5
6class DisplaySpec;
7typedef std::set<DisplaySpec> DisplaySpecs;
10class RenderTarget;
14{
15 public:
16 static LowLevelWindow* Create();
17
18 virtual ~LowLevelWindow() = default;
19
20 virtual void* GetProcAddress(const std::string& s) = 0;
21
22 // Return "" if mode change was successful, otherwise an error message.
23 // bNewDeviceOut is set true if a new device was created and textures
24 // need to be reloaded.
25 virtual std::string TryVideoMode(const VideoModeParams& p,
26 bool& bNewDeviceOut) = 0;
27 virtual void GetDisplaySpecs(DisplaySpecs& out) const = 0;
28
29 virtual void LogDebugInformation() const {}
30 virtual bool IsSoftwareRenderer(std::string& /* sError */) { return false; }
31
32 virtual void SwapBuffers() = 0;
33 virtual void Update() {}
34
35 virtual const ActualVideoModeParams* GetActualVideoModeParams() const = 0;
36
37 virtual bool SupportsRenderToTexture() const { return false; }
38 virtual RenderTarget* CreateRenderTarget() { return nullptr; }
39
40 virtual bool SupportsFullscreenBorderlessWindow() const { return false; };
41
42 virtual bool SupportsThreadedRendering() { return false; }
43 virtual void BeginConcurrentRenderingMainThread() {}
44 virtual void EndConcurrentRenderingMainThread() {}
45 virtual void BeginConcurrentRendering() {}
46 virtual void EndConcurrentRendering() {}
47};
48
49#endif
The actual VideoModeParams determined by the LowLevelWindow implementation. Contains all the attribut...
Definition RageDisplay.h:207
The dimensions of the program.
Definition DisplaySpec.h:48
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
Definition RageDisplay.h:244