Mountain  1.0.0
Simple C++ 2D Game Framework
screen.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Mountain/core.hpp"
4 
5 #include <Maths/vector2i.hpp>
6 
9 
10 // ReSharper disable once CppInconsistentNaming
11 struct GLFWmonitor;
12 // ReSharper disable once CppInconsistentNaming
13 struct GLFWvidmode;
14 
15 namespace Mountain
16 {
18  class MOUNTAIN_API Screen
19  {
20  STATIC_CLASS(Screen)
21 
22  public:
25  static Vector2i GetPosition(int32_t screenIndex = -1);
26 
29  static Vector2i GetSize(int32_t screenIndex = -1);
30 
33  static int32_t GetRefreshRate(int32_t screenIndex = -1);
34 
35  STATIC_GETTER(int32_t, ScreenCount, m_MonitorCount)
36 
37  private:
39  static inline GLFWmonitor** m_Monitors = nullptr;
40 
42  static inline const GLFWvidmode** m_VideoModes = nullptr;
43 
44  static inline int32_t m_MonitorCount = 0;
45 
47  static void Initialize();
48 
49  static void Shutdown();
50 
51  friend class Window;
52  };
53 }
Represents a screen/monitor.
Definition: screen.hpp:18
A wrapper for the main window.
Definition: window.hpp:26
Contains all declarations of the Mountain Framework.
Definition: audio.hpp:22