-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
199 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,199 @@ | ||
<?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> |