<?xml version="1.0" encoding="UTF-8" ?> <class name="WindowServer" inherits="Object" version="4.2"> <brief_description> </brief_description> <description> </description> <tutorials> </tutorials> <methods> <method name="center_window"> <return type="void" /> <description> Centers the window on the screen if in windowed mode. </description> </method> <method name="get_native_handle"> <return type="int" /> <argument index="0" name="handle_type" type="int" enum="WindowServer.HandleType" /> <description> Returns internal structure pointers for use in GDNative plugins. [b]Note:[/b] This method is implemented on Linux and Windows (other WindowServers will soon be supported). </description> </method> <method name="get_real_window_size" qualifiers="const"> <return type="Vector2" /> <description> Returns the window size including decorations like window borders. </description> </method> <method name="get_screen_count" qualifiers="const"> <return type="int" /> <description> Returns the number of displays attached to the host machine. </description> </method> <method name="get_screen_dpi" qualifiers="const"> <return type="int" /> <argument index="0" name="screen" type="int" default="-1" /> <description> Returns the dots per inch density of the specified screen. If [code]screen[/code] is [code]-1[/code] (the default value), the current screen will be used. [b]Note:[/b] On macWindowServer, returned value is inaccurate if fractional display scaling mode is used. [b]Note:[/b] On Android devices, the actual screen densities are grouped into six generalized densities: [codeblock] ldpi - 120 dpi mdpi - 160 dpi hdpi - 240 dpi xhdpi - 320 dpi xxhdpi - 480 dpi xxxhdpi - 640 dpi [/codeblock] [b]Note:[/b] This method is implemented on Android, Linux, macWindowServer and Windows. Returns [code]72[/code] on unsupported platforms. </description> </method> <method name="get_screen_max_scale" qualifiers="const"> <return type="float" /> <description> Return the greatest scale factor of all screens. [b]Note:[/b] On macWindowServer returned value is [code]2.0[/code] if there is at least one hiDPI (Retina) screen in the system, and [code]1.0[/code] in all other cases. [b]Note:[/b] This method is implemented on macWindowServer. </description> </method> <method name="get_screen_position" qualifiers="const"> <return type="Vector2" /> <argument index="0" name="screen" type="int" default="-1" /> <description> Returns the position of the specified screen by index. If [code]screen[/code] is [code]-1[/code] (the default value), the current screen will be used. </description> </method> <method name="get_screen_refresh_rate" qualifiers="const"> <return type="float" /> <argument index="0" name="screen" type="int" default="-1" /> <description> Returns the current refresh rate of the specified screen. If [code]screen[/code] is [code]-1[/code] (the default value), the current screen will be used. [b]Note:[/b] Returns [code]-1.0[/code] if Pandemonium fails to find the refresh rate for the specified screen. On HTML5, [method get_screen_refresh_rate] will always return [code]-1.0[/code] as there is no way to retrieve the refresh rate on that platform. To fallback to a default refresh rate if the method fails, try: [codeblock] var refresh_rate = WindowServer.get_screen_refresh_rate() if refresh_rate < 0: refresh_rate = 60.0 [/codeblock] </description> </method> <method name="get_screen_scale" qualifiers="const"> <return type="float" /> <argument index="0" name="screen" type="int" default="-1" /> <description> Return the scale factor of the specified screen by index. If [code]screen[/code] is [code]-1[/code] (the default value), the current screen will be used. [b]Note:[/b] On macWindowServer returned value is [code]2.0[/code] for hiDPI (Retina) screen, and [code]1.0[/code] for all other cases. [b]Note:[/b] This method is implemented on macWindowServer. </description> </method> <method name="get_screen_size" qualifiers="const"> <return type="Vector2" /> <argument index="0" name="screen" type="int" default="-1" /> <description> Returns the dimensions in pixels of the specified screen. If [code]screen[/code] is [code]-1[/code] (the default value), the current screen will be used. </description> </method> <method name="is_window_always_on_top" qualifiers="const"> <return type="bool" /> <description> Returns [code]true[/code] if the window should always be on top of other windows. </description> </method> <method name="is_window_focused" qualifiers="const"> <return type="bool" /> <description> Returns [code]true[/code] if the window is currently focused. [b]Note:[/b] Only implemented on desktop platforms. On other platforms, it will always return [code]true[/code]. </description> </method> <method name="move_window_to_foreground"> <return type="void" /> <description> Moves the window to the front. [b]Note:[/b] This method is implemented on Linux, macWindowServer and Windows. </description> </method> <method name="request_attention"> <return type="void" /> <description> Request the user attention to the window. It'll flash the taskbar button on Windows or bounce the dock icon on WindowServerX. [b]Note:[/b] This method is implemented on Linux, macWindowServer and Windows. </description> </method> <method name="set_window_always_on_top"> <return type="void" /> <argument index="0" name="enabled" type="bool" /> <description> Sets whether the window should always be on top. [b]Note:[/b] This method is implemented on Linux, macWindowServer and Windows. </description> </method> </methods> <members> <member name="current_screen" type="int" setter="set_current_screen" getter="get_current_screen"> The current screen index (starting from 0). </member> <member name="max_window_size" type="Vector2" setter="set_max_window_size" getter="get_max_window_size"> The maximum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to [code](0, 0)[/code] to reset to the system default value. </member> <member name="min_window_size" type="Vector2" setter="set_min_window_size" getter="get_min_window_size"> The minimum size of the window in pixels (without counting window manager decorations). Does not affect fullscreen mode. Set to [code](0, 0)[/code] to reset to the system's default value. [b]Note:[/b] By default, the project window has a minimum size of [code]Vector2(64, 64)[/code]. This prevents issues that can arise when the window is resized to a near-zero size. </member> <member name="window_borderless" type="bool" setter="set_borderless_window" getter="get_borderless_window"> If [code]true[/code], removes the window frame. [b]Note:[/b] Setting [code]window_borderless[/code] to [code]false[/code] disables per-pixel transparency. </member> <member name="window_fullscreen" type="bool" setter="set_window_fullscreen" getter="is_window_fullscreen"> If [code]true[/code], the window is fullscreen. </member> <member name="window_maximized" type="bool" setter="set_window_maximized" getter="is_window_maximized"> If [code]true[/code], the window is maximized. </member> <member name="window_minimized" type="bool" setter="set_window_minimized" getter="is_window_minimized"> If [code]true[/code], the window is minimized. </member> <member name="window_per_pixel_transparency_enabled" type="bool" setter="set_window_per_pixel_transparency_enabled" getter="get_window_per_pixel_transparency_enabled"> If [code]true[/code], the window background is transparent and the window frame is removed. Use [code]get_tree().get_root().set_transparent_background(true)[/code] to disable main viewport background rendering. [b]Note:[/b] This property has no effect if [member ProjectSettings.display/window/per_pixel_transparency/allowed] setting is disabled. [b]Note:[/b] This property is implemented on HTML5, Linux, macWindowServer, Windows, and Android. It can't be changed at runtime for Android. Use [member ProjectSettings.display/window/per_pixel_transparency/enabled] to set it at startup instead. </member> <member name="window_position" type="Vector2" setter="set_window_position" getter="get_window_position"> The window position relative to the screen, the origin is the top left corner, +Y axis goes to the bottom and +X axis goes to the right. </member> <member name="window_resizable" type="bool" setter="set_window_resizable" getter="is_window_resizable"> If [code]true[/code], the window is resizable by the user. </member> <member name="window_size" type="Vector2" setter="set_window_size" getter="get_window_size"> The size of the window (without counting window manager decorations). </member> </members> <constants> <constant name="DISPLAY_HANDLE" value="0" enum="HandleType"> Display handle: - Linux: [code]X11::Display*[/code] for the display </constant> <constant name="WINDOW_HANDLE" value="1" enum="HandleType"> Window handle: - Windows: [code]HWND[/code] of the main window - Linux: [code]X11::Window*[/code] of the main window - MacWindowServer: [code]NSWindow*[/code] of the main window (not yet implemented) - Android: [code]jObject[/code] the main android activity (not yet implemented) </constant> <constant name="WINDOW_VIEW" value="2" enum="HandleType"> Window view: - Windows: [code]HDC[/code] of the main window drawing context - MacWindowServer: [code]NSView*[/code] of the main windows view (not yet implemented) </constant> <constant name="OPENGL_CONTEXT" value="3" enum="HandleType"> OpenGL Context: - Windows: [code]HGLRC[/code] - Linux: [code]X11::GLXContext[/code] - MacWindowServer: [code]NSOpenGLContext*[/code] (not yet implemented) </constant> </constants> </class>