# wmgr.gd # Window Manager # # This file is part of StarOpenSource CORE (SOSCORE) # Made by the StarOpenSource Project and Contributers # Licensed under GNU GPLv3 extends Node @onready var core = get_node(NodePath("/root/core")) var config_window_size_x = null var config_window_size_y = null var config_window_title = null var config_window_mode = null var delta = 0 func load_configuration() -> void: if core.protection_mode: return config_window_size_x = core.config.wmgr_size_x config_window_size_y = core.config.wmgr_size_y config_window_title = core.config.wmgr_title config_window_mode = core.config.wmgr_mode func initialize() -> void: if core.protection_mode: return Logger.diag("wmgr","Configuring window") DisplayServer.window_set_size(Vector2i(config_window_size_x,config_window_size_y)) DisplayServer.window_set_min_size(Vector2i(960,540)) DisplayServer.window_set_title(config_window_title) DisplayServer.window_set_mode(config_window_mode) core.setready() func _process(deltap) -> void: delta = deltap func set_size(x:int,y:int) -> void: if core.protection_mode: return Logger.diag("wmgr","Applying new window size (" + str(x) + "x" + str(y) + ")") DisplayServer.window_set_size(Vector2i(x,y)) func set_position(x:int,y:int) -> void: if core.protection_mode: return Logger.diag("wmgr","Applying new window position (X" + str(x) + " Y" + str(y) + ")") DisplayServer.window_set_position(Vector2i(x,y)) func set_title(title:String) -> void: if core.protection_mode: return Logger.diag("wmgr","Applying new window title (" + title + ")") DisplayServer.window_set_title(title) config_window_title = title func set_mode(mode:String) -> bool: if core.protection_mode: return false Logger.diag("wmgr","Applying new window mode (" + mode + ")") match(mode): "WINDOWED": DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) "MINIMIZED": DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MINIMIZED) "MAXIMIZED": DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MAXIMIZED) "FULLSCREEN": DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) "EXCLUSIVE_FULLSCREEN": DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN) _: Logger.error("wmgr","Invalid window mode \"" + mode + "\".") return false return true func get_size() -> Vector2i: if core.protection_mode: return Vector2i(0,0) return DisplayServer.window_get_size() func get_position() -> Vector2i: if core.protection_mode: return Vector2i(0,0) return DisplayServer.window_get_position() func get_title() -> String: if core.protection_mode: return "" return config_window_title func get_mode() -> String: if core.protection_mode: return "" match(DisplayServer.window_get_mode()): 0: return "WINDOWED" 1: return "MINIMIZED" 2: return "MAXIMIZED" 3: return "FULLSCREEN" 4: return "EXCLUSIVE_FULLSCREEN" _: core.exception("wmgr","The window mode id \"" + str(DisplayServer.window_get_mode()) + "\" is not known to wmgr.gd") return "INVALID_MODE" func get_fps(flat:bool = false) -> float: if core.protection_mode: return 0.0 if str(delta) == "0": return INF else: if flat: return float(int(1/delta)) else: return 1/delta func get_rendertime() -> float: if core.protection_mode: return 0.0 return Performance.get_monitor(Performance.TIME_PROCESS) func get_delta() -> float: if core.protection_mode: return 0.0 return delta