All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased] (3.2-dev at commit
- Support for pseudo-3D depth in 2D.
- Support for importing 3D scenes using Assimp.
- Many formats are supported including FBX.
- Support for generating audio procedurally and analyzing audio spectrums.
- WebRTC support.
- Includes support for the high-level multiplayer API.
- Supports NAT traversal using STUN or TURN.
- Support for automatically building Android templates before exporting.
- This makes 3rd-party SDK integration easier.
- Support for texture atlases in 2D.
- Major improvements to the visual shader system.
- Redesigned visual shader editor with drag-and-drop capability.
- Most functions available in GLSL are now exposed.
- Many constants such as
Taucan now be used directly.
- Support for boolean uniforms.
- New conditional nodes.
- New Expression node, allowing shader code to be written in visual shaders.
- Ability to copy and paste nodes.
- Ability to delete multiple nodes at once by pressing Delete.
- The node creation menu is now displayed when dragging a connection to an empty space on the graph.
- GLES3-only functions are now distinguished from others in the creation dialog.
- Ability to convert visual shaders to text-based shaders.
- See the complete list of new functions.
- Support for enabling/disabling parts of the editor or specific nodes.
- This is helpful for education, or when working with artists to make it harder for them to mess things up.
- Improved GridMap editor.
- The copied mesh is now displayed during pasting.
- The duplication/paste indicator is now rotated correctly around the pivot point.
- Ability to cancel paste and selection by pressing Escape.
- Erasing is now done using RMB instead of Shift + RMB.
- Freelook can still be accessed by pressing Shift + F.
- Improved MeshLibrary generation.
- When appending to an existing MeshLibrary, previews are now only generated for newly-added or modified meshes.
- Tweaked the previews' camera angle and light directions for better results.
- Materials assigned to the MeshInstance instead of the Mesh are now exported to the MeshLibrary.
- This is useful when exporting meshes from an imported scene (such as glTF), as it allows materials to persist across re-imports.
- Improved Control anchor and margin workflow.
- Improved NavigationMesh generation.
- EditorNavigationMeshGenerator can now be used in
- Support for generating navigation meshes from static colliders.
- When using static colliders as a geometry source, a layer mask can be specified to ignore certain colliders.
- The generator no longer relies on the global transform, making it possible to generate navmeshes on nodes that are not in the scene tree.
- Navigation gizmos are now updated after every new bake.
- EditorNavigationMeshGenerator can now be used in
- CameraServer singleton to retrieve images from mobile cameras or webcams as textures.
- Revamped node connection dialog for improved ease of use.
- The Signals dock now displays a singal's description in a tooltip when hovering it.
- Quick Open dialog (Shift + Alt + O) to open any resource in the project.
- Unlike the existing dialogs, it's not limited to scenes or scripts.
- Ability to convert a Sprite to a Mesh2D, Polygon2D, CollisionPolygon2D or LightOccluder2D.
- MultiMeshInstance2D node for using MultiMesh in 2D.
- PointMesh primitive.
- Drawn as a rectangle with a constant size on screen, which is cheaper compared to using triangle-based billboards.
- 2D polygon boolean operations and Delaunay triangulation are now available in the Geometry singleton.
- New convex decomposition using the V-HACD library.
- Can decompose meshes into multiple convex shapes for increased accuracy.
- Support for grouping nodes in the 3D editor.
- The 2D editor panning limits can now be disabled in the Editor Settings.
- "Undo Close Tab" option in the scene tabs context menu.
- The editor is now capped to 20 FPS when the window is unfocused.
- This decreases CPU/GPU usage if something causes the editor to redraw continuously (such as particles).
- The editor's FPS cap can now be adjusted in the Editor Settings (both when focused and unfocused).
- Version information is now displayed at the bottom of the editor.
- This is intended to make the Godot version easily visible in video tutorials.
- Support for constants in the shader language.
- Support for local arrays in the shader language.
round()function in GLES2 shaders.
- Filter search box in the remote scene tree dock.
- Ability to expand/collapse nodes recursively in the scene tree dock by holding Shift and clicking on a folding arrow.
- MSAA support in the GLES2 renderer.
- Ability to render viewports directly to the screen in the GLES2 renderer.
- This can be faster on low-end devices, but it comes at a convenience cost.
- Project settings to set the maximum number of lights and reflections in the GLES3 renderer.
- Decreasing these values can lead to faster shader compilations, resulting in lower loading times.
- Heightmap collision shape for efficient terrain collisions.
- AStar2D class, making A* use easier in 2D.
- Disabled collision shapes can now be added directly, without having to disable them manually after one step.
- Context menu options to close other scene tabs, scene tabs to the right, or all scene tabs.
- Precise snapping in the 3D editor when holding Shift.
- "Align Rotation with View" in the 3D editor.
- Unlike "Align Transform with View", only the selected node's rotation will be modified.
- "Align Selection with View" has been renamed to "Align Transform with View".
- All 3D gizmos now make use of snapping if enabled.
- CSG shapes are now highlighted with a translucent overlay when selected.
- Shapes in Union mode will use a blue overlay color by default.
- Shapes in Subtraction mode will use an orange overlay color by default.
- Shapes in Intersection mode will use a white overlay color.
- Ability to move a vertex along a single axis when holding Shift in polygon editors.
- Support for binary literals in GDScript (e.g.
keep_pressed_outsideButton property to keep a button pressed when moving the pointer outside while pressed.
use_gi_probeLight property to exclude specific lights from GIProbe computations.
- TranslationServer method
get_loaded_locales()to retrieve the list of languages with a translation loaded.
FRUSTUM3D camera mode to create tilted frustums for mirror or portal effects.
Camera.project_position()now accepts and optional
antialiasedproperties to match
Engine.get_physics_interpolation_fraction()to get the fraction through the current physics tick at the time of the current frame.
- This can be used to implement fixed timestep interpolation.
- Support for shadow-to-opacity in 3D to render shadows in augmented reality contexts.
- Ability to change a Position2D gizmo's size.
- New Vector2 and Vector3 methods:
move_toward()to retrieve a vector moved towards another by a specified number of units.
direction_to()to retrieve a normalized vector pointing from a vector to another.
- This is a shorter alternative to
(b - a).normalized().
- This is a shorter alternative to
- AStar functions
is_point_disabled()to selectively disable points.
- Tween now emits a
tween_all_completedsignal when all tweens are completed.
Input.get_current_cursor_shape()to retrieve the current cursor shape.
InputEventActionnow has a
strengthproperty to simulate analog inputs.
String.count()method to count the number of occurrences of a substring in a string.
String.strip_escapes()to strip non-printable escape characters from a string, including tabulations and newlines (but not spaces).
String.sha1_buffer()methods to return a string's SHA-1 hash.
clear_points()method to clear all points.
- Line2D now has a "Width Curve" property to make its width vary at different points.
posmod()built-in GDScript function that behaves like
fposmod(), but returns an integer value.
smoothstep()built-in GDScript function for smooth easing of values.
lerp_angle()built-in GDScript function to lerp between two angles.
sha_256()method to get a computed SHA-256 hash.
- Font method
get_wordwrap_string_size()to return the rectangle size needed to draw a word-wrapped text.
Camera.get_camera_rid()to retrieve a Camera's RID.
- Toggleable HSV mode for ColorPicker.
- ColorPicker properties to toggle the visibility and editability of presets.
Color.transparentconstant (equivalent to
Color(1, 1, 1, 0)).
VehicleWheel.get_rpm()method to retrieve a vehicle wheel's rotations per minute.
- Per-wheel throttle, brake and steering in VehicleBody.
GeometryInstance.set_custom_aabb()to set a custom bounding box (used for view frustum culling).
- Export hints for 2D and 3D physics/render layers.
- Ability to override how scripted objects are converted to strings by defining a
- Editor plugins can now add new tabs to the Project Settings.
- Variable shadowing warning in GDScript.
- Will be displayed if:
- a block variable shadows a member variable,
- a subclass variable shadows a member variable,
- a function argument shadows a member variable.
- Will be displayed if:
randfn(mean, deviation)method to generate random numbers following a normal Gaussian distribution.
- Ability to read the standard error stream when using
OS.execute()(disabled by default).
- Option to disable boot splash filtering (nearest-neighbor interpolation).
- The GridMap editor now offers a search field and size slider.
- Bookmarks in the script editor for easier code navigation.
- Filter search box for the script list and member list.
- The editor help now displays class properties' default values.
- The script editor's Find in Files dialog can now search in user-defined file types (
editor/search_in_file_extensionsin the Project Settings).
- The script editor search now displays the number of matches.
- The script editor search now selects the current match for easier replacing.
- Icons are now displayed next to code completion items, making their type easier to distinguish.
- "Ignore" flag to ignore specific tiles when autotiling in the TileMap editor.
- Keyboard shortcuts to rotate tiles in the TileMap editor.
- Default shortcuts are A (rotate left), S (rotate right), X (flip horizontally), Y (flip vertically).
- Ability to keep a node's local transform when reparenting it by holding Shift.
- Ability to create sprite frames in AnimatedSprite from a sprite sheet.
frame_coordsproperty in Sprite and Sprite3D to set/get the coordinates of the frame to display from the sprite sheet.
- Reimplemented support for editing multiple keys at once in the animation editor.
- Support for FPS snapping in the Animation editor.
- Autokeying in the Animation editor.
- Keyframes will be created automatically when translating, rotating or scaling nodes if a track exists already.
- Keys must be inserted manually for the first time.
- AnimationNodeBlendTreeEditor improvements.
- Ability to exclude multiple selected nodes at once.
- Context menu to add new nodes (activated by right-clicking).
- The AnimationPlayer Call Method mode is now configurable.
- Method calls can be "deferred" or "immediate", "deferred" being the default.
- OccluderPolygon2D is now draggable in the editor.
- The tooltip position offset is now configurable.
- The default cursor used when hovering RichTextLabels can now be changed.
- "Dialog Autowrap" property in AcceptDialog to wrap the label's text automatically.
- The 2D editor's panning shortcut can now be changed.
- The shortcuts to quit the editor can now be changed.
- Support for emission masks in CPUParticles2D.
directionproperty in CPUParticles and ParticlesMaterial.
lifetime_randomnessproperty in CPUParticles and ParticlesMaterial.
- "Restart" button to restart particle emission in the editor.
- AnimatedSprites' animations can now be played backwards.
- TextureRects can now have their texture flipped horizontally or vertically.
- StyleBoxFlat shadows can now have an offset.
- Profiler data can now be exported to a CSV file.
- The 2D polygon editor now displays vertex numbers when hovering vertices.
- RectangleShapes now have a third handle to drag both axes at once.
- Global class resources are now displayed in the Resource property inspector.
- Double-clicking an easing property in the inspector will now make the editor display a numeric field.
- This makes it easier to enter precise values for properties such as light attenuation.
interface/editor/default_float_stepeditor setting to configure floating-point values' default step in the Inspector.
- Audio buses are now stylized to look like boxes that can be dragged.
- The default audio bus layout file path can now be changed in the Project Settings.
- The LineEdit "disabled" font color can now be changed.
- The TextEdit "readonly" font color can now be changed.
- Support for loading and saving encrypted files in ConfigFile.
- "Disabled" attenuation model for AudioStreamPlayer3D, making the sound not fade with distance while keeping it positional.
- AudioEffectPitchShift's FFT size and oversampling are now adjustable.
- TextEdit's tab drawing and folding is now exposed to GDScript.
- Orphan node monitor in the Performance singleton.
- Counts the number of nodes that were created but aren't instanced in the scene tree.
- Ability to change eye height in VR.
- Support for importing 1-bit, 4-bit and 8-bit BMP files.
- Size dimensions must be a multiple of 8 for 1-bit images and 2 for 4-bit images.
use_lld=yesflag to link with LLD on Linux when compiling with Clang.
- This results in faster iteration times when developing Godot itself or modules.
use_thinlto=yesflag to link with ThinLTO when using Clang.
- Multicast support in PacketPeerUDP.
- Automatic timeout for TCP connections (defaults to 30 seconds, can be changed in the Project Settings).
timeoutproperty for HTTPRequest (defaults to 0, which is disabled).
- Button to remove all missing projects in the Project Manager.
- Reimplemented support for embedding project data in the PCK file.
- Ability to take editor screenshots by pressing Ctrl + F12.
- Editor plugins can now set the current active editor as well as toggle the distraction-free mode.
- Android: Support for the Oculus Mobile SDK.
- HTML5: Partial clipboard support.
- iOS: Support for ARKit.
OS.set_native_icon()method to set an
.icnswindow/taskbar icon at run-time.
- Windows: Ability to toggle the console window in the Editor Settings.
- macOS: LineEdit now supports keyboard shortcuts commonly available on macOS.
- Mono: Support for exporting to Android.
- Mono: New DynamicGodotObject class to access dynamic properties from scripts written in GDScript.
- Mono: Support for resource type hints in exported arrays.
- Mono: New
mono/unhandled_exception_policyproject setting to keep running after an unhandled exception.
- Mono: New Godot constants to conditionally react to system variables at compile-time.
- Mono: Support for Visual Studio 2019's MSBuild.
- Tabs and space indentation can no longer be mixed in the same GDScript file.
- Each file must now use only tabs or spaces for indentation (not both).
- Camera2D drag margins are now disabled by default.
- If porting a project from Godot 3.1 where drag margins were used, these must be enabled manually again.
- Refactored the Project Manager to be more efficient, especially with large project lists.
- Undo/Redo now supports more actions throughout the editor.
- The script editor's "Auto Brace Complete" setting is now enabled by default.
- Improved A* performance significantly by using a binary heap.
- Disabled high-quality voxel cone tracing by default.
- This makes GIProbe much faster out of the box, at the cost of less realistic reflections.
- Lowered the default maximum directional shadow distance (200 → 100).
- This makes directional shadow rendering consistent between the editor and running project when using the default Camera node settings.
- Significantly improved SSAO performance by using a lower sample count.
- SSAO now uses 3×3 blurring by default, resulting in less visible noise patterns.
- The lightmap baker now calculates lightmap sizes dynamically based on surface area.
- Improved 3D KinematicBody performance and reliability.
- Keys and actions are now released when the window loses focus.
- Tweens can now have a duration of 0.
- Particles and CPUParticles' Sphere emission shape now uses an uniform density sphere.
size_override_stretchis now exposed as a property (rather than just setter/getter methods).
- One-click deploy to Android now requires just one click if only one device is connected.
- The Project Manager will now infer a project name from the project path if the name was left to the default value.
- The WebSockets implementation now uses the smaller wslay library instead of libwebsockets.
- Most 2D lines are now antialiased in the editor.
- CheckButtons now use a simpler design in the editor.
- Hovering or dragging guides in the 2D editor will now turn the cursor into a "resizing" shape.
- The editor update spinner is now hidden by default.
- It can be enabled again in the Editor Settings.
- The "Update Always" option is now editor-wide instead of being project-specific.
- ColorPicker, OptionButton and MenuButton now use toggle mode, making them appear pressed when clicked.
- Increased the Light2D height range from -100..100 to -2048..2048.
- Lower and higher values can be entered manually too.
- The default RichTextLabel color is now
#ffffff, matching the default Label color for better consistency.
- Saved resources no longer contain dependency indices and metadata such as node folding, resulting in more VCS-friendly files.
- The script editor state (such as breakpoints or the current line) is now preserved across editor sessions.
- Custom nodes added by plugins now have a translucent script icon in the scene tree dock.
- The right mouse button can now be used to pan in the 2D editor.
- This is to improve usability when using a touchpad.
- The middle mouse button can still be used to pan in the 2D editor.
- When the "Scroll To Pan" editor setting is enabled, the 2D editor can now be zoomed in by holding Ctrl and scrolling the mouse wheel.
- A loading placeholder is now displayed while icons are loading in the Asset Library.
- Tweaked the Asset Library detail page layout for better readability.
- Asset library previews and screenshots are now resized with better-looking Lanczos interpolation.
- Audio mixer faders now use a non-linear algorithm to better fit human hearing.
- Tooltips now appear faster when hovering elements in the editor (0.7 seconds → 0.5 seconds).
- Increased the low-processor usage mode's default maximum refresh rate (125 FPS → 144 FPS).
- This makes the editor feel slightly smoother on 144 Hz displays.
- Tree scrolling when dragging now uses a larger drag margin, making drag-and-drop more convenient.
- Improved snapping in the animation editor.
- Snapping can be toggled temporarily by holding the Ctrl key.
- Timeline snapping is now toggled by the Snap setting (like when moving keyframes).
- Keyframes are now easier to select in the animation editor.
- Selected keyframes now appear slightly larger in the animation editor.
- Boolean and color keyframe icons are now aligned to other keyframes in the animation editor.
- The Animation editor's line widths are now resized to match the editor scale.
- BPTC compression is now available for all HDR image formats.
- Improved RayCast2D and one-way collision drawing.
- Disabled RayCast2Ds are now displayed in gray.
- One-way collision arrows are now orange by default, making them easier to distinguish them from RayCast2Ds.
- Tweaked RayCast2D and one-way collision line shapes to look more like arrows.
- Improved rendering in the curve editor.
- The grid is now rendered correctly when using a light theme.
- The main line and edge line colors have been swapped for better visibility.
- Tangent line widths are now resized to match the editor scale.
- Improved rendering in the performance monitor.
- Dark colors are now used on light backgrounds for better visibility.
- Graph lines are now thinner and opaque.
- Graph line widths are now resized to match the editor scale.
- Rounded values now display trailing zeroes to make their precision clearer.
- Some TileMap editor options were moved to the toolbar.
- Brackets are now only inserted when necessary when autocompleting methods in the script editor.
- Improved dialogs when saving or removing an editor layout.
- Whitespace-only selections no longer cause the script editor to highlight all occurrences.
- Saving a script will now add a newline at the end of file if none was present already.
- The editor help now displays bold text using a bold font (instead of using a monospace font).
- Editor help is now accessed using Shift + F1, for consistency with other applications.
- Contextural help is now accessed using Alt + F1 to accommodate for this change.
- The script editor's Find in Files dialog is now always available, even when no script is opened.
- Pressing Shift + Enter in the script editor Find dialog will now go to the previous match.
- 2D/3D selections, rotations and selected texts are now highlighted with the editor theme's accent color.
- Tweaked the 3D manipulator gizmo's colors for better visibility.
- Increased the default 3D manipulator gizmo opacity (0.2 → 0.4).
- Non-printable escape characters are now stripped when pasting text into a LineEdit.
- The TextEdit caret color now matches the default font color, making it easier to see.
- Empty exported NodePath properties now return
- Built-in scripts are no longer allowed to use
class_nameas it wasn't working properly.
- The second parameter of
substr()is now optional and defaults to
- More editor actions can now have shortcuts assigned (such as Revert Scene or Export).
- The project export path may now be written in a relative path.
- Directories will be created recursively if the target directory doesn't exist.
- Items in the FileSystem dock can now be deselected by clicking empty space.
- Warning-ignore comments now allow whitespace after the
- The number of warnings and errors that can be received in the remote debugger is now capped per second rather than per frame.
- The default limit is 100 errors and 100 warnings per second, making it possible for the script editor to report up to 100 warnings before having messages hidden.
- Ability to limit the minimum and maximum window size.
- UTF-8 characters are now supported in input action names.
- Updated FreeType to 2.10, which changes how font metrics are calculated.
- This may affect the appearance of some Controls, see this issue for details.
- The SCons build system now automatically detects the host platform.
platform=<platform>is no longer required when compiling for the host platform.
platform=listcan be used to list the supported target platforms.
- Windows: Drive letters in file paths are now capitalized.
- macOS: Control + H and Control + D in TextEdit now delete the character at the left and right of the cursor (respectively).
- macOS: Command + Left in TextEdit now moves the cursor to the first non-whitespace character.
- macOS: Non-resizable windows are now allowed to enter fullscreen mode.
- macOS: The editor's title bar now uses dark mode on Mojave.
OS.set_window_postion()now takes window decorations into account.
- Unused Panel
- thekla_atlas dependency, as light baking now relies on xatlas for UV unwrapping.
- Rating icons in the Asset Library, as this feature isn't implemented in the backend.
- Some editor languages are no longer available due to missing support for RTL and text shaping in Godot:
- Affected languages are Arabic, Bengali, Persian, Hebrew, Hindi, Malayalam, Sinhalese, Tamil, Telugu and Urdu.
- These will be re-added once Godot supports RTL and text shaping.
- Android: ARMv6 support.
- Fixed radiance map generation, resulting in improved 3D performance and visual quality.
- Radiance is now generated when using a clear color sky.
- Contact shadows no longer display when shadow casting is disabled.
- Larger data types can now be constructed by swizzling in the shader language.
- For instance,
vec2 test2 = vec2(0.0, 1.0); vec3 test3 = test2.xxx;now works as in GLSL.
- For instance,
SHADOWS_DISABLEDflags now work when using the GLES2 renderer.
- Several fixes to the GLES2 renderer:
- Fixed transparency order.
- Fixed vertex lighting being too bright.
- Fixed occasional light flickering.
- Fixed shadows cast from transparent materials.
- Fog is no longer computed on unshaded materials.
- This matches the GLES3 renderer's behavior.
- GLES2 shader uniforms now use
highpprecision by default.
- This prevents linking issues on some Android devices.
- Negative OmniLights and SpotLights now work as expected.
- The 3D editor's View Information pane now displays statistics correctly when using the GLES2 renderer.
- Fixed several inconsistencies between Particles and CPUParticles.
- Particles are now set to emit correctly when restarting.
- Fixed issues in WebM colorspace corrections, resulting in better color output.
- CSG is now taken into account when generating navigation meshes.
- Curve2D and Curve3D interpolated values now behave as expected.
- Scene modifications are no longer lost when renaming a file in the FileSystem dock.
- LineEdit and TextEdit's context menus no longer display editing options if they are read-only.
- SpinBox mouse events are now correctly triggered by its LineEdit part.
- Per-word navigation in LineEdit and TextEdit now handles UTF-8 characters correctly.
- LineEdit placeholders now react correctly to translation changes.
- Buttons' state is now reset when they exit the scene tree.
- This prevents them from lingering in a "hovered" or "pressed" state.
- Tooltips now disappear when hiding the node they belong to.
- Encoded packet flags are no longer sent in the ENet multiplayer protocol, as ENet itself already sends that data.
- This saves 4 bytes per packet.
- Audio trimming is now less aggressive, cutting at -50 dB instead of -30 dB.
- Audio trimming now has a small fade-out period, preventing audible pops.
- Audio mix rate and output latency settings are now consistently applied on all platforms.
- Fixed multichannel panning for AudioStreamPlayer3D.
- The Label font shadow now draws the font outline as well (if the base font has one).
Font.draw_char()now draws the font outline as well (if the base font has one).
- The editor no longer redraws continuously when selecting a Control in a Container.
low_processor_mode_sleep_usecproject setting no longer affects the editor.
- Typed arrays and dictionaries no longer have their values shared across instances.
to_lower()conversion with Cyrillic characters.
- The Find in Files replace dialog now allows empty replacement texts.
- The bottom panel no longer disappears when opening the theme editor on small displays.
- The script editor's line length guideline is now drawn behind text.
- The script editor's line length guideline is now drawn at the correct position when font hinting is disabled.
- Warnings no longer count towards the "Too many errors!" message.
- AnimationTrackEdit now displays invalid value keys again (as it did in 3.0).
- The editor's performance monitor now displays memory/file sizes larger than 2 GB correctly.
- The editor debugger now always handles connections.
- Subsequent connections will be dropped immediately to avoid locking.
- Large rotation offset/snap values no longer appear to be cut off in the Configure Snap dialog.
- Fixed autocompletion in the script editor.
- The script editor can now autocomplete enum values.
- The script editor can now autocomplete node paths starting with
- Custom script editor templates can now use type hints.
- Documentation tooltips in the editor now wrap to multiple lines correctly.
- Locked 3D nodes are now unselectable in the 3D viewport, matching the 2D editor's behavior.
- The 3D manipulator gizmo's size is now capped at low viewport heights, preventing it from outgrowing the viewport's bounds.
- The editor filesystem now refreshes on file changes if the project is located on an exFAT filesystem.
- The Show in File Manager context menu option now works with files marked as favorite.
- The random number generator's seed is now properly set up.
- Antialiased and rounded StyleBoxFlat corners now handle different border widths correctly.
- Text resources no longer contain an extraneous line break at the end of file.
FLIP_Zconstants now work as expected.
- Fixed importing BMP images.
- Android: Gamepads are now correctly detected when the application starts.
- Android: Fix some keyboards being detected as gamepads and not working as a result.
- HTML5: Fixed the pointer position on hiDPI displays.
- Windows: Line endings are now converted to CRLF when setting clipboard content.
- Windows: Getting the path to the Downloads directory using
OS.get_system_dir()now works correctly.
- This fixes line endings being invisible when pasting into other applications.
OS.set_window_size()are now handled correctly on hiDPI displays.
OS.get_window_position()now returns absolute coordinates.
- X11: Fixed audio playing on the wrong speakers when using PulseAudio on 5.1 setups.