mirror of
https://github.com/godotengine/godot.git
synced 2024-11-21 19:42:43 +00:00
Merge pull request #71663 from bruvzg/init_pos_x
Reorganize main and sub-window initial position properties.
This commit is contained in:
commit
cd031fd31a
@ -1232,12 +1232,9 @@ ProjectSettings::ProjectSettings() {
|
||||
singleton = this;
|
||||
|
||||
GLOBAL_DEF_BASIC("application/config/name", "");
|
||||
GLOBAL_DEF_BASIC("application/config/name_localized", Dictionary());
|
||||
custom_prop_info["application/config/name_localized"] = PropertyInfo(Variant::DICTIONARY, "application/config/name_localized", PROPERTY_HINT_LOCALIZABLE_STRING);
|
||||
GLOBAL_DEF_BASIC("application/config/description", "");
|
||||
custom_prop_info["application/config/description"] = PropertyInfo(Variant::STRING, "application/config/description", PROPERTY_HINT_MULTILINE_TEXT);
|
||||
GLOBAL_DEF_BASIC("application/run/main_scene", "");
|
||||
custom_prop_info["application/run/main_scene"] = PropertyInfo(Variant::STRING, "application/run/main_scene", PROPERTY_HINT_FILE, "*.tscn,*.scn,*.res");
|
||||
GLOBAL_DEF_BASIC(PropertyInfo(Variant::DICTIONARY, "application/config/name_localized", PROPERTY_HINT_LOCALIZABLE_STRING), Dictionary());
|
||||
GLOBAL_DEF_BASIC(PropertyInfo(Variant::STRING, "application/config/description", PROPERTY_HINT_MULTILINE_TEXT), "");
|
||||
GLOBAL_DEF_BASIC(PropertyInfo(Variant::STRING, "application/run/main_scene", PROPERTY_HINT_FILE, "*.tscn,*.scn,*.res"), "");
|
||||
GLOBAL_DEF("application/run/disable_stdout", false);
|
||||
GLOBAL_DEF("application/run/disable_stderr", false);
|
||||
GLOBAL_DEF_RST("application/config/use_hidden_project_data_directory", true);
|
||||
@ -1249,22 +1246,15 @@ ProjectSettings::ProjectSettings() {
|
||||
// - Have a 16:9 aspect ratio,
|
||||
// - Have both dimensions divisible by 8 to better play along with video recording,
|
||||
// - Be displayable correctly in windowed mode on a 1366×768 display (tested on Windows 10 with default settings).
|
||||
GLOBAL_DEF_BASIC("display/window/size/viewport_width", 1152);
|
||||
custom_prop_info["display/window/size/viewport_width"] = PropertyInfo(Variant::INT, "display/window/size/viewport_width", PROPERTY_HINT_RANGE, "0,7680,1,or_greater"); // 8K resolution
|
||||
GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "display/window/size/viewport_width", PROPERTY_HINT_RANGE, "0,7680,1,or_greater"), 1152); // 8K resolution
|
||||
GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "display/window/size/viewport_height", PROPERTY_HINT_RANGE, "0,4320,1,or_greater"), 648); // 8K resolution
|
||||
|
||||
GLOBAL_DEF_BASIC("display/window/size/viewport_height", 648);
|
||||
custom_prop_info["display/window/size/viewport_height"] = PropertyInfo(Variant::INT, "display/window/size/viewport_height", PROPERTY_HINT_RANGE, "0,4320,1,or_greater"); // 8K resolution
|
||||
|
||||
GLOBAL_DEF_BASIC("display/window/size/mode", 0);
|
||||
custom_prop_info["display/window/size/mode"] = PropertyInfo(Variant::INT, "display/window/size/mode", PROPERTY_HINT_ENUM, "Windowed,Minimized,Maximized,Fullscreen,Exclusive Fullscreen");
|
||||
GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "display/window/size/mode", PROPERTY_HINT_ENUM, "Windowed,Minimized,Maximized,Fullscreen,Exclusive Fullscreen"), 0);
|
||||
|
||||
// Keep the enum values in sync with the `DisplayServer::SCREEN_` enum.
|
||||
GLOBAL_DEF_BASIC("display/window/size/initial_screen", -2);
|
||||
String screen_hints = "Primary Monitor:-2"; // Note: Main Window Monitor:-1 is not used for the main window, skip it.
|
||||
for (int i = 0; i < 64; i++) {
|
||||
screen_hints += ",Monitor " + itos(i + 1) + ":" + itos(i);
|
||||
}
|
||||
custom_prop_info["display/window/size/initial_screen"] = PropertyInfo(Variant::INT, "display/window/size/initial_screen", PROPERTY_HINT_ENUM, screen_hints);
|
||||
GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "display/window/size/initial_position_type", PROPERTY_HINT_ENUM, "Absolute,Primary Screen Center,Other Screen Center"), 1);
|
||||
GLOBAL_DEF_BASIC(PropertyInfo(Variant::VECTOR2I, "display/window/size/initial_position"), Vector2i());
|
||||
GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "display/window/size/initial_screen", PROPERTY_HINT_RANGE, "0,64,1,or_greater"), 0);
|
||||
|
||||
GLOBAL_DEF_BASIC("display/window/size/resizable", true);
|
||||
GLOBAL_DEF_BASIC("display/window/size/borderless", false);
|
||||
@ -1273,20 +1263,15 @@ ProjectSettings::ProjectSettings() {
|
||||
GLOBAL_DEF("display/window/size/extend_to_title", false);
|
||||
GLOBAL_DEF("display/window/size/no_focus", false);
|
||||
|
||||
GLOBAL_DEF("display/window/size/window_width_override", 0);
|
||||
custom_prop_info["display/window/size/window_width_override"] = PropertyInfo(Variant::INT, "display/window/size/window_width_override", PROPERTY_HINT_RANGE, "0,7680,1,or_greater"); // 8K resolution
|
||||
GLOBAL_DEF("display/window/size/window_height_override", 0);
|
||||
custom_prop_info["display/window/size/window_height_override"] = PropertyInfo(Variant::INT, "display/window/size/window_height_override", PROPERTY_HINT_RANGE, "0,4320,1,or_greater"); // 8K resolution
|
||||
GLOBAL_DEF(PropertyInfo(Variant::INT, "display/window/size/window_width_override", PROPERTY_HINT_RANGE, "0,7680,1,or_greater"), 0); // 8K resolution
|
||||
GLOBAL_DEF(PropertyInfo(Variant::INT, "display/window/size/window_height_override", PROPERTY_HINT_RANGE, "0,4320,1,or_greater"), 0); // 8K resolution
|
||||
|
||||
GLOBAL_DEF("display/window/energy_saving/keep_screen_on", true);
|
||||
GLOBAL_DEF("display/window/energy_saving/keep_screen_on.editor", false);
|
||||
|
||||
GLOBAL_DEF_BASIC("audio/buses/default_bus_layout", "res://default_bus_layout.tres");
|
||||
custom_prop_info["audio/buses/default_bus_layout"] = PropertyInfo(Variant::STRING, "audio/buses/default_bus_layout", PROPERTY_HINT_FILE, "*.tres");
|
||||
GLOBAL_DEF_RST("audio/general/2d_panning_strength", 0.5f);
|
||||
custom_prop_info["audio/general/2d_panning_strength"] = PropertyInfo(Variant::FLOAT, "audio/general/2d_panning_strength", PROPERTY_HINT_RANGE, "0,2,0.01");
|
||||
GLOBAL_DEF_RST("audio/general/3d_panning_strength", 0.5f);
|
||||
custom_prop_info["audio/general/3d_panning_strength"] = PropertyInfo(Variant::FLOAT, "audio/general/3d_panning_strength", PROPERTY_HINT_RANGE, "0,2,0.01");
|
||||
GLOBAL_DEF_BASIC(PropertyInfo(Variant::STRING, "audio/buses/default_bus_layout", PROPERTY_HINT_FILE, "*.tres"), "res://default_bus_layout.tres");
|
||||
GLOBAL_DEF_RST(PropertyInfo(Variant::FLOAT, "audio/general/2d_panning_strength", PROPERTY_HINT_RANGE, "0,2,0.01"), 0.5f);
|
||||
GLOBAL_DEF_RST(PropertyInfo(Variant::FLOAT, "audio/general/3d_panning_strength", PROPERTY_HINT_RANGE, "0,2,0.01"), 0.5f);
|
||||
|
||||
PackedStringArray extensions;
|
||||
extensions.push_back("gd");
|
||||
@ -1297,11 +1282,9 @@ ProjectSettings::ProjectSettings() {
|
||||
|
||||
GLOBAL_DEF("editor/run/main_run_args", "");
|
||||
|
||||
GLOBAL_DEF("editor/script/search_in_file_extensions", extensions);
|
||||
custom_prop_info["editor/script/search_in_file_extensions"] = PropertyInfo(Variant::PACKED_STRING_ARRAY, "editor/script/search_in_file_extensions");
|
||||
GLOBAL_DEF(PropertyInfo(Variant::PACKED_STRING_ARRAY, "editor/script/search_in_file_extensions"), extensions);
|
||||
|
||||
GLOBAL_DEF("editor/script/templates_search_path", "res://script_templates");
|
||||
custom_prop_info["editor/script/templates_search_path"] = PropertyInfo(Variant::STRING, "editor/script/templates_search_path", PROPERTY_HINT_DIR);
|
||||
GLOBAL_DEF(PropertyInfo(Variant::STRING, "editor/script/templates_search_path", PROPERTY_HINT_DIR), "res://script_templates");
|
||||
|
||||
_add_builtin_input_map();
|
||||
|
||||
@ -1313,21 +1296,13 @@ ProjectSettings::ProjectSettings() {
|
||||
GLOBAL_DEF("physics/2d/run_on_separate_thread", false);
|
||||
GLOBAL_DEF("physics/3d/run_on_separate_thread", false);
|
||||
|
||||
GLOBAL_DEF("debug/settings/profiler/max_functions", 16384);
|
||||
custom_prop_info["debug/settings/profiler/max_functions"] = PropertyInfo(Variant::INT, "debug/settings/profiler/max_functions", PROPERTY_HINT_RANGE, "128,65535,1");
|
||||
GLOBAL_DEF(PropertyInfo(Variant::INT, "debug/settings/profiler/max_functions", PROPERTY_HINT_RANGE, "128,65535,1"), 16384);
|
||||
|
||||
GLOBAL_DEF("compression/formats/zstd/long_distance_matching", Compression::zstd_long_distance_matching);
|
||||
custom_prop_info["compression/formats/zstd/long_distance_matching"] = PropertyInfo(Variant::BOOL, "compression/formats/zstd/long_distance_matching");
|
||||
GLOBAL_DEF("compression/formats/zstd/compression_level", Compression::zstd_level);
|
||||
custom_prop_info["compression/formats/zstd/compression_level"] = PropertyInfo(Variant::INT, "compression/formats/zstd/compression_level", PROPERTY_HINT_RANGE, "1,22,1");
|
||||
GLOBAL_DEF("compression/formats/zstd/window_log_size", Compression::zstd_window_log_size);
|
||||
custom_prop_info["compression/formats/zstd/window_log_size"] = PropertyInfo(Variant::INT, "compression/formats/zstd/window_log_size", PROPERTY_HINT_RANGE, "10,30,1");
|
||||
|
||||
GLOBAL_DEF("compression/formats/zlib/compression_level", Compression::zlib_level);
|
||||
custom_prop_info["compression/formats/zlib/compression_level"] = PropertyInfo(Variant::INT, "compression/formats/zlib/compression_level", PROPERTY_HINT_RANGE, "-1,9,1");
|
||||
|
||||
GLOBAL_DEF("compression/formats/gzip/compression_level", Compression::gzip_level);
|
||||
custom_prop_info["compression/formats/gzip/compression_level"] = PropertyInfo(Variant::INT, "compression/formats/gzip/compression_level", PROPERTY_HINT_RANGE, "-1,9,1");
|
||||
GLOBAL_DEF(PropertyInfo(Variant::BOOL, "compression/formats/zstd/long_distance_matching"), Compression::zstd_long_distance_matching);
|
||||
GLOBAL_DEF(PropertyInfo(Variant::INT, "compression/formats/zstd/compression_level", PROPERTY_HINT_RANGE, "1,22,1"), Compression::zstd_level);
|
||||
GLOBAL_DEF(PropertyInfo(Variant::INT, "compression/formats/zstd/window_log_size", PROPERTY_HINT_RANGE, "10,30,1"), Compression::zstd_window_log_size);
|
||||
GLOBAL_DEF(PropertyInfo(Variant::INT, "compression/formats/zlib/compression_level", PROPERTY_HINT_RANGE, "-1,9,1"), Compression::zlib_level);
|
||||
GLOBAL_DEF(PropertyInfo(Variant::INT, "compression/formats/gzip/compression_level", PROPERTY_HINT_RANGE, "-1,9,1"), Compression::gzip_level);
|
||||
|
||||
GLOBAL_DEF("debug/settings/crash_handler/message",
|
||||
String("Please include this when reporting the bug to the project developer."));
|
||||
|
@ -615,8 +615,17 @@
|
||||
Main window content is expanded to the full size of the window. Unlike a borderless window, the frame is left intact and can be used to resize the window, and the title bar is transparent, but has minimize/maximize/close buttons.
|
||||
[b]Note:[/b] This setting is implemented only on macOS.
|
||||
</member>
|
||||
<member name="display/window/size/initial_screen" type="int" setter="" getter="" default="-2">
|
||||
Main window initial screen.
|
||||
<member name="display/window/size/initial_position" type="Vector2i" setter="" getter="" default="Vector2i(0, 0)">
|
||||
Main window initial position (in virtual desktop coordinates), this settings is used only if [member display/window/size/initial_position_type] is set to "Absolute" ([code]0[/code]).
|
||||
</member>
|
||||
<member name="display/window/size/initial_position_type" type="int" setter="" getter="" default="1">
|
||||
Main window initial position.
|
||||
[code]0[/code] - "Absolute", [member display/window/size/initial_position] is used to set window position.
|
||||
[code]1[/code] - "Primary Screen Center".
|
||||
[code]2[/code] - "Other Screen Center", [member display/window/size/initial_screen] is used to set window position.
|
||||
</member>
|
||||
<member name="display/window/size/initial_screen" type="int" setter="" getter="" default="0">
|
||||
Main window initial screen, this settings is used only if [member display/window/size/initial_position_type] is set to "Other Screen Center" ([code]2[/code]).
|
||||
</member>
|
||||
<member name="display/window/size/mode" type="int" setter="" getter="" default="0">
|
||||
Main window mode. See [enum DisplayServer.WindowMode] for possible values and how each mode behaves.
|
||||
|
@ -771,8 +771,16 @@
|
||||
Right-to-left layout direction.
|
||||
</constant>
|
||||
<constant name="WINDOW_INITIAL_POSITION_ABSOLUTE" value="0" enum="WindowInitialPosition">
|
||||
Initial window position is determined by [member position].
|
||||
</constant>
|
||||
<constant name="WINDOW_INITIAL_POSITION_CENTER_SCREEN" value="1" enum="WindowInitialPosition">
|
||||
<constant name="WINDOW_INITIAL_POSITION_CENTER_PRIMARY_SCREEN" value="1" enum="WindowInitialPosition">
|
||||
Initial window position is a center of the primary screen.
|
||||
</constant>
|
||||
<constant name="WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN" value="2" enum="WindowInitialPosition">
|
||||
Initial window position is a center of the main window screen.
|
||||
</constant>
|
||||
<constant name="WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN" value="3" enum="WindowInitialPosition">
|
||||
Initial window position is a center of [member current_screen] screen.
|
||||
</constant>
|
||||
</constants>
|
||||
<theme_items>
|
||||
|
@ -185,6 +185,7 @@ static bool init_maximized = false;
|
||||
static bool init_windowed = false;
|
||||
static bool init_always_on_top = false;
|
||||
static bool init_use_custom_pos = false;
|
||||
static bool init_use_custom_screen = false;
|
||||
static Vector2 init_custom_pos;
|
||||
|
||||
// Debug
|
||||
@ -964,6 +965,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
|
||||
|
||||
if (I->next()) {
|
||||
init_screen = I->next()->get().to_int();
|
||||
init_use_custom_screen = true;
|
||||
|
||||
N = I->next()->next();
|
||||
} else {
|
||||
@ -1669,7 +1671,23 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
|
||||
window_flags |= DisplayServer::WINDOW_FLAG_NO_FOCUS_BIT;
|
||||
}
|
||||
window_mode = (DisplayServer::WindowMode)(GLOBAL_GET("display/window/size/mode").operator int());
|
||||
init_screen = GLOBAL_GET("display/window/size/initial_screen").operator int();
|
||||
int initial_position_type = GLOBAL_GET("display/window/size/initial_position_type").operator int();
|
||||
if (initial_position_type == 0) {
|
||||
if (!init_use_custom_pos) {
|
||||
init_custom_pos = GLOBAL_GET("display/window/size/initial_position").operator Vector2i();
|
||||
init_use_custom_pos = true;
|
||||
}
|
||||
} else if (initial_position_type == 1) {
|
||||
if (!init_use_custom_screen) {
|
||||
init_screen = DisplayServer::SCREEN_PRIMARY;
|
||||
init_use_custom_screen = true;
|
||||
}
|
||||
} else if (initial_position_type == 2) {
|
||||
if (!init_use_custom_screen) {
|
||||
init_screen = GLOBAL_GET("display/window/size/initial_screen").operator int();
|
||||
init_use_custom_screen = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_DEF("internationalization/locale/include_text_server_data", false);
|
||||
|
@ -227,7 +227,7 @@ void Window::_validate_property(PropertyInfo &p_property) const {
|
||||
p_property.usage = PROPERTY_USAGE_NONE;
|
||||
}
|
||||
|
||||
if (p_property.name == "current_screen" && initial_position != WINDOW_INITIAL_POSITION_CENTER_SCREEN) {
|
||||
if (p_property.name == "current_screen" && initial_position != WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN) {
|
||||
p_property.usage = PROPERTY_USAGE_NONE;
|
||||
}
|
||||
|
||||
@ -482,7 +482,11 @@ void Window::_make_window() {
|
||||
Rect2i window_rect;
|
||||
if (initial_position == WINDOW_INITIAL_POSITION_ABSOLUTE) {
|
||||
window_rect = Rect2i(position, size);
|
||||
} else if (initial_position == WINDOW_INITIAL_POSITION_CENTER_SCREEN) {
|
||||
} else if (initial_position == WINDOW_INITIAL_POSITION_CENTER_PRIMARY_SCREEN) {
|
||||
window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(DisplayServer::SCREEN_PRIMARY) + (DisplayServer::get_singleton()->screen_get_size(DisplayServer::SCREEN_PRIMARY) - size) / 2, size);
|
||||
} else if (initial_position == WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN) {
|
||||
window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(DisplayServer::SCREEN_OF_MAIN_WINDOW) + (DisplayServer::get_singleton()->screen_get_size(DisplayServer::SCREEN_OF_MAIN_WINDOW) - size) / 2, size);
|
||||
} else if (initial_position == WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN) {
|
||||
window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(current_screen) + (DisplayServer::get_singleton()->screen_get_size(current_screen) - size) / 2, size);
|
||||
}
|
||||
window_id = DisplayServer::get_singleton()->create_sub_window(DisplayServer::WindowMode(mode), vsync_mode, f, window_rect);
|
||||
@ -2246,18 +2250,14 @@ void Window::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("popup_centered", "minsize"), &Window::popup_centered, DEFVAL(Size2i()));
|
||||
ClassDB::bind_method(D_METHOD("popup_centered_clamped", "minsize", "fallback_ratio"), &Window::popup_centered_clamped, DEFVAL(Size2i()), DEFVAL(0.75));
|
||||
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "initial_position", PROPERTY_HINT_ENUM, "Absolute,Screen Center"), "set_initial_position", "get_initial_position");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "initial_position", PROPERTY_HINT_ENUM, "Absolute,Primary Screen Center,Main Window Screen Center,Other Screen Center"), "set_initial_position", "get_initial_position");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "title"), "set_title", "get_title");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::VECTOR2I, "position", PROPERTY_HINT_NONE, "suffix:px"), "set_position", "get_position");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::VECTOR2I, "size", PROPERTY_HINT_NONE, "suffix:px"), "set_size", "get_size");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "mode", PROPERTY_HINT_ENUM, "Windowed,Minimized,Maximized,Fullscreen"), "set_mode", "get_mode");
|
||||
|
||||
// Keep the enum values in sync with the `DisplayServer::SCREEN_` enum.
|
||||
String screen_hints = "Primary Monitor:-2,Main Window Monitor:-1";
|
||||
for (int i = 0; i < 64; i++) {
|
||||
screen_hints += ",Monitor " + itos(i + 1) + ":" + itos(i);
|
||||
}
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "current_screen", PROPERTY_HINT_ENUM, screen_hints), "set_current_screen", "get_current_screen");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "current_screen", PROPERTY_HINT_RANGE, "0,64,1,or_greater"), "set_current_screen", "get_current_screen");
|
||||
|
||||
ADD_PROPERTY(PropertyInfo(Variant::PACKED_VECTOR2_ARRAY, "mouse_passthrough_polygon"), "set_mouse_passthrough_polygon", "get_mouse_passthrough_polygon");
|
||||
|
||||
@ -2340,7 +2340,9 @@ void Window::_bind_methods() {
|
||||
BIND_ENUM_CONSTANT(LAYOUT_DIRECTION_RTL);
|
||||
|
||||
BIND_ENUM_CONSTANT(WINDOW_INITIAL_POSITION_ABSOLUTE);
|
||||
BIND_ENUM_CONSTANT(WINDOW_INITIAL_POSITION_CENTER_SCREEN);
|
||||
BIND_ENUM_CONSTANT(WINDOW_INITIAL_POSITION_CENTER_PRIMARY_SCREEN);
|
||||
BIND_ENUM_CONSTANT(WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN);
|
||||
BIND_ENUM_CONSTANT(WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN);
|
||||
}
|
||||
|
||||
Window::Window() {
|
||||
|
@ -90,14 +90,16 @@ public:
|
||||
|
||||
enum WindowInitialPosition {
|
||||
WINDOW_INITIAL_POSITION_ABSOLUTE,
|
||||
WINDOW_INITIAL_POSITION_CENTER_SCREEN,
|
||||
WINDOW_INITIAL_POSITION_CENTER_PRIMARY_SCREEN,
|
||||
WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN,
|
||||
WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN,
|
||||
};
|
||||
|
||||
private:
|
||||
DisplayServer::WindowID window_id = DisplayServer::INVALID_WINDOW_ID;
|
||||
|
||||
String title;
|
||||
mutable int current_screen = DisplayServer::SCREEN_PRIMARY;
|
||||
mutable int current_screen = 0;
|
||||
mutable Vector2i position;
|
||||
mutable Size2i size = Size2i(DEFAULT_WINDOW_SIZE, DEFAULT_WINDOW_SIZE);
|
||||
mutable Size2i min_size;
|
||||
|
Loading…
Reference in New Issue
Block a user