mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2024-12-22 11:56:49 +01:00
Initial docs for the WindowServer.
This commit is contained in:
parent
2c78ecad0f
commit
0146de37da
199
doc/classes/WindowServer.xml
Normal file
199
doc/classes/WindowServer.xml
Normal file
@ -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>
|
Loading…
Reference in New Issue
Block a user