Some checks failed
Run ReCI Build Test / Explore-Gitea-Actions (push) Failing after 1m27s
39 lines
1.4 KiB
C++
39 lines
1.4 KiB
C++
#pragma once
|
|
#include <vector>
|
|
#include "J3ML/J3ML.hpp"
|
|
|
|
namespace ReWindow {
|
|
class FullscreenGraphicsMode;
|
|
class Display;
|
|
}
|
|
|
|
///A given graphics mode that a display supports.
|
|
///Upon startup, We'll poll the display server for this.
|
|
class ReWindow::FullscreenGraphicsMode {
|
|
private:
|
|
u32 width;
|
|
u32 height;
|
|
short refresh_rate;
|
|
public:
|
|
FullscreenGraphicsMode() = default;
|
|
FullscreenGraphicsMode(u32 width, u32 height, short refresh_rate);
|
|
[[nodiscard]] u32 getWidth() const;
|
|
[[nodiscard]] u32 getHeight() const;
|
|
[[nodiscard]] float getRefreshRate() const;
|
|
};
|
|
|
|
///Refers to a particular monitor the user has.
|
|
class ReWindow::Display {
|
|
private:
|
|
///* The graphics mode of the display when our program was started. The primary use for this
|
|
///* is so that if the user has selected a different mode in-game we can restore the old mode upon exit. *///
|
|
FullscreenGraphicsMode default_graphics_mode{};
|
|
///All graphics modes that a given display supports.
|
|
std::vector<FullscreenGraphicsMode> graphics_modes;
|
|
public:
|
|
Display() = default;
|
|
Display(const FullscreenGraphicsMode& default_graphics_mode, const std::vector<FullscreenGraphicsMode>& graphics_modes);
|
|
FullscreenGraphicsMode getDefaultGraphicsMode();
|
|
std::vector<FullscreenGraphicsMode> getGraphicsModes();
|
|
static std::vector<Display> getDisplaysFromWindowManager();
|
|
}; |