9#include <detail/preprocessor.hpp>
18class CSScreenModeCtrl;
31 using window_handle_type =
void*;
32 using window_position_type = std::pair<int, int>;
33 using window_size_type = std::pair<int, int>;
43 borderless_window = 2,
61 bool auto_detect_best_rendering_settings;
86 return this->window_handle;
94 return this->window_position;
101 return this->window_size;
110 return this->window_full_screen;
117 return this->window_focused;
124 return this->window_focused;
149 window_handle_type window_handle;
150 int liber_unknown[4];
151 window_position_type window_position;
152 window_size_type window_size;
153 int liber_unknown[2];
154 CSScreenModeCtrl* screen_mode_ctrl;
155 int liber_unknown[8];
157 bool window_focused_previous;
158 bool window_full_screen;
160 int liber_unknown[32];
161 graphics_settings graphics_settings;
164LIBER_ASSERTS_BEGIN(CSWindow);
165LIBER_ASSERT_OFFS(0x8, window_handle);
166LIBER_ASSERT_OFFS(0x20, window_position);
167LIBER_ASSERT_OFFS(0x28, window_size);
168LIBER_ASSERT_OFFS(0x38, screen_mode_ctrl);
169LIBER_ASSERT_OFFS(0x61, window_focused_previous);
170LIBER_ASSERT_OFFS(0x62, window_full_screen);
171LIBER_ASSERT_OFFS(0x63, window_focused);
172LIBER_ASSERT_OFFS(0xe4, graphics_settings.screen_mode);
173LIBER_ASSERT_OFFS(0xe8, graphics_settings.auto_detect_best_rendering_settings);
174LIBER_ASSERT_OFFS(0xec, graphics_settings.graphics_quality);
175LIBER_ASSERT_OFFS(0xf0, graphics_settings.texture_quality);
176LIBER_ASSERT_OFFS(0xf4, graphics_settings.antialiasing_quality);
177LIBER_ASSERT_OFFS(0xf8, graphics_settings.ssao);
178LIBER_ASSERT_OFFS(0xfc, graphics_settings.depth_of_field);
179LIBER_ASSERT_OFFS(0x100, graphics_settings.motion_blur);
180LIBER_ASSERT_OFFS(0x104, graphics_settings.shadow_quality);
181LIBER_ASSERT_OFFS(0x108, graphics_settings.lighting_quality);
182LIBER_ASSERT_OFFS(0x10c, graphics_settings.effects_quality);
183LIBER_ASSERT_OFFS(0x110, graphics_settings.reflection_quality);
184LIBER_ASSERT_OFFS(0x114, graphics_settings.water_surface_quality);
185LIBER_ASSERT_OFFS(0x118, graphics_settings.shader_quality);
186LIBER_ASSERT_OFFS(0x11c, graphics_settings.volumetric_quality);
187LIBER_ASSERT_OFFS(0x120, graphics_settings.ray_tracing_quality);
188LIBER_ASSERT_OFFS(0x124, graphics_settings.global_illumination_quality);
189LIBER_ASSERT_OFFS(0x128, graphics_settings.grass_quality);
190LIBER_ASSERT_OFFS(0x128, graphics_settings.grass_quality);
The singleton responsible for managing the game window and graphics settings.
Definition window.hpp:24
graphics_settings & get_graphics_settings()
Return the current graphics quality settings.
Definition window.hpp:130
window_position_type get_window_position() const
Return a read-only view of the window position (if the game is in windowed mode)
Definition window.hpp:93
bool is_window_fullscreen() const
Check if the window is currently full screen.
Definition window.hpp:109
quality_level
The quality of a graphics_settings entry.
Definition window.hpp:50
bool is_window_focused() const
Check if the window is currently focused.
Definition window.hpp:123
const graphics_settings & get_graphics_settings() const
Return the current graphics quality settings.
Definition window.hpp:137
window_handle_type get_window_handle() const
Return a Win32 API window handle for the main Elden Ring game window.
Definition window.hpp:85
void set_graphics_settings(const graphics_settings &graphics_settings)
Set the graphics quality settings.
Definition window.hpp:144
screen_mode
The window screen mode.
Definition window.hpp:40
bool is_window_focused_previous() const
Check if the window was focused on the previous frame.
Definition window.hpp:116
window_size_type get_window_size() const
Return a read-only view of the window width and height.
Definition window.hpp:100
FD4ComponentBase implementation.
from::basic_string based on std::basic_string
FD4_SINGLETON_CLASS implementation.
Reflection implementation for a given class.
Definition component.hpp:34