Compare commits

...

674 Commits
master ... 4.0

Author SHA1 Message Date
Rémi Verschelde 6c99b77a81
Fix GCC 14 -Wtemplate-id-cdtor warnings
Fixes #91206.

(cherry picked from commit a8ff47b6d6)
2024-04-26 12:07:19 +02:00
Rémi Verschelde a0bf366068
SCons: Fix Python 3.12 SyntaxError with regex escape sequences
(cherry picked from commit b362976504)
(cherry picked from commit df0ebc6dfc)
2024-04-26 12:07:19 +02:00
Gilles Roudière 3196113206
Fix compilation on gcc13
(cherry picked from commit 41890ff9c3)
2024-04-26 12:07:19 +02:00
Rémi Verschelde 3d94d7436a
CI: Pin Xcode version to 15.3, as default 15.0.1 is broken
Not needed in later Godot branches as we merged workarounds for the 15.0/15.0.1
broken linker, but there's too many commits to track down and backport with
care to avoid breaking Xcode 14 support too.
2024-04-25 16:40:38 +02:00
A Thousand Ships 1d979a9e95
[CI] [macOS] Build for both `arm64` and `x86_64`
Creates a universal build, to catch discrepancies on different
architectures

(cherry picked from commit 24ad73b13f)
2024-04-25 14:43:28 +02:00
Pedro J. Estébanez 7d966c9f5e
Fix warning in MSVC
(cherry picked from commit fe8c217b7c)
2024-03-10 21:02:10 +01:00
AlexOtsuka cd118f80c6
Fix audio crackling issues due to incorrect WASAPI buffer size
(cherry picked from commit 179b0786c6)
2024-03-10 00:20:27 +01:00
MrBBBaiXue 60867e63be Delete .lgtm.yml
LGTM has been acquired by Github, and all its features is replaced by Github Code Scanning.
So seems .lgtm.yml is no longer used.

(cherry picked from commit ee6cec1649)
2024-01-23 12:43:31 +01:00
bruvzg 7b55630c90
[macOS] Fix MoltenVK SDK detection after file location changes in 1.3.275.0.
(cherry picked from commit a2c1c01941)
2024-01-18 10:48:27 +01:00
Rémi Verschelde 1088dd5c33
Bump version to 4.0.5-rc
We don't necessarily plan a 4.0.5 release at this stage, but might still do
some cherrypicks for critical issues.
2023-10-25 14:27:02 +02:00
Rémi Verschelde dc0e9a7779
Merge pull request #81246 from AThousandShips/future_proof_4_0
[4.0] Future proof links in docs
2023-09-06 18:44:46 +02:00
A Thousand Ships 6a7e8fe367 Future proof links in docs 2023-09-02 10:53:16 +02:00
Rémi Verschelde 455aa77d6e
Merge pull request #80496 from sk757a/4.0
[4.0] Fix tween_cheatsheet 404 in Tween.xml
2023-08-18 09:27:02 +02:00
sk757a 59bd0ea48e Fix tween_cheatsheet 404 in Tween.xml
Co-Authored-By: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-08-14 23:41:45 +05:00
Yuri Sizov fc0b241c9b Bump version to 4.0.4-stable 2023-08-02 14:51:12 +02:00
Yuri Sizov e6a21778de CI: Extract godot-cpp testing into its own job
This ensures that the godot-cpp job has plenty of resources
to run its build and avoid being affected by the main build.

Additionally:
- Extract test tasks into dedicated actions.
- Upload artifacts as early as possible.
- Ensure that we check master cache before random cache.

(cherry picked from commit deb6025781)
2023-08-02 14:51:12 +02:00
Rémi Verschelde 1fe01a7741 CI: Free disk space on Linux runners
Removing the Android toolchain saves 14 GiB, which gives us more room
for growth and to avoid running into out-of-space errors in the Linux
sanitizers + debug symbols builds.

Related to #79919, though the caches were just one part of the problem,
the real issue is that our Linux sanitizers builds take 12 GiB, and
adding godot-cpp on top with 2 GiB leaves only a few GiB left for the
cache itself.

(cherry picked from commit 611123f7fd)
2023-08-02 14:51:12 +02:00
Yuri Sizov a0a5cbad57 Revert "Fix get_bone_pose_global_no_override()"
This reverts commit 9307d851a9.
2023-08-02 14:25:50 +02:00
Yuri Sizov cfedb0a7a6
Merge pull request #79708 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.4) - 3rd batch
2023-07-20 17:46:13 +02:00
Yuri Sizov c945ec71d3 Add changelog for 4.0.4 2023-07-20 14:58:02 +02:00
Fabio Alessandrelli 2120fcee1c [ENet] Update to upstream master.
(cherry picked from commit 35b70681e7)
2023-07-20 14:56:44 +02:00
Fabio Alessandrelli 96a480feac [Net] Explicitly handle buffer errors in send/recv
(cherry picked from commit 28001b9ef6)
2023-07-20 14:56:44 +02:00
NiskashY 07ec20b8fa Fix disabled slider highlighting
(cherry picked from commit 4394936392)
2023-07-20 13:46:46 +02:00
Amir-Rasteg 82ea4b4718 Fix a typo in the `String.to_float` description
(cherry picked from commit 9744657bb8)
2023-07-20 13:46:46 +02:00
Haoyu Qiu b3c74b4874 Translate "No match" message in FindReplaceBar
(cherry picked from commit ac454ce2a7)
2023-07-20 13:46:46 +02:00
Ninni Pipping de57ac9227 Fix documentation for `Mutex.try_lock`
Documentation was not updated when return type was changed from `Error`
to `bool`

(cherry picked from commit 40e2168ac6)
2023-07-20 13:46:46 +02:00
Haoyu Qiu e862643007 Fix function signature in EditorImportPlugin example
(cherry picked from commit cea00ebf58)
2023-07-20 13:46:45 +02:00
kobewi 7a59ef60ee Fix crash with failed compatibility tiles
(cherry picked from commit 1a9739f591)
2023-07-20 13:46:45 +02:00
jpcerrone dd2907f9b7 Fix for Win+M crashing the editor
Fixes #77790
Adds missing 'break' statement to 'VulkanContext::prepare_buffers' function.
It was mistakenly removed in #72859

(cherry picked from commit bd786ce0d9)
2023-07-20 13:46:45 +02:00
MewPurPur 52f583fdee Document ShaderInclude
(cherry picked from commit da84efc96d)
2023-07-20 13:46:45 +02:00
Phil Hudson 23c1eae8b6 fix(android): set pending intent flag to stop insta-crash
fix(android): add conditional check for minimum sdk version

fix(android): formatting

fix(android): formatting

fix(android): formatting

fix(android): formatting again

(cherry picked from commit ce7f648694)
2023-07-20 13:46:45 +02:00
kobewi 627ddd412e Fix filesystem cache split error
(cherry picked from commit 7f18db9d9d)
2023-07-20 13:46:45 +02:00
Haoyu Qiu 22d3fa7292 Fix crash when opening a TileSet with invalid tiles
(cherry picked from commit 8b5d5dc2c4)
2023-07-20 13:44:15 +02:00
Yuri Sizov f9a0ac507c Avoid error spam when (un)pausing GPUParticles out of tree
(cherry picked from commit 991f4d5183)
2023-07-20 13:44:15 +02:00
kobewi 5a82eadd2d Make sure script cache is created after reimport
(cherry picked from commit 680ed7f612)
2023-07-20 13:44:15 +02:00
RedworkDE 31e582b970 Fix crash when selecting lines in text edit
(cherry picked from commit 6b7008b73b)
2023-07-20 13:44:15 +02:00
kobewi 39f9c8cd29 Preserve selection when focusing SpinBox
(cherry picked from commit 968c5f6247)
2023-07-20 13:44:14 +02:00
pattlebass fa8e3b200e Fix Range-derived nodes not redrawing
When using set_value_no_signal(), Range-derived nodes wouldn't redraw.

Also added a dedicated method to SpinBox to update its text.

(cherry picked from commit 9500f8e69a)
2023-07-20 13:44:14 +02:00
Devan OBoyle 0f23679699 Skip error messages for buttons that don't exist
(cherry picked from commit ed02d515e0)
2023-07-20 13:38:12 +02:00
Raffaele Picca 7f8de2df4c Correctly reset particle size and rotation in ParticlesProcessMaterial
Co-authored-by: clayjhn <claynjohn@gmail.com>
(cherry picked from commit 353a4e1e09)
2023-07-20 13:38:12 +02:00
Ninni Pipping 131ce4acf6 Fix type check in AnimationTrackKeyEdit for methods
(cherry picked from commit ad769903b0)
2023-07-20 13:38:12 +02:00
Ninni Pipping c683fa9971 Fix trim when importing WAV
(cherry picked from commit ff127ba57e)
2023-07-20 13:38:12 +02:00
bruvzg 33618f25fd Fix SVG font rendering after ThorVG update.
(cherry picked from commit 35b0354577)
2023-07-20 13:38:12 +02:00
kobewi 9acd4cfdfc Draw materials in tile atlas view
(cherry picked from commit 16ac217aa0)
2023-07-20 13:38:12 +02:00
Lyuma ca65d85d6e Fix for SkeletonIK3D interpolation and bone roll
Fix bug in internal Basis::rotate_to_align function (also used with identity Basis in scene/resources/curve.cpp)
Use ChainItem children rather than local bone rest to determine IK bone roll to match Godot 3.x behavior

(cherry picked from commit 9aa46bf3f5)
2023-07-20 13:38:12 +02:00
Lyuma 96eb16a365 Avoid doubly mutating the same Skin in rest fixer
Fixes a regression from #77123 that was caused by removal of ibm_diffs variable.
This replaced idempotent code with code that applied an offset each time.
If the same Skin was visited multiple times, this caused an incorrect result.

(cherry picked from commit 5ae311e577)
2023-07-20 13:09:57 +02:00
Lyuma a18fe83298 Adjust BoneAttachment3D children/meshes during rest fixer
Also simplifies equivalent matrix math which previously used ibm_diffs to calculate skinned mesh offsets.

(cherry picked from commit 7b71061b3e)
2023-07-20 13:09:57 +02:00
Aaron Franke 1fcf58d72e Make `Node::get_children()` public
(cherry picked from commit 8eb9986dc5)
2023-07-20 13:09:57 +02:00
Fredia Huya-Kouadio db7406e6a7 Fix issue causing the Android editor to crash when creating a new AudioStreamMicrophone
Fixes https://github.com/godotengine/godot/issues/73801

(cherry picked from commit 8ca14183f0)
2023-07-20 12:45:54 +02:00
Clement C 2dfb108a6a Fix crash when changing node type from PopMenu to ItemList
(cherry picked from commit 999a1fffec)
2023-07-20 12:45:54 +02:00
Rémi Verschelde 31b1f98bba
Merge pull request #79111 from akien-mga/4.0-fix-udev-fallback-with-use_sowrap-no
[4.0] Linux: Fix udev fallback logic with `use_sowrap=no`
2023-07-11 11:32:48 +02:00
Rémi Verschelde 4a747edb6f
Linux: Fix udev fallback logic with `use_sowrap=no` 2023-07-06 17:10:58 +02:00
Rémi Verschelde c8e0bd50c5
Merge pull request #78838 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.4) - 2nd batch
2023-06-30 13:44:09 +02:00
Yuri Sizov 0164b293f0 Update codespell and add new exceptions 2023-06-29 16:22:29 +02:00
RedworkDE a3292d6891 C#: Always decode `dotnet` output as UTF-8
(cherry picked from commit e0efa3c357)
2023-06-29 16:03:22 +02:00
Rémi Verschelde b11499edce Add missing stdint.h includes for GCC 13+
Fixes #77927.

(cherry picked from commit 10676e78e3)
2023-06-29 16:03:22 +02:00
kobewi d6e0170e94 Cancel tooltip when mouse leaves viewport
(cherry picked from commit 807431c49a)
2023-06-29 16:03:22 +02:00
MJacred d8caf0a726 Replace get_rendering_device() call to prevent crashes on OpenGL.
And make OpenGL video adapter info align with Vulkan.

(cherry picked from commit 2c5e2196bd)
2023-06-29 16:03:22 +02:00
MJacred 101adc3853 Make system information for issue reports single-line
Additionally:
* for custom builds, add commit hash
* added a tooltip to help mitigate potential/understandable confusion whether the single-line output might be a bug
* prettify driver name

(cherry picked from commit ca1ee316b5)
2023-06-29 16:03:22 +02:00
MJacred 78773b74f0 Copy system info to clipboard + Update bug_report.yml
plus minor static-related fixes
* linuxbsd: get_systemd_os_release_info_value() -> static breaks usage if used multiple times
* windows/linuxbsd: get_video_adapter_driver_info() writes info into static
* linuxbsd: get_distribution_name() + get_version() -> write bsd fallback into static variable
* windows/uwp/android: remove unnecessary use of static

(cherry picked from commit 9e5bf3d589)
2023-06-29 16:03:22 +02:00
Jason Yundt 07c4a32a84 Streamline and centralize bug reporting guides
Before this change, there was three different bug reporting guides:

- [“Filing an issue on GitHub”][1]
- [“Reporting bugs”][2]
- [The issue template][3]

This commit:

1. makes sure that [the issue template][3] contains all of the same
   information that [“Filing an issue on GitHub”][1] and
   [“Reporting bugs”][2] did and
2. makes [“Reporting bugs”][2] simply tell users to fill out the
   template.

The goal of this change is to make reporting bugs easier. This change
accomplishes that goal by presenting bug reporters with all of the
information they need to know on the bug reporting page itself.

This commit partially implements this proposal:
<https://github.com/godotengine/godot-proposals/discussions/4083>

[1]: https://docs.godotengine.org/en/stable/community/contributing/ways_to_contribute.html#filing-an-issue-on-github
[2]: ./CONTRIBUTING.md#reporting-bugs
[3]: ./.github/ISSUE_TEMPLATE/bug_report.yml

(cherry picked from commit a6dc35e5cf)
2023-06-29 16:03:22 +02:00
RedworkDE f05e3712d6 C#: Synchronize adding ScriptInstances
(cherry picked from commit 8fdebb85ef)
2023-06-29 16:03:22 +02:00
Rakka Rage 980d95a3ad Fix crash when using tile atlas merge with recreated alt tile
(cherry picked from commit 88d2ed433d)
2023-06-29 16:03:22 +02:00
ajreckof a3951382cd prevent selecting unselectable `EditorProperty` with RMB
(cherry picked from commit 088435ab78)
2023-06-29 16:03:22 +02:00
hlutor 8129d83ee9 Added override for window_get_vsync_mode in display_server_web.cpp
(cherry picked from commit a932c5e81d)
2023-06-29 16:03:22 +02:00
Felipe Augusto Marques e7f7fcd145 Ignore "project_settings_override" in the editor
(cherry picked from commit e759129dd5)
2023-06-29 16:03:22 +02:00
Ninni Pipping cbdad97829 Don't disable `Material` and `PlaceholderMaterial` when `disable_3d=yes`
(cherry picked from commit 1f1be5fe9b)
2023-06-29 16:03:22 +02:00
Fredia Huya-Kouadio bbfd9914c7 Fix spatial viewport multitouch detection support
Regression introduced by https://github.com/godotengine/godot/pull/77498

(cherry picked from commit 2c050cc17e)
2023-06-29 16:03:22 +02:00
Fredia Huya-Kouadio d4dc9e4bda Improve touchpad and mouse support for the Android editor
- Fix issues with using a touchpad to click, drag, interact with the navigation controls, etc..
- Fix issues with panning with 2+ fingers
- Fix issues with using double-tap to magnify on the spatial editor

(cherry picked from commit 01ee00f710)
2023-06-29 16:03:22 +02:00
Haoyu Qiu 740d387a09 Fix theme of editor VCS dialogs
These dialogs were added to the plugin itself so theme can't be
propagated.

Also moved initialization of the VCS menu after the creation of
EditorInterface.

(cherry picked from commit b30a332009)
2023-06-29 16:03:22 +02:00
VolTer 5fbf1c230f Reinstate NoiseTexture2D icon
(cherry picked from commit ac8a9df2bf)
2023-06-29 16:03:22 +02:00
bruvzg bfd15886de [TextServer] Prevent duplicate line breaks on virtual spaces when line width is significantly smaller than character width.
(cherry picked from commit 8a4a883854)
2023-06-29 16:03:22 +02:00
Haoyu Qiu b63db1e6fc Fix extraction of chained tr() calls
(cherry picked from commit 3e88c4cd5c)
2023-06-29 16:03:22 +02:00
detomon bf8f9e28c8 Fix adding bones with the same name after calling Skeleton3D.clear_bones()
(cherry picked from commit ea80213eee)
2023-06-29 16:03:22 +02:00
Artyom Lunchenkov 0649c05756 Improve Skeleton3D::find_bone() performance
(cherry picked from commit f645eee62e)
2023-06-29 16:03:22 +02:00
Arman Elgudzhyan 05eeb8783c Take 3D resolution scaling into account for mesh LOD
(cherry picked from commit ac4ca89000)
2023-06-29 16:03:22 +02:00
Arman Elgudzhyan 88475cfba9 Use defined key mapping for closing popups and dialogs
As opposed to hardcoding the escape key. Also removed such hardcoding in a few other places as well as a hardcoded enter key in one of the affected input fields.

(cherry picked from commit 8ab2cf3d2d)
2023-06-29 16:03:22 +02:00
Ninni Pipping fcafb674af Ensure quotes are escaped when converting builtin scripts
(cherry picked from commit ef4422e3e1)
2023-06-29 16:03:22 +02:00
kobewi 13a030de06 Fix AnimationPlayer cumulative speed_scale
(cherry picked from commit 87a6145135)
2023-06-29 16:03:21 +02:00
kobewi e4986ad4aa Don't create bones from empty scene
(cherry picked from commit e5b6b3e1e3)
2023-06-29 16:03:21 +02:00
Fredia Huya-Kouadio d86aa32f8c Update the format for the app version code and name
(cherry picked from commit a041f96779)
2023-06-29 16:03:21 +02:00
Riteo 531b22339a Build `JoypadLinux` sandbox detection method only with udev
Fixes an `unused-function` warning when building with `udev=no`.

(cherry picked from commit 51dfdfab96)
2023-06-29 16:03:21 +02:00
Fredia Huya-Kouadio f7ee97d6d7 Update the gradle build tasks to generate play store builds.
Configure the gradle builds to sign and build the release version of the Godot Android Editor

(cherry picked from commit 0d569bea5d)
2023-06-29 16:03:21 +02:00
kleonc 9cae00fae8 Fix Y-sort modulate for top-most Y-sorted CanvasItem
(cherry picked from commit bbb2a889d8)
2023-06-29 16:03:21 +02:00
kleonc bfc679b862 Fix modulation propagation for Y-sorted CanvasItems
(cherry picked from commit 5d8219b4fd)
2023-06-29 16:03:21 +02:00
Rakka Rage bcb6154a3b Make tile atlas merge dialog use filter nearest mipmaps on both sides. To avoid blurry tiles.
(cherry picked from commit 855d78e458)
2023-06-29 16:03:21 +02:00
sakrel b7d741977c RenderingDeviceVulkan::buffer_get_data: Use draw command buffer instead of setup command buffer
(cherry picked from commit f52c151fcf)
2023-06-29 16:03:21 +02:00
Hugo Locurcio d56e19b012 Fix typo in FinalAction `switch` statement in RenderingDevice
(cherry picked from commit dd53037f74)
2023-06-29 16:03:21 +02:00
RedworkDE 5366970863 C#: Fix `SendToScriptDebugger` crash
(cherry picked from commit fa14b6d212)
2023-06-29 16:03:21 +02:00
Bastiaan Olij c41ad0f74c Conditionally free GI and FOG resources, they may not have been created
(cherry picked from commit 57f343ab21)
2023-06-29 16:03:21 +02:00
Bastiaan Olij 7ac0f406aa Properly clear material slots on mesh instance when material is freed
(cherry picked from commit 1a128fcccd)
2023-06-29 16:03:21 +02:00
Fredia Huya-Kouadio 2900425eeb Adds a `scale_gizmo_handles` entry to the `Touchscreen` editor settings
When enabled, this scales the editor icons to improve usability on touchscreen devices.
In addition this commit fixes touch detection for the collision_shape_2d_editor_plugin so it scales with the icons size.

(cherry picked from commit 30824e9818)
2023-06-29 16:03:21 +02:00
kobewi 73650d0fea Add scrolling to overwrite dialog
(cherry picked from commit ab787fe4d2)
2023-06-29 16:03:21 +02:00
Hiroki Taira f2738cbd41 Add support for DPAD Center key of Android TV remote controller
(cherry picked from commit 9dc84e3581)
2023-06-29 16:03:21 +02:00
Pedro J. Estébanez 2d49b669bb Avoid error spam on first opening of a not yet imported project
(cherry picked from commit ed9dc792df)
2023-06-29 16:03:21 +02:00
ajreckof 431bcf4880 fix `Window`derived nodes being unselectable for `ViewportTexture` `NodePath`
(cherry picked from commit ace7620e55)
2023-06-29 16:03:21 +02:00
Jackson Thomas Browne 3a4551450c Replace magic num in editor_properties_array_dict
Quick update to editor/editor_properties_array_dict max size.
Currently, an array in the EditorInspector won't display a number higher than 1,000,000.
In place of the current magic number this sets the max to be the INT32_MAX.
This eludes the magic number in place and is sufficiently large.

Resolves #77190

(cherry picked from commit 4fb7aac651)
2023-06-29 16:03:21 +02:00
Rindbee 5ef5ff00a4 Fix calling `TextureStorage::texture_3d_update()` could cause a crash
(cherry picked from commit ebd2b9e299)
2023-06-29 16:03:21 +02:00
ocean (they/them) e75e104e2d Fix adding colors to swatches not updating in previous ColorPickers.
ColorPicker was only updating colors if its swatches were empty. It
should always update from the cache in case some other ColorPicker
updated the swatch cache.

(cherry picked from commit a132ed0ca4)
2023-06-29 16:03:21 +02:00
bruvzg 0b8fee56e2 [ItemList] Fix item text positions in RTL mode.
(cherry picked from commit 343c35e7b0)
2023-06-29 16:03:20 +02:00
Danil Alexeev 4edc22ee6e Use nearest with mipmaps texture filter in SpriteFrames editor plugin
(cherry picked from commit 2edf1bd76a)
2023-06-29 16:03:20 +02:00
Lyuma f745ef03a3 Fix AABB for unused bones
Fixes bug where bounding box of 1 unit was used in some skinned models and had wrong LODs.
(this could become very large if the mesh is scaled, such as FBX conversions)
Also fixes a mistake in calcualting bone index.

(cherry picked from commit 791d8001db)
2023-06-29 16:03:20 +02:00
Alex Drozd 52c8c8c174 check for null event in Viewport::push_input
(cherry picked from commit a5a1c3a03c)
2023-06-29 16:03:20 +02:00
kobewi 14f1141abe Fix 2D audio in multiple viewports
(cherry picked from commit 8a41eefb97)
2023-06-29 16:03:20 +02:00
Rémi Verschelde 34b4cce2ff
Merge pull request #78811 from RedworkDE/net-auto-version-defines-4.0
[4.0] C#: Automatically generate version defines
2023-06-29 06:55:14 +02:00
RedworkDE 03ce3f5027 C#: Automatically generate version defines 2023-06-28 21:55:24 +02:00
Rémi Verschelde 98a47218a4
Update AUTHORS and DONORS list
New contributors added to AUTHORS:
ajreckof, AThousandShips, bitsawer, hakro, mihe, nongvantinh

Thanks to all contributors and donors for making Godot possible!

(cherry picked from commit 2930fbeecd)
2023-06-26 17:59:01 +02:00
Rémi Verschelde 5fdd5fa19d
Merge pull request #77110 from smix8/fix_agent_avoidance_pos_4.0
[4.0] Fix agent avoidance position not updated when entering SceneTree
2023-06-22 21:00:50 +02:00
Rémi Verschelde bce04919f4
Merge pull request #78340 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.4) - 1st batch
2023-06-20 13:27:35 +02:00
Rémi Verschelde 4eefe8a40e
Merge pull request #78403 from AThousandShips/create_size_fix
[4.0] Fix saving size in `CreateDialog`
2023-06-19 16:48:18 +02:00
Ninni Pipping e22a71aa3c [4.0] Fix saving size in `CreateDialog`
Was fixed for 4.1 in godotengine/godot#75141, but as part of a larger
fix
2023-06-18 14:45:14 +02:00
Adam Scott 09dc11bff5 Add missing `script_type` `nullptr` check
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
(cherry picked from commit 1236302388)
2023-06-16 20:55:24 +02:00
Isard Botha 314c729d2c Fix issue 74259 by setting the sky cover property back to nil when it is reset in the editor.
(cherry picked from commit 74041e3705)
2023-06-16 20:55:23 +02:00
Lyuma 9307d851a9 Fix get_bone_pose_global_no_override()
(cherry picked from commit 565803ce3d)
2023-06-16 20:55:23 +02:00
David Turner 4cf3aff7cc Stop dragging when a slider changes editability
(cherry picked from commit 7d6b44c5a4)
2023-06-16 20:55:23 +02:00
Hakim 3f98539361 Do not translate node name when assigned to an exported field
(cherry picked from commit f2383b7c19)
2023-06-16 20:55:23 +02:00
Hakim b650ba820b Hide Animation Frames section when there are no animations and show message
(cherry picked from commit 9cf2d0f058)
2023-06-16 20:55:23 +02:00
Haoyu Qiu c58bc21dba Turn off auto translate for some editor controls
* Scene tab
* Animation name list in Animation panel
* Feature profile name list in Editor Feature Profile dialog
* Layout names in editor layout menu
* Subresource list in Inspector dock
* Resource type shown in EditorResourcePicker
* Enum dropdowns in inspectors: We'll eventually allow auto translating
  these after implementing a way to opt-out auto translation on a
  property-by-property basis and a way to extract enumerators.

(cherry picked from commit 26553be424)
2023-06-16 20:55:23 +02:00
Paul Joannon 506734cae1 Link the right build property to REAL_T_IS_DOUBLE
(cherry picked from commit 178cd046bb)
2023-06-16 20:55:23 +02:00
dearthdev 67698b155f Correctly insert lightmap captures and geometries.
(cherry picked from commit 53903f07dc)
2023-06-16 20:55:23 +02:00
Evan Todd 156862bddb Fix CSGPolygon3D in path mode disappearing at runtime.
(cherry picked from commit da7e54ec17)
2023-06-16 20:55:23 +02:00
jpcerrone dcf6f2b29f Fix Input Map key assignments missing after project conversion
Fixes #76336 (Input Map keys missing).
Moves the project.godot config_version stamping from the project manager
to the project converter. Now there's no difference between converting through
the project manager and the CLI tool.
Fixes being prompted to re-convert the project in the project manager after
having done so through the CLI tool.

(cherry picked from commit 0985019c28)
2023-06-16 20:55:23 +02:00
Rindbee ce116e4708 Fix calculation bug with `TextEdit::get_line_height()`
When `get_line_height()` is less than `1`, there is no visible text.
So limit the return value of `get_line_height()` to **not less** than
`1` for calculation.

(cherry picked from commit 391bce44b7)
2023-06-16 20:55:23 +02:00
jpcerrone 566ad9813e fix errors while reordering input maps
(cherry picked from commit c6ea376842)
2023-06-16 20:55:23 +02:00
Danil Alexeev 2054141848 GDScript: Fix `validate_call_arg()` for unresolved datatype
(cherry picked from commit 7da3110e6b)
2023-06-16 20:55:23 +02:00
kleonc a26dd53faf Make SpriteFrames editor toolbar a FlowContainer
(cherry picked from commit d58e832062)
2023-06-16 20:55:23 +02:00
RedworkDE 4cabfc1756 CI: Fix running the unit tests on windows
(cherry picked from commit adbb323163)
2023-06-16 20:55:23 +02:00
kleonc 3af3e88d81 Fix AnimatedSprite3D autoplay warning
(cherry picked from commit d3d84d90de)
2023-06-16 20:55:23 +02:00
Yuri Rubinsky 2bcad4c55b Exclude incorrect completion options for `render_mode` in shaders
(cherry picked from commit 719741b0eb)
2023-06-16 20:55:23 +02:00
FranckRJ ac1885925c Fixed width of CapsuleShape2D::get_rect + set center to center of shape
The width of the rect was only half of the width of the shape, and
the 0;0 coord was at the top left of the rect.
Now the width properly matches the width of the shape, and the 0;0
coord is at the center of the shape. It should match the behavior
of Godot 3.X.

(cherry picked from commit ab5462e386)
2023-06-16 20:55:23 +02:00
tefusion acd975a45a Fix HTTPClient _request using wrong size
This only affects HttpClient in GDScript.

(cherry picked from commit 1514376e46)
2023-06-16 20:55:23 +02:00
RedworkDE 72d561c89f Fix C# glue generation for enums with negative values
(cherry picked from commit 45659ce2d9)
2023-06-16 20:55:23 +02:00
Danil Alexeev d00eb58381 GDScript: Fix warning ignoring for member variables
(cherry picked from commit c2fbb40e9a)
2023-06-16 20:55:20 +02:00
Hugo Locurcio e46b14fd30 Move code to Windows Vulkan context initialization context
This workaround is not needed for rendering drivers other than Vulkan.

(cherry picked from commit 950c5b57e4)
2023-06-16 17:27:11 +02:00
Hugo Locurcio 30f079ecb5 Disable AMD switchable graphics on Windows with Vulkan to fix driver issue
This is a required workaround on setups with AMD integrated graphics
+ NVIDIA dedicated GPU to be able to start the engine with the Forward+
or Forward Mobile rendering methods.

While a AMD driver update can resolve this issue, it still gets reported
regularly and is likely to become a source of support headache for people
distributing projects made with Godot (as this also affects exported projects).

(cherry picked from commit 31a9345189)
2023-06-16 17:27:10 +02:00
DeeJayLSP d6d232a881 Update certs (2023.06 revision)
(cherry picked from commit 504e002224)
2023-06-16 17:22:13 +02:00
Rémi Verschelde 142e648000 msdfgen: Sync with upstream 1.10
(cherry picked from commit 3c25dfe0e4)
2023-06-16 17:22:13 +02:00
Rémi Verschelde e027c44fe6 brotli: Sync with upstream commit ed1995b6b
ed1995b6bd
(cherry picked from commit 7770e4447d)
2023-06-16 17:19:16 +02:00
Rémi Verschelde 84b9202d87 recast: Update to upstream version 1.6.0
Release notes:
- https://github.com/recastnavigation/recastnavigation/releases/tag/v1.6.0

(cherry picked from commit 2058b63067)
2023-06-16 17:19:16 +02:00
Rémi Verschelde d5d02b9a85 wslay: Sync with upstream 0e7d106ff
0e7d106ff8

Just a couple style fixes. Updating only so we know we don't have to review changes
since upstream development seems dormant.

(cherry picked from commit adfc46db4d)
2023-06-16 17:19:16 +02:00
Rémi Verschelde b686a30a2c zstd: Update to upstream version 1.5.5
Release notes:
- https://github.com/facebook/zstd/releases/tag/v1.5.3
- https://github.com/facebook/zstd/releases/tag/v1.5.4
- https://github.com/facebook/zstd/releases/tag/v1.5.5

(cherry picked from commit 6100b4bd33)
2023-06-16 17:19:16 +02:00
Rémi Verschelde 5f60f4cdbf tinyexr: Sync with upstream 1.0.5
(cherry picked from commit 56d85149e5)
2023-06-16 17:19:15 +02:00
bitsawer b845bf8adc tinyexr: Sync with upstream 1.0.4
(cherry picked from commit ca55c455ad)
2023-06-16 17:19:15 +02:00
Rémi Verschelde 3e2c9077dc tinyexr: Sync with upstream 1.0.2
Fixes a bunch of bugs, notably addressing fuzzer reports (crashes).
https://github.com/syoyo/tinyexr/releases/tag/v1.0.2

(cherry picked from commit c5834eb972)
2023-06-16 17:19:15 +02:00
Lyuma e9ee7bdc9b Fix Node class in MSVC debugger for dev_build
(cherry picked from commit b3a83b7c4e)
2023-06-16 17:19:15 +02:00
Hugo Locurcio 3d61653e45 Document the InitialAction enum in RenderingDevice
This also improves the documentation for the FinalAction enum,
and fixes an incorrect comment in the RenderingDevice header.

(cherry picked from commit 0f82a0f569)
2023-06-16 16:37:38 +02:00
Michael Alexsander 227de95dbb Remove inaccuracy about re-using `Thread`s in its doc
(cherry picked from commit c1e5001cf6)
2023-06-16 16:37:38 +02:00
Eranot bb7e88e52a Fixing parameter order in the documentation of TLSOptions.server()
(cherry picked from commit 4965125fce)
2023-06-16 16:37:38 +02:00
Ninni Pipping 2337d825c1 Clarify use of size flags in `Control`
(cherry picked from commit 6146c60cf8)
2023-06-16 16:37:38 +02:00
Peter Anderson 23dc7047ad Add Stretch Mode description to ProjectSettings.xml
Update doc/classes/ProjectSettings.xml

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
(cherry picked from commit 77a61084aa)
2023-06-16 16:34:20 +02:00
unknown a07cfcc09e Fix outdated C# code example for class AnimationNodeOneShot
(cherry picked from commit 5142b5d23c)
2023-06-16 16:34:06 +02:00
Hugo Locurcio d7e50811bc Document GI techniques ignoring VisualInstance3D and Camera3D layers
This also improves documentation for a few other properties in those classes.

(cherry picked from commit 40bf95ca8e)
2023-06-16 15:13:00 +02:00
Hugo Locurcio 53cb88554a Document the database for `Input.get_joy_name()` and `Input.get_joy_guid()`
(cherry picked from commit 922d2b7034)
2023-06-16 15:13:00 +02:00
Raul Santos c99f67105f C#: Fix dictionary key lookup documentation
The method to check if a key exists in the dictionary is called `ContainsKey`.

(cherry picked from commit 6723b4e8c3)
2023-06-16 15:13:00 +02:00
Violet Johnson 4c34531499 Update C# code example to fix an error
Update doc/classes/AnimationNodeStateMachinePlayback.xml

Co-authored-by: Raul Santos <raulsntos@gmail.com>
(cherry picked from commit cb7fdad3b4)
2023-06-16 15:13:00 +02:00
rainlizard 8df97cf368 Specify how to use the global animation library in gdscript
(cherry picked from commit bf7adc8670)
2023-06-16 15:13:00 +02:00
Max Hilbrunner 1a1095f986 Docs: Add FileAccess.close, remove dupl. example
(cherry picked from commit aaf43a260e)
2023-06-16 15:12:59 +02:00
TechnicalSoup 62d7797cbf Update HTTPRequest Class Documentation
Reword the timeout member definition to indicate that example timeout values are suggestions.
Add definition for timeout constant.

Apply suggestions from code review

Co-authored-by: Yuri Sizov <11782833+YuriSizov@users.noreply.github.com>
(cherry picked from commit d185220b32)
2023-06-16 15:12:59 +02:00
Ninni Pipping 0e697e102b Add more info on the nature of NAN
(cherry picked from commit 5e3c625e24)
2023-06-16 15:12:59 +02:00
mara a44409bf54 Clarify doc for Color.hex and C# Color()
The "alpha channel first" seems misleading to me. It doesn't match with
the examples, so remove it. Add a more detailed specification of the
expected number format in hex.

(cherry picked from commit 779ac20bb9)
2023-06-16 15:12:59 +02:00
Hugo Locurcio 484a39c34d Document seamless caveats on small textures in NoiseTexture2D and NoiseTexture3D
This also harmonizes "normal map" spelling across the class reference.

(cherry picked from commit 9e21647578)
2023-06-16 15:12:36 +02:00
PoolloverNathan e72e24b3cc Update outdated syntax in `JavaScriptBridge` doc
According to `JavaScriptBridge`, thus takes a Callable, not an object/string pair.

(cherry picked from commit 04480f196a)
2023-06-16 15:12:20 +02:00
archsolar 3c2e30b319 Docs: Fix SurfaceTool example caps typo
(cherry picked from commit 6719fea8dc)
2023-06-16 15:12:20 +02:00
Devin 412d947dc3 Updated Object's class reference documentation for set_meta to indicate metadata's name must be a valid identifier
(cherry picked from commit cdc2e6d872)
2023-06-16 15:12:20 +02:00
VolTer b118d89eed Overhaul the top sections of the class reference (Core classes)
(cherry picked from commit 04562662d3)
2023-06-16 15:12:10 +02:00
VolTer 2792b520a7 Overhaul the top sections of the class reference (GUI classes)
(cherry picked from commit 151a4ba6a5)
2023-06-16 14:56:34 +02:00
Rindbee fd08e35cd3 Add instructions for configuring CheckBox as a radio button
(cherry picked from commit 3dc487b450)
2023-06-16 14:56:16 +02:00
Ninni Pipping 465f363c77 Minor grammar fixes to documentation
(cherry picked from commit 17fb77223c)
2023-06-16 14:44:53 +02:00
Haoyu Qiu 605b6e568f Fix code tag typo in class reference
(cherry picked from commit 85f137912d)
2023-06-16 14:44:53 +02:00
Silc Lizard (Tokage) Renew c5c27e64ea Remove out-dated lines from class reference of Skeleton3D
(cherry picked from commit 26cc4bbd82)
2023-06-16 14:44:52 +02:00
VolTer a4e8ba9b5d Overhaul the top sections of the class reference (Animation classes)
(cherry picked from commit 4af3fc7e26)
2023-06-16 14:44:52 +02:00
Yuri Sizov 0934545d23 Validate code tags in documentation for potential params
Adds a check to make_rst to look for matches
between the text inside of the [code][/code] tag
and known param identifiers.
Fixes most of what was revealed.

(cherry picked from commit 391eccca76)
2023-06-16 14:44:52 +02:00
Dipal Zambare 3aea815a05 Fix typo in CS notification example of the Object class
(cherry picked from commit 41ac5a406e)
2023-06-16 14:37:53 +02:00
Ninni Pipping 41b10f1222 Clarify range of various ID values are 32 bit
(cherry picked from commit 8cf98dda23)
2023-06-16 14:37:53 +02:00
skyace65 a7ba5e9939 Fix incorrect Polygon2D description
(cherry picked from commit 7d9a0f1fe7)
2023-06-16 14:37:53 +02:00
FranckRJ d6e73cabad Replaced "mirror" by "repeat" in doc of ParallaxLayer::motion_mirroring
Also added a warning explaining that despite its name the texture isn't mirrored.

(cherry picked from commit 4e06f611b8)
2023-06-16 14:37:52 +02:00
jess3jane 3fbf460a9f Accurately document StringName comparisons
(cherry picked from commit 2f9121dea6)
2023-06-16 14:37:52 +02:00
Ninni Pipping dce1b9ce14 Fix `StringName` comparison
(cherry picked from commit d2ddd8b228)
2023-06-16 14:37:52 +02:00
Rémi Verschelde 4ba4ed6528
Merge pull request #78270 from RedworkDE/net-version-define-4.0
[4.0] C#: Add version defines to help users deal with breaking changes
2023-06-15 15:53:38 +02:00
RedworkDE 6a4bf0a9ad C#: Add version defines to help users deal with breaking changes 2023-06-15 13:22:08 +02:00
Rémi Verschelde 11df2a8f22
Merge pull request #78137 from akien-mga/4.0-regex-nullptr-free
[4.0] regex: Add nullptr check in `_regex_free`, needed with PCRE2 10.42
2023-06-12 17:07:08 +02:00
Rémi Verschelde 290db4a0b6
regex: Add nullptr check in `_regex_free`, needed with PCRE2 10.42
Fixes #76174.
2023-06-12 15:19:55 +02:00
Rémi Verschelde da3f725206
i18n: Sync translations with Weblate
Last 4.0 sync before switching Weblate to track 4.1 strings.
2023-06-12 14:35:33 +02:00
Yuri Sizov fd5dc25240
Merge pull request #77664 from RedworkDE/audiostream-preview-crash-4.0
[4.0] Fix crash in AudioStream preview
2023-06-02 12:21:33 +02:00
RedworkDE ebc3ac0934 Fix crash in AudioStream preview 2023-05-30 20:28:28 +02:00
Rémi Verschelde 70fa4d26d7
Merge pull request #77579 from dalexeev/gds-bitfield-as-int-4.0
[4.0] GDScript: Treat `BitField<Enum>` as `int` (not `Enum`)
2023-05-29 11:11:23 +02:00
Danil Alexeev 74ac827ac7
[4.0] GDScript: Treat `BitField<Enum>` as `int` (not `Enum`) 2023-05-28 18:15:51 +03:00
Max Hilbrunner 75e5bf789d Small docs syntax fixes
(cherry picked from commit a521b85976)
2023-05-19 16:15:36 +02:00
Rémi Verschelde d0c0d44cb5
Actually bump version to 4.0.4-rc :o) 2023-05-19 12:57:28 +02:00
Rémi Verschelde 97631f8aa9
Bump version to 4.0.4-rc
Error: Godot not found.
2023-05-19 09:39:54 +02:00
Rémi Verschelde 5222a99f5d
Bump version to 4.0.3-stable 2023-05-19 08:58:15 +02:00
Rémi Verschelde acc82a1d05
i18n: Sync translations with Weblate 2023-05-19 08:55:54 +02:00
Rémi Verschelde 138882742a
Merge pull request #77202 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.3) - 5th batch
2023-05-19 08:40:25 +02:00
Yuri Sizov 5fe254e8f6 Update the changelog for 4.0.3 2023-05-18 21:48:37 +02:00
Yuri Sizov eced93a3f5 Revert "Improve the UX of ViewportTexture in the editor"
This reverts commit b91b8fce43.
2023-05-18 21:46:40 +02:00
Ninni Pipping 589306a9d8 Make `TouchScreenButton` connections reference counted
Prevents errors when assigning the same texture to both slots

(cherry picked from commit 0648cc65b2)
2023-05-18 21:46:39 +02:00
Fabio Alessandrelli 238b8357a3 [TLS] Fix crashes trying to use TLS when not available.
If no StreamPeerTLS implementation is available, HTTPClient and
WebSocketPeer will now correctly refuse to connect using TLS returning
ERR_UNAVAILABLE.

Similarly, ENetConnection will refuse to setup DTLS when PacketPeerDTLS
is not available.

(cherry picked from commit eeac6f8c7f)
2023-05-18 19:22:23 +02:00
kobewi 7d5d5b7bd1 Fix crash when trying to create bones from Control
(cherry picked from commit 6a120107b3)
2023-05-18 19:22:23 +02:00
voidshine 9a88b47cb1 Document MIDI zero velocity quirk
(cherry picked from commit 06d02928b7)
2023-05-18 19:22:23 +02:00
Max Hilbrunner 7f0d8bcade Docs: Point to @GDScript in GDscript (script impl)
(cherry picked from commit ad21fb0f92)
2023-05-18 19:22:23 +02:00
Alex Drozd 3e8f0b4b75 Exclude overriden properties from Property Descriptions section
(cherry picked from commit 28f391f301)
2023-05-18 19:22:23 +02:00
kleonc 945d669da0 Fix property usage docs referring to removed network flag
(cherry picked from commit fc92ee6bf4)
2023-05-18 19:22:22 +02:00
Ninni Pipping 1f7a5f6144 Document limitations of placeholder textures
(cherry picked from commit bd2e377007)
2023-05-18 19:22:22 +02:00
VolTer c37259b181 Add WorkerThreadPool documentation
(cherry picked from commit bd257092da)
2023-05-18 19:22:22 +02:00
Samuele Panzeri 912b3afb96 Fix skeleton 3d editor crash in RC3
Control notifies a theme changed before the editor has entered the tree

(cherry picked from commit a103cd76bb)
2023-05-18 19:22:22 +02:00
Yuri Sizov fd8f38c240 Revert "Make EditorToaster's handler thread-safe"
This reverts commit 3a5bc7455e.
2023-05-18 19:22:22 +02:00
Yuri Sizov 60e8a06d4e
Merge pull request #77204 from akien-mga/4.0-ci-base-branch
[4.0] CI: Change GODOT_BASE_BRANCH to 4.0, checkout that branch for godot-cpp
2023-05-18 19:20:59 +02:00
Rémi Verschelde 2a5d5ef1f9 CI: Change GODOT_BASE_BRANCH to 4.0, checkout that branch for godot-cpp 2023-05-18 17:44:31 +02:00
smix8 5296b91592 Fix agent avoidance position not updated when entering SceneTree
Fixes agent avoidance position not updated when entering SceneTree.
2023-05-15 22:27:37 +02:00
Rémi Verschelde 2ac4e3bb30
Merge pull request #76998 from akien-mga/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.3) - 4th batch
2023-05-12 15:08:03 +02:00
Rémi Verschelde fa8b32cbd4
Update changelog for 4.0.3 2023-05-12 14:16:20 +02:00
Rémi Verschelde 9cd9a07c27
i18n: Sync translations with Weblate 2023-05-12 14:14:05 +02:00
Rémi Verschelde 576ca44762
Linux: Don't use udev for joypad hotloading when running in a sandbox
udev doesn't work in sandboxes, notably the new Steam container runtime
as found notably on the Steam Deck, and in Flatpak/Snap packages.

Like SDL does, when we detect such a containerized environment, we fall
back to parsing `/dev/input` directly.
See smcv's comments in #76879 for details.

Fixes #76879.

(cherry picked from commit 788cb74cc6)
2023-05-12 14:14:05 +02:00
kobewi ab2c3712e2
Add mono audio support to WASAPI
(cherry picked from commit 8d010b44c1)
2023-05-12 14:14:04 +02:00
Martin Boué fe126359f0
Fix include text when excluding resources to export
(cherry picked from commit 886e73683d)
2023-05-12 13:56:49 +02:00
Nong Van Tinh aa23e6fc5e
Fixes Node arrays appear as Object arrays in the inspector
(cherry picked from commit 3ebf2264aa)
2023-05-12 13:56:49 +02:00
Rémi Verschelde 4d7336e70f
CI: Skip codespell check if `CHANGED_FILES` is empty
This can happen when only thirdparty files are changed, since we grep them out.
Re-add `bin` and `thirdparty` to the skip list for good measure.

(cherry picked from commit c7a5ce656c)
2023-05-12 13:56:49 +02:00
Rémi Verschelde 9deaac5c60
CI: Use gh-cli for changed files, and workaround codespell skip list bug
For PRs, this should give a more accurate list, as the previous method would
diff to the tip of the `master` branch, which could include new commits (and
thus changed files) not present in the PR branch.

codespell's `--skip` option doesn't work at all with folders when used
together with an explicit list of paths to work with, so let's not use it.

(cherry picked from commit b3bb92ae5e)
2023-05-12 13:56:49 +02:00
Rémi Verschelde 47b3f95874
CI: Make codespell checks blocking, but only check changed files
(cherry picked from commit b226f7e587)
2023-05-12 13:56:49 +02:00
Ninni Pipping f93a4287cf
Enable shadow warnings and fix raised errors
(cherry picked from commit 71ee65dc57)
2023-05-12 13:56:48 +02:00
Alex Drozd 09c5a8fe49
adjusting step size for fastnoise frequency hint
(cherry picked from commit 2b053e4e4c)
2023-05-12 12:31:59 +02:00
Hugo Locurcio 7d0af7d10f
Document high performance cost of turbulence in ParticleProcessMaterial
- Mention that GPUParticlesAttractorVectorField3D can be used as an
  alternative to turbulence in 3D.

(cherry picked from commit f10759489d)
2023-05-12 12:31:58 +02:00
Manik Sharma f6ed43b7d3
Make environment energy adjustable as a float in 3D editor's preview environment
(cherry picked from commit 3ce0ebb242)
2023-05-12 12:31:24 +02:00
Rémi Verschelde 52c314501c
doctest: Update to 2.4.11
(cherry picked from commit 3091c6e9e9)
2023-05-12 12:31:24 +02:00
Rémi Verschelde 30b1c7fc1f
astcenc: Update to 4.4.0
> The 4.4.0 release is a minor release with image quality improvements,
> a small performance boost, a few new quality-of-life features, and a
> few minor fixes for uncommon build configurations.

https://github.com/ARM-software/astc-encoder/releases/tag/4.4.0
(cherry picked from commit 5a3f955e05)
2023-05-12 12:31:24 +02:00
Rémi Verschelde a227de0898
basis_universal: Update to 1.16.4
Almost no change in practice since the previous commit we tracked,
but now this is a tagged release.

(cherry picked from commit 0ff337d20f)
2023-05-12 12:31:24 +02:00
Rémi Verschelde dfba9ad739
certs: Sync with Mozilla bundle as of Mar 23, 2023
8bcd1092d2
(cherry picked from commit d1c59b47e4)
2023-05-12 12:31:23 +02:00
Aaron Franke 161f389f93
Rename the Debugger's stack debug section to Stack Trace
(cherry picked from commit 74361b3d50)
2023-05-12 12:31:23 +02:00
Martin Capitanio 9e11b78d1c
Update ThorVG to v0.9.0
https://github.com/thorvg/thorvg/releases/tag/v0.9.0
Fixes #72478

(cherry picked from commit 5db751832d)
2023-05-12 12:31:23 +02:00
Bram Stolk ce0c61b6e3
Add missing initializations for Node3DEditor.
Do not try to format fields with garbage values in _snap_update()
Initialize grid_enable[] before use.
Initialize previewing_camera before use.
These are all cases found live, with valgrind.
Fixes #76925

(cherry picked from commit 4bc513edbc)
2023-05-12 12:31:23 +02:00
lawnjelly efbb28d09a
Make acos and asin safe
A common bug with using acos and asin is that input outside -1 to 1 range will result in Nan output. This can occur due to floating point error in the input.

The standard solution is to provide safe_acos function with clamped input. For Godot it may make more sense to make the standard functions safe.

(cherry picked from commit 50c5ed4876)
2023-05-12 12:31:23 +02:00
Rindbee b91b8fce43
Improve the UX of ViewportTexture in the editor
The associated `ViewportTexture`s will update the `viewport_path`
in time when the `Viewport`'s nodepath is changed (caused by renaming
the node names or moving in the SceneTree dock).

If the target `Viewport` is changed by resetting the `viewport_path`,
the `ViewportTexture`s will be re-setup and emit `changed` signal in
time.

(cherry picked from commit af58f1e854)
2023-05-12 12:31:22 +02:00
kobewi 1146172b30
Prevent errors when using ViewportTexture
(cherry picked from commit 1b9802fa8c)
2023-05-12 12:31:22 +02:00
David Snopek 2a8501e1a2
Add missing documentation for MultiplayerPeerExtension
(cherry picked from commit 4d13be3c5e)
2023-05-12 12:31:22 +02:00
Samuele Panzeri 07128ccb9d
Fix skeleton_3d & physical_bone_3d editor errors
(cherry picked from commit 679ff6da0e)
2023-05-12 12:31:22 +02:00
Patrick 9d9b7511a0
Fix Rotation Issue with NODE_POSITION_VIEW Visual Shader Node
(cherry picked from commit e35bbd76a3)
2023-05-12 12:31:22 +02:00
ChibiDenDen bb785cfcc0
Fix gles3 rendering on android studio emulator
Use a temporary framebuffer for screen copy from rendertarget to screen.

This solves GLES3 rendering in android studio emulator (before this change there is just a black screen)

Based on discussion in:
https://github.com/godotengine/godot/issues/74828

(cherry picked from commit 5956aa1a6a)
2023-05-12 12:31:22 +02:00
Samuele Panzeri cf0bd389cc
Support long path in file access on windows
Changed windows file access file to check for path length and use the \\?\ long format when needed

(cherry picked from commit 59f04e16b8)
2023-05-12 12:31:22 +02:00
Alex Drozd a37f79124f
add venv and .venv to the .gitignore
(cherry picked from commit a6fda19e85)
2023-05-12 12:31:21 +02:00
Manik Sharma 31a37495f3
Make sun energy adjustable as a float in the 3D editor's preview sun
(cherry picked from commit 5e1cb39101)
2023-05-12 12:31:21 +02:00
smix8 3be6a1b38e
Fix SurfaceTool::create_from_blend_shape()
Fixes SurfaceTool::create_from_blend_shape().

(cherry picked from commit 2dbc5d95eb)
2023-05-12 12:31:21 +02:00
ajreckof a42f427465
fix a test for wrapf with signed 32-bit float
(cherry picked from commit fabd9535f0)
2023-05-12 12:31:21 +02:00
stmSi 25ab61f82a
Added note to used set_deferred while setting scroll values in _ready function.
(cherry picked from commit 83626ab90d)
2023-05-12 12:31:21 +02:00
Александр Черник b2364048d2
LSP: don't send empty completion command
(cherry picked from commit 5715d3eb59)
2023-05-12 12:31:21 +02:00
Hugo Locurcio 35fa05fa51
Document caveats related to exported project binary resource conversion
(cherry picked from commit febc674f48)
2023-05-12 12:31:21 +02:00
Lyuma dcca6485d0
gltf: Permit sparse accessors without a bufferView.
(cherry picked from commit 72d131899b)
2023-05-12 12:31:21 +02:00
Hugo Locurcio 2d7228251d
Improve RenderingServer, RenderingDevice, ShaderGlobalsOverride documentation
This brings the overall class reference completion percentage from 87% to 92%.

(cherry picked from commit 5056c427d3)
2023-05-12 12:31:19 +02:00
Ninni Pipping 9a5af8e793
Clarify that event handling does not affect `Input`
(cherry picked from commit 732ad382a6)
2023-05-12 12:14:45 +02:00
Christopher Foo 28012c40fb
Ensure WindowData minimized/maximized are mutually exclusive
The window manager can break the assumption that
fullscreen/maximized/minimized values are mutually exclusive.

(cherry picked from commit e4d052e284)
2023-05-12 12:14:30 +02:00
Omar Shehata bab96e71d2
Fix double tap & drag on Android
(cherry picked from commit 0c94750642)
2023-05-12 12:14:14 +02:00
Fredia Huya-Kouadio 07af84689f
Follow up to https://github.com/godotengine/godot/pull/76399 to fix input ANR in the Godot Android editor
(cherry picked from commit 367061cf9c)
2023-05-12 12:12:05 +02:00
Pedro J. Estébanez d07d4d90d0
Allow concurrent buffering and dispatch of input events
(cherry picked from commit f369ed9223)
2023-05-12 12:11:58 +02:00
kleonc 4b11fc65f1
Make `LocalVector` respect its `tight` template parameter
(cherry picked from commit 0b944e1a68)
2023-05-12 12:11:41 +02:00
Michael Alexsander b7206e25bf
Improve some descriptions in the OS docs
(cherry picked from commit 6db12c5e50)
2023-05-12 12:11:23 +02:00
Ninni Pipping 5d93de88a8
Fix size error in `BitMap.opaque_to_polygons`
Previous estimate of upper limit on size was incorrect

(cherry picked from commit 249784ed53)
2023-05-12 12:10:50 +02:00
Pedro J. Estébanez 813fc0940d
Allow creation of rendering buffers at any time
(cherry picked from commit d4c46f15ae)
2023-05-12 12:10:35 +02:00
kobewi 64b15c8ec1
Add info label to TileMap editor
(cherry picked from commit 979b53aba4)
2023-05-12 12:07:14 +02:00
Bastiaan Olij 3a90fa677b
Fix incorrect HTC action map entries
(cherry picked from commit e15358dc67)
2023-05-12 12:07:02 +02:00
jmb462 f3b608d331
Fix regression with right click on main selection
(cherry picked from commit d59cdb8327)
2023-05-12 12:07:02 +02:00
Jean-Michel Bernard 53df7c18e0
Fix right click in selection of additional caret
(cherry picked from commit 5c06c030f2)
2023-05-12 12:07:02 +02:00
Aaron Franke f49c69a1e7
Fix small mistake in docs, "antecedents" -> "ancestors"
(cherry picked from commit 740b0713a2)
2023-05-12 12:07:02 +02:00
VolTer 78c190f4f5
Add an example for how to use AudioStreamGenerator
(cherry picked from commit 9d77caaf95)
2023-05-12 12:07:02 +02:00
VolTer e530168fb8
Document TextServerDummy
(cherry picked from commit c8e06fe838)
2023-05-12 12:07:02 +02:00
UltraBIF 4b63ce83d2
Fixed various typos across the docs
(cherry picked from commit 8106d33d0f)
2023-05-12 12:07:02 +02:00
David Turner 0566ac68de
Explain why an image would be invalid for a texture
(cherry picked from commit 43a7cb093c)
2023-05-12 12:07:02 +02:00
mashumafi 0cb1fd3a61
Wait for navigation baking to finish before destruction
(cherry picked from commit a93a2e519d)
2023-05-12 12:07:01 +02:00
kobewi d56c4f960c
Remove erroneous signal connection
(cherry picked from commit 88ea3dd4db)
2023-05-12 12:07:01 +02:00
kobewi 19b998396c
Close built-in shaders when closing scene
(cherry picked from commit aaf02ec04a)
2023-05-12 12:07:01 +02:00
Bastiaan Olij a5cb7a5eb5
Expose viewports render targer RID
(cherry picked from commit ab60d3b65c)
2023-05-12 12:07:01 +02:00
kobewi 0277f57b6f
Some clarifications on screen-space coordinates
(cherry picked from commit 33b9be27d3)
2023-05-12 12:07:01 +02:00
Pedro J. Estébanez 907b10fb96
Fix additional cases of breakage of rendering effects
(cherry picked from commit c58e50adcc)
2023-05-12 12:07:01 +02:00
clayjohn 2435c9426d
Use proper UV in cubemap downsampler raster
This removes bias in cubemap downsampling shader that resulted in the bottom of cubemaps being over represented

(cherry picked from commit fb77021559)
2023-05-12 12:07:01 +02:00
Tetane e68e2fad25
Use a SubViewport for CanvasItem inspector preview
(cherry picked from commit d3792a2373)
2023-05-12 12:07:00 +02:00
HolonProduction a07ad181ab
Preserve scene unique names when saving branch as scene.
(cherry picked from commit 7814dedc91)
2023-05-12 12:07:00 +02:00
VolTer 70f7fcd208
Light3D show scaling warning immediately
(cherry picked from commit 818d57b5b4)
2023-05-12 12:07:00 +02:00
Tefatika b532dd7626
Fixed error messages when setting all_tab_in_front of TabContainer
Some signal handlers weren't unregistered when removing the wrapped
child TabBar, which resulted in errors printed when the TabBar was
removed and added again when the flag was updated

(cherry picked from commit abd894daf7)
2023-05-12 12:07:00 +02:00
Tefatika e58001bd0d
Command Palette search now also uses original English command names
Both localized and non localized names will be used while filtering

The highest score between the two will be picked when determining
the entries order

(cherry picked from commit 09460cfaaf)
2023-05-12 12:07:00 +02:00
clayjohn 9d257f10c0
Use DXT1 when compressing PNGs with RGB format
This results in much smaller file sizes with the same quality

(cherry picked from commit f84c6df8d1)
2023-05-12 12:07:00 +02:00
Lyuma 2a0597d0cb
import: Fix Silhouette used incorrect index.
Fixes bind pose mistake from using i (mesh skin index) instead of bone_idx (skeleton bone index).
Fixes #76448

(cherry picked from commit d33a734ac5)
2023-05-12 12:07:00 +02:00
bruvzg ebaf3cc9ab
[iOS] Fix loading of GDExtension dylibs auto converted to framework.
(cherry picked from commit ad4d565ee7)
2023-05-12 12:06:59 +02:00
Justin Wash 268b60ddd6
Fix infinite loop in Build2DFaces::_find_edge_intersections
(cherry picked from commit 1ac2c537da)
2023-05-12 12:06:59 +02:00
K. S. Ernest (iFire) Lee 0c312c7a08
Fix CSG edge case causing intersection line to hit on common edge of 2 triangles.
The previous implementation assumed that the intersection entered or exited a
shape when it hit right on the common edge of 2 triangles. However, there is
also a case where it just "skirts" the other shape on the outside.

To fix this, we added code to check the intersection distance and if the
normals of the faces are pointed in the same direction as the intersection or
not (e.g. inner product > 0). This handles the case where the intersection
line hits the common edge of 2 triangles and skirts the other shape on the
outside.

Extended code to cover a third case.

Fixes #58637.

Co-authored-by: OldBelge <StevenGeens@users.noreply.github.com>
(cherry picked from commit eaa84bc682)
2023-05-12 12:06:59 +02:00
kobewi c8d64e8580
Fix another collision shape editor crash
(cherry picked from commit 01c32dffaf)
2023-05-12 12:06:59 +02:00
kobewi fdf66b3472
Fix CollisionShape2D editor crash
(cherry picked from commit e5d0bb1605)
2023-04-28 17:16:53 +02:00
Rémi Verschelde 2d74ee0e5b
Update changelog for 4.0.3 2023-04-27 08:51:08 +02:00
George Marques 21bb5b9c0e
GDScript: Don't fail when freed object is return
This is check is a bit too eager. The user should be able to handle the
return value even if it's a freed object.

(cherry picked from commit abbdf80643)
2023-04-27 08:49:29 +02:00
George Marques aff0340486
GDScript: Fix wrong increment for disassembly of lambda
(cherry picked from commit 5b49382d38)
2023-04-27 08:49:29 +02:00
Pedro J. Estébanez 908325c29e
Fix unsupported sampler filter used for voxel GI
(cherry picked from commit 09aa1bbdb3)
2023-04-27 08:43:30 +02:00
Pedro J. Estébanez a5779ff281
Fix breakages of volumetric fog on voxel GI changes
(cherry picked from commit 2beed0d5dc)
2023-04-27 08:43:23 +02:00
kobewi 37c89f78ac
Improve reliability of 2D shape editor redrawing
(cherry picked from commit d8e39912f8)
2023-04-27 08:42:54 +02:00
bitsawer a0a95c7bc7
Fix Shader Preprocessor line numbering when disabled
(cherry picked from commit 34896d8e89)
2023-04-27 08:41:43 +02:00
George Marques ee9a268fd7
GDScript: Use default path in test generator if not provided
Since it's almost always used with the same path, assume it is running
from the Godot source root.

(cherry picked from commit 221deb1cc1)
2023-04-27 08:41:36 +02:00
Devin 1b74572377
Updated GDScript example to use clear_surfaces() and C Sharp example to use ClearSurfaces() instead of non-existent surface_remove() and SurfaceRemove()
(cherry picked from commit 3b615ed789)
2023-04-27 08:41:23 +02:00
Rémi Verschelde ba004ea1c3
Merge pull request #76476 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.3) - 3rd batch
2023-04-26 17:57:45 +02:00
Yuri Sizov e7f4af0913 Update the changelog for 4.0.3 2023-04-26 15:50:20 +02:00
VolTer 7f09c3d2fc Provide an example on how to use ImmediateMesh
(cherry picked from commit 4eabad6c26)
2023-04-26 14:51:01 +02:00
Yuri Sizov 56110a354c Err when trying to build the editor without its required modules
(cherry picked from commit a145194268)
2023-04-26 14:51:01 +02:00
Winston b9e75e50dc Document automatic center mode using shape origins
(cherry picked from commit 7b30d7da51)
2023-04-26 14:51:01 +02:00
Ninni Pipping 08ec4a82bd Add information about how `Engine.time_scale` affects Timers
(cherry picked from commit 16a1465380)
2023-04-26 14:51:00 +02:00
Fredia Huya-Kouadio d327bb7a45 Fix issue with resizing the display on Android when using the compatibility renderer.
(cherry picked from commit b438b4a490)
2023-04-26 14:51:00 +02:00
Eoin O'Neill 5120afc236 Fix crash caused by invalid mix_rate assignment due to bogus
project settings.

We'll default to a sensible value in the case that a user has
somehow managed to modify the configuration file incorrectly.

Closes 69819

(cherry picked from commit 5a08091168)
2023-04-26 14:51:00 +02:00
Rindbee 4b4556179e Fix the uid field of the tscn/res file is lost when the external dependency is updated
(cherry picked from commit 41ac40c44c)
2023-04-26 14:51:00 +02:00
Roman Vasilyev b711b45870 ios splash screen rotation fix
(cherry picked from commit 8fcca194a1)
2023-04-26 14:50:59 +02:00
VolTer 7b59361637 Document why Gradient.reverse() doesn't reverse constant gradients
(cherry picked from commit f21d13600e)
2023-04-26 14:50:59 +02:00
sodaJar 0132c29953 Fix wrong file on function call error
(cherry picked from commit 464a299d2e)
2023-04-26 14:50:59 +02:00
Haoyu Qiu 389045c691 Fix inconsistent file dialog settings usage
* Project Manager ignores display mode settings.
* EditorFileDialog's default display mode and show hidden files settings
  are not updated when corresponding editor settings change.

(cherry picked from commit 2ccc9e1456)
2023-04-26 14:48:18 +02:00
Pedro J. Estébanez 4c8946c080 Fix issues with Vulkan layout transitions
(cherry picked from commit 882b869220)
2023-04-26 14:48:18 +02:00
Yuri Sizov 289d551fbb Create an "Editor-only" section in the online class reference
This helps to find such classes without digging
through the rest of the class reference.
Editor-only classes can still be found under
your normal "Node" and "Resource" types.

This also fixes a typo and a missed case from the recent platform docs PR.

(cherry picked from commit 3ae282b452)
2023-04-26 14:47:56 +02:00
Rindbee 112677c39e Fix `line_spacing` in code editor will not take effect immediately on change
Previously, in CodeTextEditor, `line_spacing` was forgotten to update
when the editor setting property changed.

(cherry picked from commit 23d6225c1e)
2023-04-26 14:32:22 +02:00
VolTer 75a33fd647 Add missing PhysicalBone2D icon
(cherry picked from commit 048f94f662)
2023-04-26 14:32:22 +02:00
Adam Scott e03ee06d74 Fix GDScript LSP variable rename
(cherry picked from commit 10fe6f14bb)
2023-04-26 14:32:22 +02:00
Samuele Panzeri 12969aadbd Fix editor spin slider remaining editable if set read_only during an edit and fix related animation player crash
(cherry picked from commit b6abb34759)
2023-04-26 14:32:21 +02:00
Haoyu Qiu 7f1b1e1c1b Fix TouchScreenButton not redrawn when texture changes
(cherry picked from commit a15126915d)
2023-04-26 14:32:21 +02:00
Haoyu Qiu 9336866de0 Fix layout list not resizing in editor layout dialog
(cherry picked from commit dfc628bc54)
2023-04-26 14:32:21 +02:00
Fredia Huya-Kouadio 01014a7475 Make tab's close button responsive to touch taps
(cherry picked from commit 7325ffdd46)
2023-04-26 14:32:21 +02:00
Fredia Huya-Kouadio bceb910f3a Make `EditorPropertyLayersGrid` responsive to touch taps
(cherry picked from commit aa7a4d56f0)
2023-04-26 14:32:20 +02:00
Fredia Huya-Kouadio eae3d61d7f Downgrade android gradle plugin to version 7.2.1.
Version 7.3.0 changes the build layout which causes updates to the generated shared libraries to not be picked up.

(cherry picked from commit 4507d3a38c)
2023-04-26 14:32:20 +02:00
kobewi 82aab2b0ea Fix invalid global position when read outside tree
(cherry picked from commit 727a4ed79a)
2023-04-26 14:32:20 +02:00
clayjohn c8ed59ba41 Validate renderer selection in project manager and change default renderer editor setting to expose an enum to users
(cherry picked from commit 48ebae7812)
2023-04-26 14:31:53 +02:00
Hugo Locurcio f5721ca61a Document custom mouse cursors larger than 128×128 potentially having issues
(cherry picked from commit 92730fb07d)
2023-04-26 14:29:27 +02:00
Paweł c4655010d0 Fix lerp error message
(cherry picked from commit 899da22002)
2023-04-26 14:29:27 +02:00
MistMage 4d38529284 Fix for mixed tabs and spaces in gdscript
(cherry picked from commit fecbc12d17)
2023-04-26 14:29:27 +02:00
Rémi Verschelde c893968b33 CI: Fix checks fallback logic when changed files listing is missing
The file would be one byte (newline) so the check with '-s' failed.

(cherry picked from commit 39d24ee80b)
2023-04-26 14:18:39 +02:00
Rémi Verschelde 82a17d028d CI: Fixup failure to get changed files on merge
The checkout might be too shallow so the before commit isn't available.
The logic was already written to take this into account (it then generates
an empty 'changed.txt' which falls back to testing everything), but the
error code would still force terminate the job.

Hopefully we can find a way to make the logic work for merge events too in
the future, but for now this is a quick fix.

(cherry picked from commit 9063e907a7)
2023-04-26 14:18:38 +02:00
Rémi Verschelde f241b17804 CI: Speed up static checks by checking only changed files
- file_format, header_guards and clang-format benefit from this short list.
- dotnet-format, Python and JS checks don't, but they're only relevant for
  PRs changing a specific set of files, so we skip them when those files
  aren't modified.

The logic to get changed files only works reliably for:
- Pull request events
- Non-force pushed push events

So when force pushing a branch in your fork, or creating a new branch,
it will still scan all files as fallback.

Upgraded CI runner to Ubuntu 22.04 so we get clang-format 14 out of the box,
so we don't need to install a custom version (saves ~15 s). We also cache
the APT dependencies to speed up the build and avoid flaky Ubuntu/Microsoft
repos.

(cherry picked from commit 068f893072)
2023-04-26 14:18:38 +02:00
kleonc fcdd7eda26 Fix expected argument count in Callable call error text
(cherry picked from commit 7a871212ed)
2023-04-26 14:14:08 +02:00
Rémi Verschelde 878367b3ac mbedtls: Update to upstream version 2.28.3
Rediff patch from PR 1453, lstrlenW is no longer used upstream so
that part of the patch was dropped.

(cherry picked from commit 1fde2092d0)
2023-04-26 14:14:07 +02:00
Samuele Panzeri a27dd86755 Fix editor lock on sdf collision bake on error
(cherry picked from commit a2be742f97)
2023-04-26 14:14:07 +02:00
bruvzg 46e7f334fb [Windows] Cleanup COM library initialization/uninitialization.
(cherry picked from commit 83dc545ea2)
2023-04-26 14:14:07 +02:00
kobewi cce2ffda1b Remove wrong Ctrl from 2D editor tooltip
(cherry picked from commit 75f2d7f5c4)
2023-04-26 14:14:06 +02:00
smix8 f1505fe98b Fix NavigationMesh baking for HeightMapShape
Fixes NavigationMesh baking for HeightMapShape.

(cherry picked from commit 71c453a426)
2023-04-26 14:14:06 +02:00
bruvzg 10547deb3d [Windows TTS] Fix queuing utterances in rapid succession.
(cherry picked from commit a9d326db60)
2023-04-26 14:14:06 +02:00
bruvzg 357e2ec05d [Image Font] Fix fractional ascent for font with odd height.
(cherry picked from commit 41f7bb2025)
2023-04-26 14:14:06 +02:00
HolonProduction 769daf79e2 Fix multi-line string highlighting with single quotes.
(cherry picked from commit bdb7045e2c)
2023-04-26 14:14:05 +02:00
Hugo Locurcio 39c0392a64 Document using AnimatableBody when needed in StaticBody description
(cherry picked from commit 68117d2fc7)
2023-04-26 14:14:05 +02:00
kleonc 6ac70ff5da TileMap Fix rendering odd-sized tiles
(cherry picked from commit c49a7feae3)
2023-04-26 14:14:05 +02:00
Rémi Verschelde d78691d44f
Merge pull request #76405 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.3) - 2nd batch
2023-04-25 14:24:38 +02:00
Yuri Sizov b5bd99d9e6 Update changelog for 4.0.3 2023-04-24 18:10:21 +02:00
Adam Scott e6478f5be3 Fix typo when parsing LSP function parameters
(cherry picked from commit 879791e305)
2023-04-24 17:08:56 +02:00
Haoyu Qiu 2eb29d0684 Fix various typos in the classref
(cherry picked from commit 766807506c)
2023-04-24 17:08:56 +02:00
Paweł 32dc3b66ab Remove double thes from documentation
(cherry picked from commit 4431cdd154)
2023-04-24 17:08:56 +02:00
David Giardi 75f3ce618e Fix blurry borders on antialiased FlatStyleBox
This is a fix of the antialiasing logic of FlatStyleBox.
It is now possible to have smooth rounded corners while keeping
the edges sharp on the pixels.

The antialiasing gradient positioning is ajusted so that the "hard"
border corresponds to the middle of that gradient instead of one end.
Checked against rendering of rounded rectangles in a vector graphics
software.

(cherry picked from commit 2ef20045b1)
2023-04-24 17:08:55 +02:00
kobewi f39f354313 Add missing LineEdit constants in editor theme
(cherry picked from commit f462efd7f1)
2023-04-24 17:08:55 +02:00
Michael Alexsander af0dd6591b Remove unnecessary zero multiplications
(cherry picked from commit f057d755ab)
2023-04-24 17:07:09 +02:00
Ninni Pipping 13f368067f Improve description of `Callable.bind/unbind`
(cherry picked from commit 0332fd5e8f)
2023-04-24 17:03:58 +02:00
VolTer 10d8a67267 Fix Quaternion's brief description
(cherry picked from commit 5c0e3b26a6)
2023-04-24 17:03:57 +02:00
Hugo Locurcio 83c3963235 Improve `print_rich()` documentation
- List all supported colors.
- Mention URL tag support limitations.
- Fix and tweak code example to do what it says.
- Remove outdated notice about lack of Windows support (but mention
  that only Windows 10 and later support ANSI code conversion).

(cherry picked from commit ec277d804e)
2023-04-24 17:03:57 +02:00
kleonc 13cfbe6a25 Fix deserializing resource usage debug data
(cherry picked from commit 3e7752463a)
2023-04-24 17:03:57 +02:00
angel-721 d936cc8b9e Rename internal root canvas group to start with underscore
(cherry picked from commit e347d7d64d)
2023-04-24 17:03:57 +02:00
Yuri Sizov 4a140b61f1 Use Point2 consistently in Control methods
While Size2 and Point2 are just aliases,
which is why this doesn't fail compilation,
it's nice to have things consistent.

(cherry picked from commit 4fed87320c)
2023-04-24 17:03:56 +02:00
Evgeniy Vasilyev d46cb8e65c Fixed typo in DisplayServer.ScreenOrientation docs
(cherry picked from commit 5ba98e59f0)
2023-04-24 17:03:56 +02:00
Haoyu Qiu c6297f46fe Unify descriptions of vector methods
* is_equal_approx
* normalize
* length_squared
* posmod
* posmodv

(cherry picked from commit 6cd8e706fa)
2023-04-24 17:03:56 +02:00
Rattle22 12da78cf30 Fix Typo in NavigationServer2D
(cherry picked from commit 5c387cbdb3)
2023-04-24 17:03:55 +02:00
Tae Hong Ahn a27b427b1f update set_smooth_group description
fixes https://github.com/godotengine/godot/issues/74452

(cherry picked from commit 5a775ac08c)
2023-04-24 17:03:55 +02:00
bruvzg 9c1ea28092 Improve line BiDi handling, prevent crash on recursive log updates.
(cherry picked from commit 282e4231c2)
2023-04-24 17:03:55 +02:00
bruvzg 3a1af9393f [TextServer] Improve BiDi error handling.
(cherry picked from commit d8d88e1530)
2023-04-24 17:03:54 +02:00
clayjohn 2c773e12b8 Use angle_rand to calculate base_angle in particles process material
(cherry picked from commit 821917ba9f)
2023-04-24 17:01:37 +02:00
Danil Alexeev d31002cfbe GDScript: Add missing member type check when resolving `extends`
(cherry picked from commit 66279b98b6)
2023-04-24 17:00:35 +02:00
Pedro J. Estébanez 3a5bc7455e Make EditorToaster's handler thread-safe
(cherry picked from commit 84183f89e6)
2023-04-24 16:52:26 +02:00
Ninni Pipping 3fcaffc96b Fix `Image.compress` description
Description mentioned `mode` instead of `source`

(cherry picked from commit 6312fe2fae)
2023-04-24 16:52:25 +02:00
kleonc ebcc7b4b98 Fix OBJ mesh importer smoothing handling
(cherry picked from commit e8900a2cac)
2023-04-24 16:52:25 +02:00
Hakim 756d809ef1 Change cursor consistently when panning in the 2D Editor
(cherry picked from commit f4edbe6341)
2023-04-24 16:52:25 +02:00
Paweł ad5d7c2030 Fix Windows StringFileInfo structure
(cherry picked from commit e15a086bb9)
2023-04-24 16:52:24 +02:00
João Pedro Braz 1a85f6398f Use MODELVIEW_MATRIX for vertex transform when double precision is enabled
This commit updates the double precision vertex transform code from
using the MODEL_MATRIX to now use the MODELVIEW_MATRIX instead.

This can be made possible by transforming the MODELVIEW_MATRIX
back into model space (ie, same space as the MODEL_MATRIX) and then using it as if it were the MODEL_MATRIX.

With this in place we now properly handle VERTEX transformations that
a Material Shader might do, such as billboard-ing.

(cherry picked from commit 63c6f0b93c)
2023-04-24 16:52:24 +02:00
clayjohn ad582cf0b1 Don't store instance transform in RD 3D renderer unless requested
Previously, when using doubles builds of the engine, instance transform was stored no matter what which caused world space particles to accumulate the instance transform twice

(cherry picked from commit 29edd277e4)
2023-04-24 16:52:24 +02:00
Erik Johnson 410b503aac Translate inactive particles to -INF
(cherry picked from commit 6229c2a1f9)
2023-04-24 16:28:30 +02:00
Ninni Pipping 3445fa7dbc Expose more compression formats in Image and fix compress check
Check for compressing ASTC checked if the function for BPTC was present

(cherry picked from commit cf64e2fa47)
2023-04-24 16:28:30 +02:00
Ninni Pipping ccc761dd93 Don't apply scale to autohide theme property
(cherry picked from commit 722597aa97)
2023-04-24 16:28:29 +02:00
Martin Capitanio 2992a99629 Fix blend_shape (shapekey) empty name import.
Corresponds to the Blender glTF-Importer PR
https://github.com/KhronosGroup/glTF-Blender-IO/pull/1902

(cherry picked from commit 8b6fa79eee)
2023-04-24 16:28:29 +02:00
Jason Knight f3907e2fe0 Fix potential null in android text entry system.
(cherry picked from commit f8699d93f6)
2023-04-24 16:28:29 +02:00
clayjohn 27df8b93aa Properly calculate lifetime_split for particles
(cherry picked from commit f35ca4a9c7)
2023-04-24 16:28:28 +02:00
clayjohn 95f5027453 Write out render_mode even when mode is set to default in VisualShaders
(cherry picked from commit 016946b552)
2023-04-24 16:28:28 +02:00
bruvzg e071fb2263 [TextServer] Use dedicated flag for object replacement characters.
(cherry picked from commit d904516e55)
2023-04-24 16:28:28 +02:00
clayjohn d4c9ca3975 Ensure that depth write state is updated before transparent pass in OpenGL3 renderer
(cherry picked from commit ed0c378bda)
2023-04-24 16:28:27 +02:00
Haoyu Qiu df80e2ae43 Tree: Fix offset calculation when there are hidden items
(cherry picked from commit a083c85521)
2023-04-24 16:28:27 +02:00
cody c1ec270b44 Fix "error X3708: continue cannot be used in a switch" in HTML export
(cherry picked from commit 5062df41a5)
2023-04-24 16:28:27 +02:00
clayjohn aeca8f07fa Check for instancing without relying on instance_count when drawing 2D meshes
This ensures that Particles and MultiMeshes still draw when instance_count is 1

(cherry picked from commit 579ca03e88)
2023-04-24 16:28:26 +02:00
Hugo Locurcio 8a349e4fa9 Allow entering named colors in ColorPicker's hex field
This also makes the hex field wider to allow displaying 9-character
hex code (`#rrggbbaa`) in full, even when using a custom font.

(cherry picked from commit 517dc3654a)
2023-04-24 16:28:26 +02:00
smix8 25518aad27 Fix forced optimization in dev_build
Fixes forced optimization in dev_build.

(cherry picked from commit b18c7481aa)
2023-04-24 16:28:26 +02:00
Hugo Locurcio 9253f415b3 Fix `get_test_texture()` returning an almost fully white texture
The texture's appearance is now similar to the texture that was displayed
on the TestCube node in Godot 2.x.

(cherry picked from commit e4d5cecd4c)
2023-04-24 16:28:26 +02:00
Riteo Siuga 214ad50498 Convert the logo's text outlines into paths
This avoids rendering issues with ThorVG and other renderers (which
don't support the `paint-order` property) at a slight cost in file size.

This approach has already been used by the main icon.

(cherry picked from commit af9372eb59)
2023-04-24 16:28:25 +02:00
Mallardbro e801fe83d1 Correct the side mentioned with focus_neighbor_right and focus_neighbor_top.
A small typo with the definitions of `focus_neighbor_right` and `focus_neighbor_top`. Both use "bottom" rather than the correct side for each.

(cherry picked from commit c25d015d06)
2023-04-24 16:28:25 +02:00
Johan Mattsson 5bcff18c76 macOS export: Fix validation of codesigning certificate password
(cherry picked from commit 76e1d1363b)
2023-04-24 16:28:25 +02:00
Rémi Verschelde effefe9feb Windows TTS: Use HashMap instead of RBMap for ids
And fixup includes in other implementations.

(cherry picked from commit 92b9806dcc)
2023-04-24 16:28:24 +02:00
Koyper 7e482f420d Fixed RichTextLabel wrong selection offset in padded table cell.
(cherry picked from commit 6f11cf7d31)
2023-04-24 16:28:24 +02:00
Ricardo Subtil b5ff677381 Poll LSP/DAP clients for connection status updates
(cherry picked from commit 4be4eeea3a)
2023-04-24 14:16:37 +02:00
Haoyu Qiu e7f7de0044 Set font sizes for various styles in editor output panel
(cherry picked from commit 2c0db8222a)
2023-04-24 14:16:37 +02:00
mara a6e15e2f15 Change to_utf8 to to_utf8_buffer and to_ascii to to_ascii_buffer in remaining docs
The method `to_utf8` doesn't exist in Godot 4, but is still mentioned in
the documentation in some places. Replace it with the new name
`to_utf8_buffer`. Same for ascii. Same for C#.

(cherry picked from commit 57dca93718)
2023-04-24 14:16:36 +02:00
kobewi 51fdbf6ac7 Adjust size of some dialogs
(cherry picked from commit 71011e0855)
2023-04-24 14:16:16 +02:00
Ninni Pipping 9902d07966 Document how to make custom min/max for Array
(cherry picked from commit 96ab31a711)
2023-04-24 14:04:20 +02:00
Dimitri A ce7fd66896 docs/FileDialog: Use clickable references
This replaces two [code][/code] blocks with clickable refs to [enum Access] and [member file_mode] respectively.

(cherry picked from commit a5778da55b)
2023-04-24 14:04:20 +02:00
Yuri Sizov df5df11916 Always cache parent visibility in CanvasItem
(cherry picked from commit fd6a743823)
2023-04-24 14:04:19 +02:00
kobewi 8c372f4109 Fix method dialog label
(cherry picked from commit c399d4f26c)
2023-04-24 14:04:19 +02:00
Haoyu Qiu d0c50d820b Fix connect signal dialog not allowing Unicode method name
(cherry picked from commit 936c9e83b4)
2023-04-24 14:04:19 +02:00
Ricardo Buring deb22e2381 Fix typo bug in convex-convex separating axis test
(cherry picked from commit d7aed57b60)
2023-04-24 14:04:19 +02:00
Juan Linietsky 4616de0c5d Fix CI build error
Fixes potential use of uninitialized variable.

(cherry picked from commit 37362202a4)
2023-04-24 14:04:18 +02:00
fuzzy@notepc 08b825396f Fix #75790, where creating Ceil(Vector2) node in Visual Shader Editor
crashes engine due to index out of bounds.

(cherry picked from commit c6a45f1031)
2023-04-24 14:04:18 +02:00
Pedro J. Estébanez a37eb88c5b Lift restriction that resource load thread requester has to be the initiator
(cherry picked from commit c51229491d)
2023-04-24 14:04:18 +02:00
Rémi Verschelde 90b4ca2e50
i18n: Sync translations with Weblate 2023-04-20 13:26:36 +02:00
Rémi Verschelde 16a6bdd423
Merge pull request #75786 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.3) - 1st batch
2023-04-11 21:01:58 +02:00
kobewi 177be9bd37 Initialize editor values on first launch
(cherry picked from commit b0eadcfbce)
2023-04-10 11:32:28 +02:00
Yuri Sizov 967ad04928 Add changelog for 4.0.3 2023-04-07 18:08:27 +02:00
mightygoat 66633d19a1 Fix the limit for interpolation of R0 with respect to metallic and SSR
Shlick term

(cherry picked from commit 2c000cb72f)
2023-04-07 17:44:40 +02:00
smix8 675547845e Fix NavigationObstacles not being added to avoidance simulation
Fixes NavigationObstacles not being added to avoidance simulation.

(cherry picked from commit aadf33efd8)
2023-04-07 17:44:40 +02:00
Ziya Erkoc 210879d284 Warn if a concave shape is assigned to ConvexPolygonShape2D
(cherry picked from commit 6fb113f59f)
2023-04-07 17:44:40 +02:00
Hugo Locurcio 66a8ddf61c Fix CompressedTextureLayered description in the class reference
This also updates the list of compression modes available for textures.

(cherry picked from commit 0d24016db0)
2023-04-07 17:44:40 +02:00
smix8 c62f8f9319 Fix AudioStreamPlayer2D crash when PhysicsServer2D runs on thread
Fixes AudioStreamPlayer2D crash when PhysicsServer2D runs on thread due to empty PhysicsSpace

(cherry picked from commit a5351086b0)
2023-04-07 17:44:39 +02:00
bruvzg ba5335f3fb [Web] Fix keycode/physical keycode mixed up.
(cherry picked from commit 744bf604bf)
2023-04-07 17:44:39 +02:00
Malcolm Nixon 7c62d1106e Modify "physics/3d/solver/contact_max_allowed_penetration" precision to three significant digits, so values down to "0.001" can be specified.
Updated additional 2D and 3D physics parameters based on team recommendations

Co-Authored-By: Ricardo Buring <rburing@users.noreply.github.com>
(cherry picked from commit 1d1d3c71e0)
2023-04-07 17:44:39 +02:00
bruvzg 05fa6e314a [SVG Font] Keep a copy of UTF-8 XML source string during the whole SVG processing.
(cherry picked from commit 19179238fa)
2023-04-07 17:44:39 +02:00
Martin Capitanio 233bd4abaa SVG: fix tvg::Picture->size() and scale based errors.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
(cherry picked from commit bfc498f3d0)
2023-04-07 17:44:39 +02:00
umarcor a99b046412 [ci/windows] remove obsolete 'tools' in the name
(cherry picked from commit 2abadbb58b)
2023-04-07 17:44:39 +02:00
Rémi Verschelde 2805f7b36d CI: Visibly print trailing whitespace when static checks fail
GitHub Actions seems to be hiding colored whitespace, and after lots of
attempts I couldn't find a way to work it around.

So instead I'm using a perl expression to replace trailing spaces with
`·` and tabs with `<TAB>` in the ANSI colored diff output. This ensure
that they're visible, and they are properly colored as expected too.

(cherry picked from commit 266280ffca)
2023-04-07 17:44:39 +02:00
Fredia Huya-Kouadio 589c32ec55 Fix the issue preventing dragging in the 2D and visual shader editor
(cherry picked from commit 2c7633dce5)
2023-04-07 17:44:39 +02:00
HK-SHAO 9598eb9638 Fix the Python type error when creating the .sln file
(cherry picked from commit 19a8efc875)
2023-04-07 17:44:39 +02:00
Lyuma ba9f2981f1 gltf: Remove obsolete hack to embed gltf textures in advanced import
(cherry picked from commit bd020b7d92)
2023-04-07 17:44:39 +02:00
Bartłomiej T. Listwon 1f51ceddf3 Fix moving position indicator out of bounds in FileAccessMemory
(cherry picked from commit bff0c71e2e)
2023-04-07 17:44:38 +02:00
yedpodtrzitko eab0386934 ci: wait for static check results before starting builds
(cherry picked from commit 93b7bcb33d)
2023-04-07 17:44:38 +02:00
Johan Aires Rastén 585f4ed737 GraphNode ignore non-visible children for minimum size.
(cherry picked from commit 9a60c4affb)
2023-04-07 17:44:38 +02:00
Yuri Sizov cacc6c5ed5 Prevent color conversion of the big Godot logo
Use an off-white color from the palette that we explicitly don't convert.

(cherry picked from commit ce741df43d)
2023-04-07 17:44:38 +02:00
Marius Hanl 817da41d55 Fix some theme values affect the editor by setting a default value for the theme constant 'h_separation' for MenuBar and Button and a default value for the theme color 'background_color' for TextEdit
(cherry picked from commit c0905bc0af)
2023-04-07 17:44:38 +02:00
Andrés Botero 02d0f090c0 Added guide button to controller db, changed to use secret XInput function.
(cherry picked from commit f249a9ce19)
2023-04-07 17:44:38 +02:00
Rindbee 2b0acb61be Fix RemoteTransform2D could fail to update AnimatableBody2D's position or rotation
Configure the transform per condition, and then only set it once to
prevent multiple `NOTIFICATION_LOCAL_TRANSFORM_CHANGED` notifications
from being sent.

(cherry picked from commit 100b4b1f28)
2023-04-07 17:44:38 +02:00
kobewi 88d446f6c6 Prevent off-screen controls in editor
(cherry picked from commit 55b50703d7)
2023-04-07 17:44:38 +02:00
kobewi 87a9d2c87e Improve editor state initialization
(cherry picked from commit 13c8a9890d)
2023-04-07 17:44:38 +02:00
kobewi 03827485d7 Properly remember snapping options per-project
(cherry picked from commit 45b47d5584)
2023-04-07 17:44:38 +02:00
clayjohn 99beeb3992 Recreate swap chain when suboptimal to avoid error spam
(cherry picked from commit c9d2bc91aa)
2023-04-07 17:44:37 +02:00
smix8 cc6ce6977d Expose NavigationAgent path postprocessing and pathfinding algorithm options
Exposes the path postprocessing and pathfinding algorithm options of the NavigationAgent internal NavigationPathQueryParameters object.

(cherry picked from commit 6e324bb341)
2023-04-07 17:44:37 +02:00
Hendrik Brucker e656a53ed0 Fix several GraphEdit operations at zoom levels other than 100%
(cherry picked from commit 49587fd6d9)
2023-04-07 17:44:37 +02:00
James Buck 861399fbe5 Re-enable script editor File menu shortcuts when the menu is hidden
(cherry picked from commit de49bec30e)
2023-04-07 17:44:37 +02:00
Jean-Michel Bernard 1aa5fce321 Fix commenting collapsed function issue
(cherry picked from commit 68ad3338ef)
2023-04-07 17:44:37 +02:00
kleonc 7ef4e519f7 TextureProgressBar Update upon texture changes
(cherry picked from commit cdc63214fe)
2023-04-07 17:44:37 +02:00
Ron B. Yeh bcf991d3ec Fix off-by-one issue where Go to Line dialog shows the incorrect line
number (one less than the actual current line).

(cherry picked from commit 1e9fd10f68)
2023-04-07 17:44:37 +02:00
ajreckof 62dbd512cc Fix descriptions not showing for theme properties
(cherry picked from commit 14140eb2d9)
2023-04-07 17:44:37 +02:00
RedworkDE 4cc8a689ba Update thorvg to 0.8.4
(cherry picked from commit cfed867da1)
2023-04-07 17:44:36 +02:00
kobewi f8517e1c4b Remember directory when installing templates file
(cherry picked from commit 551b6965ec)
2023-04-07 17:44:36 +02:00
bruvzg 2c80ded6ce [RTL] Fix fill align and trim with enabled dropcap.
(cherry picked from commit efa647bb17)
2023-04-07 17:44:36 +02:00
kleonc a5572ba5a3 C# Truncate instead of round in Vector2/3/4 to Vector2I/3I/4I conversion
(cherry picked from commit f53d3382af)
2023-04-07 17:44:36 +02:00
RedMser f645bbaffb Fix clipboard relying on focused window
(cherry picked from commit 942f8b9858)
2023-04-07 17:44:36 +02:00
Hakim b17f0f593e Use physical shortcuts for freelook navigation in the editor
(cherry picked from commit 52de40310a)
2023-04-07 17:44:36 +02:00
Rémi Verschelde 4762303f18
Bump version to 4.0.3-rc 2023-04-04 10:50:01 +02:00
Rémi Verschelde 7a0977ce2c
Bump version to 4.0.2-stable 2023-04-04 00:43:56 +02:00
Rémi Verschelde 9099ac39cf
i18n: Sync translations with Weblate 2023-04-04 00:33:24 +02:00
Rémi Verschelde bd016c8c4d
Merge pull request #75624 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.2) - 3rd batch
2023-04-04 00:18:49 +02:00
Yuri Sizov 0a8fdde924 Add changelog for 4.0.2 2023-04-03 19:18:55 +02:00
Araraura d0e906327d Fix typo and slightly reword in @GDScript.xml
Fix "the every following property" to "then every following property" and change "is added" to "will be added".

(cherry picked from commit e1c0df7048)
2023-04-03 18:41:54 +02:00
kobewi ed1eb1e18f Update UndoRedo description
(cherry picked from commit 3a06e6af76)
2023-04-03 18:41:05 +02:00
kobewi 1c66b24325 Fill random docs
(cherry picked from commit eac65fd0a8)
2023-04-03 18:40:24 +02:00
kleonc 103d23539f Improve CanvasItem.self_modulate docs
(cherry picked from commit 4fb9aa2294)
2023-04-03 18:39:37 +02:00
bruvzg 0c24ee363f [TextEdit] Fix block caret size at the end of the line.
(cherry picked from commit efe04af446)
2023-04-03 18:39:01 +02:00
skyace65 c114a7bab4 Remove reference to clipboard in OS class doc
(cherry picked from commit a65d99b541)
2023-04-03 18:38:27 +02:00
smix8 1deda0f003 Add navigation renames to 3to4 converter
Adds navigation renames to 3to4 converter.

(cherry picked from commit 0c1e585a1d)
2023-04-03 18:37:44 +02:00
kobewi 87929d9ab0 Add _get_configuration_warnings() example
(cherry picked from commit c4e08a4e1a)
2023-04-03 18:37:09 +02:00
Brennen Shaughnessy 040b432a12 Fixed property hint for platform layers on 3D physics body
(cherry picked from commit 2d16fe681d)
2023-04-03 18:36:27 +02:00
Paragoumba b912905d23 Fix xml namespace in org.godotengine.Godot.xml
(cherry picked from commit 1ba14e838a)
2023-04-03 18:35:30 +02:00
smix8 e243dfa9f6
Fix NavigationAgent enable avoidance crash
Fixes NavigationAgent enable avoidance crash.

(cherry picked from commit 184427196f)
2023-04-02 17:37:12 +02:00
bruvzg 50f26811b0
[macOS] Fix infinite loop caused by global menu callbacks which trigger EditorProgress dialog.
(cherry picked from commit 48730e3b77)
2023-03-30 23:20:20 +02:00
Rémi Verschelde c9ee508089
Bump version to 4.0.2-rc 2023-03-30 21:41:11 +02:00
Rémi Verschelde b8b29c8566
Merge pull request #75500 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.2) - 2nd batch
2023-03-30 21:36:24 +02:00
Chris Hutchinson 4323c8b78b Replaced operating system alert dialog with a warning log message,
toggled by a project setting.
Fixes #73141

(cherry picked from commit cb8e919243)
2023-03-30 19:28:57 +02:00
Ninni Pipping 1e94881484 Exposing more project settings for documentation
(cherry picked from commit bd30847e59)
2023-03-30 19:26:05 +02:00
Haoyu Qiu d6b36e800d Improve POT Generation dialog
* Avoid "property not found" warnings when adding a file for the first
  time.
* When no file is added, disable the Generate POT button instead of
  printing a warning.

(cherry picked from commit 584136271c)
2023-03-30 19:24:52 +02:00
Haoyu Qiu ae0a98ef9b Hide internal settings from the classref
Default actions are no longer internal since we want to document them.
They are still hidden from the Project Setting dialog because we hid the
whole `input/` group manually.

(cherry picked from commit 1e0b8d6240)
2023-03-30 19:23:04 +02:00
Redwarx008 493e39860d C#: Fix Array.AddRange index out of bounds
Fix Array.AddRange index out of bounds

(cherry picked from commit eb1fb254a6)
2023-03-30 19:21:14 +02:00
Rémi Verschelde fe71d33033 Project converter: Remove Tween properties/signals from renames
The Tween class in Godot 3 is fully incompatible with Godot 4, there's no point
doing these renames. It also makes it harder to use Threen, my (currently WIP)
forward-port of the Godot 3 Tween to Godot 4.

(cherry picked from commit 0171037e0a)
2023-03-30 19:20:36 +02:00
Mai Lavelle 9f20659c62 Fixups to list handling in SceneReplicationConfig
Wrong paths were being inserted leading to duplicates / missed properties.

(cherry picked from commit 74edbdd4bc)
2023-03-30 19:20:01 +02:00
Sabrehull 1056996200 [X11] Fix layout bug in `keyboard_get_keycode_from_physical`
(cherry picked from commit d4b7466266)
2023-03-30 19:19:23 +02:00
kobewi 74a35c9ca2 Don't allow selecting nodes without owner
(cherry picked from commit 2fcfef15da)
2023-03-30 19:18:35 +02:00
Bastiaan Olij b39cbe71b4 Fix typo in OpenXR pose orientation check
(cherry picked from commit cdd9de28a8)
2023-03-30 19:17:55 +02:00
Danil Alexeev 07beae98f0 GDScript: Fix false positive `REDUNDANT_AWAIT` warning
(cherry picked from commit c0eeb32e38)
2023-03-30 19:17:15 +02:00
kleonc 47c4044d03 TileSet editor AtlasMergingDialog crash fix
(cherry picked from commit c72b09639a)
2023-03-30 19:16:33 +02:00
Brian Long 838a82f885 Update GPUParticles2D/3D speed scale on ENTER_TREE
Fix for https://github.com/godotengine/godot/issues/75218

Pause notifications are not sent when a node is added as a child. So GPUParticles2D should also obey its can_process status on ENTER_TREE, not just PAUSED/UNPAUSED.

(cherry picked from commit 4652fbd09e)
2023-03-30 19:15:47 +02:00
Fredia Huya-Kouadio dc100cbebb Bump the target SDK version to 33 (Android 13)
(cherry picked from commit 845ca33c76)
2023-03-30 19:14:54 +02:00
lewiji 5f9990e25d Add "filesRoot" path to Android provider paths xml
(cherry picked from commit ac04ff7bec)
2023-03-30 19:13:59 +02:00
Fredia Huya-Kouadio ff15e2384a Configure maven central snapshot versions for the Godot Android library
A snapshot version is a version that has not yet been released which allows us to deploy the same transient version incrementally, without requiring projects to upgrade the artifact version they're consuming. Those projects can use the same version to get an updated snapshot version.

(cherry picked from commit a5fdc95515)
2023-03-30 19:13:18 +02:00
fabriceci bafc6372b2 Exposes the apply_floor_snap function to allow a snap to be made regardless of velocity.
(cherry picked from commit 1381e6da4f)
2023-03-30 19:10:45 +02:00
Yuri Sizov 19501f8eb1
Merge pull request #75397 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.2) - 1st batch
2023-03-27 20:14:47 +02:00
VolTer 843f5adbc5 Improve documentation of int
(cherry picked from commit 0f3197501e)
2023-03-27 18:06:47 +02:00
Hugo Locurcio 6fedc728f6 Use 8×8 default grid size for TextureRegion and 2D polygon editors
Power-of-two grid sizes are more suited to most game assets.

(cherry picked from commit 0f73ef1df9)
2023-03-27 18:04:25 +02:00
Haoyu Qiu 4750b77d2d Fix typos and inconsistencies in classref
* Typo fixes.
* Navigation agent's `velocity_computed` signal is not emitted by
  `set_velocity`, but at the end of that frame if `set_velocity` is
  called.
* Simplify link in navigation agent's `avoidance_enabled` description.
* Unify `navigation_layers` description across `NavigationAgent{2,3}D`.
* Unify `is_normalized()` description across `Vector2`, `Vector3`, and
  `Vector4`

(cherry picked from commit ff97c481d3)
2023-03-27 18:02:28 +02:00
Haoyu Qiu 2ea8dd7232 More i18n improvements
* Make placeholder in editor layout dialog translatable.
* Make messages in scene import settings dialog translatable.
* Mark theme override property categories for translation.

(cherry picked from commit 5a5fd33e42)
2023-03-27 18:02:14 +02:00
Haoyu Qiu 5e9e95c34c Make Add Scene button the same height as scene tabs
(cherry picked from commit 8ab11127bc)
2023-03-27 18:00:35 +02:00
Haoyu Qiu 50ea0951fe Fix height of subresource button in Inspector
(cherry picked from commit 66b325b728)
2023-03-27 18:00:28 +02:00
Ninni Pipping 7de181f524 Fix `NodePath` subname index range documentation
(cherry picked from commit c75870f798)
2023-03-27 17:59:43 +02:00
Unai Martinez-Corral a08bee8d10 [ci/web] update mymindstorm/setup-emsdk to v12
(cherry picked from commit dcb974700b)
2023-03-27 17:59:08 +02:00
kobewi 65c52087c2 Remove disabled plugins from active plugins
(cherry picked from commit 0b8b37c35d)
2023-03-27 17:58:34 +02:00
Hugo Locurcio b85cead4b9 Document how to use logarithm of base 10 with `log()`
(cherry picked from commit 3c4f0ca9c6)
2023-03-27 17:57:14 +02:00
Ninni Pipping 38595b8470 Fix "hides member" warnings in `csharp_script.cpp`
(cherry picked from commit ff5d8c4a42)
2023-03-27 17:56:20 +02:00
RedworkDE adc7edd907 C#: Do not print errors about missing references to intentionally ignored members
(cherry picked from commit 42cf684837)
2023-03-27 17:55:32 +02:00
Ricardo Buring 9573574788 Port robust signal (dis)connection to ShapeCast2D
Ported from ShapeCast3D.

(cherry picked from commit 5bed055cdd)
2023-03-27 17:53:34 +02:00
Ricardo Buring 58d8368481 Fix collide_shape return type
Fix PhysicsDirectSpaceState3D::_collide_shape return type.
Also PhysicsDirectSpaceState2D::_collide_shape.

(cherry picked from commit 61429a5f49)
2023-03-27 17:50:35 +02:00
Ninni Pipping 2a52307936 Fix `AnimatedSprite2D` autoplay warning
Changing of autoplay when changing `SpriteFrames` is not done by the
user and warning is unhelpful

(cherry picked from commit 4d4342e018)
2023-03-27 17:49:44 +02:00
Ninni Pipping 9a4a0d042c Improve documentation for Area monitor callbacks in `PhysicsServer3D`
(cherry picked from commit 4124271241)
2023-03-27 17:49:05 +02:00
nikitalita 7a827f979e Fix ResourceImporterLayeredTexture::import() high_quality type
(cherry picked from commit 68a6505f41)
2023-03-27 17:48:02 +02:00
kleonc b3f121d108 CanvasItem Fix ENTER_CANVAS / VISIBILITY_CHANGED notifications order when entering tree
(cherry picked from commit 6e3820fd4d)
2023-03-27 17:47:09 +02:00
Ninni Pipping fa9f92112c Make `Gradient` resort points on `reverse`
(cherry picked from commit 3795677f3d)
2023-03-27 17:46:01 +02:00
ator-dev 9a3b52dc2d Fix "Download Project Source" for Web Editor
- Correctly pass safe project name and safe datetime to `vformat`

(cherry picked from commit dfb405b702)
2023-03-27 17:45:09 +02:00
Rindbee ce4ab71957 Fix some wrong descriptions in the docs
(cherry picked from commit f29a7c0404)
2023-03-27 17:44:02 +02:00
bruvzg 989d556f8e [Windows] Remove meta_mem update on keyup/keydown.
(cherry picked from commit e6067a39b5)
2023-03-27 17:38:51 +02:00
Fredia Huya-Kouadio 9ac978190e Fix directory access when the running app has the `All files access` permission
(cherry picked from commit f02e4e4091)
2023-03-27 17:38:00 +02:00
kobewi 94e90b0593 Fix get_drag_data not overridable in some Controls
(cherry picked from commit 36141dc469)
2023-03-27 17:37:13 +02:00
Hugo Locurcio 9559bbcb18 Improve Color8 documentation
This documents in which situations Color8 is most suited and its
precision limitations.

(cherry picked from commit 4e4555bea5)
2023-03-27 17:35:47 +02:00
Mikael Hermansson 30a9b5fe9b Open up bounds of `Shape3D.margin` to support other physics engines
(cherry picked from commit ec6694ce3c)
2023-03-27 17:35:04 +02:00
Mikael Hermansson 465be40e10 Change documentation of `Shape3D.margin` to reflect current situation
(cherry picked from commit 33a6c80abb)
2023-03-27 17:34:59 +02:00
Dipal Zambare 47c3f44c0a Fix typo in the type-safe examples
Fix type in the type-safe examples of snapped, lerp and sign function.

(cherry picked from commit 8901986d56)
2023-03-27 17:33:49 +02:00
kleonc 8575010e88 TileMapEditor Fix preview rendering and transform calculations
(cherry picked from commit 224c66324b)
2023-03-27 17:32:48 +02:00
Patrick 9278da6f9b Fix ndc calculation for LinearSceneDepth VS node in GLES3
(cherry picked from commit e3802d5b6f)
2023-03-27 17:31:54 +02:00
Ninni Pipping b43f847808 Fix `Array.slice()` rounding for `abs(step) != 1`
(cherry picked from commit 10f385fb79)
2023-03-27 17:31:05 +02:00
smix8 ac1b26c7c5 Fix agents with disabled avoidance getting added to avoidance simulation
Fixes that agents with disabled avoidance were getting added to avoidance simulation.

(cherry picked from commit 64ce93cee9)
2023-03-27 17:30:03 +02:00
Bastiaan Olij f089782411 XR: When an sRGB target is used, check hardware sRGB conversion
(cherry picked from commit a1a52c5ba1)
2023-03-27 17:29:30 +02:00
smix8 dd94380b11 Fix GridMap signal "cell_size_changed" disconnect error
Fixes GridMap signal "cell_size_changed" disconnect error.

(cherry picked from commit d8bad3eef5)
2023-03-27 17:28:19 +02:00
smix8 22b5f0f608 Fix GridMap free navigation RID error spam
Fixes GridMap free navigation RID error spam.

(cherry picked from commit cc02007e30)
2023-03-27 17:27:27 +02:00
Fahad Shihab e99b184b6c Added drag and drop support for shaderinclude
Dragging and dropping now works for shader include file.

(cherry picked from commit e5601b517e)
2023-03-27 17:26:36 +02:00
Ninni Pipping 7fe9c48e2b Fix type check for max/min
(cherry picked from commit c8c43997c7)
2023-03-27 17:23:58 +02:00
Zac Luzader fcedf5dfdf OpenXR: Enable access to the Valve Index grip force sensing
(cherry picked from commit d3b26b3261)
2023-03-27 17:22:32 +02:00
RedworkDE c0c5bdc510 Add dedicated setter for `ImageTextureLayered::_images` to fix `create_from_images` being hidden from the C# bindings
(cherry picked from commit f540148072)
2023-03-27 17:21:29 +02:00
Rémi Verschelde 516323f4ab SCons: Cleanup pulseaudio defines for Linux
No need to define _REENTRANT manually when using the system lib,
it's part of the pkgconfig cflags.
And we were then defining PULSEAUDIO_ENABLED twice.

(cherry picked from commit a35586779e)
2023-03-27 17:20:16 +02:00
Omar Polo 597b83aedf change some sys.exit() to be fatal
- when not all freetype deps are builtin (or provided externally)
- when attempting to build on an unsupported CPU architecture

(cherry picked from commit ac04a0761e)
2023-03-27 17:19:27 +02:00
Ninni Pipping 4da5fc9203 Fix Variant hashing for floats
Incorrectly hashed floats as single precision

(cherry picked from commit e6a9e0cdec)
2023-03-27 17:18:16 +02:00
Yuri Sizov 636d7905b0 Update property keying state without a full Inspector rebuild
(cherry picked from commit f68eb4a967)
2023-03-27 17:17:19 +02:00
Nong Van Tinh e1de9f9fc4 Fixes  gutter set width results in receiving only half of the desired size
(cherry picked from commit bb3d0fc6b7)
2023-03-27 17:16:25 +02:00
Ron B. Yeh b54ff430aa Rename mkv_list to mvk_list (MoltenVK path list).
(cherry picked from commit 7e7ac1bb87)
2023-03-27 17:15:28 +02:00
Marius Hanl 6e85d4efea Add conversion for Vector2 method tangent() -> orthogonal()
For C# also: Perpendicular() -> Orthogonal()

(cherry picked from commit da4ec87673)
2023-03-27 17:14:42 +02:00
Hakim 60ceecb1ab Reload built in script to get its methods on signal connection
(cherry picked from commit 5aa8b9ee61)
2023-03-27 17:13:30 +02:00
bruvzg de08766656 Fix IME position in the single window mode sub-windows.
(cherry picked from commit 3ca3ee36ab)
2023-03-27 17:12:30 +02:00
kobewi d91a3985ae Fix EditorUndoRedoManager's handling of MERGE_ENDS
(cherry picked from commit 38c50b4ed3)
2023-03-27 17:10:54 +02:00
Ricardo Buring 68e6234595 Fix concave/convex polygon shape documentation
Removes some outdated/incorrect/duplicated info, adds correct info.
Also removes no longer applicable "editor-only helper" statements.

(cherry picked from commit e61a127042)
2023-03-27 17:10:03 +02:00
stmSi 0dab32f317 Fix `Find in Files` Search Results cannot open builtin script
(cherry picked from commit f1f4c5b10b)
2023-03-27 17:06:43 +02:00
necrashter 865a0b4507 Use the new API for virtual keyboard height detection on Android, bugfix
(cherry picked from commit 61549edef0)
2023-03-27 17:05:13 +02:00
bitsawer 6782cd7291 Fix several clang-tidy bool literal conversion warnings
(cherry picked from commit 1736137bc9)
2023-03-27 17:03:22 +02:00
RedworkDE bb5a6e29ab C#: Fix building projects for MSBuild before 17.3
(cherry picked from commit 6019f497b8)
2023-03-27 17:01:56 +02:00
Raul Santos c4618bcc1b C#: Encode GodotProjectDir as Base64 to prevent issues with special characters
(cherry picked from commit f949e94991)
2023-03-27 17:01:32 +02:00
Yuri Rubinsky a397474bd0 Fix randfn to prevent generating of nan values
(cherry picked from commit d11bb866ff)
2023-03-27 16:59:46 +02:00
VolTer 2e37c05fe6 Make GDScript number highlighting stricter
(cherry picked from commit 952703d921)
2023-03-27 16:58:50 +02:00
Pedro J. Estébanez 46d475b067 Fix crash in resource load
(cherry picked from commit 047671df0f)
2023-03-27 16:57:35 +02:00
Bastiaan Olij a94a2062af Add XRServer.world_origin property
(cherry picked from commit fd8f26f26e)
2023-03-27 16:56:22 +02:00
bruvzg 7a3f8a83da Fix GDExtensions library export when multiple architectures are set.
(cherry picked from commit c2d678a924)
2023-03-27 16:55:28 +02:00
bruvzg 559d09c140 [TextServer] Add mutex for FreeType face creation/deletion operations.
(cherry picked from commit c950a1ab94)
2023-03-27 16:52:57 +02:00
LandoUWB ff125a638a Commit Fix for GLES3 point size not working
(cherry picked from commit f23f0a27c1)
2023-03-27 16:51:10 +02:00
RandomCatDude 149f16b2fa fix spotlight shadows in volumetric fog
(cherry picked from commit 59c31004f8)
2023-03-27 16:47:46 +02:00
Michael Alexsander bf8ab62ca3 Fix `GraphNode` resizing when its bottom border is too thin
(cherry picked from commit c567a853db)
2023-03-27 16:45:22 +02:00
myaaaaaaaaa 6ed9e03449 Fix data races in startup/teardown
(cherry picked from commit d337ed1c64)
2023-03-27 16:43:47 +02:00
bruvzg db3fadc560 Improve layout direction/locale automatic selection.
(cherry picked from commit 82d7923c65)
2023-03-27 16:36:53 +02:00
bruvzg 24c4b5e8ad [macOS] Re-add support for the _sc_ inside app bundle. Update docs.
(cherry picked from commit 174e0837e0)
2023-03-27 16:34:57 +02:00
Markus Sauermann 3cae980c17 Fix some ways to create inconsistent Viewport sizes
In the editor, it was possible to set the size of a `SubViewport` even
in cases where a parent `SubViewportContainer` had stretch enabled.

This PR disables editing a `SubViewport.size` while the parent disallows
it and it makes necessary adjustments during `NOTIFICATION_ENTER_TREE`.

(cherry picked from commit 34a7fc7447)
2023-03-27 16:34:05 +02:00
LandoUWB 34a087cc2c Incorporating the availability of screen and depth textures for the GLES3 backend
(cherry picked from commit 98697b05d8)
2023-03-27 16:32:25 +02:00
Eric M 74b5a0ca4f Fix cancelling selection (pressing escape) while gizmo editing making uncommitted changes.
* Pressing escape while gizmo editing will discard the changes made during that edit 'session'

(cherry picked from commit 871ddf80c0)
2023-03-27 16:29:21 +02:00
Paweł ca0ba83f03 Fix scrolling behaviour with low page value
(cherry picked from commit 1608bea188)
2023-03-27 16:28:29 +02:00
clayjohn 5262fe21de Delete unused compression formats from .imoprt files when exporting
(cherry picked from commit dec86164e1)
2023-03-27 16:26:13 +02:00
Ricardo Buring d8f0c2bdca Revert attempted fix of trimesh CCD
(cherry picked from commit bec1182093)
2023-03-27 16:22:22 +02:00
Rémi Verschelde cacf49999e
Bump version to 4.0.1-stable 2023-03-19 18:03:00 +01:00
Rémi Verschelde c5aa3bd7d7
Merge pull request #75097 from YuriSizov/4.0.1-changelog
Add changelog for 4.0.1
2023-03-19 09:59:29 -07:00
Yuri Sizov ac8f97048e Add changelog for 4.0.1 2023-03-19 12:32:10 +01:00
Rémi Verschelde 6970257cff
Merge pull request #74987 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.1) - 4th batch
2023-03-16 10:44:56 -07:00
lawnjelly c0e5879b41 Improve Vector2 / 3 / 4 normalized() classref.
Mention that the results will be unreliable with initial vector near zero.

(cherry picked from commit cca01afd82)
2023-03-16 16:46:18 +01:00
smix8 8e8ecf52cf Fix NavigationAgent3D debug path duplicated points
Fixes duplicated points in NavigationAgent3D debug path.

(cherry picked from commit 0b8798a995)
2023-03-16 16:45:16 +01:00
smix8 bea2da94da Allow negative NavigationAgent2D path debug line_width for thin lines
Allows the line_width for NavigationAgent2D path debug to go negativ for thin line rendering.

(cherry picked from commit f6a10c0565)
2023-03-16 16:45:07 +01:00
Haoyu Qiu c6a704af2c Fix typos and inconsistencies in classref
(cherry picked from commit 57d4272984)
2023-03-16 16:43:31 +01:00
Haoyu Qiu ef06e5d786 Fix error when opening Inspector's dots menu
When the inspector is empty, opening the "extra resource options" menu
produces a error:

> Condition "current_res.is_null()" is true.

Opening the mneu with no current resource is valid use case, so
`ERR_FAIL_COND` should not be used.

(cherry picked from commit cb0fa0ed7b)
2023-03-16 16:42:53 +01:00
clayjohn ec5f503289 Disallow creating a project in the Home or Documents folder
Also don't prompt users to delete the project folder for now.

This is a temporary fix to ensure that users do not delete their entire home folders by mistake

(cherry picked from commit 45a26ff292)
2023-03-16 16:42:09 +01:00
Hugo Locurcio ab12edb6c6 Add "Bbcode" -> "BBCode" editor capitalization
This property name is used in RichTextLabel.

(cherry picked from commit 81858da2e6)
2023-03-16 16:41:16 +01:00
kobewi 5faebb712e Fix MultiNodeEdit not cleared after deleting nodes
(cherry picked from commit fbffd686e2)
2023-03-16 16:40:13 +01:00
Brett Chalupa 1507bea80c Fix CharacterBody2D get_slide_collision docs
The indentation was off and the code usage was incorrect for Godot 4.0 GDScript.

(cherry picked from commit 2b6e1550ff)
2023-03-16 16:39:23 +01:00
David Snopek 1c7bd972e4 Documents the "arc-based" Quaternion constructor
(cherry picked from commit 2d6deb10b0)
2023-03-16 16:38:47 +01:00
Marius Hanl 3bb89a0911 Add conversion for common Theme Overrides
(cherry picked from commit a40f559fe2)
2023-03-16 16:37:38 +01:00
Danil Alexeev 5acc7a77fe Fix `InputEventConfigurationDialog` modifies original event
(cherry picked from commit 9fbf24fd5c)
2023-03-16 16:37:05 +01:00
bruvzg 577afedc40 [macOS] Remove unnecessary debug prints.
(cherry picked from commit 42a30c76d9)
2023-03-16 16:35:54 +01:00
Rémi Verschelde d23922ffeb
i18n: Sync translations with Weblate 2023-03-15 02:29:27 +01:00
Yuri Sizov fc7adaab7b
Merge pull request #74907 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.1) - 3rd batch
2023-03-14 16:00:02 +01:00
the-sink 38c0ad7c6c Redraw 2d viewport when guides are cleared
(cherry picked from commit 0c051f41b1)
2023-03-14 13:59:05 +01:00
pcamp 0cf5de8f19 Fix typo in Window class.
"event as" -> "events will be"

(cherry picked from commit 112977be26)
2023-03-14 13:59:05 +01:00
Marius Hanl 3176016528 Convert OpenSimplexNoise to FastNoiseLite
- class name and octaves property

(cherry picked from commit 862296273b)
2023-03-14 13:59:05 +01:00
Yuri Sizov c59c68cdec Make sure Script Debugger is updated with the editor theme
(cherry picked from commit 239eb31c90)
2023-03-14 13:59:05 +01:00
clayjohn 5f6a534569 Use linear filtering without mipmaps for ProceduralSkyMaterial and PhysicalSkyMaterial
(cherry picked from commit 572ac91514)
2023-03-14 13:59:05 +01:00
justchen1369 59a78ecf5a Fix exported type for Menubar start_index
(cherry picked from commit dbfecdb3b0)
2023-03-14 13:59:04 +01:00
Dmitrii Maganov 23f2c1234c GDScript: Fix autocomplete inside a block with a type test condition
(cherry picked from commit e289a4ab2c)
2023-03-14 13:59:04 +01:00
yedpodtrzitko 5824967f2f clear filter input in Project Settings when opening Layers
(cherry picked from commit e13bcf5b84)
2023-03-14 13:59:04 +01:00
Mikael Hermansson 7ac80569b3 Fix extension bindings for motion collision/result structs
(cherry picked from commit be64ffd25d)
2023-03-14 13:59:04 +01:00
Haoyu Qiu 38ad9c52b2 Add missing TTRs in tiles editor and array inspector
(cherry picked from commit bef7f14885)
2023-03-14 13:59:04 +01:00
Rémi Verschelde 9e5e6568b7 Vulkan: Fix VMA build with GCC 13
Fixes #74647.

(cherry picked from commit b113e6d4ff)
2023-03-14 13:59:04 +01:00
Hayden Leete 26ab941507 Fix errors when closing floating docks
dock->get_index() on line 4463 was not behaving as expected
due to dock having an internal sibling, so now we just get the
index excluding internal nodes.

line 4742 would throw an error if you made multiple docks
floating then redocked the end docks first, but no longer

(cherry picked from commit 21578e0bb4)
2023-03-14 13:59:04 +01:00
Hugo Locurcio 10424abb29 Tweak command syntax in Vulkan renderer failure message
This quotes the executable name so that copying it always works
(even if the path contains spaces).

The command is also indented from the rest of the text and is
no longer single-quoted, as that can prevent the command from
running if the line is copied in its entirety (with the quotes).

(cherry picked from commit ddc9cc3e49)
2023-03-14 13:59:04 +01:00
Chris Weber 006410ae46 increased max touches to 32 for ios
(cherry picked from commit 54bd204377)
2023-03-14 13:59:04 +01:00
Hugo Locurcio e79477a4b5 Document using `String.uri_encode()` with `OS.shell_open()`
(cherry picked from commit 81ac3c3e71)
2023-03-14 13:59:04 +01:00
bruvzg 0c1abbd79e [Linux/X11] Add some missing keycodes/scancodes.
(cherry picked from commit 5d35c600d5)
2023-03-14 13:59:04 +01:00
VolTer 5ae484c138 Fix error spam when naming a func at the end of the script
(cherry picked from commit 07dd627728)
2023-03-14 13:59:03 +01:00
RedworkDE f9bb1d3174 Fix buffer overrun in CPUParticles3D
(cherry picked from commit 89980dd9c9)
2023-03-14 13:59:03 +01:00
Haoyu Qiu b4a1bfd6d5 Fix coloring of the renderer options button
(cherry picked from commit ac7a4f6e87)
2023-03-14 13:59:03 +01:00
Johan Aires Rastén 4ff705b37e Fix instance uniforms breaking when setting a new mesh.
Fixes #58113

(cherry picked from commit 26aecbfe57)
2023-03-14 13:59:03 +01:00
Ryan Roden-Corrent 47dc4bc307 Don't unset local_coords on starting transform.
This fixes a bug introduced by 806425621c, where dragging the gizmo no longer respected local transforms.

I'm not sure why I called set_local_coords_enabled(false) in _compute_edit. Removing this line seems to fix gizmo-dragging local transforms, without breaking anything else.

I also noticed that confirming a transform leaves the gizmo axis lines on the screen. This is fixed by calling update_transform_gizmo after clearing the edit mode/instant flags, so update_transform_gizmo knows not to render any axes.

(cherry picked from commit d3d1223b97)
2023-03-14 13:59:03 +01:00
clayjohn 08845dc3f0 Propogate errors when creating an OpenGL context fails in X11
(cherry picked from commit e7ea3ef531)
2023-03-14 13:59:03 +01:00
SlugFiller d508d0a642 Fixes a canvas item set to clip children being drawn as black if no children are visible
(cherry picked from commit f25508befb)
2023-03-14 13:59:03 +01:00
SlugFiller 18bf2663f9 Fix AABB calculation for meshes using Skeleton2D
(cherry picked from commit 06a1fe0364)
2023-03-14 13:59:03 +01:00
Johan Aires Rastén d229ca2f27 Fixed incorrect ERROR message when setting new PrimitiveMesh
If calling set_mesh with a PrimitiveMesh that has pending update, the
_mesh_changed function would be called twice. The first time before
set_base had been called, which could lead to an ERROR message about
trying to set an invalid surface override material.

(cherry picked from commit 007b488a5c)
2023-03-14 13:59:03 +01:00
Ryan Roden-Corrent 89a40d317d Disable local space for blender transforms.
Having local_space enabled when starting a transform changed the
behavior of VIEW space transforms. Now we disable local_space when
starting a blender transform (there was already logic to restore the
setting after the transform ends).

This also hides the gizmo while performing a blender transform,
otherwise the user will see it snap back and forth between the local and
global alignment. I think the transform looks cleaner with the gizmo
hidden anyways.

Fixes #59392.

(cherry picked from commit 806425621c)
2023-03-14 13:59:03 +01:00
Rindbee 323c3f80c5 Fix broken shortcut key input
(cherry picked from commit 91e460d500)
2023-03-14 13:59:03 +01:00
Jakub Mateusz Marcowski 5a7624e50f Modify JSON.stringify so that it doesn't create unnecessary empty lines from empty arrays
(cherry picked from commit 0a55a32085)
2023-03-14 13:59:03 +01:00
Rémi Verschelde 7e74568709 FBX: Disable importer when canceling FBX2glTF setup
Pretty hacky solution but it's better than an infinite loop.

All this import setup needs to be redone, it's very difficult to properly
bail out from an invalid import without triggering reimport loops.

Also fix underline not visible at default editor scale in LinkButton.

Fixes #73319.

(cherry picked from commit d81e6ee024)
2023-03-14 13:59:02 +01:00
clayjohn 278fc7538d Avoid overflow when calculating ptr address for 3D textures in RenderingDevice texture update
(cherry picked from commit 06042a23b6)
2023-03-14 13:59:02 +01:00
Yuri Sizov 258ea41ffa
Merge pull request #74884 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.1) - 2nd batch
2023-03-14 13:57:36 +01:00
Yuri Sizov 84e9a79ace Add missing handler for removing font sizes in Themes
(cherry picked from commit 5a3dbea3ed)
2023-03-13 22:22:05 +01:00
clayjohn a41a813af4 Set properties of ImageTexture3D when creating
(cherry picked from commit e9d80a821d)
2023-03-13 22:20:32 +01:00
juliuse98 e3e117cac5 Fix blend-file import when using custom color management in blender
When using custom color management in blender the --version command will
output additional information infront of the "normal" output and this
prevented the import.

Fixes #74439.

(cherry picked from commit 7a0d12182e)
2023-03-13 22:19:36 +01:00
bruvzg 494449f212 [TextServer] Fix justification on punctuation characters.
(cherry picked from commit 016b2f3555)
2023-03-13 22:18:04 +01:00
smix8 069c48bfdc Fix NavigationServer free error print
Fixes error print for NavigationServer free when a RID can not be found.

(cherry picked from commit 73dc680fc1)
2023-03-13 22:12:27 +01:00
Ninni Pipping 75e078d885 Fix type icons in `PropertySelector`
And adding a check to prevent future issues.

(cherry picked from commit ca86d53e7f)
2023-03-13 22:11:46 +01:00
Thomas Lobig a755ac856a remove incorrect rename of get_used_cells_by_id
renaming get_used_cells_by_id to get_used_cells is not only unecessary, it introduces hard to debug issues

(cherry picked from commit d6a2197b3d)
2023-03-13 22:10:04 +01:00
bruvzg 34c909b41e [TextEdit] Do not draw virtual spaces (word break / justification points).
(cherry picked from commit 25bc62ad13)
2023-03-13 22:09:27 +01:00
Rémi Verschelde b1c8a40853 Windows: Workaround missing DWRITE_FONT_WEIGHT value in old MinGW
Fixes #74339.

(cherry picked from commit b7ecb9584a)
2023-03-13 22:06:14 +01:00
Hakim 90dbf3bd38 Get the unlit / unshaded extension when importing GLTF and set it when exporting
(cherry picked from commit e14fa5532b)
2023-03-13 22:05:07 +01:00
bruvzg 4cce358241 [Windows] Update modifier key status during IME input.
(cherry picked from commit ba995c6ea1)
2023-03-13 22:04:08 +01:00
bruvzg ef3f1d426d [Web] Fix some missing keycode mappings.
(cherry picked from commit 0b0587af97)
2023-03-13 22:00:15 +01:00
clayjohn bc6743c96d Add proper default texture filter and repeat modes for Canvas shaders in the OpenGL3 renderer
(cherry picked from commit 46b416f3b1)
2023-03-13 21:58:51 +01:00
Haoyu Qiu 050ec70ea4 Notify child controls when BackBufferCopy's rect changed
(cherry picked from commit 602a0d2fbc)
2023-03-13 21:57:20 +01:00
RedworkDE 20eeb7c66d C#: Get singleton instances using the Core name
(cherry picked from commit 16a2a164fe)
2023-03-13 21:56:31 +01:00
Raul Santos ad6fa1cd25 C#: Ignore explicit interface implementations
(cherry picked from commit 0372bd56b6)
2023-03-13 21:55:11 +01:00
Dmitrii Maganov 079c8ea719 GDScript: Fix checking if a call is awaited in compiler
(cherry picked from commit 55a2ad25bf)
2023-03-13 21:54:05 +01:00
Aleks Rutins 782e1fe84e Validate that C# class names are valid identifiers
(cherry picked from commit ae8752a731)
2023-03-13 21:52:44 +01:00
Fabio Iotti 01324f025a Error on hint_normal_roughness_texture and hint_depth_texture outside of spatial shader
(cherry picked from commit 528e0d095e)
2023-03-13 21:51:36 +01:00
Rémi Verschelde c6f7675b1f Linux: Don't try to link system embree3 on unsupported archs
(cherry picked from commit afb8693715)
2023-03-13 21:49:15 +01:00
Bastiaan Olij c8f64c68a5 Use MSAA 2D texture in multipass tonemapper
(cherry picked from commit 903aa0e385)
2023-03-13 21:48:02 +01:00
kobewi 4e90cc55ec Check for type mismatch in PropertyTweener.from()
(cherry picked from commit 45f4d59fa4)
2023-03-13 21:45:34 +01:00
clayjohn 925381201b Add a few more rendering timestamps
(cherry picked from commit 1adc4e5875)
2023-03-13 21:43:38 +01:00
bruvzg 48a639f4a5 [Bitmap font] Assume outline size is `1` if it's not set, but channel for outline is defined.
(cherry picked from commit 67762ec4a6)
2023-03-13 21:41:21 +01:00
bruvzg 57dc060879 Fix Windows to Windows SSH remote deploy. Fix Windows `execute` exit code.
(cherry picked from commit 94355249c3)
2023-03-13 21:37:41 +01:00
Arman Elgudzhyan 7e6bc72f7c Don't autocomplete numbers in GDScript
Cancel code autocompletion when a numerical value is entered. Avoids interference when setting numbers.

(cherry picked from commit 688d00b706)
2023-03-13 21:35:23 +01:00
clayjohn 13b37a50ae Add parentheses around arguments when converting xform
(cherry picked from commit 3ee5fbdb73)
2023-03-13 21:33:35 +01:00
Ryan Roden-Corrent 81f4996683 Add some missing renames to 3to4 tool.
MultiplayerPeerExtension isn't an exact replacement for
NetworkedMultiplayerCustom, but at least it gets you moving in the right direction.

Engine.editor_hint couldn't be fixed by the renames map, because you have to add a `()` at the end.

(cherry picked from commit 6b17c2b6e7)
2023-03-13 21:32:51 +01:00
Ryan Roden-Corrent 06e2c6ace2 Move tool declarations to top in 3to4.
In godot3, `tool` can follow keywords like `extends` and `class_name`
In godot4, `@tool` must be the first line in the file.

(cherry picked from commit 9a474fb99f)
2023-03-13 21:31:53 +01:00
Marius Hanl 9fff0fcbb5 Project Converter: Do not convert lines that start with a comment
Lines that start with # or // are ignored

(cherry picked from commit 8cf7ac3a45)
2023-03-13 21:31:23 +01:00
Ninni Pipping f6709a1fda Add keycode project conversion
(cherry picked from commit fec630f360)
2023-03-13 21:28:58 +01:00
Marcus Elg 6041ad5c70 Fix Camera2D position smoothing properties not being grouped
(cherry picked from commit a835dfd96d)
2023-03-13 21:25:14 +01:00
Ryan Roden-Corrent 6cd227a35c Correct superclass constructors in 3to4.
Fixes #70542.

The 3to4 conversion tool was not handling superclass constructors.
We should translate the godot3 syntax:

```gdscript
func _init(a,b,c).(a,b,c):
    pass

func _init(a,b,c):
    super(a,b,c)
```

Originally, the _init conversion was intended to remove `void` return types from _init functions, as this was disallowed due to #50589.
As that was resolved by #53366, I removed that part of the conversion logic. If a void return type is present on a constructor, the converter now leaves it.

Here's a sample diff from my own project:

```diff
@@ -103,10 +105,11 @@ class Real:
 class Text:
        extends Setting

-       var choices: PoolStringArray
-       var value: String setget set_value, get_value
+       var choices: PackedStringArray
+       var value: String : get = get_value, set = set_value

-       func _init(section: String, key: String, default: String, choice_list: Array).(section, key, default) -> void:
+       func _init(section: String, key: String, default: String, choice_list: Array) -> void:
+               super(section, key, default)
                choices = choice_list

        func normalize(val):
@@ -129,9 +132,10 @@ class Text:
 class Boolean:
        extends Setting

-       var value: bool setget set_value, get_value
+       var value: bool : get = get_value, set = set_value

-       func _init(section: String, key: String, default: bool).(section, key, default) -> void:
+       func _init(section: String, key: String, default: bool) -> void:
+               super(section, key, default)
                pass
```

(cherry picked from commit 53a00abb11)
2023-03-13 21:19:53 +01:00
Ryan Roden-Corrent 1421838ba7 Don't strip whitespace when converting 3to4.
Fixes #74204.

The style guide says

> Always use one space around operators and after commas

The 3to4 conversion tool currently strips space in certain scenarios.
I've updated it to add space whenever it is generating new code.
In any case where it substitutes existing code, it leaves it as-is.

For example, connect(a,b,c) becomes `connect(a, callable(b, c))`, because the converter is adding new commads/parens.

However, `xform(Vector3(a,b,c))` becomes `Transform * Vector3(a,b,c)` because it uses the user's original Vector3 string whole. If the user originally had `xform(Vector3(a, b, c))`, then it becomes `Transform * Vector3(a, b, c)`.

Ideally we'd always preserve original formatting, but this seems quite difficult, so I tried to preserve it where we can, but air on the side of following the style guide whenever we're transforming code.

(cherry picked from commit d3684e662f)
2023-03-13 21:18:53 +01:00
Yuri Sizov 30e81fcc26
Merge pull request #74866 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.1) - 1st batch
2023-03-13 16:58:31 +01:00
Ninni Pipping 857cd853de Fix TileSetEditor paiting texture_origin Vector2i
(cherry picked from commit fb317546fe)
2023-03-13 14:52:22 +01:00
Raul Santos 1640b1a150 C#: Always show "Create C# solution" option
Prevents ending up with an empty C# menu.
The option to create the C# solution no longer disappears, to avoid confusing users.
If an user tries to use it when a C# solution already exists they are warned that it will override their sln and csproj files.

(cherry picked from commit a1a2fc2255)
2023-03-13 14:50:57 +01:00
Haoyu Qiu 093d237138 Fix dock name lost translation after layout change
* After you click in the dock select panel
* After you load an editor layout

(cherry picked from commit 43bf0ca8d2)
2023-03-13 14:49:17 +01:00
bruvzg 764fe8ac51 Automatically reparent editor message dialogs to avoid error spam.
(cherry picked from commit 921f3b7589)
2023-03-13 14:48:33 +01:00
SaracenOne d929784491 Stop toaster notification circle flickering when notifications are all hidden.
(cherry picked from commit ab61624c78)
2023-03-13 14:47:14 +01:00
Niels Drost 94db7f866b TileSet editor was out of sync with TileMap and incorrectly overwrote old selected TileSet after an edit call with a null pointer.
(cherry picked from commit 66374c8dce)
2023-03-13 14:45:26 +01:00
Danil Alexeev f4ea9df0f4 Fix GDScript code style regarding colon
(cherry picked from commit ea5fd3d732)
2023-03-13 14:42:27 +01:00
Isaac Clerencia acdb1bdbd7 Clarify Thread documentation
The current documentation uses the term "running" for two different things.

In the description of get_id() it claims "it will return empty string if the thread is not running", but it actually will return the thread id until wait_to_finish is called.

In the description of is_alive() it claims "it will return true if the thread is running", but in this case it means "the provided function hasn't finished running yet".

Updated the functions documentation slighly to make this clear.

(cherry picked from commit 2a4f38d54f)
2023-03-13 14:41:26 +01:00
Aaron Franke 9e6f0ee9c7 Document GLTFNode and some of GLTFState
(cherry picked from commit 2cc22fb964)
2023-03-13 14:40:30 +01:00
BrunoSXS 3aa3fb8771 Fix for AABB methods with wrong description
(cherry picked from commit df0de07494)
2023-03-13 14:38:17 +01:00
kobewi 9997250051 Discourage reusing Tweens
(cherry picked from commit 9785b23a0a)
2023-03-13 14:34:08 +01:00
themancalledjakob e043484d36 improve documentation for Font and FontVariation
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
(cherry picked from commit fb5c2d9f75)
2023-03-13 14:33:24 +01:00
Andreas Raddau a026669cc5 Fixed minor typo in turbulence documentation
(cherry picked from commit c618f9fce2)
2023-03-13 14:30:21 +01:00
kobewi 4bd16e6493 Safeguard Makefile commands
(cherry picked from commit d29030fdd0)
2023-03-13 14:29:23 +01:00
JustKoi ed139593bf Fix small mistake in Window.xml
Fix small mistake in Window.xml

(cherry picked from commit 7f8425d6fb)
2023-03-13 14:28:35 +01:00
George Marques b880bde10f Remove outdated note about const in Dictionary and Array docs
(cherry picked from commit d2b1d6e69b)
2023-03-13 14:27:48 +01:00
Haoyu Qiu 80cde341d4 Fix various typos in the classref
(cherry picked from commit 03fcac3aa5)
2023-03-13 14:27:06 +01:00
titus125 8732a8af47 Fixed typos in the Transform2D and Transform3D class reference
(cherry picked from commit 36270d39d2)
2023-03-13 14:26:29 +01:00
Ninni Pipping 8dca093d97 Document `editor/naming/scene_name_casing` setting
Moved definitions of editor related project settings to `editor/register_editor_types.cpp` to make documentation work.

(cherry picked from commit 3de5332fcb)
2023-03-13 14:25:46 +01:00
Malcolm Nixon 5180116c07 Fix null-pointer dereference on Android systems when using gl_compatibility renderer.
(cherry picked from commit d186b7438f)
2023-03-13 14:22:45 +01:00
RedworkDE 0112862e70 C#: Fix crash when errors occur before language initialization.
(cherry picked from commit c0ebc28136)
2023-03-13 14:21:06 +01:00
Yuri Sizov 234c601a61 Improve logic related to editing audio buses (and prevent crashes)
(cherry picked from commit 68c18c0e2b)
2023-03-13 14:19:41 +01:00
Yuri Sizov 3c2e952889 Prevent crashing on startup if project has scripted theme types
Also avoid order of operation conflicts by moving C# binding generation hook to main.cpp

(cherry picked from commit 8402927d3f)
2023-03-13 14:18:32 +01:00
bruvzg d83245f2f9 [TextServer] Add invalid font scaling check, restrict Linux/BSD system fonts lookup to TrueType/CFF only.
(cherry picked from commit 8d501a2dc3)
2023-03-13 14:17:42 +01:00
Yuri Sizov 048c252602 Prevent cache corruption when saving resources in the editor
(cherry picked from commit 496bd94c21)
2023-03-13 14:16:13 +01:00
Hayden Leete 7490f89238 Fix crash when revealing file in floating FileSystem Dock
When selecting "Show in FileSystem" from the context menu of a resource
in the inspector, the engine would crash if the FileSystem dock was
floating because it was trying to focus the FileSystem tab, but floating
docks don't use Tab Containers. This commit makes the FileSystem dock's
window grab focus instead if it's floating.

(cherry picked from commit c4d1513e15)
2023-03-13 14:15:18 +01:00
Paweł Fertyk 41f4068a6e Fix RichTextLabel crash with out of bound exception
Fixes #68242.

(cherry picked from commit 44592c8c19)
2023-03-13 14:13:36 +01:00
Yuri Sizov 755a86f502 Generate empty textures for theme icons if the SVG module is disabled
(cherry picked from commit 64215ad119)
2023-03-13 14:12:44 +01:00
Haoyu Qiu 2d0d07f51b Fix crash when dumping extension API in a non-writable directory
(cherry picked from commit 49400e0c1c)
2023-03-13 14:11:24 +01:00
clayjohn 5662542526 Avoid copying CanvasTexture when updating proxy
(cherry picked from commit 84482ef90b)
2023-03-13 14:10:38 +01:00
bruvzg 1d21652f80 [Linux/X11] Check if required xkb functions exist before using it.
(cherry picked from commit 8a675f3824)
2023-03-13 14:08:31 +01:00
Nicholas Huelin f55c61d601 Modify the default theme GraphNode close_h_offset
Modifies the close_h_offset to be 12 instead of 22. This better aligns the default position.

(cherry picked from commit 961d6763fb)
2023-03-13 14:06:08 +01:00
bruvzg 466d226a4a [TextServer] Ensure ICU data is initialised only one and cleaned only at exit.
(cherry picked from commit 7f24433e15)
2023-03-13 14:04:41 +01:00
Abdulrahman Al Zeidi e290448fe3 Fix glTF mesh importer not freeing nodes correctly on import
(cherry picked from commit 5e0641ea9a)
2023-03-13 14:00:38 +01:00
Yuri Sizov eb503fb461
Merge pull request #74750 from YuriSizov/project-manager-lighten-up-4.0
[4.0] Ensure that editor color map is initialized in the project manager
2023-03-13 13:48:33 +01:00
Yuri Sizov 671f8eb790 Ensure that editor color map is initialized in the project manager 2023-03-11 02:04:54 +01:00
Haoyu Qiu 17a130cbd1
Fix "Convert Full Project" button not translated
Also fixes a typo in the CHANGELOG.

(cherry picked from commit e03bfd6f7f)
2023-03-06 10:10:02 +01:00
Rémi Verschelde 47114a77f8
CI: Pin SCons to 4.4.0, the new 4.5.0 is broken
(cherry picked from commit 85bb561713)
2023-03-06 10:08:43 +01:00
Rémi Verschelde 284a1b6a6e
Bump version to 4.0.1-rc 2023-03-01 14:09:30 +01:00
1394 changed files with 189591 additions and 54934 deletions

View File

@ -5,18 +5,19 @@ body:
- type: markdown
attributes:
value: |
- Read our [CONTRIBUTING.md guide](https://github.com/godotengine/godot/blob/master/CONTRIBUTING.md#reporting-bugs) on reporting bugs.
- When reporting bugs, you'll make our life simpler (and the fix will come sooner) if you follow the guidelines in this template.
- Write a descriptive issue title above.
- Search [open](https://github.com/godotengine/godot/issues) and [closed](https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aclosed) issues to ensure it has not already been reported.
- The golden rule is to **always open *one* issue for *one* bug**. If you notice several bugs and want to report them, make sure to create one new issue for each of them.
- Search [open](https://github.com/godotengine/godot/issues) and [closed](https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aclosed) issues to ensure it has not already been reported. If you don't find a relevant match or if you're unsure, don't hesitate to **open a new issue**. The bugsquad will handle it from there if it's a duplicate.
- Verify that you are using a [supported Godot version](https://docs.godotengine.org/en/stable/about/release_policy.html).
- type: input
attributes:
label: Godot version
description: >
Specify the Git commit hash if using a development or non-official build.
Specify the Godot version, including the Git commit hash if using a development or non-official build.
If you use a custom build, please test if your issue is reproducible in official builds too.
placeholder: 3.3.stable, 4.0.dev (3041becc6)
placeholder: 3.5.stable, 4.0.dev (3041becc6)
validations:
required: true
@ -24,9 +25,12 @@ body:
attributes:
label: System information
description: |
Specify the OS version, and when relevant hardware information.
For graphics-related issues, specify the GPU model, driver version, and the rendering backend (GLES2, GLES3, Vulkan).
placeholder: Windows 10, GLES3, Intel HD Graphics 620 (27.20.100.9616)
- Specify the OS version, and when relevant hardware information.
- For issues that are likely OS-specific and/or graphics-related, please specify the CPU model and architecture.
- For graphics-related issues, specify the GPU model, driver version, and the rendering backend (GLES2, GLES3, Vulkan).
- **Bug reports not including the required information may be closed at the maintainers' discretion.** If in doubt, always include all the requested information; it's better to include too much information than not enough information.
- **Starting from Godot 4.1, you can copy this information to your clipboard by using *Help > Copy System Info* at the top of the editor window.**
placeholder: Windows 10 - Godot v4.0.3.stable - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 970 (nvidia, 510.85.02) - Intel Core i7-10700KF CPU @ 3.80GHz (16 Threads)
validations:
required: true
@ -52,8 +56,10 @@ body:
attributes:
label: Minimal reproduction project
description: |
A small Godot project which reproduces the issue, with no unnecessary files included. Be sure to not include the `.godot` folder in the archive (but keep `project.godot`).
Required, unless the reproduction steps are trivial and don't require any project files to be followed. In this case, write "N/A" in the field.
Drag and drop a ZIP archive to upload it. **Do not select another field until the project is done uploading.**
- A small Godot project which reproduces the issue, with no unnecessary files included. Be sure to not include the `.godot` folder in the archive (but keep `project.godot`).
- Required, unless the reproduction steps are trivial and don't require any project files to be followed. In this case, write "N/A" in the field.
- Drag and drop a ZIP archive to upload it. **Do not select another field until the project is done uploading.**
- **Note for C# users:** If your issue is *not* Mono-specific, please upload a minimal reproduction project written in GDScript or VisualScript. This will make it easier for contributors to reproduce the issue locally as not everyone has a Mono setup available.
- **If you've been asked by a maintainer to upload a minimal reproduction project, you *must* do so within 7 days.** Otherwise, your bug report will be closed as it'll be considered too difficult to diagnose.
validations:
required: true

View File

@ -0,0 +1,18 @@
name: Download Godot artifact
description: Download the Godot artifact.
inputs:
name:
description: The artifact name.
default: "${{ github.job }}"
path:
description: The path to download and extract to.
required: true
default: "./"
runs:
using: "composite"
steps:
- name: Download Godot Artifact
uses: actions/download-artifact@v3
with:
name: ${{ inputs.name }}
path: ${{ inputs.path }}

View File

@ -0,0 +1,24 @@
name: Dump Godot API
description: Dump Godot API for GDExtension
inputs:
bin:
description: The path to the Godot executable
required: true
runs:
using: "composite"
steps:
# Dump GDExtension interface and API
- name: Dump GDExtension interface and API for godot-cpp build
shell: sh
run: |
${{ inputs.bin }} --headless --dump-gdextension-interface --dump-extension-api
mkdir godot-api
cp -f gdextension_interface.h godot-api/
cp -f extension_api.json godot-api/
- name: Upload API dump
uses: ./.github/actions/upload-artifact
with:
name: 'godot-api-dump'
path: './godot-api/*'

View File

@ -16,7 +16,20 @@ runs:
with:
path: ${{inputs.scons-cache}}
key: ${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
# We try to match an existing cache to restore from it. Each potential key is checked against
# all existing caches as a prefix. E.g. 'linux-template-minimal' would match any cache that
# starts with "linux-template-minimal", such as "linux-template-minimal-master-refs/heads/master-6588a4a29af1621086feac0117d5d4d37af957fd".
#
# We check these prefixes in this order:
#
# 1. The exact match, including the base branch, the commit reference, and the SHA hash of the commit.
# 2. A partial match for the same base branch and the same commit reference.
# 3. A partial match for the same base branch and the base branch commit reference.
# 4. A partial match for the same base branch only (not ideal, matches any PR with the same base branch).
restore-keys: |
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-refs/heads/${{env.GODOT_BASE_BRANCH}}
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}

View File

@ -0,0 +1,18 @@
name: Test Godot project converter
description: Test the Godot project converter.
inputs:
bin:
description: The path to the Godot executable
required: true
runs:
using: "composite"
steps:
- name: Test 3-to-4 conversion
shell: sh
run: |
mkdir converter_test
cd converter_test
touch project.godot
../${{ inputs.bin }} --headless --validate-conversion-3to4
cd ..
rm converter_test -rf

View File

@ -23,5 +23,5 @@ runs:
shell: bash
run: |
python -c "import sys; print(sys.version)"
python -m pip install scons
python -m pip install scons==4.4.0
scons --version

View File

@ -0,0 +1,37 @@
name: Test Godot project
description: Run the test Godot project.
inputs:
bin:
description: The path to the Godot executable
required: true
runs:
using: "composite"
steps:
# Download and extract zip archive with project, folder is renamed to be able to easy change used project
- name: Download test project
shell: sh
run: |
wget https://github.com/godotengine/regression-test-project/archive/4.0.zip
unzip 4.0.zip
mv "regression-test-project-4.0" "test_project"
# Editor is quite complicated piece of software, so it is easy to introduce bug here.
- name: Open and close editor (Vulkan)
shell: sh
run: |
xvfb-run ${{ inputs.bin }} --audio-driver Dummy --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt
- name: Open and close editor (GLES3)
shell: sh
run: |
DRI_PRIME=0 xvfb-run ${{ inputs.bin }} --audio-driver Dummy --rendering-driver opengl3 --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt
# Run test project
- name: Run project
shell: sh
run: |
xvfb-run ${{ inputs.bin }} 40 --audio-driver Dummy --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt

View File

@ -1,10 +1,11 @@
name: 🤖 Android Builds
on: [push, pull_request]
on:
workflow_call:
# Global Settings
env:
# Only used for the cache key. Increment version to force clean build.
GODOT_BASE_BRANCH: master
# Used for the cache key. Add version suffix to force clean build.
GODOT_BASE_BRANCH: '4.0'
SCONSFLAGS: verbose=yes warnings=extra werror=yes debug_symbols=no module_text_server_fb_enabled=yes
concurrency:

54
.github/workflows/godot_cpp_test.yml vendored Normal file
View File

@ -0,0 +1,54 @@
name: 🪲 Godot CPP
on:
workflow_call:
# Global Settings
env:
# Used for the cache key, and godot-cpp checkout. Add version suffix to force clean build.
GODOT_BASE_BRANCH: '4.0'
concurrency:
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-cpp-tests
cancel-in-progress: true
jobs:
godot-cpp-tests:
runs-on: "ubuntu-20.04"
name: "Build and test Godot CPP"
steps:
- uses: actions/checkout@v3
- name: Setup python and scons
uses: ./.github/actions/godot-deps
# Checkout godot-cpp
- name: Checkout godot-cpp
uses: actions/checkout@v3
with:
repository: godotengine/godot-cpp
ref: ${{ env.GODOT_BASE_BRANCH }}
submodules: 'recursive'
path: 'godot-cpp'
# Download generated API dump
- name: Download GDExtension interface and API dump
uses: ./.github/actions/download-artifact
with:
name: 'godot-api-dump'
path: './godot-api'
# Extract and override existing files with generated files
- name: Extract GDExtension interface and API dump
run: |
cp -f godot-api/gdextension_interface.h godot-cpp/gdextension/
cp -f godot-api/extension_api.json godot-cpp/gdextension/
# TODO: Add caching to the scons build and store it for CI via the godot-cache
# action.
# Build godot-cpp test extension
- name: Build godot-cpp test extension
run: |
cd godot-cpp/test
scons target=template_debug dev_build=yes
cd ../..

View File

@ -1,10 +1,11 @@
name: 🍏 iOS Builds
on: [push, pull_request]
on:
workflow_call:
# Global Settings
env:
# Only used for the cache key. Increment version to force clean build.
GODOT_BASE_BRANCH: master
# Used for the cache key. Add version suffix to force clean build.
GODOT_BASE_BRANCH: '4.0'
SCONSFLAGS: verbose=yes warnings=extra werror=yes debug_symbols=no module_text_server_fb_enabled=yes
concurrency:

View File

@ -1,10 +1,11 @@
name: 🐧 Linux Builds
on: [push, pull_request]
on:
workflow_call:
# Global Settings
env:
# Only used for the cache key. Increment version to force clean build.
GODOT_BASE_BRANCH: master
# Used for the cache key. Add version suffix to force clean build.
GODOT_BASE_BRANCH: '4.0'
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
@ -24,52 +25,51 @@ jobs:
- name: Editor w/ Mono (target=editor)
cache-name: linux-editor-mono
target: editor
tests: false # Disabled due freeze caused by mix Mono build and CI
sconsflags: module_mono_enabled=yes
doc-test: true
bin: "./bin/godot.linuxbsd.editor.x86_64.mono"
build-mono: true
tests: false # Disabled due freeze caused by mix Mono build and CI
doc-test: true
proj-conv: true
artifact: true
- name: Editor with doubles and GCC sanitizers (target=editor, tests=yes, dev_build=yes, precision=double, use_asan=yes, use_ubsan=yes, linker=gold)
cache-name: linux-editor-double-sanitizers
target: editor
tests: true
# Debug symbols disabled as they're huge on this build and we hit the 14 GB limit for runners.
sconsflags: dev_build=yes debug_symbols=no precision=double use_asan=yes use_ubsan=yes linker=gold
proj-test: true
# Can be turned off for PRs that intentionally break compat with godot-cpp,
# until both the upstream PR and the matching godot-cpp changes are merged.
godot-cpp-test: true
bin: "./bin/godot.linuxbsd.editor.dev.double.x86_64.san"
build-mono: false
tests: true
proj-test: true
# Generate an API dump for godot-cpp tests.
api-dump: true
# Skip 2GiB artifact speeding up action.
artifact: false
- name: Editor with clang sanitizers (target=editor, tests=yes, dev_build=yes, use_asan=yes, use_ubsan=yes, use_llvm=yes, linker=lld)
cache-name: linux-editor-llvm-sanitizers
target: editor
tests: true
sconsflags: dev_build=yes use_asan=yes use_ubsan=yes use_llvm=yes linker=lld
bin: "./bin/godot.linuxbsd.editor.dev.x86_64.llvm.san"
build-mono: false
tests: true
# Skip 2GiB artifact speeding up action.
artifact: false
- name: Template w/ Mono (target=template_release)
cache-name: linux-template-mono
target: template_release
tests: false
sconsflags: module_mono_enabled=yes
build-mono: false
tests: false
artifact: true
- name: Minimal template (target=template_release, everything disabled)
cache-name: linux-template-minimal
target: template_release
tests: false
sconsflags: modules_enabled_by_default=no disable_3d=yes disable_advanced_gui=yes deprecated=no minizip=no
tests: false
artifact: true
steps:
@ -83,6 +83,12 @@ jobs:
sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt-get install -qq mesa-vulkan-drivers
- name: Free disk space on runner
run: |
echo "Disk usage before:" && df -h
sudo rm -rf /usr/local/lib/android
echo "Disk usage after:" && df -h
- name: Setup Godot build cache
uses: ./.github/actions/godot-cache
with:
@ -119,6 +125,24 @@ jobs:
run: |
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
- name: Prepare artifact
if: ${{ matrix.artifact }}
run: |
strip bin/godot.*
chmod +x bin/godot.*
- name: Upload artifact
uses: ./.github/actions/upload-artifact
if: ${{ matrix.artifact }}
with:
name: ${{ matrix.cache-name }}
- name: Dump Godot API
uses: ./.github/actions/godot-api-dump
if: ${{ matrix.api-dump }}
with:
bin: ${{ matrix.bin }}
# Execute unit tests for the editor
- name: Unit tests
if: ${{ matrix.tests }}
@ -136,78 +160,16 @@ jobs:
${{ matrix.bin }} --doctool --headless 2>&1 > /dev/null || true
git diff --color --exit-code && ! git ls-files --others --exclude-standard | sed -e 's/^/New doc file missing in PR: /' | grep 'xml$'
# Test 3.x -> 4.x project converter
# Download and run the test project
- name: Test Godot project
uses: ./.github/actions/godot-project-test
if: ${{ matrix.proj-test }}
with:
bin: ${{ matrix.bin }}
# Test the project converter
- name: Test project converter
uses: ./.github/actions/godot-converter-test
if: ${{ matrix.proj-conv }}
run: |
mkdir converter_test
cd converter_test
touch project.godot
../${{ matrix.bin }} --headless --validate-conversion-3to4
cd ..
rm converter_test -rf
# Download and extract zip archive with project, folder is renamed to be able to easy change used project
- name: Download test project
if: ${{ matrix.proj-test }}
run: |
wget https://github.com/godotengine/regression-test-project/archive/4.0.zip
unzip 4.0.zip
mv "regression-test-project-4.0" "test_project"
# Editor is quite complicated piece of software, so it is easy to introduce bug here
- name: Open and close editor (Vulkan)
if: ${{ matrix.proj-test }}
run: |
xvfb-run ${{ matrix.bin }} --audio-driver Dummy --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt
- name: Open and close editor (GLES3)
if: ${{ matrix.proj-test }}
run: |
DRI_PRIME=0 xvfb-run ${{ matrix.bin }} --audio-driver Dummy --rendering-driver opengl3 --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt
# Run test project
- name: Run project
if: ${{ matrix.proj-test }}
run: |
xvfb-run ${{ matrix.bin }} 40 --audio-driver Dummy --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt
# Checkout godot-cpp
- name: Checkout godot-cpp
if: ${{ matrix.godot-cpp-test }}
uses: actions/checkout@v3
with:
repository: godotengine/godot-cpp
submodules: 'recursive'
path: 'godot-cpp'
# Dump GDExtension interface and API
- name: Dump GDExtension interface and API for godot-cpp build
if: ${{ matrix.godot-cpp-test }}
run: |
${{ matrix.bin }} --headless --dump-gdextension-interface --dump-extension-api
cp -f gdextension_interface.h godot-cpp/gdextension/
cp -f extension_api.json godot-cpp/gdextension/
# Build godot-cpp test extension
- name: Build godot-cpp test extension
if: ${{ matrix.godot-cpp-test }}
run: |
cd godot-cpp/test
scons target=template_debug dev_build=yes
cd ../..
- name: Prepare artifact
if: ${{ matrix.artifact }}
run: |
strip bin/godot.*
chmod +x bin/godot.*
- name: Upload artifact
uses: ./.github/actions/upload-artifact
if: ${{ matrix.artifact }}
with:
name: ${{ matrix.cache-name }}
bin: ${{ matrix.bin }}

View File

@ -1,10 +1,11 @@
name: 🍎 macOS Builds
on: [push, pull_request]
on:
workflow_call:
# Global Settings
env:
# Only used for the cache key. Increment version to force clean build.
GODOT_BASE_BRANCH: master
# Used for the cache key. Add version suffix to force clean build.
GODOT_BASE_BRANCH: '4.0'
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes
concurrency:
@ -23,7 +24,7 @@ jobs:
cache-name: macos-editor
target: editor
tests: true
bin: "./bin/godot.macos.editor.x86_64"
bin: "./bin/godot.macos.editor.universal"
- name: Template (target=template_release)
cache-name: macos-template
@ -34,6 +35,11 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.3'
- name: Setup Godot build cache
uses: ./.github/actions/godot-cache
with:
@ -47,14 +53,34 @@ jobs:
run: |
sh misc/scripts/install_vulkan_sdk_macos.sh
- name: Compilation
- name: Compilation (x86_64)
uses: ./.github/actions/godot-build
with:
sconsflags: ${{ env.SCONSFLAGS }}
sconsflags: ${{ env.SCONSFLAGS }} arch=x86_64
platform: macos
target: ${{ matrix.target }}
tests: ${{ matrix.tests }}
- name: Compilation (arm64)
uses: ./.github/actions/godot-build
with:
sconsflags: ${{ env.SCONSFLAGS }} arch=arm64
platform: macos
target: ${{ matrix.target }}
tests: ${{ matrix.tests }}
- name: Prepare artifact
run: |
lipo -create ./bin/godot.macos.${{ matrix.target }}.x86_64 ./bin/godot.macos.${{ matrix.target }}.arm64 -output ./bin/godot.macos.${{ matrix.target }}.universal
rm ./bin/godot.macos.${{ matrix.target }}.x86_64 ./bin/godot.macos.${{ matrix.target }}.arm64
strip bin/godot.*
chmod +x bin/godot.*
- name: Upload artifact
uses: ./.github/actions/upload-artifact
with:
name: ${{ matrix.cache-name }}
# Execute unit tests for the editor
- name: Unit tests
if: ${{ matrix.tests }}
@ -62,13 +88,3 @@ jobs:
${{ matrix.bin }} --version
${{ matrix.bin }} --help
${{ matrix.bin }} --test
- name: Prepare artifact
run: |
strip bin/godot.*
chmod +x bin/godot.*
- name: Upload artifact
uses: ./.github/actions/upload-artifact
with:
name: ${{ matrix.cache-name }}

57
.github/workflows/runner.yml vendored Normal file
View File

@ -0,0 +1,57 @@
name: 🔗 GHA
on: [push, pull_request]
concurrency:
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-runner
cancel-in-progress: true
jobs:
# First stage: Only static checks, fast and prevent expensive builds from running.
static-checks:
name: 📊 Static checks
uses: ./.github/workflows/static_checks.yml
# Second stage: Run all the builds and some of the tests.
android-build:
name: 🤖 Android
needs: static-checks
uses: ./.github/workflows/android_builds.yml
ios-build:
name: 🍏 iOS
needs: static-checks
uses: ./.github/workflows/ios_builds.yml
linux-build:
name: 🐧 Linux
needs: static-checks
uses: ./.github/workflows/linux_builds.yml
macos-build:
name: 🍎 macOS
needs: static-checks
uses: ./.github/workflows/macos_builds.yml
windows-build:
name: 🏁 Windows
needs: static-checks
uses: ./.github/workflows/windows_builds.yml
web-build:
name: 🌐 Web
needs: static-checks
uses: ./.github/workflows/web_builds.yml
# Third stage: Run auxiliary tests using build artifacts from previous jobs.
# Can be turned off for PRs that intentionally break compat with godot-cpp,
# until both the upstream PR and the matching godot-cpp changes are merged.
godot-cpp-test:
name: 🪲 Godot CPP
# This can be changed to depend on another platform, if we decide to use it for
# godot-cpp instead. Make sure to move the .github/actions/godot-api-dump step
# appropriately.
needs: linux-build
uses: ./.github/workflows/godot_cpp_test.yml

View File

@ -1,5 +1,6 @@
name: 📊 Static Checks
on: [push, pull_request]
on:
workflow_call:
concurrency:
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-static
@ -7,37 +8,62 @@ concurrency:
jobs:
static-checks:
name: Static Checks (clang-format, black format, file format, documentation checks)
runs-on: ubuntu-20.04
name: Code style, file formatting, and docs
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Install dependencies
- name: Install APT dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: dos2unix libxml2-utils moreutils
- name: Install Python dependencies and general setup
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main"
sudo apt-get install -qq dos2unix clang-format-15 libxml2-utils python3-pip moreutils
sudo update-alternatives --remove-all clang-format || true
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-15 100
sudo pip3 install black==22.3.0 pygments pytest==7.1.2 mypy==0.971
pip3 install black==22.3.0 pytest==7.1.2 mypy==0.971
git config diff.wsErrorHighlight all
- name: Get changed files
id: changed-files
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
files=$(gh pr diff ${{ github.event.pull_request.number }} --name-only)
elif [ "${{ github.event_name }}" == "push" -a "${{ github.event.forced }}" == "false" -a "${{ github.event.created }}" == "false" ]; then
files=$(git diff-tree --no-commit-id --name-only -r ${{ github.event.before }}..${{ github.event.after }} 2> /dev/null || true)
fi
echo "$files" >> changed.txt
cat changed.txt
files=$(echo "$files" | grep -v 'thirdparty' | xargs -I {} sh -c 'echo "./{}"' | tr '\n' ' ')
echo "CHANGED_FILES=$files" >> $GITHUB_ENV
- name: File formatting checks (file_format.sh)
run: |
bash ./misc/scripts/file_format.sh
bash ./misc/scripts/file_format.sh changed.txt
- name: Header guards formatting checks (header_guards.sh)
run: |
bash ./misc/scripts/header_guards.sh
bash ./misc/scripts/header_guards.sh changed.txt
- name: Python style checks via black (black_format.sh)
run: |
bash ./misc/scripts/black_format.sh
if grep -qE '\.py$|SConstruct|SCsub' changed.txt || [ -z "$(cat changed.txt)" ]; then
bash ./misc/scripts/black_format.sh
else
echo "Skipping Python formatting as no Python files were changed."
fi
- name: Python scripts static analysis (mypy_check.sh)
run: |
bash ./misc/scripts/mypy_check.sh
if grep -qE '\.py$|SConstruct|SCsub' changed.txt || [ -z "$(cat changed.txt)" ]; then
bash ./misc/scripts/mypy_check.sh
else
echo "Skipping Python static analysis as no Python files were changed."
fi
- name: Python builders checks via pytest (pytest_builders.sh)
run: |
@ -45,10 +71,14 @@ jobs:
- name: JavaScript style and documentation checks via ESLint and JSDoc
run: |
cd platform/web
npm ci
npm run lint
npm run docs -- -d dry-run
if grep -q "platform/web" changed.txt || [ -z "$(cat changed.txt)" ]; then
cd platform/web
npm ci
npm run lint
npm run docs -- -d dry-run
else
echo "Skipping JavaScript formatting as no Web/JS files were changed."
fi
- name: Class reference schema checks
run: |
@ -60,16 +90,21 @@ jobs:
- name: Style checks via clang-format (clang_format.sh)
run: |
bash ./misc/scripts/clang_format.sh
clang-format --version
bash ./misc/scripts/clang_format.sh changed.txt
- name: Style checks via dotnet format (dotnet_format.sh)
run: |
bash ./misc/scripts/dotnet_format.sh
if grep -q "modules/mono" changed.txt || [ -z "$(cat changed.txt)" ]; then
bash ./misc/scripts/dotnet_format.sh
else
echo "Skipping dotnet format as no C# files were changed."
fi
- name: Spell checks via codespell
uses: codespell-project/actions-codespell@v1
if: github.event_name == 'pull_request' && env.CHANGED_FILES != ''
uses: codespell-project/actions-codespell@v2
with:
skip: ./.*,./**/.*,./bin,./thirdparty,*.desktop,*.gen.*,*.po,*.pot,*.rc,./AUTHORS.md,./COPYRIGHT.txt,./DONORS.md,./core/input/gamecontrollerdb.txt,./core/string/locales.h,./editor/project_converter_3_to_4.cpp,./misc/scripts/codespell.sh,./platform/android/java/lib/src/com,./platform/web/node_modules,./platform/web/package-lock.json
check_hidden: false
ignore_words_list: curvelinear,doubleclick,expct,findn,gird,hel,inout,lod,nd,numer,ot,te
only_warn: true
skip: "./bin,./thirdparty,*.desktop,*.gen.*,*.po,*.pot,*.rc,./AUTHORS.md,./COPYRIGHT.txt,./DONORS.md,./core/input/gamecontrollerdb.txt,./core/string/locales.h,./editor/project_converter_3_to_4.cpp,./misc/scripts/codespell.sh,./platform/android/java/lib/src/com,./platform/web/node_modules,./platform/web/package-lock.json"
ignore_words_list: "curvelinear,doubleclick,expct,findn,gird,hel,inout,lod,mis,nd,numer,ot,te,vai"
path: ${{ env.CHANGED_FILES }}

View File

@ -1,10 +1,11 @@
name: 🌐 Web Builds
on: [push, pull_request]
on:
workflow_call:
# Global Settings
env:
# Only used for the cache key. Increment version to force clean build.
GODOT_BASE_BRANCH: master
# Used for the cache key. Add version suffix to force clean build.
GODOT_BASE_BRANCH: '4.0'
SCONSFLAGS: verbose=yes warnings=extra werror=yes debug_symbols=no
EM_VERSION: 3.1.18
EM_CACHE_FOLDER: "emsdk-cache"
@ -22,7 +23,7 @@ jobs:
- uses: actions/checkout@v3
- name: Set up Emscripten latest
uses: mymindstorm/setup-emsdk@v11
uses: mymindstorm/setup-emsdk@v12
with:
version: ${{env.EM_VERSION}}
actions-cache-folder: ${{env.EM_CACHE_FOLDER}}

View File

@ -1,11 +1,12 @@
name: 🏁 Windows Builds
on: [push, pull_request]
on:
workflow_call:
# Global Settings
# SCONS_CACHE for windows must be set in the build environment
env:
# Only used for the cache key. Increment version to force clean build.
GODOT_BASE_BRANCH: master
# Used for the cache key. Add version suffix to force clean build.
GODOT_BASE_BRANCH: '4.0'
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes
SCONS_CACHE_MSVC_CONFIG: true
@ -27,10 +28,10 @@ jobs:
target: editor
tests: true
# Skip debug symbols, they're way too big with MSVC.
sconsflags: debug_symbols=no vsproj=yes
sconsflags: debug_symbols=no vsproj=yes windows_subsystem=console
bin: "./bin/godot.windows.editor.x86_64.exe"
- name: Template (target=template_release, tools=no)
- name: Template (target=template_release)
cache-name: windows-template
target: template_release
tests: false
@ -59,14 +60,6 @@ jobs:
target: ${{ matrix.target }}
tests: ${{ matrix.tests }}
# Execute unit tests for the editor
- name: Unit tests
if: ${{ matrix.tests }}
run: |
${{ matrix.bin }} --version
${{ matrix.bin }} --help
${{ matrix.bin }} --test
- name: Prepare artifact
run: |
Remove-Item bin/* -Include *.exp,*.lib,*.pdb -Force
@ -75,3 +68,11 @@ jobs:
uses: ./.github/actions/upload-artifact
with:
name: ${{ matrix.cache-name }}
# Execute unit tests for the editor
- name: Unit tests
if: ${{ matrix.tests }}
run: |
${{ matrix.bin }} --version
${{ matrix.bin }} --help
${{ matrix.bin }} --test

4
.gitignore vendored
View File

@ -63,6 +63,10 @@ tests/data/*.translation
# Binutils tmp linker output of the form "stXXXXXX" where "X" is alphanumeric
st[A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9]
# Python development
.venv
venv
# Python generated
__pycache__/
*.pyc

View File

@ -1,7 +0,0 @@
extraction:
cpp:
after_prepare:
- pip3 install scons
- PATH="/opt/work/.local/bin:$PATH"
index:
build_command: scons -j2

View File

@ -1,4 +1,5 @@
Aaron Record <aaronjrecord@gmail.com>
ajreckof <66184050+ajreckof@users.noreply.github.com> <tbonhoure@ymail.com>
Alexander Holland <alexander.holland@live.de>
Alexander Holland <alexander.holland@live.de> <alexander.holland@haw-hamburg.de>
Alexander Holland <alexander.holland@live.de> <AlexHolly>
@ -105,6 +106,7 @@ marynate <mary.w.nate@gmail.com> <marynate@github.com>
Mateo Kuruk Miccino <mateomiccino@gmail.com>
Max Hilbrunner <m.hilbrunner@gmail.com>
Max Hilbrunner <m.hilbrunner@gmail.com> <mhilbrunner@users.noreply.github.com>
MewPurPur <mew.pur.pur@abv.bg>
Michael Alexsander <michaelalexsander@protonmail.com>
Micky <micheledevita2@gmail.com> <66727710+Mickeon@users.noreply.github.com>
Nathan Franke <natfra@pm.me> <nathanwfranke@gmail.com>

View File

@ -45,12 +45,14 @@ name is available.
Anutrix
Aren Villanueva (kurikaesu)
Ariel Manzur (punto-)
AThousandShips
Bartłomiej T. Listwon (Listwon)
Bastiaan Olij (BastiaanOlij)
Ben Brookshire (sheepandshepherd)
Benjamin Larsson (Nallebeorn)
Bernhard Liebl (poke1024)
Bhuvan Vemula (Bhu1-V)
bitsawer
Błażej Szczygieł (zaps166)
Bojidar Marinov (bojidar-bg)
Brian Semrau (briansemrau)
@ -104,6 +106,7 @@ name is available.
Gilles Roudiere (groud)
Gordon MacPherson (RevoluPowered)
Guilherme Felipe de C. G. da Silva (guilhermefelipecgs)
Hakim Rouatbi (hakro)
Hanif Bin Ariffin (hbina)
Haoyu Qiu (timothyqiu)
Hein-Pieter van Braam-Stewart (hpvb)
@ -181,6 +184,7 @@ name is available.
Michał Iwańczuk (iwek7)
MichiRecRoom (LikeLakers2)
Micky (Mickeon)
Mikael Hermansson (mihe)
MinusKube
Morris "Tabor" Arroad (mortarroad)
mrezai
@ -193,6 +197,7 @@ name is available.
Nikita Lita (nikitalita)
Nils André-Chang (NilsIrl)
Noah Beard (TwistedTwigleg)
Nông Văn Tình (nongvantinh)
Nuno Donato (nunodonato)
ocean (they/them) (anvilfolk)
Omar El Sheikh (The-O-King)
@ -248,6 +253,7 @@ name is available.
thebestnom
Theo Hallenius (TheoXD)
Timo Schwarzer (timoschwarzer)
Timothé Bonhoure (ajreckof)
Timo (toger5)
Tomasz Chabora (KoBeWi)
trollodel

View File

@ -4,6 +4,872 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [4.0.4] - 2023-08-02
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-4-0-4) for details.
### Added
#### C#/.NET
- Add version defines to help users deal with breaking changes ([GH-78270](https://github.com/godotengine/godot/pull/78270)).
#### Documentation
- Document GI techniques ignoring VisualInstance3D and Camera3D layers ([GH-74688](https://github.com/godotengine/godot/pull/74688)).
- Document how to use the global animation library in GDScript ([GH-74894](https://github.com/godotengine/godot/pull/74894)).
- Add more info on the nature of NAN ([GH-75614](https://github.com/godotengine/godot/pull/75614)).
- Add Stretch Mode description to ProjectSettings.xml ([GH-76272](https://github.com/godotengine/godot/pull/76272)).
- Document seamless caveats on small textures in NoiseTexture2D and NoiseTexture3D ([GH-77017](https://github.com/godotengine/godot/pull/77017)).
- Document the database for `Input.get_joy_name()` and `Input.get_joy_guid()` ([GH-77768](https://github.com/godotengine/godot/pull/77768)).
- Document the InitialAction enum in RenderingDevice ([GH-77882](https://github.com/godotengine/godot/pull/77882)).
- Document ShaderInclude ([GH-78562](https://github.com/godotengine/godot/pull/78562)).
#### Editor
- Add an editor option to copy system info to clipboard ([GH-65902](https://github.com/godotengine/godot/pull/65902)).
#### Input
- Add support for DPAD Center key of Android TV remote controller ([GH-77115](https://github.com/godotengine/godot/pull/77115)).
### Changed
#### 2D
- Make tile atlas merge dialog use filter nearest on both sides ([GH-77385](https://github.com/godotengine/godot/pull/77385)).
- Don't create bones from empty scene ([GH-77473](https://github.com/godotengine/godot/pull/77473)).
- Don't disable `Material` and `PlaceholderMaterial` when `disable_3d=yes` ([GH-77654](https://github.com/godotengine/godot/pull/77654)).
- Draw materials in tile atlas view ([GH-77909](https://github.com/godotengine/godot/pull/77909)).
#### Animation
- Hide Animation Frames section when there are no animations ([GH-77221](https://github.com/godotengine/godot/pull/77221)).
- Improve `Skeleton3D::find_bone()` performance ([GH-77307](https://github.com/godotengine/godot/pull/77307)).
- Avoid mutating the same Skin multiple times ([GH-77505](https://github.com/godotengine/godot/pull/77505)).
#### C#/.NET
- Always decode `dotnet` output as UTF-8 ([GH-74065](https://github.com/godotengine/godot/pull/74065)).
- Link the right build property to REAL_T_IS_DOUBLE ([GH-77198](https://github.com/godotengine/godot/pull/77198)).
#### Editor
- Use nearest with mipmaps texture filter in SpriteFrames editor plugin ([GH-74341](https://github.com/godotengine/godot/pull/74341)).
- Make sure script cache is created after reimport ([GH-75798](https://github.com/godotengine/godot/pull/75798)).
- Make SpriteFrames editor toolbar a `FlowContainer` ([GH-77034](https://github.com/godotengine/godot/pull/77034)).
- Prevent selecting unselectable `EditorProperty` with RMB ([GH-77148](https://github.com/godotengine/godot/pull/77148)).
- Do not translate node name when assigned to an exported field ([GH-77217](https://github.com/godotengine/godot/pull/77217)).
- Allow up to INT32_MAX max size in Array/Dictionary editor ([GH-77225](https://github.com/godotengine/godot/pull/77225)).
- Avoid error spam on first opening of a not yet imported project ([GH-77276](https://github.com/godotengine/godot/pull/77276)).
- Ensure quotes are escaped when converting built-in scripts ([GH-77399](https://github.com/godotengine/godot/pull/77399)).
- Ignore the `project_settings_override` file when in editor ([GH-77459](https://github.com/godotengine/godot/pull/77459)).
#### GDScript
- Treat `BitField<Enum>` as `int` (not `Enum`) ([GH-77579](https://github.com/godotengine/godot/pull/77579)).
#### GUI
- Stop dragging when `Slider` changes editability ([GH-77242](https://github.com/godotengine/godot/pull/77242)).
- Use defined key mapping for closing popups and dialogs ([GH-77297](https://github.com/godotengine/godot/pull/77297)).
- TextServer: Prevent duplicate line breaks on virtual spaces when line width is significantly smaller than character width ([GH-77514](https://github.com/godotengine/godot/pull/77514)).
- Cancel tooltip when mouse leaves viewport ([GH-77933](https://github.com/godotengine/godot/pull/77933)).
- Preserve selection when focusing SpinBox ([GH-78092](https://github.com/godotengine/godot/pull/78092)).
#### Input
- Improve touchpad and mouse support for the Android editor ([GH-77498](https://github.com/godotengine/godot/pull/77498)).
- Skip error messages for buttons that don't exist ([GH-77748](https://github.com/godotengine/godot/pull/77748)).
#### Rendering
- Disable AMD switchable graphics on Windows with Vulkan to fix driver issue ([GH-73450](https://github.com/godotengine/godot/pull/73450)).
- Take 3D resolution scaling into account for mesh LOD ([GH-77294](https://github.com/godotengine/godot/pull/77294)).
#### Thirdparty
- brotli updated to version ed1995b6b.
- msdfgen updated to version 1.10.
- recast updated to version 1.6.0.
- tinyexr updated to version 1.0.5.
- wslay updated to version 0e7d106ff.
- zstd updated to version 1.5.5.
- CA root certificates updated to 2023-06-02 bundle from Mozilla.
### Fixed
#### 2D
- Fix crash when opening a TileSet with invalid tiles ([GH-78165](https://github.com/godotengine/godot/pull/78165)).
- Fix crash with failed compatibility tiles ([GH-78796](https://github.com/godotengine/godot/pull/78796)).
#### 3D
- Fix CSGPolygon3D in path mode disappearing at runtime ([GH-77118](https://github.com/godotengine/godot/pull/77118)).
#### Animation
- Fix type check in AnimationTrackKeyEdit for methods ([GH-74948](https://github.com/godotengine/godot/pull/74948)).
- Fix `AnimatedSprite3D` autoplay warning ([GH-77028](https://github.com/godotengine/godot/pull/77028)).
- Adjust BoneAttachment3D children/meshes during rest fixer ([GH-77123](https://github.com/godotengine/godot/pull/77123)).
- Fix for SkeletonIK3D interpolation and bone roll ([GH-77469](https://github.com/godotengine/godot/pull/77469)).
- Fix AnimationPlayer cumulative `speed_scale` ([GH-77500](https://github.com/godotengine/godot/pull/77500)).
- Fix adding bones with the same name after calling `Skeleton3D.clear_bones()` ([GH-77874](https://github.com/godotengine/godot/pull/77874)).
#### Audio
- Fix trim when importing WAV ([GH-75261](https://github.com/godotengine/godot/pull/75261)).
- Fix 2D audio in multiple viewports ([GH-76713](https://github.com/godotengine/godot/pull/76713)).
- Fix crash in AudioStream preview ([GH-77664](https://github.com/godotengine/godot/pull/77664)).
- Fix issue causing the Android editor to crash when creating a new AudioStreamMicrophone ([GH-77686](https://github.com/godotengine/godot/pull/77686)).
#### Buildsystem
- CI: Fix running the unit tests on windows ([GH-76887](https://github.com/godotengine/godot/pull/76887)).
- Linux: Fix udev fallback logic with `use_sowrap=no` ([GH-79111](https://github.com/godotengine/godot/pull/79111)).
#### C#/.NET
- Fix C# glue generation for enums with negative values ([GH-77018](https://github.com/godotengine/godot/pull/77018)).
- Fix `SendToScriptDebugger` crash ([GH-77377](https://github.com/godotengine/godot/pull/77377)).
#### Core
- Fix `StringName` comparison ([GH-77197](https://github.com/godotengine/godot/pull/77197)).
- Fix calling `TextureStorage::texture_3d_update()` could cause a crash ([GH-77266](https://github.com/godotengine/godot/pull/77266)).
#### Editor
- Fix theme of editor VCS dialogs ([GH-75983](https://github.com/godotengine/godot/pull/75983)).
- Fix calculation bug with `TextEdit::get_line_height()` ([GH-76605](https://github.com/godotengine/godot/pull/76605)).
- Fix Input Map key assignments missing after project conversion ([GH-77134](https://github.com/godotengine/godot/pull/77134)).
- Fix `Window` derived nodes being unselectable for `ViewportTexture` `NodePath` ([GH-77312](https://github.com/godotengine/godot/pull/77312)).
- Fix crash when using tile atlas merge with recreated alt tile ([GH-77382](https://github.com/godotengine/godot/pull/77382)).
- Fix filesystem cache split error ([GH-78324](https://github.com/godotengine/godot/pull/78324)).
- Fix saving size in `CreateDialog` ([GH-78403](https://github.com/godotengine/godot/pull/78403)).
- Shaders: Exclude incorrect completion options for `render_mode` in shaders ([GH-77086](https://github.com/godotengine/godot/pull/77086)).
#### GDScript
- Add missing `script_type` `nullptr` check ([GH-75943](https://github.com/godotengine/godot/pull/75943)).
- Fix warning ignoring for member variables ([GH-76203](https://github.com/godotengine/godot/pull/76203)).
- Fix `validate_call_arg()` for unresolved datatype ([GH-77091](https://github.com/godotengine/godot/pull/77091)).
- Fix extraction of chained `tr()` calls ([GH-77538](https://github.com/godotengine/godot/pull/77538)).
#### GUI
- Fix `Range`-derived nodes not redrawing after `set_value_no_signal` ([GH-70834](https://github.com/godotengine/godot/pull/70834)).
- Fix adding colors to swatches not updating in previous ColorPickers ([GH-76751](https://github.com/godotengine/godot/pull/76751)).
- Fix crash when changing node type from PopupMenu to ItemList ([GH-76854](https://github.com/godotengine/godot/pull/76854)).
- Fix `ItemList` item text positions in RTL mode ([GH-77166](https://github.com/godotengine/godot/pull/77166)).
- Fix crash when selecting lines in text edit ([GH-77667](https://github.com/godotengine/godot/pull/77667)).
- Fix SVG font rendering after ThorVG update ([GH-77942](https://github.com/godotengine/godot/pull/77942)).
- Fix disabled slider highlighting ([GH-78776](https://github.com/godotengine/godot/pull/78776)).
#### Input
- Fix errors that appear while reordering input map entries ([GH-77009](https://github.com/godotengine/godot/pull/77009)).
- Fix spatial viewport multitouch detection support ([GH-78083](https://github.com/godotengine/godot/pull/78083)).
#### Navigation
- Fix agent avoidance position not updated when entering SceneTree ([GH-77110](https://github.com/godotengine/godot/pull/77110)).
#### Networking
- Fix HTTPClient `_request` using wrong size ([GH-75867](https://github.com/godotengine/godot/pull/75867)).
- ENet: Better handle truncated socket messages ([GH-79699](https://github.com/godotengine/godot/pull/79699)).
#### Particles
- Correctly reset particle size and rotation in ParticlesProcessMaterial ([GH-78021](https://github.com/godotengine/godot/pull/78021)).
- Avoid error spam when (un)pausing GPUParticles out of tree ([GH-78143](https://github.com/godotengine/godot/pull/78143)).
#### Physics
- Fix width and center position of `CapsuleShape2D::get_rect` ([GH-77065](https://github.com/godotengine/godot/pull/77065)).
#### Porting
- Android: Set pending intent flag to stop insta-crash ([GH-78175](https://github.com/godotengine/godot/pull/78175)).
- Windows: Fix for Win+M crashing the editor ([GH-78235](https://github.com/godotengine/godot/pull/78235)).
#### Rendering
- Fix typo in FinalAction `switch` statement in RenderingDevice ([GH-75945](https://github.com/godotengine/godot/pull/75945)).
- Fix modulation propagation for Y-sorted CanvasItems ([GH-77079](https://github.com/godotengine/godot/pull/77079)).
- Fix LightmapGI dynamic object lighting ([GH-77089](https://github.com/godotengine/godot/pull/77089)).
- Fix calculation of skinned AABB for unused bones ([GH-77265](https://github.com/godotengine/godot/pull/77265)).
- Fix uninitialized Y-sort modulate for CanvasItems ([GH-78134](https://github.com/godotengine/godot/pull/78134)).
## [4.0.3] - 2023-05-19
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-4-0-3) for details.
### Added
#### 2D
- Add info label to TileMap editor ([GH-68800](https://github.com/godotengine/godot/pull/68800)).
#### Documentation
- Create an "Editor-only" section in the online class reference ([GH-76410](https://github.com/godotengine/godot/pull/76410)).
- Improve RenderingServer, RenderingDevice, ShaderGlobalsOverride documentation ([GH-76008](https://github.com/godotengine/godot/pull/76008)).
#### Editor
- Properly remember snapping options per-project ([GH-74682](https://github.com/godotengine/godot/pull/74682)).
- Remember directory when installing templates file ([GH-74735](https://github.com/godotengine/godot/pull/74735)).
- Improve editor state initialization ([GH-75563](https://github.com/godotengine/godot/pull/75563)).
#### GUI
- Allow entering named colors in ColorPicker's hex field ([GH-75905](https://github.com/godotengine/godot/pull/75905)).
#### Navigation
- Expose NavigationAgent path postprocessing and pathfinding algorithm options ([GH-75326](https://github.com/godotengine/godot/pull/75326)).
#### Physics
- Warn when a concave polygon is assigned to ConvexPolygonShape2D ([GH-56671](https://github.com/godotengine/godot/pull/56671)).
#### Rendering
- Expose viewports render target RID ([GH-75517](https://github.com/godotengine/godot/pull/75517)).
- Allow creation of rendering buffers at any time ([GH-75937](https://github.com/godotengine/godot/pull/75937)).
### Changed
#### 3D
- Use physical shortcuts for freelook navigation in the editor ([GH-73651](https://github.com/godotengine/godot/pull/73651)).
#### Buildsystem
- Err when trying to build the editor without its required modules ([GH-74980](https://github.com/godotengine/godot/pull/74980)).
- Enable shadow warnings and fix raised errors ([GH-76946](https://github.com/godotengine/godot/pull/76946)).
#### C#/.NET
- Truncate instead of round in Vector2/3/4 to Vector2I/3I/4I conversion ([GH-75477](https://github.com/godotengine/godot/pull/75477)).
#### Core
- Lift restriction that resource load thread requester has to be the initiator ([GH-73862](https://github.com/godotengine/godot/pull/73862)).
- Rename internal root canvas group to start with underscore ([GH-76149](https://github.com/godotengine/godot/pull/76149)).
- Make acos and asin safe ([GH-76906](https://github.com/godotengine/godot/pull/76906)).
#### Documentation
- Exclude overridden properties from Property Descriptions section ([GH-77027](https://github.com/godotengine/godot/pull/77027)).
#### Editor
- Prevent off-screen controls in editor ([GH-73646](https://github.com/godotengine/godot/pull/73646)).
- Re-enable script editor File menu shortcuts when the menu is hidden ([GH-74319](https://github.com/godotengine/godot/pull/74319)).
- Prevent color conversion of the big Godot logo ([GH-75653](https://github.com/godotengine/godot/pull/75653)).
- Set font sizes for various styles in editor output panel ([GH-75780](https://github.com/godotengine/godot/pull/75780)).
- Adjust size of some dialogs ([GH-75895](https://github.com/godotengine/godot/pull/75895)).
- Change cursor consistently when panning in the 2D Editor ([GH-75997](https://github.com/godotengine/godot/pull/75997)).
- Validate renderer selection in project manager and expose default renderer setting as an enum ([GH-76331](https://github.com/godotengine/godot/pull/76331)).
- Close built-in shaders when closing scene ([GH-75864](https://github.com/godotengine/godot/pull/75864)).
- Command Palette search now also uses original English command names ([GH-76523](https://github.com/godotengine/godot/pull/76523)).
- Preserve scene unique names when saving branch as scene ([GH-76609](https://github.com/godotengine/godot/pull/76609)).
#### GUI
- Ignore invisible children of GraphNode for minimum size ([GH-72240](https://github.com/godotengine/godot/pull/72240)).
- Update `TextureProgressBar` upon texture changes ([GH-75532](https://github.com/godotengine/godot/pull/75532)).
- Keep a copy of UTF-8 XML source string during the SVG font processing ([GH-75675](https://github.com/godotengine/godot/pull/75675)).
- Always cache parent visibility in `CanvasItem` ([GH-75890](https://github.com/godotengine/godot/pull/75890)).
- Improve BiDi error handling in TextServer ([GH-75922](https://github.com/godotengine/godot/pull/75922)).
- Use dedicated flag for object replacement characters in TextServer ([GH-75974](https://github.com/godotengine/godot/pull/75974)).
- Improve line BiDi handling, prevent crash on recursive log updates ([GH-75975](https://github.com/godotengine/godot/pull/75975)).
- Don't apply scale to autohide theme property ([GH-75993](https://github.com/godotengine/godot/pull/75993)).
#### Import
- gltf: Remove obsolete hack to embed gltf textures in advanced import ([GH-75636](https://github.com/godotengine/godot/pull/75636)).
- Expose more compression formats in Image and fix compress check ([GH-76014](https://github.com/godotengine/godot/pull/76014)).
- Use DXT1 when compressing PNGs with RGB format ([GH-76516](https://github.com/godotengine/godot/pull/76516)).
- gltf: Permit sparse accessors without a bufferView ([GH-76875](https://github.com/godotengine/godot/pull/76875)).
#### Networking
- Poll LSP/DAP clients for connection status updates ([GH-75850](https://github.com/godotengine/godot/pull/75850)).
#### Particles
- Translate inactive GPUParticles3D particles to -INF ([GH-75162](https://github.com/godotengine/godot/pull/75162)).
- Use `angle_rand` to calculate `base_angle` in particles process material ([GH-75999](https://github.com/godotengine/godot/pull/75999)).
- Don't store instance transform origin in RD 3D renderer unless requested ([GH-76003](https://github.com/godotengine/godot/pull/76003)).
#### Physics
- Modify `contact_max_allowed_penetration` precision to 3 significant digits ([GH-75665](https://github.com/godotengine/godot/pull/75665)).
#### Porting
- Android: Downgrade Android gradle plugin to version 7.2.1 ([GH-76325](https://github.com/godotengine/godot/pull/76325)).
- Linux: Ensure WindowData minimized/maximized are mutually exclusive ([GH-76868](https://github.com/godotengine/godot/pull/76868)).
- Linux: Don't use udev for joypad hotloading when running in a sandbox ([GH-76961](https://github.com/godotengine/godot/pull/76961)).
- Windows: Support long path in file access ([GH-76739](https://github.com/godotengine/godot/pull/76739)).
#### Rendering
- Recreate swap chain when suboptimal to avoid error spam ([GH-72859](https://github.com/godotengine/godot/pull/72859)).
- Use `MODELVIEW_MATRIX` when on double precision ([GH-75462](https://github.com/godotengine/godot/pull/75462)).
- Check for instancing without relying on `instance_count` when drawing 2D meshes ([GH-75954](https://github.com/godotengine/godot/pull/75954)).
#### Shaders
- Write out `render_mode` even when mode is set to default in VisualShaders ([GH-75957](https://github.com/godotengine/godot/pull/75957)).
#### Thirdparty
- astcenc updated to 4.4.0.
- doctest updated to 2.4.11.
- mbedtls updated to 2.28.3.
- thorvg updated to 0.9.0.
- CA root certificates updated to 2023-03-23 bundle from Mozilla.
### Fixed
#### 2D
- Fix RemoteTransform2D could fail to update AnimatableBody2D's position or rotation ([GH-75487](https://github.com/godotengine/godot/pull/75487)).
- Fix rendering odd-sized tiles ([GH-74814](https://github.com/godotengine/godot/pull/74814)).
- Fix TouchScreenButton not redrawn when texture changes ([GH-75016](https://github.com/godotengine/godot/pull/75016)).
#### 3D
- 3D: Fixes to CSG robustness ([GH-74771](https://github.com/godotengine/godot/pull/74771)).
- 3D: Fix infinite loop in CSG `Build2DFaces::_find_edge_intersections` ([GH-76521](https://github.com/godotengine/godot/pull/76521)).
- 3D: Fix `SurfaceTool::create_from_blend_shape()` ([GH-76669](https://github.com/godotengine/godot/pull/76669)).
#### Animation
- Fix `blend_shape` (shapekey) empty name import ([GH-75990](https://github.com/godotengine/godot/pull/75990)).
#### Audio
- Fix crash caused by invalid `mix_rate` assignment due to bogus project settings ([GH-69833](https://github.com/godotengine/godot/pull/69833)).
- Fix AudioStreamPlayer2D crash when PhysicsServer2D runs on thread ([GH-75728](https://github.com/godotengine/godot/pull/75728)).
#### Buildsystem
- Fix the Python type error when creating the `.sln` file ([GH-75309](https://github.com/godotengine/godot/pull/75309)).
- Fix forced optimization in `dev_build` ([GH-75909](https://github.com/godotengine/godot/pull/75909)).
#### Core
- Fix the UID field of the tscn/res file is lost when the external dependency is updated ([GH-70234](https://github.com/godotengine/godot/pull/70234)).
- Fix invalid global position when read outside tree ([GH-75509](https://github.com/godotengine/godot/pull/75509)).
- Fix moving position indicator out of bounds in FileAccessMemory ([GH-75641](https://github.com/godotengine/godot/pull/75641)).
- Fix expected argument count in Callable call error text ([GH-76259](https://github.com/godotengine/godot/pull/76259)).
- Fix lerp error message ([GH-76314](https://github.com/godotengine/godot/pull/76314)).
- Make `LocalVector` respect its `tight` template parameter ([GH-64120](https://github.com/godotengine/godot/pull/64120)).
- Prevent errors when using ViewportTexture ([GH-75751](https://github.com/godotengine/godot/pull/75751)).
- Fix size error in `BitMap.opaque_to_polygons` ([GH-76536](https://github.com/godotengine/godot/pull/76536)).
#### Editor
- Fix off-by-one issue where "Go to Line" dialog shows the incorrect line number ([GH-75523](https://github.com/godotengine/godot/pull/75523)).
- Fix UI responsiveness to touch taps ([GH-75703](https://github.com/godotengine/godot/pull/75703)).
- Fix deserializing resource usage debug data ([GH-75782](https://github.com/godotengine/godot/pull/75782)).
- Initialize editor values on first launch ([GH-75799](https://github.com/godotengine/godot/pull/75799)).
- Fix connect signal dialog not allowing Unicode method name ([GH-75814](https://github.com/godotengine/godot/pull/75814)).
- Fix method dialog label ([GH-75844](https://github.com/godotengine/godot/pull/75844)).
- Fix editor spin slider remaining editable if set `read_only` while editing ([GH-76122](https://github.com/godotengine/godot/pull/76122)).
- Fix layout list not resizing in editor layout dialog ([GH-76364](https://github.com/godotengine/godot/pull/76364)).
- Fix `line_spacing` in code editor will not take effect immediately on change ([GH-76396](https://github.com/godotengine/godot/pull/76396)).
- Fix inconsistent file dialog settings usage ([GH-76421](https://github.com/godotengine/godot/pull/76421)).
- Fix Node arrays appear as Object arrays in the inspector ([GH-76530](https://github.com/godotengine/godot/pull/76530)).
- Fix CollisionShape2D editor crashes ([GH-76546](https://github.com/godotengine/godot/pull/76546), [GH-76798](https://github.com/godotengine/godot/pull/76798)).
- Fix 2D shader preview draws over uniform ([GH-76555](https://github.com/godotengine/godot/pull/76555)).
- Fix crash when trying to create bones from Control ([GH-77160](https://github.com/godotengine/godot/pull/77160)).
#### Export
- Fix validation of codesigning certificate password on macOS ([GH-74326](https://github.com/godotengine/godot/pull/74326)).
#### GDExtension
- Add missing bindings and documentation for MultiplayerPeerExtension ([GH-75116](https://github.com/godotengine/godot/pull/75116)).
#### GDScript
- Add missing member type check when resolving `extends` ([GH-75879](https://github.com/godotengine/godot/pull/75879)).
- Fix typo in LSP parse function parameters ([GH-76090](https://github.com/godotengine/godot/pull/76090)).
- Fix inner method variable rename in LSP ([GH-76095](https://github.com/godotengine/godot/pull/76095)).
- Fix multi-line string highlighting with single quotes ([GH-76170](https://github.com/godotengine/godot/pull/76170)).
- Fix mixed tabs and spaces issues ([GH-76286](https://github.com/godotengine/godot/pull/76286)).
- Fix wrong file name on function call error ([GH-76404](https://github.com/godotengine/godot/pull/76404)).
- Don't fail when freed object is returned ([GH-76483](https://github.com/godotengine/godot/pull/76483)).
- Don't send empty LSP completion command ([GH-76790](https://github.com/godotengine/godot/pull/76790)).
#### GUI
- Fix RichTextLabel wrong selection offset in padded table cell ([GH-71742](https://github.com/godotengine/godot/pull/71742)).
- Fix commenting collapsed function issue ([GH-75070](https://github.com/godotengine/godot/pull/75070)).
- Fix fill align and trim with enabled dropcap in `RichTextLabel` ([GH-75504](https://github.com/godotengine/godot/pull/75504)).
- Fix descriptions not showing for theme properties ([GH-75559](https://github.com/godotengine/godot/pull/75559)).
- Fix some theme values affect the editor by setting a default value for them ([GH-75566](https://github.com/godotengine/godot/pull/75566)).
- Fix several GraphEdit operations at zoom levels other than 100% ([GH-75595](https://github.com/godotengine/godot/pull/75595)).
- Fix offset calculation in Tree when there are hidden items ([GH-75977](https://github.com/godotengine/godot/pull/75977)).
- Add missing LineEdit constants in editor theme ([GH-76123](https://github.com/godotengine/godot/pull/76123)).
- Fix blurry borders on antialiased StyleBoxFlat ([GH-76132](https://github.com/godotengine/godot/pull/76132)).
- Fix fractional ascent for image fonts with odd height ([GH-76136](https://github.com/godotengine/godot/pull/76136)).
- Fix right click in selection of additional caret ([GH-76472](https://github.com/godotengine/godot/pull/76472)).
#### Import
- SVG: Fix `tvg::Picture->size()` and scale based errors ([GH-75034](https://github.com/godotengine/godot/pull/75034)).
- Fix OBJ mesh importer smoothing handling ([GH-75315](https://github.com/godotengine/godot/pull/75315)).
- Fix animation silhouette using incorrect index ([GH-76499](https://github.com/godotengine/godot/pull/76499)).
#### Input
- Fix guide button detection with XInput and Xbox Series controllers ([GH-73200](https://github.com/godotengine/godot/pull/73200)).
- Fix the issue preventing dragging in the 2D editor ([GH-75113](https://github.com/godotengine/godot/pull/75113)).
- Fix keycode/physical keycode mix up on web ([GH-75738](https://github.com/godotengine/godot/pull/75738)).
- Fix potential null in android text entry system ([GH-75991](https://github.com/godotengine/godot/pull/75991)).
#### Navigation
- Fix NavigationObstacles not being added to avoidance simulation ([GH-75756](https://github.com/godotengine/godot/pull/75756)).
- Fix NavigationMesh baking for HeightMapShape ([GH-76212](https://github.com/godotengine/godot/pull/76212)).
#### Networking
- Fix crashes trying to use TLS when not available ([GH-77011](https://github.com/godotengine/godot/pull/77011)).
#### Particles
- Properly calculate lifetime_split for particles ([GH-73313](https://github.com/godotengine/godot/pull/73313)).
- Fix "error X3708: continue cannot be used in a switch" in HTML export ([GH-75795](https://github.com/godotengine/godot/pull/75795)).
#### Physics
- Fix typo bug in convex-convex separating axis test ([GH-75835](https://github.com/godotengine/godot/pull/75835)).
#### Porting
- Android: Fix issue with resizing the display when using the compatibility renderer ([GH-76464](https://github.com/godotengine/godot/pull/76464)).
- Android: Allow concurrent buffering and dispatch of input events ([GH-76399](https://github.com/godotengine/godot/pull/76399)).
- Android: Fix double tap & drag on Android ([GH-76791](https://github.com/godotengine/godot/pull/76791)).
- iOS: Fix splash screen rotation ([GH-76037](https://github.com/godotengine/godot/pull/76037)).
- iOS: Fix loading of GDExtension dylibs auto converted to framework ([GH-76510](https://github.com/godotengine/godot/pull/76510)).
- Windows: Fix clipboard relying on focused window ([GH-73878](https://github.com/godotengine/godot/pull/73878)).
- Windows: Fix queuing utterances in rapid succession ([GH-75880](https://github.com/godotengine/godot/pull/75880)).
- Windows: Cleanup COM library initialization/uninitialization ([GH-75881](https://github.com/godotengine/godot/pull/75881)).
- Windows: Fix StringFileInfo structure ([GH-76001](https://github.com/godotengine/godot/pull/76001)).
- Windows: Add mono audio support to WASAPI ([GH-76541](https://github.com/godotengine/godot/pull/76541)).
#### Rendering
- Fix interpolation of R0 for metallic and calculation of the Fresnel Shlick term in SSR ([GH-75368](https://github.com/godotengine/godot/pull/75368)).
- Fix `get_test_texture()` returning an almost fully white texture ([GH-75632](https://github.com/godotengine/godot/pull/75632)).
- Ensure that depth write state is updated before transparent pass in OpenGL3 renderer ([GH-75968](https://github.com/godotengine/godot/pull/75968)).
- Fix editor lock on SDF collision bake on error ([GH-76257](https://github.com/godotengine/godot/pull/76257)).
- Fix issues with Vulkan layout transitions ([GH-76315](https://github.com/godotengine/godot/pull/76315)).
- Fix breakages of volumetric fog on voxel GI changes ([GH-76437](https://github.com/godotengine/godot/pull/76437)).
- Fix GLES3 rendering on Android studio emulator ([GH-74945](https://github.com/godotengine/godot/pull/74945)).
- Fix more voxel GI issues ([GH-76550](https://github.com/godotengine/godot/pull/76550)).
- Use proper UV in cubemap downsampler raster (Fixes reflections in mobile renderer) ([GH-76692](https://github.com/godotengine/godot/pull/76692)).
#### Shaders
- Fix crashes caused due to missing type specifier on visual shader editor ([GH-75809](https://github.com/godotengine/godot/pull/75809)).
- Fix Shader Preprocessor line numbering when disabled ([GH-76479](https://github.com/godotengine/godot/pull/76479)).
- Fix rotation issue with `NODE_POSITION_VIEW` shader built-in ([GH-76109](https://github.com/godotengine/godot/pull/76109)).
#### XR
- Fix incorrect HTC action map entries ([GH-74930](https://github.com/godotengine/godot/pull/74930)).
## [4.0.2] - 2023-04-04
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-4-0-2) for details.
### Added
#### Core
- Add a missing `ImageTextureLayered::_images` setter for the C# bindings ([GH-74668](https://github.com/godotengine/godot/pull/74668)).
- Exposing more project settings for documentation ([GH-74727](https://github.com/godotengine/godot/pull/74727)).
#### Physics
- Expose the `apply_floor_snap` function to allow manual snap ([GH-73749](https://github.com/godotengine/godot/pull/73749)).
#### Porting
- Android: Use the new API for virtual keyboard height detection on Android, bugfix for old API ([GH-74398](https://github.com/godotengine/godot/pull/74398)).
- Android: Configure maven central snapshot versions for the Godot Android library ([GH-74470](https://github.com/godotengine/godot/pull/74470)).
- Android: Add "filesRoot" path to Android provider paths xml ([GH-74673](https://github.com/godotengine/godot/pull/74673)).
- macOS: Re-add support for the `_sc_` inside app bundle ([GH-73429](https://github.com/godotengine/godot/pull/73429)).
#### Project converter
- Add conversion for `Vector2` `tangent()` -> `orthogonal()` ([GH-74515](https://github.com/godotengine/godot/pull/74515)).
- Add navigation renames to the converter ([GH-75513](https://github.com/godotengine/godot/pull/75513)).
#### Shaders
- Add drag and drop support for shader include files in shader editor ([GH-74869](https://github.com/godotengine/godot/pull/74869)).
#### XR
- Add `XRServer.world_origin` property ([GH-74151](https://github.com/godotengine/godot/pull/74151)).
- Enable access to the Valve Index grip force sensors ([GH-74787](https://github.com/godotengine/godot/pull/74787)).
### Changed
#### 2D
- Use 8×8 default grid size for TextureRegion and 2D polygon editors ([GH-73685](https://github.com/godotengine/godot/pull/73685)).
- Don't allow selecting nodes without owner in the editor ([GH-75492](https://github.com/godotengine/godot/pull/75492)).
#### Animation
- Update property keying state without a full Inspector rebuild ([GH-74564](https://github.com/godotengine/godot/pull/74564)).
#### Buildsystem
- Exit with non-zero status if there are issues with FreeType dependencies ([GH-74645](https://github.com/godotengine/godot/pull/74645)).
- SCons: Cleanup `pulseaudio` defines for Linux ([GH-74666](https://github.com/godotengine/godot/pull/74666)).
#### C#/.NET
- Encode `GodotProjectDir` as Base64 to prevent issues with special characters ([GH-74312](https://github.com/godotengine/godot/pull/74312)).
- Do not print errors about missing references to intentionally ignored members ([GH-75284](https://github.com/godotengine/godot/pull/75284)).
#### Core
- Make `Gradient` resort points on `reverse` ([GH-75235](https://github.com/godotengine/godot/pull/75235)).
- Port robust signal (dis)connection to `ShapeCast2D` ([GH-75266](https://github.com/godotengine/godot/pull/75266)).
#### Editor
- Improve POT Generation dialog ([GH-74213](https://github.com/godotengine/godot/pull/74213)).
- Hide internal settings from the class reference ([GH-74226](https://github.com/godotengine/godot/pull/74226)).
- Remove disabled plugins from active plugins ([GH-75331](https://github.com/godotengine/godot/pull/75331)).
- More i18n improvements ([GH-75385](https://github.com/godotengine/godot/pull/75385)).
#### Export
- Delete unused compression formats from `.import` files when exporting ([GH-74684](https://github.com/godotengine/godot/pull/74684)).
#### GDScript
- Make GDScript number highlighting stricter ([GH-74184](https://github.com/godotengine/godot/pull/74184)).
#### GUI
- Improve layout direction/locale automatic selection ([GH-73716](https://github.com/godotengine/godot/pull/73716)).
- Add mutex for FreeType face creation/deletion operations in TextServer ([GH-73987](https://github.com/godotengine/godot/pull/73987)).
#### Input
- Remove `meta_mem` update on keyup/keydown on Windows ([GH-75172](https://github.com/godotengine/godot/pull/75172)).
#### Physics
- Revert attempted fix of trimesh CCD ([GH-74861](https://github.com/godotengine/godot/pull/74861)).
#### Porting
- Android: Bump the target SDK version to 33 (Android 13) ([GH-75203](https://github.com/godotengine/godot/pull/75203)).
#### Project converter
- Remove Tween properties/signals from renames ([GH-75443](https://github.com/godotengine/godot/pull/75443)).
#### Rendering
- Incorporating the availability of screen and depth textures for the GLES3 backend ([GH-72361](https://github.com/godotengine/godot/pull/72361)).
#### Thirdparty
- mymindstorm/setup-emsdk updated to 12.
#### XR
- Replace OpenXR operating system alert dialog with a warning log message ([GH-73144](https://github.com/godotengine/godot/pull/73144)).
- Check hardware sRGB conversion when an sRGB target is used ([GH-74892](https://github.com/godotengine/godot/pull/74892)).
### Fixed
#### 2D
- Fix preview rendering and transform calculations in the tiles editor ([GH-74982](https://github.com/godotengine/godot/pull/74982)).
- Fix `ENTER_CANVAS` / `VISIBILITY_CHANGED` notification order when `CanvasItem` enters tree ([GH-75238](https://github.com/godotengine/godot/pull/75238)).
- Fix a crash in the tiles editor when merging atlases ([GH-75361](https://github.com/godotengine/godot/pull/75361)).
#### 3D
- Fix GridMap signal `cell_size_changed` disconnect error ([GH-74890](https://github.com/godotengine/godot/pull/74890)).
#### Animation
- Fix `AnimatedSprite2D` autoplay warning ([GH-75258](https://github.com/godotengine/godot/pull/75258)).
#### Buildsystem
- Fix xml namespace in org.godotengine.Godot.xml ([GH-74920](https://github.com/godotengine/godot/pull/74920)).
#### C#/.NET
- Fix building projects for MSBuild before 17.3 ([GH-74479](https://github.com/godotengine/godot/pull/74479)).
- Fix `Array.AddRange` index out of bounds ([GH-75357](https://github.com/godotengine/godot/pull/75357)).
#### Core
- Fix some race conditions that happen during initialization ([GH-73793](https://github.com/godotengine/godot/pull/73793)).
- Fix crash in resource load ([GH-74166](https://github.com/godotengine/godot/pull/74166)).
- Fix `randfn` to prevent it from generating nan values ([GH-74248](https://github.com/godotengine/godot/pull/74248)).
- Fix Variant hashing for floats ([GH-74600](https://github.com/godotengine/godot/pull/74600)).
- Fix type check for `max`/`min` ([GH-74770](https://github.com/godotengine/godot/pull/74770)).
- Fix `Array.slice()` rounding when step is other than 1 ([GH-74909](https://github.com/godotengine/godot/pull/74909)).
#### Editor
- Fix cancelling selection while gizmo editing making uncommitted changes ([GH-71156](https://github.com/godotengine/godot/pull/71156)).
- Fix `EditorUndoRedoManager`'s handling of `MERGE_ENDS` ([GH-74460](https://github.com/godotengine/godot/pull/74460)).
- Fix built-in scripts missing their methods on signal connection ([GH-74495](https://github.com/godotengine/godot/pull/74495)).
- Fix "Download Project Source" for the Web Editor ([GH-75194](https://github.com/godotengine/godot/pull/75194)).
- Fix incorrect sizes of some editor elements ([GH-75379](https://github.com/godotengine/godot/pull/75379), [GH-75381](https://github.com/godotengine/godot/pull/75381)).
#### Export
- Fix GDExtensions library export when multiple architectures are set ([GH-74057](https://github.com/godotengine/godot/pull/74057)).
#### GDScript
- Fix "Find in Files" search results not opening built-in script ([GH-74401](https://github.com/godotengine/godot/pull/74401)).
- Fix false positive `REDUNDANT_AWAIT` warning ([GH-74949](https://github.com/godotengine/godot/pull/74949)).
#### GUI
- Fix scrolling behavior with zero/low page value ([GH-67910](https://github.com/godotengine/godot/pull/67910)).
- Fix some ways to create inconsistent Viewport size states ([GH-73188](https://github.com/godotengine/godot/pull/73188)).
- Fix `GraphNode` resizing when its bottom border is too thin ([GH-73800](https://github.com/godotengine/godot/pull/73800)).
- Fix IME position in the single window mode sub-windows ([GH-74472](https://github.com/godotengine/godot/pull/74472)).
- Fix gutter set width results in receiving only half of the desired size ([GH-74537](https://github.com/godotengine/godot/pull/74537)).
- Fix `get_drag_data` not overridable in some Controls ([GH-75122](https://github.com/godotengine/godot/pull/75122)).
- Fix block caret size at the end of the line ([GH-75597](https://github.com/godotengine/godot/pull/75597)).
#### Import
- Fix `ResourceImporterLayeredTexture::import()` `high_quality` variable type ([GH-75244](https://github.com/godotengine/godot/pull/75244)).
#### Input
- Fix layout bug in `keyboard_get_keycode_from_physical` on Linux/X11 ([GH-75461](https://github.com/godotengine/godot/pull/75461)).
#### Navigation
- Fix GridMap free navigation RID error spam ([GH-74889](https://github.com/godotengine/godot/pull/74889)).
- Fix agents with disabled avoidance getting added to avoidance simulation ([GH-74893](https://github.com/godotengine/godot/pull/74893)).
#### Networking
- Fix list handling in `SceneReplicationConfig` ([GH-74552](https://github.com/godotengine/godot/pull/74552)).
#### Physics
- Fix `collide_shape` return type ([GH-75260](https://github.com/godotengine/godot/pull/75260)).
- Fix property hint for platform layers on 3D physics body ([GH-75544](https://github.com/godotengine/godot/pull/75544)).
#### Porting
- Android: Fix directory access when the running app has the `All files access` permission ([GH-75146](https://github.com/godotengine/godot/pull/75146)).
- macOS: Fix infinite loop caused by global menu callbacks which trigger EditorProgress dialog ([GH-75254](https://github.com/godotengine/godot/pull/75254)).
#### Rendering
- Fix spotlight shadows in volumetric fog ([GH-73919](https://github.com/godotengine/godot/pull/73919)).
- Fix issues with point size not functioning correctly in GLES3 ([GH-73966](https://github.com/godotengine/godot/pull/73966)).
- Update GPUParticles2D/3D speed scale on `ENTER_TREE` ([GH-75398](https://github.com/godotengine/godot/pull/75398)).
#### Shaders
- Fix ndc calculation for LinearSceneDepth VS node in GLES3 ([GH-74910](https://github.com/godotengine/godot/pull/74910)).
#### XR
- Fix typo in OpenXR pose orientation check ([GH-74928](https://github.com/godotengine/godot/pull/74928)).
## [4.0.1] - 2023-03-20
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-4-0-1) for details.
### Added
#### Import
- Set the unlit / unshaded extension when importing / exporting glTF ([GH-74287](https://github.com/godotengine/godot/pull/74287)).
#### Project converter
- Add keycode project conversion ([GH-74237](https://github.com/godotengine/godot/pull/74237)).
- Add conversion for common Theme Overrides ([GH-74624](https://github.com/godotengine/godot/pull/74624)).
- Move tool declarations to top ([GH-74432](https://github.com/godotengine/godot/pull/74432)).
#### Tilemaps
- Remember previously selected TileMap tile ([GH-74039](https://github.com/godotengine/godot/pull/74039)).
### Changed
#### Animation
- Check for type mismatch in `PropertyTweener.from()` ([GH-74112](https://github.com/godotengine/godot/pull/74112)).
#### Buildsystem
- Safeguard Makefile commands for documentation ([GH-74042](https://github.com/godotengine/godot/pull/74042)).
#### C#/.NET
- Always show "Create C# solution" option ([GH-73904](https://github.com/godotengine/godot/pull/73904)).
#### Core
- Propagate errors when creating an OpenGL context fails in X11 ([GH-74563](https://github.com/godotengine/godot/pull/74563)).
#### Editor
- Automatically reparent editor message dialogs to avoid error spam ([GH-73365](https://github.com/godotengine/godot/pull/73365)).
- Translate strings which were previously missed ([GH-74211](https://github.com/godotengine/godot/pull/74211), [GH-74637](https://github.com/godotengine/godot/pull/74637)).
- Disallow creating a project in the Home or Documents folder ([GH-74964](https://github.com/godotengine/godot/pull/74964)).
#### GDScript
- Don't autocomplete numbers ([GH-74466](https://github.com/godotengine/godot/pull/74466)).
#### GUI
- Assume outline size is 1 if it's not set, but channel for outline is defined in a BitMap font ([GH-74212](https://github.com/godotengine/godot/pull/74212)).
- Do not draw virtual spaces (word break / justification points) ([GH-74488](https://github.com/godotengine/godot/pull/74488)).
- Generate empty textures for theme icons if the SVG module is disabled ([GH-74551](https://github.com/godotengine/godot/pull/74551)).
- Add invalid font scaling check, restrict Linux/BSD system fonts lookup to TrueType/CFF only ([GH-74702](https://github.com/godotengine/godot/pull/74702)).
#### Input
- Update modifier key status during IME input on Windows ([GH-74474](https://github.com/godotengine/godot/pull/74474)).
#### Navigation
- Allow negative NavigationAgent2D path debug line_width for thin lines ([GH-74800](https://github.com/godotengine/godot/pull/74800)).
#### Project converter
- Do not convert lines that start with a comment ([GH-74193](https://github.com/godotengine/godot/pull/74193)).
- Don't strip whitespace when converting ([GH-74232](https://github.com/godotengine/godot/pull/74232)).
#### Rendering
- Use MSAA 2D texture in multipass tonemapper ([GH-74150](https://github.com/godotengine/godot/pull/74150)).
- Use linear filtering without mipmaps for ProceduralSkyMaterial and PhysicalSkyMaterial ([GH-74740](https://github.com/godotengine/godot/pull/74740)).
### Fixed
#### Audio
- Improve logic related to editing audio buses and prevent crashes ([GH-74560](https://github.com/godotengine/godot/pull/74560)).
#### C#/.NET
- Fix crash when errors occur before language initialization ([GH-74127](https://github.com/godotengine/godot/pull/74127)).
- Get singleton instances using the Core name ([GH-74280](https://github.com/godotengine/godot/pull/74280)).
- Ensure that script names (and therefore class names) are valid identifiers ([GH-74330](https://github.com/godotengine/godot/pull/74330)).
- Ignore explicit interface implementations ([GH-74375](https://github.com/godotengine/godot/pull/74375)).
#### Core
- Set properties of ImageTexture3D when creating ([GH-74521](https://github.com/godotengine/godot/pull/74521)).
- Fix buffer overrun in CPUParticles3D in `precision=double` builds ([GH-74555](https://github.com/godotengine/godot/pull/74555)).
- Prevent crashing on startup if project has scripted theme types ([GH-74565](https://github.com/godotengine/godot/pull/74565)).
#### Editor
- Disable local space for Blender-style transforms ([GH-59443](https://github.com/godotengine/godot/pull/59443), [GH-74601](https://github.com/godotengine/godot/pull/74601)).
- Stop toaster notification circle flickering ([GH-74017](https://github.com/godotengine/godot/pull/74017)).
- Fix dock name lost translation after layout change ([GH-74158](https://github.com/godotengine/godot/pull/74158)).
- Fix crash when showing file in FileSystem dock ([GH-74591](https://github.com/godotengine/godot/pull/74591)).
- Prevent cache corruption when saving resources in the editor ([GH-74615](https://github.com/godotengine/godot/pull/74615)).
- Ensure that editor color map is initialized in the project manager ([GH-74750](https://github.com/godotengine/godot/pull/74750)).
- Fix MultiNodeEdit not cleared after deleting nodes ([GH-74795](https://github.com/godotengine/godot/pull/74795)).
- Fix error when opening Inspector's dots menu ([GH-74974](https://github.com/godotengine/godot/pull/74974)).
#### Export
- Fix various issues related to remote deploy and remote execute on Windows ([GH-74030](https://github.com/godotengine/godot/pull/74030)).
#### GDExtension
- Fix crash when dumping extension API in a non-writable directory ([GH-74590](https://github.com/godotengine/godot/pull/74590)).
- Fix extension bindings for motion collision/result structs ([GH-74671](https://github.com/godotengine/godot/pull/74671)).
#### GDScript
- Fix error spam when naming a func at the end of the script ([GH-73410](https://github.com/godotengine/godot/pull/73410)).
- Fix checking if a call is awaited in compiler ([GH-74147](https://github.com/godotengine/godot/pull/74147)).
- Fix autocomplete inside a block with a type test condition ([GH-74689](https://github.com/godotengine/godot/pull/74689)).
#### GUI
- Fix RichTextLabel crash with out of bound exception ([GH-68325](https://github.com/godotengine/godot/pull/68325)).
- Fix justification on punctuation characters ([GH-74477](https://github.com/godotengine/godot/pull/74477)).
- Add missing handler for removing font sizes in the theme editor ([GH-74547](https://github.com/godotengine/godot/pull/74547)).
#### Import
- Fix glTF mesh importer not freeing nodes correctly on import ([GH-74018](https://github.com/godotengine/godot/pull/74018)).
- Prevent infinite loop by disabling importer when canceling FBX2glTF setup ([GH-74293](https://github.com/godotengine/godot/pull/74293)).
- Fix blend-file import when using custom color management in blender ([GH-74496](https://github.com/godotengine/godot/pull/74496)).
#### Input
- Fix InputEventConfigurationDialog modifies original event ([GH-74858](https://github.com/godotengine/godot/pull/74858)).
#### Navigation
- Fix NavigationAgent3D debug path duplicated points ([GH-74976](https://github.com/godotengine/godot/pull/74976)).
#### Porting
- Android: Fix null-pointer dereference when using `gl_compatibility` renderer ([GH-74781](https://github.com/godotengine/godot/pull/74781)).
- Linux/X11: Check if required xkb functions exist before using it ([GH-74222](https://github.com/godotengine/godot/pull/74222)).
- Linux/X11: Fix broken shortcut key input ([GH-74535](https://github.com/godotengine/godot/pull/74535)).
#### Project converter
- Correct superclass constructors ([GH-74354](https://github.com/godotengine/godot/pull/74354)).
- Add parentheses around arguments when converting `xform` ([GH-74693](https://github.com/godotengine/godot/pull/74693)).
#### Rendering
- Add proper default texture filter and repeat modes for Canvas shaders in the OpenGL3 renderer ([GH-74315](https://github.com/godotengine/godot/pull/74315)).
- Fix instance uniforms breaking when setting a new mesh ([GH-74349](https://github.com/godotengine/godot/pull/74349)).
- Fix AABB calculation for meshes using Skeleton2D ([GH-74416](https://github.com/godotengine/godot/pull/74416)).
- Avoid overflow when calculating ptr address for 3D textures in RenderingDevice texture update ([GH-74526](https://github.com/godotengine/godot/pull/74526)).
- Fixes a canvas item set to clip children being drawn as black if no children are visible ([GH-74533](https://github.com/godotengine/godot/pull/74533)).
- Avoid copying CanvasTexture when updating proxy ([GH-74566](https://github.com/godotengine/godot/pull/74566)).
#### Tilemaps
- Fix TileSetEditor painting `texture_origin` Vector2i ([GH-73514](https://github.com/godotengine/godot/pull/73514)).
## [4.0] - 2023-03-01
The Godot 4.0 release was our biggest released to date, spanning 4 years of
@ -791,7 +1657,7 @@ See the [release announcement](https://godotengine.org/article/godot-3-4-is-rele
#### Thirdparty
- Bullet uppdated to version 3.17.
- Bullet updated to version 3.17.
- Embree updated to version 3.13.0.
- MbedTLS updated to version 2.16.11 (security update).
- NanoSVG updated to 2021-09-03 git snapshot (security update).
@ -932,7 +1798,7 @@ See the [release announcement](https://godotengine.org/article/godot-3-4-is-rele
- Fix and clean disabled shapes handling in Godot physics servers ([GH-49845](https://github.com/godotengine/godot/pull/49845)).
- Fix `KinematicBody` axis lock ([GH-45176](https://github.com/godotengine/godot/pull/45176)).
- Don't override `KinematicCollision` reference when still in use in script ([GH-52955](https://github.com/godotengine/godot/pull/52955)).
- Fix ragdoll simulation when parent was readded to scene ([GH-48823](https://github.com/godotengine/godot/pull/48823)).
- Fix ragdoll simulation when parent was re-added to scene ([GH-48823](https://github.com/godotengine/godot/pull/48823)).
- Ignore disabled shapes for mass property calculations ([GH-49699](https://github.com/godotengine/godot/pull/49699)).
#### Porting
@ -1333,7 +2199,7 @@ See the [release announcement](https://godotengine.org/article/godot-3-3-has-arr
- Support for automatically building Android templates before exporting.
- This makes 3rd-party SDK integration easier.
- Support for [texture atlases in 2D](https://godotengine.org/article/atlas-support-returns-godot-3-2).
- Major improvements to the visual shader system. ([News post 1](https://godotengine.org/article/major-update-for-visual-shader-in-godot-3-2), [News post 2](https://godotengine.org/article/major-update-visual-shaders-godot-3-2-part-2))
- Major improvements to the visual shader system ([News post 1](https://godotengine.org/article/major-update-for-visual-shader-in-godot-3-2), [News post 2](https://godotengine.org/article/major-update-visual-shaders-godot-3-2-part-2)).
- Redesigned visual shader editor with drag-and-drop capability.
- Textures can be dragged from the FileSystem dock to be added as nodes.
- Most functions available in GLSL are now exposed.
@ -2440,6 +3306,10 @@ See the [release announcement](https://godotengine.org/article/godot-3-3-has-arr
- Only WebAssembly is supported now, since all browsers supporting WebGL 2.0 also support WebAssembly.
[4.0.4]: https://github.com/godotengine/godot/compare/4.0.3-stable...4.0.4-stable
[4.0.3]: https://github.com/godotengine/godot/compare/4.0.2-stable...4.0.3-stable
[4.0.2]: https://github.com/godotengine/godot/compare/4.0.1-stable...4.0.2-stable
[4.0.1]: https://github.com/godotengine/godot/compare/4.0-stable...4.0.1-stable
[4.0]: https://github.com/godotengine/godot/compare/3.2-stable...4.0-stable
[3.5]: https://github.com/godotengine/godot/compare/3.4-stable...3.5-stable
[3.4]: https://github.com/godotengine/godot/compare/3.3-stable...3.4-stable

View File

@ -8,87 +8,10 @@
- [Contributing to Godot's translation](#contributing-to-godots-translation)
- [Communicating with developers](#communicating-with-developers)
**Please read the first section before reporting a bug!**
## Reporting bugs
The golden rule is to **always open *one* issue for *one* bug**. If you notice
several bugs and want to report them, make sure to create one new issue for
each of them.
If you're reporting a new bug, you'll make our life simpler (and the
fix will come sooner) by following these guidelines:
### Search first in the existing database
Issues are often reported several times by various users. It's good practice to
**search first in the [issue tracker](https://github.com/godotengine/godot/issues)
before reporting your issue**. If you don't find a relevant match or if you're
unsure, don't hesitate to **open a new issue**. The bugsquad will handle it
from there if it's a duplicate.
### Specify the platform
Godot runs on a large variety of platforms and operating systems and devices.
**In your bug reports, please always specify:**
- Operating system and version (e.g. Windows 10, macOS 10.15, Ubuntu 19.10)
- Godot version (e.g. 3.2, 3.1.2, or the Git commit hash if you're using a development branch)
For bugs that are likely OS-specific and/or graphics-related, please also specify:
- Device (CPU model including architecture, e.g. x86_64, arm64, etc.)
- GPU model (and the driver version in use if you know it)
**Bug reports not including the required information may be closed at the
maintainers' discretion.** If in doubt, always include all the requested
information; it's better to include too much information than not enough
information.
### Specify steps to reproduce
Many bugs can't be reproduced unless specific steps are taken. Please **specify
the exact steps** that must be taken to reproduce the condition, and try to
keep them as minimal as possible. If you're describing a procedure to follow
in the editor, don't hesitate to include screenshots.
Making your bug report easy to reproduce will make it easier for contributors
to fix the bug.
### Provide a simple example project
Sometimes, unexpected behavior can happen in your project. In such case,
understand that:
- What happens to you may not happen to other users.
- We can't take the time to look at your project, understand how it is set up
and then figure out why it's failing.
- On the contributors' end, recreating a test project from scratch takes valuable
time that can be saved by uploading a *minimal* project.
To speed up our work, **please upload a minimal project** that isolates
and reproduces the issue. This is always the **best way for us to fix it**.
We recommend attaching a ZIP file with the minimal project directly to the bug report,
by drag and dropping the file in the GitHub edition field. This ensures the file
can remain available for a long period of time. Only use third-party file hosts
if your ZIP file isn't accepted by GitHub because it's too large.
We recommend always attaching a minimal reproduction project, even if the issue
may seem simple to reproduce manually.
**Note for C# users:** If your issue is *not* .NET-specific, please upload a
minimal reproduction project written in GDScript.
This will make it easier for contributors to reproduce the issue
locally as not everyone has a .NET setup available.
**If you've been asked by a maintainer to upload a minimal reproduction project,
you *must* do so within 7 days.** Otherwise, your bug report will be closed as
it'll be considered too difficult to diagnose.
Now that you've read the guidelines, click the link below to create a
bug report:
- **[Report a bug](https://github.com/godotengine/godot/issues/new?assignees=&labels=&template=bug_report.yml)**
Report bugs [here](https://github.com/godotengine/godot/issues/new?assignees=&labels=&template=bug_report.yml).
Please follow the instructions in the template when you do.
## Proposing features or improvements

View File

@ -169,7 +169,7 @@ License: Expat
Files: ./thirdparty/doctest/
Comment: doctest
Copyright: 2016-2021, Viktor Kirilov
Copyright: 2016-2023, Viktor Kirilov
License: Expat
Files: ./thirdparty/embree/
@ -390,7 +390,7 @@ License: BSD-2-clause
Files: ./thirdparty/msdfgen/
Comment: Multi-channel signed distance field generator
Copyright: 2016, Viktor Chlumsky
Copyright: 2016-2022, Viktor Chlumsky
License: MIT
Files: ./thirdparty/oidn/
@ -483,7 +483,7 @@ License: Zlib
Files: ./thirdparty/zstd/
Comment: Zstandard
Copyright: 2016-2021, Facebook, Inc.
Copyright: Meta Platforms, Inc. and affiliates.
License: BSD-3-clause

185
DONORS.md
View File

@ -23,20 +23,17 @@ generous deed immortalized in the next stable release of Godot Engine.
## Silver sponsors
Affray Interactive <https://scp.games/pandemic>
Delton Ding
Playful Studios <https://playfulstudios.com>
Robot Gentleman <http://robotgentleman.com>
Striked <https://striked.gg>
## Bronze sponsors
ASIFA-Hollywood <https://www.asifa-hollywood.org>
Basically Games
Bippinbits <https://bippinbits.com>
Brandon Lamb
Bri
Garry Newman
Gordon MacPherson
Hunter Dickson
Isaiah smith
Jb Evain
Keepsake Games <https://keepsake.games>
@ -45,7 +42,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Kyle Szklenski
Matthew Campbell
Maxim Karsten
Moonwards <https://www.moonwards.com>
Nik Rudenko
TrampolineTales <https://trampolinetales.com>
@ -56,17 +52,12 @@ generous deed immortalized in the next stable release of Godot Engine.
Andres Hernandez
Andrew Dunai
anti666
Christian Baune
Christopher Montesano
Christopher Shifflett
Christoph Woinke
Daniel Edwards
Darrin Massena
David Mydlarz
Digital Grows
Edward Flick
Florian Neumann
GameDev.net
Hein-Pieter van Braam
Jonah Stich
Justin Arnold
@ -74,19 +65,15 @@ generous deed immortalized in the next stable release of Godot Engine.
Justo Delgado Baudí
Kossi Selom Banybah
Lloyd Bond
Marcel Kräml
Marek Belski
Markus Ort
Matthieu Huvé
Michael
Mike King
Nassor Paulino da Silva
nate-wilkins
Nathan Warden
Neal Gompa (Conan Kudo)
Ninja_5tyl3
Nick Macholl
Patrick Horn
Patrick Schmidt
Rami
Ronnie Cheng
Ryan Heath
@ -94,18 +81,15 @@ generous deed immortalized in the next stable release of Godot Engine.
ShikadiGum
Slobodan Milnovic
Stephan Lanfermann
Steve
Tim Yuen
Violin Iliev
Vladimír Chvátil
## Gold donors
Acheron
Adam Brown
albinaask
Allen Pestaluky
Arisaka Mayuki
Asher Glick
Barugon
Benito
@ -115,39 +99,30 @@ generous deed immortalized in the next stable release of Godot Engine.
David Gehrig
David Hubber
David Snopek
Dima Paloskin
Ed Morley
Frank Kurka
Guilherme de Oliveira
Guy Kay Jay
Javier Roman
Joan Fons
Jonathan Wright
Jon Woodward
Karl Werf
Klavdij Voncina
Maciej Pendolski
Manuele Finocchiaro
Markus Wiesner
Mateo Navarrete
Matthew Hillier
Officine Pixel S.n.c.
Pedro Silva
Retro Village
Rob Messick
Roland Fredenhagen
Ronan Zeegers
Sarksus
Sean
Sergey
Sofox
Taylor Ritenour
Stephan Kessler
Tom Langwaldt
tukon
Vagabond Arcade
Victor
Xeno Coliseum
23BLUENINJA
Acheron
AdamRatai
Alexander Erlemann
Alexandre VALIN
@ -156,12 +131,10 @@ generous deed immortalized in the next stable release of Godot Engine.
Algebrute
alice gambrell
Alo Mis
Andrew Cunningham
Andrew Farr
Andriy
Antanas Paskauskas
Antoni Batchelli
Ari
Arisaka Mayuki
Arthur S. Muszynski
BasicIncomePlz
Brandon Hawkinson
@ -172,26 +145,23 @@ generous deed immortalized in the next stable release of Godot Engine.
Charlie Whitfield
Chris Petrich
Chris Serino
Collin Rapp
Craig Ostrin
Craig Scarborough
Craig Smith
CT
CzechBlueBear
CzłowiekImadło
Daniel Eichler
Daniel Grice
Daniel Reed
Daniel Tebbutt
Darrian Little
Dennis Belfrage
Donn Eddy
Emily A. Bellows
Eric Brand
Eugenio Hugo Salgüero Jáñez
Felix Winterhalter
flesk
Florencio Olsen
foxydevloper
Fransiska
Furroy
Gabrielius Vaiškūnas
Gary Hulst
Geoffroy Warin
@ -202,26 +172,18 @@ generous deed immortalized in the next stable release of Godot Engine.
Guillaume Pham Ngoc
Harry Tumber
Harvey Fong
Heath Hayes
Horváth-Lázár Péter
Hu Hund
illuxxium
Jaap Marsman
Jamal Bencharki
James Couzens
Jared White
Jason Yundt
Jennifer Wilcox
Jesús Chicharro
Jihun Moon
Joel Fivat
Johnathan Kupferer
John Stinson
Josef Stumpfegger
Joshie Sparks
Joshua Flores
Joshua Lesperance
Juan Velandia
Judd
Julian Todd
JUSTIN CARROLL
@ -230,15 +192,12 @@ generous deed immortalized in the next stable release of Godot Engine.
Khora
kickmaniac
kinfox
Laszlo Kiss
leetNightshade
Leo Fidel R Liban
Liam Smyth
LoparPanda
Luca Junge
Lucaaa
Luca Vazzano
LyaaaaaGames
MadScientistCarl
Marcus Dobler
Marcus Richter
Mark Barrett
@ -246,63 +205,58 @@ generous deed immortalized in the next stable release of Godot Engine.
Martin Gulliksson
Martin Kotz
Martin Soucek
matt
Matt Greene
Matthew Dana
Max Kryschi
Matthieu Huvé
Michael Dürwald
Michael Policastro
MikadoSC
n00sh
nate etan
Nicola Cocchiaro
Nicolás Monner Sans
Nikita Blizniuk
Nikita Rotskov
Nikola Whallon
Oliver Dick
Otis Clark
Patrick Wuttke
Patryk Pluta (vrid)
Paul Hocker
Paul Von Zimmerman
Pete Goodwin
Petr Malac
Petrus Prinsloo
Philip Woods
RAMupgrade
Rebekah Farr
red1939
Reilt
Rene Tailleur
Rhodochrone
Rickard Hermanson
Rob
Rob McInroy
RodZilla
Romeo Disca
Ronan Zeegers
Ronnie Ashlock
Ronny Mühle
Russ
Ryan Breaker
Ryan Miller
Ryan Scott
"Sage Automatic Systems, LLC"
Samuel Hummerstone
Samuel Judd
schroedinger's possum
Shishir Tandale
Sing Chun Lee
SKison
Song Junwoo
spacechase0
SpicyCactuar
Stephan Hennion
Steven Landow
Stoned Xander
sus
Talii
Teslatech
Thomas Bjarnelöf
Thomas Kurz
Tim Nedvyga
Tobias Bocanegra
Tobias Raggl
Tom Glenn
Torbulous
toto bibi
Troy Kinsella
@ -319,12 +273,11 @@ generous deed immortalized in the next stable release of Godot Engine.
## Silver donors
Aaron Adriano
Aaron Mayfield
Aaron Oldenburg
Adam Brunnmeier
Adam Carr
Adam Long
Adam McCurdy
Adam N Webber
Adam Smeltzer
Adinimys
@ -333,17 +286,15 @@ generous deed immortalized in the next stable release of Godot Engine.
Adrien de Pierres
Agustinus Arya
Aidan O'Flannagain
Aiguo Wang
ajaxcc
Aki Mimoto
Akio Yamazaki
Alan Beauchamp
Albert Gyulgazyan
Alberto Salazar Muñoz
Alberto Vilches
Alder Stefano
Alejandro Saucedo
AleMax
Alessandro Senese
Alex Clavelle
Alex de la Mare
alex raeside
@ -354,6 +305,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Andrew
Andrew Groot
andrew james morris
Andy Baird
Ano Nim
Anthony Avina
Anton Bouwer
@ -361,8 +313,8 @@ generous deed immortalized in the next stable release of Godot Engine.
Arda Erol
Arthur Brainville
Arturo Rosales
Ash K
Aubrey Falconer
Auré Franky
aurelien condomines
Austin Miller
Azar Gurbanov
@ -372,11 +324,9 @@ generous deed immortalized in the next stable release of Godot Engine.
Benedikt
Ben Vercammen
Ben Visness
Bernhard Werner
Bill Thibault
bitbrain
Bjarne Voigtländer
Black Block
Brady Goldsworthy
Bram
Brian
@ -388,7 +338,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Cameron Meyer
Carlos Rios
Carl van der Geest
Casey
Cesar Ruiz
Chad Steadman
Checkpoint Charlie
@ -397,13 +346,14 @@ generous deed immortalized in the next stable release of Godot Engine.
Chris Jagusch
Chris Langford
Chris Ridenour
Christer Stenbrenden
Christian Alexander Bjørklund Bøhler
Christian Kaltenecker
Christian Mauduit
Christian Scholz
Christian Winter
Christoffer Dahlblom
Christoph Czurda
Christophe Gagnier
Ciyvius
Codex404
Cody Parker
Conall O
@ -413,11 +363,12 @@ generous deed immortalized in the next stable release of Godot Engine.
CrispyPin
cynwav
Dakota Watkins
Daniel H. Bahr
Daniel Hoffmann
Danielle
Daniel Ramos
Dare Looks
Daren Scot Wilson
Dave Jansen
Davesnothere
David Baker
David Bôle
@ -428,36 +379,33 @@ generous deed immortalized in the next stable release of Godot Engine.
Dimitri Roche
Dominik Wetzel
Donovan Hutcheon
Douglas Plumley
Doug Walker
Dragontrapper
dragoon
Dr Ewan Murray
Ducky
Duobix
Duodecimal
edisonlee55
Eduardo Teixeira
Edward Herbert
Edward Swartz
Egon Elbre
Elias Nykrem
Elgenzay
Elijah Anderson
Emerson MX
Ends
Ephemeral
Eric Stokes
Eric Walkingshaw
Eric Williams
Erkki Seppälä
Ewan Holmes
Faisal Alkubaisi
Fault Boy
fby
Felix Adam
Fer DC
Filip Lundby
Frank
fumangy
Frank Kurka
Frying☆Pan
Game Endeavor
Garrett Steffen
Gary Thomas
@ -473,23 +421,20 @@ generous deed immortalized in the next stable release of Godot Engine.
Guo Hongci
Hans Jorgensen
Haplo
Helge Maus
Helianthus Games
Heribert Hirth
Ian Richard Kunert
Ian Williams
Interstice
itsybitesyspider
iveks
Jacob D
Jaguar
Jake D
Jako Danar
James
James A F Manley
James Duran
James Gary
James Thomas
Jamie Massey
Janis Skuja
Jan Vetulani
JARKKO PARVIAINEN
Jason Evans
Jason Uechi
@ -498,8 +443,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Jennifer Graves
Jesse Dubay
João Pedro Braz
Joe Hurdle
Joe Klemmer
John Barlex
John Bruce
John Palgut
@ -514,67 +457,69 @@ generous deed immortalized in the next stable release of Godot Engine.
Jonathan G
Jon Sully
Jordy Goodridge
Jose Francisco 'Yiro' Vera Girona
Joseph Catrambone
Josh Segall
Josh Taylor
Joshua Heidrich
Jozef Krcho
Juanfran
Juan Maggi
Juan Uys
Jueast
Julian le Roux
Julian Murgia
Julien Kaspar
Justin Hamilton
Justin Spedding
Justin Zander
J Vetulani
Kalydi Balázs
Katsuomi Kobayashi
Keedong Park
Keegan Scott
Keinan Powers
Keith Bradner
Kenji Kawabata
Ken Minardo
Kent Jofur
Kerotasma
Ketafuki
killaQueen
kimbring2
kindzadza
Kodera Software
Kostas Mouratidis
Krishna Nadoor
KsyTek Games
kycho
Kyle Burnett
Kyle Jacobs
Lasse le Dous
Laurent CHEA
Laurent Dethoor
Laxman Pradhan
Lech Rozanski
Leland Vakarian
Leonardo Baumle
Levi Berciu
Levi Lindsey
LF
Linus Lind Lundgren
Logan Apple
Lucas Coelho
Logan Bratton
Lonnie Cox
Ludovic DELVAL
Luigi Renna
Luis Ernesto Del Toro Peña
Luis Gaemperle
Luis Morao
Lukas Komischke
Luke Diasio
Luke Kasz
Major Haul
Malcolm
Mara Huldra
Marcell Simon
Marcos Heitor Carvalho
Markie Music
Mark Tyler
Markus Martin
Markus Michael Egger
Markus Strompen
Martin Fitzke
Martin Holas
Martin Linklater
Martin Liška
Martin Trbola
Martin Zabinski
@ -586,7 +531,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Maxime Blade
Maxwell
McStuffings
Melchor
Melissa Mears
Metal Demon 2000
Michael
@ -595,37 +539,29 @@ generous deed immortalized in the next stable release of Godot Engine.
Mikael Nordenberg
Mikail Freitas
Mikayla
Mike Birkhead
Mike Copley
Mike McRoberts
Miss
Mitchell J. Wagner
MJacred
ModularMind
Molinghu
Molly Jameson
MoltenGears
Moowool
Moritz Weissenberger
moulefrite
MrAZIE
Mrjemandem
Nathaniel
neguse
neighty
Neil Blakey-Milner
Neil Wang
Neofytos Chimonas
Nerdforge
Nerdyninja
Nicholas La Roux
Nick Eldrenkamp
Nick Macholl
Nico Greve
Nicolas Rosset
Nicolò Brigadoi Calamari
Nils Nordmark
Nobbele
Noel Billig
Noesis
obscuresteel
@ -639,23 +575,23 @@ generous deed immortalized in the next stable release of Godot Engine.
Patrick Indermühle
Patrickm
Patrick Nafarrete
Paul Black
Paul Gieske
Paul Hankins
Paul Mozet
Paweł Kowal
Paweł Łyczkowski
Pedro Henrique Martins Garcia
Peter Höglund
Philip Ludington (MrPhil)
Phoenix Jauregui
Pierre Caye
Pille
Pixel Archipel
pj
Point08
Portponky
Preethi Vaidyanathan
PsycHead
PsyCrab
Puntigames
pwab
Quincy Quincy
@ -665,9 +601,11 @@ generous deed immortalized in the next stable release of Godot Engine.
Ragnar Pettersson
Rainer Amler
Rammeow
Rebecca H
Relintai
Remi Rampin
Reneator
Richard Hayes
Richard Ivánek
Riley
Robin Ward
@ -680,21 +618,21 @@ generous deed immortalized in the next stable release of Godot Engine.
Roland Rząsa
Roman Papush
Roy Scayged
Rudi
Russ
Russell Matney
Ryan Groom
Ryan Mueller
Rykk
Sacha Waked (Shaidak)
Sammy Fischer
Sangeeth Pavithran
Sasha Schwartz
Sean Dee
Sebastian Michailidis
Sekuta
SeongWan Kim
Sessamekesh
SeungJong k
Shaidak
Shane Lillie
Shane Spoor
Shaun Kohanowski
simdee
Simon Jonas Larsen
Simon Schoenenberger
@ -705,7 +643,6 @@ generous deed immortalized in the next stable release of Godot Engine.
SleepDepJoel1
smbe19
smo1704
Soheib El-Harrache
Solene Waked
Sophie Winter
Squidgy
@ -718,7 +655,6 @@ generous deed immortalized in the next stable release of Godot Engine.
SxP
tadashi endo
Tarch
Techwizz
Terry
TheVoiceInMyHead
Thibaut DECROMBECQUE
@ -732,7 +668,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Tim Erskine
Tim Gleason
Tim Klein
Tim Nedvyga
Timothy B. MacDonald
Tim Raveling
Tim Riley
@ -740,7 +675,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Tom Coxon
Tom Webster
Torsten Crass
travis f w
Trent Skinner
tril zerobyte
Tryggve Sollid
@ -757,22 +691,21 @@ generous deed immortalized in the next stable release of Godot Engine.
Vincent Barkmann
Vincent Cloutier
Vincent Foulon
Vitaliy Sapronenko
Vladimir Savin
Vulinux
Wapiti .
Wiley Thompson
William Bodin
William Edwards
William F Siqueira
Wolfram
Woonki Moon
Wyatt Goodin
Xananax
Yan Shi
yin
Zekim
Zher Huei Lee
Zoee Silcock
Zyphery
ケルベロス
貴宏 小松
郝晨煜

View File

@ -645,7 +645,7 @@ if selected_platform in platform_list:
print(
"Detected mingw version is not using posix threads. Only posix "
"version of mingw is supported. "
'Use "update-alternatives --config <platform>-w64-mingw32-[gcc|g++]" '
'Use "update-alternatives --config x86_64-w64-mingw32-g++" '
"to switch to posix threads."
)
Exit(255)
@ -686,7 +686,8 @@ if selected_platform in platform_list:
if env["warnings"] == "extra":
env.Append(CCFLAGS=["/W4"])
elif env["warnings"] == "all":
env.Append(CCFLAGS=["/W3"])
# C4458 is like -Wshadow. Part of /W4 but let's apply it for the default /W3 too.
env.Append(CCFLAGS=["/W3", "/w34458"])
elif env["warnings"] == "moderate":
env.Append(CCFLAGS=["/W2"])
# Disable warnings which we don't plan to fix.
@ -715,7 +716,7 @@ if selected_platform in platform_list:
common_warnings = []
if methods.using_gcc(env):
common_warnings += ["-Wshadow-local", "-Wno-misleading-indentation"]
common_warnings += ["-Wshadow", "-Wno-misleading-indentation"]
if cc_version_major == 7: # Bogus warning fixed in 8+.
common_warnings += ["-Wno-strict-overflow"]
if cc_version_major < 11:
@ -725,6 +726,7 @@ if selected_platform in platform_list:
if cc_version_major >= 12: # False positives in our error macros, see GH-58747.
common_warnings += ["-Wno-return-type"]
elif methods.using_clang(env) or methods.using_emcc(env):
common_warnings += ["-Wshadow-field-in-constructor", "-Wshadow-uncaptured-local"]
# We often implement `operator<` for structs of pointers as a requirement
# for putting them in `Set` or `Map`. We don't mind about unreliable ordering.
common_warnings += ["-Wno-ordered-compare-function-pointers"]
@ -820,6 +822,15 @@ if selected_platform in platform_list:
env.module_list = modules_enabled
methods.sort_module_list(env)
if env.editor_build:
# Add editor-specific dependencies to the dependency graph.
env.module_add_dependencies("editor", ["freetype", "svg"])
# And check if they are met.
if not env.module_check_dependencies("editor"):
print("Not all modules required by editor builds are enabled.")
Exit(255)
methods.generate_version_header(env.module_version_string)
env["PROGSUFFIX_WRAP"] = suffix + env.module_version_string + ".console" + env["PROGSUFFIX"]
@ -840,7 +851,7 @@ if selected_platform in platform_list:
if env["disable_3d"]:
if env.editor_build:
print("Build option 'disable_3d=yes' cannot be used for editor builds, but only for export templates.")
print("Build option 'disable_3d=yes' cannot be used for editor builds, only for export template builds.")
Exit(255)
else:
env.Append(CPPDEFINES=["_3D_DISABLED"])
@ -848,7 +859,7 @@ if selected_platform in platform_list:
if env.editor_build:
print(
"Build option 'disable_advanced_gui=yes' cannot be used for editor builds, "
"but only for export templates."
"only for export template builds."
)
Exit(255)
else:

View File

@ -401,6 +401,10 @@ void ProjectSettings::_get_property_list(List<PropertyInfo> *p_list) const {
vc.flags = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_STORAGE;
}
if (v->internal) {
vc.flags |= PROPERTY_USAGE_INTERNAL;
}
if (v->basic) {
vc.flags |= PROPERTY_USAGE_EDITOR_BASIC_SETTING;
}
@ -636,7 +640,7 @@ Error ProjectSettings::_setup(const String &p_path, const String &p_main_pack, b
Error ProjectSettings::setup(const String &p_path, const String &p_main_pack, bool p_upwards, bool p_ignore_override) {
Error err = _setup(p_path, p_main_pack, p_upwards, p_ignore_override);
if (err == OK) {
if (err == OK && !p_ignore_override) {
String custom_settings = GLOBAL_GET("application/config/project_settings_override");
if (!custom_settings.is_empty()) {
_load_settings_text(custom_settings);
@ -1242,7 +1246,7 @@ void ProjectSettings::_add_builtin_input_map() {
action["events"] = events;
String action_name = "input/" + E.key;
GLOBAL_DEF_INTERNAL(action_name, action);
GLOBAL_DEF(action_name, action);
input_presets.push_back(action_name);
}
}
@ -1266,6 +1270,10 @@ ProjectSettings::ProjectSettings() {
GLOBAL_DEF("application/config/custom_user_dir_name", "");
GLOBAL_DEF("application/config/project_settings_override", "");
GLOBAL_DEF("application/run/main_loop_type", "SceneTree");
GLOBAL_DEF("application/config/auto_accept_quit", true);
GLOBAL_DEF("application/config/quit_on_go_back", true);
// The default window size is tuned to:
// - Have a 16:9 aspect ratio,
// - Have both dimensions divisible by 8 to better play along with video recording,
@ -1304,26 +1312,23 @@ ProjectSettings::ProjectSettings() {
}
extensions.push_back("gdshader");
GLOBAL_DEF("editor/run/main_run_args", "");
GLOBAL_DEF(PropertyInfo(Variant::PACKED_STRING_ARRAY, "editor/script/search_in_file_extensions"), extensions);
GLOBAL_DEF(PropertyInfo(Variant::STRING, "editor/script/templates_search_path", PROPERTY_HINT_DIR), "res://script_templates");
// For correct doc generation.
GLOBAL_DEF("editor/naming/default_signal_callback_name", "_on_{node_name}_{signal_name}");
GLOBAL_DEF("editor/naming/default_signal_callback_to_self_name", "_on_{signal_name}");
_add_builtin_input_map();
// Keep the enum values in sync with the `DisplayServer::ScreenOrientation` enum.
custom_prop_info["display/window/handheld/orientation"] = PropertyInfo(Variant::INT, "display/window/handheld/orientation", PROPERTY_HINT_ENUM, "Landscape,Portrait,Reverse Landscape,Reverse Portrait,Sensor Landscape,Sensor Portrait,Sensor");
GLOBAL_DEF("display/window/subwindows/embed_subwindows", true);
// Keep the enum values in sync with the `DisplayServer::VSyncMode` enum.
custom_prop_info["display/window/vsync/vsync_mode"] = PropertyInfo(Variant::INT, "display/window/vsync/vsync_mode", PROPERTY_HINT_ENUM, "Disabled,Enabled,Adaptive,Mailbox");
custom_prop_info["rendering/driver/threads/thread_model"] = PropertyInfo(Variant::INT, "rendering/driver/threads/thread_model", PROPERTY_HINT_ENUM, "Single-Unsafe,Single-Safe,Multi-Threaded");
GLOBAL_DEF("physics/2d/run_on_separate_thread", false);
GLOBAL_DEF("physics/3d/run_on_separate_thread", false);
GLOBAL_DEF_BASIC(PropertyInfo(Variant::STRING, "display/window/stretch/mode", PROPERTY_HINT_ENUM, "disabled,canvas_items,viewport"), "disabled");
GLOBAL_DEF_BASIC(PropertyInfo(Variant::STRING, "display/window/stretch/aspect", PROPERTY_HINT_ENUM, "ignore,keep,keep_width,keep_height,expand"), "keep");
GLOBAL_DEF_BASIC(PropertyInfo(Variant::FLOAT, "display/window/stretch/scale", PROPERTY_HINT_RANGE, "0.5,8.0,0.01"), 1.0);
GLOBAL_DEF(PropertyInfo(Variant::INT, "debug/settings/profiler/max_functions", PROPERTY_HINT_RANGE, "128,65535,1"), 16384);
GLOBAL_DEF(PropertyInfo(Variant::BOOL, "compression/formats/zstd/long_distance_matching"), Compression::zstd_long_distance_matching);
@ -1339,18 +1344,26 @@ ProjectSettings::ProjectSettings() {
GLOBAL_DEF_RST(PropertyInfo(Variant::INT, "rendering/occlusion_culling/bvh_build_quality", PROPERTY_HINT_ENUM, "Low,Medium,High"), 2);
GLOBAL_DEF(PropertyInfo(Variant::INT, "memory/limits/multithreaded_server/rid_pool_prealloc", PROPERTY_HINT_RANGE, "0,500,1"), 60); // No negative and limit to 500 due to crashes.
GLOBAL_DEF_RST("internationalization/rendering/force_right_to_left_layout_direction", false);
GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "internationalization/rendering/root_node_layout_direction", PROPERTY_HINT_RANGE, "Based on Locale,Left-to-Right,Right-to-Left"), 0);
GLOBAL_DEF(PropertyInfo(Variant::INT, "gui/timers/incremental_search_max_interval_msec", PROPERTY_HINT_RANGE, "0,10000,1,or_greater"), 2000);
GLOBAL_DEF_BASIC("gui/common/snap_controls_to_pixels", true);
GLOBAL_DEF_BASIC("gui/fonts/dynamic_fonts/use_oversampling", true);
GLOBAL_DEF("rendering/rendering_device/staging_buffer/block_size_kb", 256);
GLOBAL_DEF("rendering/rendering_device/staging_buffer/max_size_mb", 128);
GLOBAL_DEF("rendering/rendering_device/staging_buffer/texture_upload_region_size_px", 64);
GLOBAL_DEF("rendering/rendering_device/vulkan/max_descriptors_per_pool", 64);
GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "rendering/textures/canvas_textures/default_texture_filter", PROPERTY_HINT_ENUM, "Nearest,Linear,Linear Mipmap,Nearest Mipmap"), 1);
GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "rendering/textures/canvas_textures/default_texture_repeat", PROPERTY_HINT_ENUM, "Disable,Enable,Mirror"), 0);
// These properties will not show up in the dialog nor in the documentation. If you want to exclude whole groups, see _get_property_list() method.
GLOBAL_DEF_INTERNAL("application/config/features", PackedStringArray());
GLOBAL_DEF_INTERNAL("internationalization/locale/translation_remaps", PackedStringArray());
GLOBAL_DEF_INTERNAL("internationalization/locale/translations", PackedStringArray());
GLOBAL_DEF_INTERNAL("internationalization/locale/translations_pot_files", PackedStringArray());
}
ProjectSettings::~ProjectSettings() {

View File

@ -1052,6 +1052,7 @@ void GDExtensionAPIDump::generate_extension_json_file(const String &p_path) {
String text = json->stringify(api, "\t", false) + "\n";
Ref<FileAccess> fa = FileAccess::open(p_path, FileAccess::WRITE);
ERR_FAIL_COND_MSG(fa.is_null(), vformat("Cannot open file '%s' for writing.", p_path));
fa->store_string(text);
}

View File

@ -27,6 +27,7 @@ class GDExtensionInterfaceDump {
public:
static void generate_gdextension_interface_file(const String &p_path) {
Ref<FileAccess> fa = FileAccess::open(p_path, FileAccess::WRITE);
ERR_FAIL_COND_MSG(fa.is_null(), vformat("Cannot open file '%s' for writing.", p_path));
CharString cs(gdextension_interface_dump);
fa->store_buffer((const uint8_t *)cs.ptr(), cs.length());
};

View File

@ -2,7 +2,7 @@
# Source: https://github.com/godotengine/godot
# Windows
__XINPUT_DEVICE__,XInput Gamepad,a:b12,b:b13,x:b14,y:b15,start:b4,back:b5,leftstick:b6,rightstick:b7,leftshoulder:b8,rightshoulder:b9,dpup:b0,dpdown:b1,dpleft:b2,dpright:b3,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,platform:Windows,
__XINPUT_DEVICE__,XInput Gamepad,a:b12,b:b13,x:b14,y:b15,start:b4,guide:b10,back:b5,leftstick:b6,rightstick:b7,leftshoulder:b8,rightshoulder:b9,dpup:b0,dpdown:b1,dpleft:b2,dpright:b3,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,platform:Windows,
# Android
Default Android Gamepad,Default Controller,leftx:a0,lefty:a1,dpdown:h0.4,rightstick:b8,rightshoulder:b10,rightx:a2,start:b6,righty:a3,dpleft:h0.8,lefttrigger:a4,x:b2,dpup:h0.1,back:b4,leftstick:b7,leftshoulder:b9,y:b3,a:b0,dpright:h0.2,righttrigger:a5,b:b1,platform:Android,

View File

@ -35,6 +35,10 @@
#include "core/input/input_map.h"
#include "core/os/os.h"
#ifdef DEV_ENABLED
#include "core/os/thread.h"
#endif
static const char *_joy_buttons[(size_t)JoyButton::SDL_MAX] = {
"a",
"b",
@ -486,6 +490,10 @@ Vector3 Input::get_gyroscope() const {
}
void Input::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_emulated) {
// This function does the final delivery of the input event to user land.
// Regardless where the event came from originally, this has to happen on the main thread.
DEV_ASSERT(Thread::get_caller_id() == Thread::get_main_id());
// Notes on mouse-touch emulation:
// - Emulated mouse events are parsed, that is, re-routed to this method, so they make the same effects
// as true mouse events. The only difference is the situation is flagged as emulated so they are not
@ -537,7 +545,9 @@ void Input::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_em
touch_event->set_position(mb->get_position());
touch_event->set_double_tap(mb->is_double_click());
touch_event->set_device(InputEvent::DEVICE_ID_EMULATION);
_THREAD_SAFE_UNLOCK_
event_dispatch_function(touch_event);
_THREAD_SAFE_LOCK_
}
}
@ -563,7 +573,9 @@ void Input::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_em
drag_event->set_velocity(get_last_mouse_velocity());
drag_event->set_device(InputEvent::DEVICE_ID_EMULATION);
_THREAD_SAFE_UNLOCK_
event_dispatch_function(drag_event);
_THREAD_SAFE_LOCK_
}
}
@ -664,7 +676,9 @@ void Input::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_em
if (ge.is_valid()) {
if (event_dispatch_function) {
_THREAD_SAFE_UNLOCK_
event_dispatch_function(ge);
_THREAD_SAFE_LOCK_
}
}
@ -687,7 +701,9 @@ void Input::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_em
}
if (event_dispatch_function) {
_THREAD_SAFE_UNLOCK_
event_dispatch_function(p_event);
_THREAD_SAFE_LOCK_
}
}
@ -831,6 +847,7 @@ bool Input::is_emulating_touch_from_mouse() const {
// Calling this whenever the game window is focused helps unsticking the "touch mouse"
// if the OS or its abstraction class hasn't properly reported that touch pointers raised
void Input::ensure_touch_mouse_raised() {
_THREAD_SAFE_METHOD_
if (mouse_from_touch_index != -1) {
mouse_from_touch_index = -1;
@ -937,8 +954,15 @@ void Input::flush_buffered_events() {
_THREAD_SAFE_METHOD_
while (buffered_events.front()) {
_parse_input_event_impl(buffered_events.front()->get(), false);
// The final delivery of the input event involves releasing the lock.
// While the lock is released, another thread may lock it and add new events to the back.
// Therefore, we get each event and pop it while we still have the lock,
// to ensure the list is in a consistent state.
List<Ref<InputEvent>>::Element *E = buffered_events.front();
Ref<InputEvent> e = E->get();
buffered_events.pop_front();
_parse_input_event_impl(e, false);
}
}
@ -1330,8 +1354,9 @@ void Input::parse_mapping(String p_mapping) {
String output = entry[idx].get_slice(":", 0).replace(" ", "");
String input = entry[idx].get_slice(":", 1).replace(" ", "");
ERR_CONTINUE_MSG(output.length() < 1 || input.length() < 2,
vformat("Invalid device mapping entry \"%s\" in mapping:\n%s", entry[idx], p_mapping));
if (output.length() < 1 || input.length() < 2) {
continue;
}
if (output == "platform" || output == "hint") {
continue;

View File

@ -474,10 +474,15 @@ String InputEventKey::to_string() {
return vformat("InputEventKey: keycode=%s, mods=%s, physical=%s, pressed=%s, echo=%s", kc, mods, physical, p, e);
}
Ref<InputEventKey> InputEventKey::create_reference(Key p_keycode) {
Ref<InputEventKey> InputEventKey::create_reference(Key p_keycode, bool p_physical) {
Ref<InputEventKey> ie;
ie.instantiate();
ie->set_keycode(p_keycode & KeyModifierMask::CODE_MASK);
if (p_physical) {
ie->set_physical_keycode(p_keycode & KeyModifierMask::CODE_MASK);
} else {
ie->set_keycode(p_keycode & KeyModifierMask::CODE_MASK);
}
ie->set_unicode(char32_t(p_keycode & KeyModifierMask::CODE_MASK));
if ((p_keycode & KeyModifierMask::SHIFT) != Key::NONE) {

View File

@ -195,7 +195,7 @@ public:
virtual String as_text() const override;
virtual String to_string() override;
static Ref<InputEventKey> create_reference(Key p_keycode_with_modifier_masks);
static Ref<InputEventKey> create_reference(Key p_keycode_with_modifier_masks, bool p_physical = false);
InputEventKey() {}
};

View File

@ -68,7 +68,7 @@ protected:
virtual String _get_root_string() const;
AccessType get_access_type() const;
String fix_path(String p_path) const;
virtual String fix_path(String p_path) const;
template <class T>
static Ref<DirAccess> _create_builtin() {

View File

@ -80,7 +80,7 @@ protected:
static void _bind_methods();
AccessType get_access_type() const;
String fix_path(const String &p_path) const;
virtual String fix_path(const String &p_path) const;
virtual Error open_internal(const String &p_path, int p_mode_flags) = 0; ///< open a file
virtual uint64_t _get_modified_time(const String &p_file) = 0;
virtual void _set_access_type(AccessType p_access);

View File

@ -144,7 +144,7 @@ uint64_t FileAccessMemory::get_buffer(uint8_t *p_dst, uint64_t p_length) const {
}
memcpy(p_dst, &data[pos], read);
pos += p_length;
pos += read;
return read;
}
@ -172,5 +172,5 @@ void FileAccessMemory::store_buffer(const uint8_t *p_src, uint64_t p_length) {
}
memcpy(&data[pos], p_src, write);
pos += p_length;
pos += write;
}

View File

@ -63,8 +63,9 @@ Error HTTPClient::_request_raw(Method p_method, const String &p_url, const Vecto
}
Error HTTPClient::_request(Method p_method, const String &p_url, const Vector<String> &p_headers, const String &p_body) {
int size = p_body.length();
return request(p_method, p_url, p_headers, size > 0 ? (const uint8_t *)p_body.utf8().get_data() : nullptr, size);
CharString body_utf8 = p_body.utf8();
int size = body_utf8.length();
return request(p_method, p_url, p_headers, size > 0 ? (const uint8_t *)body_utf8.get_data() : nullptr, size);
}
String HTTPClient::query_string_from_dict(const Dictionary &p_dict) {

View File

@ -60,6 +60,7 @@ Error HTTPClientTCP::connect_to_host(const String &p_host, int p_port, Ref<TLSOp
}
ERR_FAIL_COND_V(tls_options.is_valid() && tls_options->is_server(), ERR_INVALID_PARAMETER);
ERR_FAIL_COND_V_MSG(tls_options.is_valid() && !StreamPeerTLS::is_available(), ERR_UNAVAILABLE, "HTTPS is not available in this build.");
ERR_FAIL_COND_V(conn_host.length() < HOST_MIN_LEN, ERR_INVALID_PARAMETER);
if (conn_port < 0) {

View File

@ -2649,7 +2649,7 @@ Error Image::compress_from_channels(CompressMode p_mode, UsedChannels p_channels
_image_compress_bptc_func(this, p_channels);
} break;
case COMPRESS_ASTC: {
ERR_FAIL_COND_V(!_image_compress_bptc_func, ERR_UNAVAILABLE);
ERR_FAIL_COND_V(!_image_compress_astc_func, ERR_UNAVAILABLE);
_image_compress_astc_func(this, p_astc_format);
} break;
case COMPRESS_MAX: {
@ -3535,6 +3535,8 @@ void Image::_bind_methods() {
BIND_ENUM_CONSTANT(COMPRESS_ETC);
BIND_ENUM_CONSTANT(COMPRESS_ETC2);
BIND_ENUM_CONSTANT(COMPRESS_BPTC);
BIND_ENUM_CONSTANT(COMPRESS_ASTC);
BIND_ENUM_CONSTANT(COMPRESS_MAX);
BIND_ENUM_CONSTANT(USED_CHANNELS_L);
BIND_ENUM_CONSTANT(USED_CHANNELS_LA);

View File

@ -75,7 +75,7 @@ struct _IP_ResolverPrivate {
Semaphore sem;
Thread thread;
bool thread_abort = false;
SafeFlag thread_abort;
void resolve_queues() {
for (int i = 0; i < IP::RESOLVER_MAX_QUERIES; i++) {
@ -111,7 +111,7 @@ struct _IP_ResolverPrivate {
static void _thread_function(void *self) {
_IP_ResolverPrivate *ipr = static_cast<_IP_ResolverPrivate *>(self);
while (!ipr->thread_abort) {
while (!ipr->thread_abort.is_set()) {
ipr->sem.wait();
ipr->resolve_queues();
}
@ -343,12 +343,12 @@ IP::IP() {
singleton = this;
resolver = memnew(_IP_ResolverPrivate);
resolver->thread_abort = false;
resolver->thread_abort.clear();
resolver->thread.start(_IP_ResolverPrivate::_thread_function, resolver);
}
IP::~IP() {
resolver->thread_abort = true;
resolver->thread_abort.set();
resolver->sem.post();
resolver->thread.wait_to_finish();

View File

@ -91,9 +91,12 @@ String JSON::_stringify(const Variant &p_var, const String &p_indent, int p_cur_
case Variant::PACKED_FLOAT64_ARRAY:
case Variant::PACKED_STRING_ARRAY:
case Variant::ARRAY: {
Array a = p_var;
if (a.size() == 0) {
return "[]";
}
String s = "[";
s += end_statement;
Array a = p_var;
ERR_FAIL_COND_V_MSG(p_markers.has(a.id()), "\"[...]\"", "Converting circular structure to JSON.");
p_markers.insert(a.id());

View File

@ -310,12 +310,6 @@ Error ResourceLoader::load_threaded_request(const String &p_path, const String &
thread_load_mutex->unlock();
ERR_FAIL_V_MSG(ERR_INVALID_PARAMETER, "There is no thread loading source resource '" + p_source_resource + "'.");
}
//must be loading from this thread
if (thread_load_tasks[p_source_resource].loader_id != Thread::get_caller_id()) {
thread_load_mutex->unlock();
ERR_FAIL_V_MSG(ERR_INVALID_PARAMETER, "Threading loading resource'" + local_path + " failed: Source specified: '" + p_source_resource + "' but was not called by it.");
}
//must not be already added as s sub tasks
if (thread_load_tasks[p_source_resource].sub_tasks.has(local_path)) {
thread_load_mutex->unlock();
@ -492,13 +486,21 @@ Ref<Resource> ResourceLoader::load_threaded_get(const String &p_path, Error *r_e
print_lt("GET: load count: " + itos(thread_loading_count) + " / wait count: " + itos(thread_waiting_count) + " / suspended count: " + itos(thread_suspended_count) + " / active: " + itos(thread_loading_count - thread_suspended_count));
}
bool still_valid = true;
bool was_thread = load_task.thread;
do {
load_task.cond_var->wait(thread_load_lock);
if (!thread_load_tasks.has(local_path)) { //may have been erased during unlock and this was always an invalid call
still_valid = false;
break;
}
} while (load_task.cond_var); // In case of spurious wakeup.
thread_suspended_count--;
if (was_thread) {
thread_suspended_count--;
}
if (!thread_load_tasks.has(local_path)) { //may have been erased during unlock and this was always an invalid call
if (!still_valid) {
if (r_error) {
*r_error = ERR_INVALID_PARAMETER;
}

View File

@ -397,7 +397,7 @@ void Basis::rotate_to_align(Vector3 p_start_direction, Vector3 p_end_direction)
real_t dot = p_start_direction.dot(p_end_direction);
dot = CLAMP(dot, -1.0f, 1.0f);
const real_t angle_rads = Math::acos(dot);
set_axis_angle(axis, angle_rads);
*this = Basis(axis, angle_rads) * (*this);
}
}
@ -807,8 +807,8 @@ void Basis::get_axis_angle(Vector3 &r_axis, real_t &r_angle) const {
z = (rows[1][0] - rows[0][1]) / s;
r_axis = Vector3(x, y, z);
// CLAMP to avoid NaN if the value passed to acos is not in [0,1].
r_angle = Math::acos(CLAMP((rows[0][0] + rows[1][1] + rows[2][2] - 1) / 2, (real_t)0.0, (real_t)1.0));
// acos does clamping.
r_angle = Math::acos((rows[0][0] + rows[1][1] + rows[2][2] - 1) / 2);
}
void Basis::set_quaternion(const Quaternion &p_quaternion) {

View File

@ -596,9 +596,9 @@ private:
}
};
enum Orientation { NONE,
CLOCKWISE,
COUNTER_CLOCKWISE };
enum Orientation { ORIENTATION_NONE,
ORIENTATION_CLOCKWISE,
ORIENTATION_COUNTER_CLOCKWISE };
Vector3 scaling;
Vector3 center;
@ -1140,13 +1140,13 @@ ConvexHullInternal::Orientation ConvexHullInternal::get_orientation(const Edge *
CHULL_ASSERT(!m.is_zero());
int64_t dot = n.dot(m);
CHULL_ASSERT(dot != 0);
return (dot > 0) ? COUNTER_CLOCKWISE : CLOCKWISE;
return (dot > 0) ? ORIENTATION_COUNTER_CLOCKWISE : ORIENTATION_CLOCKWISE;
}
return COUNTER_CLOCKWISE;
return ORIENTATION_COUNTER_CLOCKWISE;
} else if (p_prev->prev == p_next) {
return CLOCKWISE;
return ORIENTATION_CLOCKWISE;
} else {
return NONE;
return ORIENTATION_NONE;
}
}
@ -1176,7 +1176,7 @@ ConvexHullInternal::Edge *ConvexHullInternal::find_max_angle(bool p_ccw, const V
} else if ((cmp = cot.compare(p_min_cot)) < 0) {
p_min_cot = cot;
min_edge = e;
} else if ((cmp == 0) && (p_ccw == (get_orientation(min_edge, e, p_s, t) == COUNTER_CLOCKWISE))) {
} else if ((cmp == 0) && (p_ccw == (get_orientation(min_edge, e, p_s, t) == ORIENTATION_COUNTER_CLOCKWISE))) {
min_edge = e;
}
}
@ -1375,7 +1375,7 @@ void ConvexHullInternal::merge(IntermediateHull &p_h0, IntermediateHull &p_h1) {
int64_t dot = (*e->target - *c0).dot(normal);
CHULL_ASSERT(dot <= 0);
if ((dot == 0) && ((*e->target - *c0).dot(t) > 0)) {
if (!start0 || (get_orientation(start0, e, s, Point32(0, 0, -1)) == CLOCKWISE)) {
if (!start0 || (get_orientation(start0, e, s, Point32(0, 0, -1)) == ORIENTATION_CLOCKWISE)) {
start0 = e;
}
}
@ -1390,7 +1390,7 @@ void ConvexHullInternal::merge(IntermediateHull &p_h0, IntermediateHull &p_h1) {
int64_t dot = (*e->target - *c1).dot(normal);
CHULL_ASSERT(dot <= 0);
if ((dot == 0) && ((*e->target - *c1).dot(t) > 0)) {
if (!start1 || (get_orientation(start1, e, s, Point32(0, 0, -1)) == COUNTER_CLOCKWISE)) {
if (!start1 || (get_orientation(start1, e, s, Point32(0, 0, -1)) == ORIENTATION_COUNTER_CLOCKWISE)) {
start1 = e;
}
}

View File

@ -74,11 +74,13 @@ public:
static _ALWAYS_INLINE_ double tanh(double p_x) { return ::tanh(p_x); }
static _ALWAYS_INLINE_ float tanh(float p_x) { return ::tanhf(p_x); }
static _ALWAYS_INLINE_ double asin(double p_x) { return ::asin(p_x); }
static _ALWAYS_INLINE_ float asin(float p_x) { return ::asinf(p_x); }
// Always does clamping so always safe to use.
static _ALWAYS_INLINE_ double asin(double p_x) { return p_x < -1 ? (-Math_PI / 2) : (p_x > 1 ? (Math_PI / 2) : ::asin(p_x)); }
static _ALWAYS_INLINE_ float asin(float p_x) { return p_x < -1 ? (-Math_PI / 2) : (p_x > 1 ? (Math_PI / 2) : ::asinf(p_x)); }
static _ALWAYS_INLINE_ double acos(double p_x) { return ::acos(p_x); }
static _ALWAYS_INLINE_ float acos(float p_x) { return ::acosf(p_x); }
// Always does clamping so always safe to use.
static _ALWAYS_INLINE_ double acos(double p_x) { return p_x < -1 ? Math_PI : (p_x > 1 ? 0 : ::acos(p_x)); }
static _ALWAYS_INLINE_ float acos(float p_x) { return p_x < -1 ? Math_PI : (p_x > 1 ? 0 : ::acosf(p_x)); }
static _ALWAYS_INLINE_ double atan(double p_x) { return ::atan(p_x); }
static _ALWAYS_INLINE_ float atan(float p_x) { return ::atanf(p_x); }

View File

@ -35,7 +35,8 @@
real_t Quaternion::angle_to(const Quaternion &p_to) const {
real_t d = dot(p_to);
return Math::acos(CLAMP(d * d * 2 - 1, -1, 1));
// acos does clamping.
return Math::acos(d * d * 2 - 1);
}
Vector3 Quaternion::get_euler(EulerOrder p_order) const {

View File

@ -126,10 +126,18 @@ public:
}
_FORCE_INLINE_ double randfn(double p_mean, double p_deviation) {
return p_mean + p_deviation * (cos(Math_TAU * randd()) * sqrt(-2.0 * log(randd()))); // Box-Muller transform
double temp = randd();
if (temp < CMP_EPSILON) {
temp += CMP_EPSILON; // To prevent generating of INF value in log function, resulting to return NaN value from this function.
}
return p_mean + p_deviation * (cos(Math_TAU * randd()) * sqrt(-2.0 * log(temp))); // Box-Muller transform.
}
_FORCE_INLINE_ float randfn(float p_mean, float p_deviation) {
return p_mean + p_deviation * (cos((float)Math_TAU * randf()) * sqrt(-2.0 * log(randf()))); // Box-Muller transform
float temp = randf();
if (temp < CMP_EPSILON) {
temp += CMP_EPSILON; // To prevent generating of INF value in log function, resulting to return NaN value from this function.
}
return p_mean + p_deviation * (cos((float)Math_TAU * randf()) * sqrt(-2.0 * log(temp))); // Box-Muller transform.
}
double random(double p_from, double p_to);

View File

@ -59,15 +59,15 @@ public:
/*! Constructs a ray from origin, direction, and ray segment. Near
* has to be smaller than far. */
_FORCE_INLINE_ Ray(const Vector3 &org,
const Vector3 &dir,
float tnear = 0.0f,
float tfar = INFINITY) :
org(org),
tnear(tnear),
dir(dir),
_FORCE_INLINE_ Ray(const Vector3 &p_org,
const Vector3 &p_dir,
float p_tnear = 0.0f,
float p_tfar = INFINITY) :
org(p_org),
tnear(p_tnear),
dir(p_dir),
time(0.0f),
tfar(tfar),
tfar(p_tfar),
mask(-1),
u(0.0),
v(0.0),

View File

@ -50,8 +50,8 @@ void Thread::_set_platform_functions(const PlatformFunctions &p_functions) {
platform_functions = p_functions;
}
void Thread::callback(Thread *p_self, const Settings &p_settings, Callback p_callback, void *p_userdata) {
Thread::caller_id = _thread_id_hash(p_self->thread.get_id());
void Thread::callback(ID p_caller_id, const Settings &p_settings, Callback p_callback, void *p_userdata) {
Thread::caller_id = p_caller_id;
if (platform_functions.set_priority) {
platform_functions.set_priority(p_settings.priority);
}
@ -79,7 +79,7 @@ void Thread::start(Thread::Callback p_callback, void *p_user, const Settings &p_
std::thread empty_thread;
thread.swap(empty_thread);
}
std::thread new_thread(&Thread::callback, this, p_settings, p_callback, p_user);
std::thread new_thread(&Thread::callback, _thread_id_hash(thread.get_id()), p_settings, p_callback, p_user);
thread.swap(new_thread);
id = _thread_id_hash(thread.get_id());
}

View File

@ -82,7 +82,7 @@ private:
static thread_local ID caller_id;
std::thread thread;
static void callback(Thread *p_self, const Settings &p_settings, Thread::Callback p_callback, void *p_userdata);
static void callback(ID p_caller_id, const Settings &p_settings, Thread::Callback p_callback, void *p_userdata);
static PlatformFunctions platform_functions;

View File

@ -382,10 +382,10 @@ String Time::get_time_string_from_system(bool p_utc) const {
Dictionary Time::get_time_zone_from_system() const {
OS::TimeZoneInfo info = OS::get_singleton()->get_time_zone_info();
Dictionary timezone;
timezone["bias"] = info.bias;
timezone["name"] = info.name;
return timezone;
Dictionary ret_timezone;
ret_timezone["bias"] = info.bias;
ret_timezone["name"] = info.name;
return ret_timezone;
}
double Time::get_unix_time_from_system() const {

View File

@ -117,6 +117,15 @@ public:
_FORCE_INLINE_ bool operator<(const StringName &p_name) const {
return _data < p_name._data;
}
_FORCE_INLINE_ bool operator<=(const StringName &p_name) const {
return _data <= p_name._data;
}
_FORCE_INLINE_ bool operator>(const StringName &p_name) const {
return _data > p_name._data;
}
_FORCE_INLINE_ bool operator>=(const StringName &p_name) const {
return _data >= p_name._data;
}
_FORCE_INLINE_ bool operator==(const StringName &p_name) const {
// the real magic of all this mess happens here.
// this is why path comparisons are very fast

View File

@ -712,7 +712,25 @@ String TranslationServer::get_tool_locale() {
#else
{
#endif
return get_locale();
// Look for best matching loaded translation.
String best_locale = "en";
int best_score = 0;
for (const Ref<Translation> &E : translations) {
const Ref<Translation> &t = E;
ERR_FAIL_COND_V(t.is_null(), best_locale);
String l = t->get_locale();
int score = compare_locales(locale, l);
if (score > 0 && score >= best_score) {
best_locale = l;
best_score = score;
if (score == 10) {
break; // Exact match, skip the rest.
}
}
}
return best_locale;
}
}

View File

@ -59,11 +59,7 @@ public:
_FORCE_INLINE_ void push_back(T p_elem) {
if (unlikely(count == capacity)) {
if (capacity == 0) {
capacity = 1;
} else {
capacity <<= 1;
}
capacity = tight ? (capacity + 1) : MAX((U)1, capacity << 1);
data = (T *)memrealloc(data, capacity * sizeof(T));
CRASH_COND_MSG(!data, "Out of memory");
}
@ -87,7 +83,7 @@ public:
}
/// Removes the item copying the last value into the position of the one to
/// remove. It's generally faster than `remove`.
/// remove. It's generally faster than `remove_at`.
void remove_at_unordered(U p_index) {
ERR_FAIL_INDEX(p_index, count);
count--;
@ -143,12 +139,7 @@ public:
count = p_size;
} else if (p_size > count) {
if (unlikely(p_size > capacity)) {
if (capacity == 0) {
capacity = 1;
}
while (capacity < p_size) {
capacity <<= 1;
}
capacity = tight ? p_size : nearest_power_of_2_templated(p_size);
data = (T *)memrealloc(data, capacity * sizeof(T));
CRASH_COND_MSG(!data, "Out of memory");
}

View File

@ -211,10 +211,10 @@ public:
size_mask = mask;
}
RingBuffer<T>(int p_power = 0) {
RingBuffer(int p_power = 0) {
resize(p_power);
}
~RingBuffer<T>() {}
~RingBuffer() {}
};
#endif // RING_BUFFER_H

View File

@ -132,7 +132,7 @@ public:
}
}
_ALWAYS_INLINE_ explicit SafeNumeric<T>(T p_value = static_cast<T>(0)) {
_ALWAYS_INLINE_ explicit SafeNumeric(T p_value = static_cast<T>(0)) {
set(p_value);
}
};

View File

@ -305,9 +305,9 @@ struct BuildIndexSequence<0, Is...> : IndexSequence<Is...> {};
#endif
// Macro GD_IS_DEFINED() allows to check if a macro is defined. It needs to be defined to anything (say 1) to work.
#define __GDARG_PLACEHOLDER_1 0,
#define __GDARG_PLACEHOLDER_1 false,
#define __gd_take_second_arg(__ignored, val, ...) val
#define ____gd_is_defined(arg1_or_junk) __gd_take_second_arg(arg1_or_junk 1, 0)
#define ____gd_is_defined(arg1_or_junk) __gd_take_second_arg(arg1_or_junk true, false)
#define ___gd_is_defined(val) ____gd_is_defined(__GDARG_PLACEHOLDER_##val)
#define GD_IS_DEFINED(x) ___gd_is_defined(x)

View File

@ -466,7 +466,7 @@ Array Array::slice(int p_begin, int p_end, int p_step, bool p_deep) const {
ERR_FAIL_COND_V_MSG(p_step > 0 && begin > end, result, "Slice is positive, but bounds is decreasing.");
ERR_FAIL_COND_V_MSG(p_step < 0 && begin < end, result, "Slice is negative, but bounds is increasing.");
int result_size = (end - begin) / p_step;
int result_size = (end - begin) / p_step + (((end - begin) % p_step != 0) ? 1 : 0);
result.resize(result_size);
for (int src_idx = begin, dest_idx = 0; dest_idx < result_size; ++dest_idx) {

View File

@ -2941,7 +2941,7 @@ uint32_t Variant::recursive_hash(int recursion_count) const {
return hash_one_uint64((uint64_t)_data._int);
} break;
case FLOAT: {
return hash_murmur3_one_float(_data._float);
return hash_murmur3_one_double(_data._float);
} break;
case STRING: {
return reinterpret_cast<const String *>(_data._mem)->hash();
@ -3158,7 +3158,7 @@ uint32_t Variant::recursive_hash(int recursion_count) const {
}
return hash_fmix32(h);
} else {
return hash_murmur3_one_float(0.0);
return hash_murmur3_one_double(0.0);
}
} break;
@ -3659,9 +3659,9 @@ String Variant::get_call_error_text(Object *p_base, const StringName &p_method,
err_text = "Cannot convert argument " + itos(errorarg + 1) + " from [missing argptr, type unknown] to " + Variant::get_type_name(Variant::Type(ce.expected));
}
} else if (ce.error == Callable::CallError::CALL_ERROR_TOO_MANY_ARGUMENTS) {
err_text = "Method expected " + itos(ce.argument) + " arguments, but called with " + itos(p_argcount);
err_text = "Method expected " + itos(ce.expected) + " arguments, but called with " + itos(p_argcount);
} else if (ce.error == Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS) {
err_text = "Method expected " + itos(ce.argument) + " arguments, but called with " + itos(p_argcount);
err_text = "Method expected " + itos(ce.expected) + " arguments, but called with " + itos(p_argcount);
} else if (ce.error == Callable::CallError::CALL_ERROR_INVALID_METHOD) {
err_text = "Method not found";
} else if (ce.error == Callable::CallError::CALL_ERROR_INSTANCE_IS_NULL) {

View File

@ -1906,7 +1906,7 @@ static void _register_variant_builtin_methods() {
bind_method(Vector4, distance_squared_to, sarray("to"), varray());
bind_method(Vector4, dot, sarray("with"), varray());
bind_method(Vector4, inverse, sarray(), varray());
bind_method(Vector4, is_equal_approx, sarray("with"), varray());
bind_method(Vector4, is_equal_approx, sarray("to"), varray());
bind_method(Vector4, is_zero_approx, sarray(), varray());
bind_method(Vector4, is_finite, sarray(), varray());

View File

@ -374,6 +374,7 @@ struct VariantUtilityFunctions {
r_error.error = Callable::CallError::CALL_OK;
if (from.get_type() != to.get_type()) {
r_error.error = Callable::CallError::CALL_ERROR_INVALID_ARGUMENT;
r_error.expected = from.get_type();
r_error.argument = 1;
return Variant();
}
@ -542,7 +543,8 @@ struct VariantUtilityFunctions {
}
Variant base = *p_args[0];
Variant ret;
for (int i = 1; i < p_argcount; i++) {
for (int i = 0; i < p_argcount; i++) {
Variant::Type arg_type = p_args[i]->get_type();
if (arg_type != Variant::INT && arg_type != Variant::FLOAT) {
r_error.error = Callable::CallError::CALL_ERROR_INVALID_ARGUMENT;
@ -550,6 +552,9 @@ struct VariantUtilityFunctions {
r_error.argument = i;
return Variant();
}
if (i == 0) {
continue;
}
bool valid;
Variant::evaluate(Variant::OP_LESS, base, *p_args[i], ret, valid);
if (!valid) {
@ -582,7 +587,8 @@ struct VariantUtilityFunctions {
}
Variant base = *p_args[0];
Variant ret;
for (int i = 1; i < p_argcount; i++) {
for (int i = 0; i < p_argcount; i++) {
Variant::Type arg_type = p_args[i]->get_type();
if (arg_type != Variant::INT && arg_type != Variant::FLOAT) {
r_error.error = Callable::CallError::CALL_ERROR_INVALID_ARGUMENT;
@ -590,6 +596,9 @@ struct VariantUtilityFunctions {
r_error.argument = i;
return Variant();
}
if (i == 0) {
continue;
}
bool valid;
Variant::evaluate(Variant::OP_GREATER, base, *p_args[i], ret, valid);
if (!valid) {

View File

@ -40,13 +40,13 @@
// Defines the main "branch" version. Patch versions in this branch should be
// forward-compatible.
// Example: "3.1"
#define VERSION_BRANCH "" _MKSTR(VERSION_MAJOR) "." _MKSTR(VERSION_MINOR)
#define VERSION_BRANCH _MKSTR(VERSION_MAJOR) "." _MKSTR(VERSION_MINOR)
#if VERSION_PATCH
// Example: "3.1.4"
#define VERSION_NUMBER "" VERSION_BRANCH "." _MKSTR(VERSION_PATCH)
#define VERSION_NUMBER VERSION_BRANCH "." _MKSTR(VERSION_PATCH)
#else // patch is 0, we don't include it in the "pretty" version number.
// Example: "3.1" instead of "3.1.0"
#define VERSION_NUMBER "" VERSION_BRANCH
#define VERSION_NUMBER VERSION_BRANCH
#endif // VERSION_PATCH
// Version number encoded as hexadecimal int with one byte for each number,
@ -57,16 +57,16 @@
// Describes the full configuration of that Godot version, including the version number,
// the status (beta, stable, etc.) and potential module-specific features (e.g. mono).
// Example: "3.1.4.stable.mono"
#define VERSION_FULL_CONFIG "" VERSION_NUMBER "." VERSION_STATUS VERSION_MODULE_CONFIG
#define VERSION_FULL_CONFIG VERSION_NUMBER "." VERSION_STATUS VERSION_MODULE_CONFIG
// Similar to VERSION_FULL_CONFIG, but also includes the (potentially custom) VERSION_BUILD
// description (e.g. official, custom_build, etc.).
// Example: "3.1.4.stable.mono.official"
#define VERSION_FULL_BUILD "" VERSION_FULL_CONFIG "." VERSION_BUILD
#define VERSION_FULL_BUILD VERSION_FULL_CONFIG "." VERSION_BUILD
// Same as above, but prepended with Godot's name and a cosmetic "v" for "version".
// Example: "Godot v3.1.4.stable.official.mono"
#define VERSION_FULL_NAME "" VERSION_NAME " v" VERSION_FULL_BUILD
#define VERSION_FULL_NAME VERSION_NAME " v" VERSION_FULL_BUILD
// Git commit hash, generated at build time in `core/version_hash.gen.cpp`.
extern const char *const VERSION_HASH;

View File

@ -1,28 +1,28 @@
BASEDIR = .
CLASSES = $(BASEDIR)/classes/ $(BASEDIR)/../modules/
CLASSES = "$(BASEDIR)/classes/" "$(BASEDIR)/../modules/"
OUTPUTDIR = $(BASEDIR)/_build
TOOLSDIR = $(BASEDIR)/tools
JSDIR = $(BASEDIR)/../platform/web
JSDIR = "$(BASEDIR)/../platform/web"
LANGARG ?= en
LANGCMD = -l $(LANGARG)
.ONESHELL:
clean:
rm -rf $(OUTPUTDIR)
rm -rf "$(OUTPUTDIR)"
doxygen:
rm -rf $(OUTPUTDIR)/doxygen
mkdir -p $(OUTPUTDIR)/doxygen
rm -rf "$(OUTPUTDIR)/doxygen"
mkdir -p "$(OUTPUTDIR)/doxygen"
doxygen Doxyfile
rst:
rm -rf $(OUTPUTDIR)/rst
mkdir -p $(OUTPUTDIR)/rst
python3 $(TOOLSDIR)/make_rst.py -o $(OUTPUTDIR)/rst $(LANGCMD) $(CLASSES)
rm -rf "$(OUTPUTDIR)/rst"
mkdir -p "$(OUTPUTDIR)/rst"
python3 "$(TOOLSDIR)/make_rst.py" -o "$(OUTPUTDIR)/rst" "$(LANGCMD)" $(CLASSES)
rstjs:
rm -rf $(OUTPUTDIR)/rstjs
mkdir -p $(OUTPUTDIR)/rstjs
npm --prefix $(JSDIR) ci
npm --prefix $(JSDIR) run docs -- --destination $(OUTPUTDIR)/rstjs/html5_shell_classref.rst
rm -rf "$(OUTPUTDIR)/rstjs"
mkdir -p "$(OUTPUTDIR)/rstjs"
npm --prefix "$(JSDIR)" ci
npm --prefix "$(JSDIR)" run docs -- --destination "$(OUTPUTDIR)/rstjs/html5_shell_classref.rst"

View File

@ -65,7 +65,7 @@
<return type="float" />
<param index="0" name="x" type="float" />
<description>
Returns the arc cosine of [param x] in radians. Use to get the angle of cosine [param x]. [param x] must be between [code]-1.0[/code] and [code]1.0[/code] (inclusive), otherwise, [method acos] will return [constant @GDScript.NAN].
Returns the arc cosine of [param x] in radians. Use to get the angle of cosine [param x]. [param x] will be clamped between [code]-1.0[/code] and [code]1.0[/code] (inclusive), in order to prevent [method acos] from returning [constant @GDScript.NAN].
[codeblock]
# c is 0.523599 or 30 degrees if converted with rad_to_deg(c)
var c = acos(0.866025)
@ -76,7 +76,7 @@
<return type="float" />
<param index="0" name="x" type="float" />
<description>
Returns the arc sine of [param x] in radians. Use to get the angle of sine [param x]. [param x] must be between [code]-1.0[/code] and [code]1.0[/code] (inclusive), otherwise, [method asin] will return [constant @GDScript.NAN].
Returns the arc sine of [param x] in radians. Use to get the angle of sine [param x]. [param x] will be clamped between [code]-1.0[/code] and [code]1.0[/code] (inclusive), in order to prevent [method asin] from returning [constant @GDScript.NAN].
[codeblock]
# s is 0.523599 or 30 degrees if converted with rad_to_deg(s)
var s = asin(0.5)
@ -341,7 +341,7 @@
- 1.0: Linear
- Greater than 1.0 (exclusive): Ease in
[/codeblock]
[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/ease_cheatsheet.png]ease() curve values cheatsheet[/url]
[url=https://raw.githubusercontent.com/godotengine/godot-docs/4.0/img/ease_cheatsheet.png]ease() curve values cheatsheet[/url]
See also [method smoothstep]. If you need to perform more advanced transitions, use [method Tween.interpolate_value].
</description>
</method>
@ -622,7 +622,7 @@
<description>
Linearly interpolates between two values by the factor defined in [param weight]. To perform interpolation, [param weight] should be between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values outside this range are allowed and can be used to perform [i]extrapolation[/i]. If this is not desired, use [method clampf] on the result of this function.
[codeblock]
lerp(0, 4, 0.75) # Returns 3.0
lerpf(0, 4, 0.75) # Returns 3.0
[/codeblock]
See also [method inverse_lerp] which performs the reverse of this operation. To perform eased interpolation with [method lerp], combine it with [method ease] or [method smoothstep].
</description>
@ -645,8 +645,8 @@
<return type="float" />
<param index="0" name="x" type="float" />
<description>
Returns the natural logarithm of [param x]. This is the amount of time needed to reach a certain level of continuous growth.
[b]Note:[/b] This is not the same as the "log" function on most calculators, which uses a base 10 logarithm.
Returns the [url=https://en.wikipedia.org/wiki/Natural_logarithm]natural logarithm[/url] of [param x] (base [url=https://en.wikipedia.org/wiki/E_(mathematical_constant)][i]e[/i][/url], with [i]e[/i] being approximately 2.71828). This is the amount of time needed to reach a certain level of continuous growth.
[b]Note:[/b] This is not the same as the "log" function on most calculators, which uses a base 10 logarithm. To use base 10 logarithm, use [code]log(x) / log(10)[/code].
[codeblock]
log(10) # Returns 2.302585
[/codeblock]
@ -826,17 +826,21 @@
</method>
<method name="print_rich" qualifiers="vararg">
<description>
Converts one or more arguments of any type to string in the best way possible and prints them to the console. The following BBCode tags are supported: b, i, u, s, indent, code, url, center, right, color, bgcolor, fgcolor. Color tags only support named colors such as [code]red[/code], [i]not[/i] hexadecimal color codes. Unsupported tags will be left as-is in standard output.
When printing to standard output, the supported subset of BBCode is converted to ANSI escape codes for the terminal emulator to display. Displaying ANSI escape codes is currently only supported on Linux and macOS. Support for ANSI escape codes may vary across terminal emulators, especially for italic and strikethrough.
Converts one or more arguments of any type to string in the best way possible and prints them to the console.
The following BBCode tags are supported: [code]b[/code], [code]i[/code], [code]u[/code], [code]s[/code], [code]indent[/code], [code]code[/code], [code]url[/code], [code]center[/code], [code]right[/code], [code]color[/code], [code]bgcolor[/code], [code]fgcolor[/code].
Color tags only support the following named colors: [code]black[/code], [code]red[/code], [code]green[/code], [code]yellow[/code], [code]blue[/code], [code]magenta[/code], [code]pink[/code], [code]purple[/code], [code]cyan[/code], [code]white[/code], [code]orange[/code], [code]gray[/code]. Hexadecimal color codes are not supported.
URL tags only support URLs wrapped by a URL tag, not URLs with a different title.
When printing to standard output, the supported subset of BBCode is converted to ANSI escape codes for the terminal emulator to display. Support for ANSI escape codes varies across terminal emulators, especially for italic and strikethrough. In standard output, [code]code[/code] is represented with faint text but without any font change. Unsupported tags are left as-is in standard output.
[codeblocks]
[gdscript]
print_rich("[code][b]Hello world![/b][/code]") # Prints out: [b]Hello world![/b]
print_rich("[color=green][b]Hello world![/b][/color]") # Prints out "Hello world!" in green with a bold font
[/gdscript]
[csharp]
GD.PrintRich("[code][b]Hello world![/b][/code]"); // Prints out: [b]Hello world![/b]
GD.PrintRich("[color=green][b]Hello world![/b][/color]"); // Prints out "Hello world!" in green with a bold font
[/csharp]
[/codeblocks]
[b]Note:[/b] Consider using [method push_error] and [method push_warning] to print error and warning messages instead of [method print] or [method print_rich]. This distinguishes them from print messages used for debugging purposes, while also displaying a stack trace when an error or warning is printed.
[b]Note:[/b] On Windows, only Windows 10 and later correctly displays ANSI escape codes in standard output.
</description>
</method>
<method name="print_verbose" qualifiers="vararg">
@ -1142,9 +1146,9 @@
<description>
Returns [code]-1.0[/code] if [param x] is negative, [code]1.0[/code] if [param x] is positive, and [code]0.0[/code] if [param x] is zero.
[codeblock]
sign(-6.5) # Returns -1.0
sign(0.0) # Returns 0.0
sign(6.5) # Returns 1.0
signf(-6.5) # Returns -1.0
signf(0.0) # Returns 0.0
signf(6.5) # Returns 1.0
[/codeblock]
</description>
</method>
@ -1154,9 +1158,9 @@
<description>
Returns [code]-1[/code] if [param x] is negative, [code]1[/code] if [param x] is positive, and [code]0[/code] if if [param x] is zero.
[codeblock]
sign(-6) # Returns -1
sign(0) # Returns 0
sign(6) # Returns 1
signi(-6) # Returns -1
signi(0) # Returns 0
signi(6) # Returns 1
[/codeblock]
</description>
</method>
@ -1198,7 +1202,7 @@
smoothstep(0, 2, 2.0) # Returns 1.0
[/codeblock]
Compared to [method ease] with a curve value of [code]-1.6521[/code], [method smoothstep] returns the smoothest possible curve with no sudden changes in the derivative. If you need to perform more advanced transitions, use [Tween] or [AnimationPlayer].
[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/smoothstep_ease_comparison.png]Comparison between smoothstep() and ease(x, -1.6521) return values[/url]
[url=https://raw.githubusercontent.com/godotengine/godot-docs/4.0/img/smoothstep_ease_comparison.png]Comparison between smoothstep() and ease(x, -1.6521) return values[/url]
</description>
</method>
<method name="snapped">
@ -1226,8 +1230,8 @@
Returns the multiple of [param step] that is the closest to [param x]. This can also be used to round a floating point number to an arbitrary number of decimals.
A type-safe version of [method snapped], returning a [float].
[codeblock]
snapped(32.0, 2.5) # Returns 32.5
snapped(3.14159, 0.01) # Returns 3.14
snappedf(32.0, 2.5) # Returns 32.5
snappedf(3.14159, 0.01) # Returns 3.14
[/codeblock]
</description>
</method>
@ -1239,8 +1243,8 @@
Returns the multiple of [param step] that is the closest to [param x].
A type-safe version of [method snapped], returning an [int].
[codeblock]
snapped(53, 16) # Returns 48
snapped(4096, 100) # Returns 4100
snappedi(53, 16) # Returns 48
snappedi(4096, 100) # Returns 4100
[/codeblock]
</description>
</method>
@ -2432,10 +2436,10 @@
Enum value which doesn't correspond to any MIDI message. This is used to initialize [enum MIDIMessage] properties with a generic state.
</constant>
<constant name="MIDI_MESSAGE_NOTE_OFF" value="8" enum="MIDIMessage">
MIDI note OFF message. See the documentation of [InputEventMIDI] for information of how to use MIDI inputs.
MIDI note OFF message. Not all MIDI devices send this event; some send [constant MIDI_MESSAGE_NOTE_ON] with zero velocity instead. See the documentation of [InputEventMIDI] for information of how to use MIDI inputs.
</constant>
<constant name="MIDI_MESSAGE_NOTE_ON" value="9" enum="MIDIMessage">
MIDI note ON message. See the documentation of [InputEventMIDI] for information of how to use MIDI inputs.
MIDI note ON message. Some MIDI devices send this event with velocity zero instead of [constant MIDI_MESSAGE_NOTE_OFF], but implementations vary. See the documentation of [InputEventMIDI] for information of how to use MIDI inputs.
</constant>
<constant name="MIDI_MESSAGE_AFTERTOUCH" value="10" enum="MIDIMessage">
MIDI aftertouch message. This message is most often sent by pressing down on the key after it "bottoms out".
@ -2773,6 +2777,7 @@
The property is shown in the [EditorInspector] (default).
</constant>
<constant name="PROPERTY_USAGE_INTERNAL" value="8" enum="PropertyUsageFlags" is_bitfield="true">
The property is excluded from the class reference.
</constant>
<constant name="PROPERTY_USAGE_CHECKABLE" value="16" enum="PropertyUsageFlags" is_bitfield="true">
The property can be checked in the [EditorInspector].
@ -2838,10 +2843,10 @@
The property is read-only in the [EditorInspector].
</constant>
<constant name="PROPERTY_USAGE_DEFAULT" value="6" enum="PropertyUsageFlags" is_bitfield="true">
Default usage (storage, editor and network).
Default usage (storage and editor).
</constant>
<constant name="PROPERTY_USAGE_NO_EDITOR" value="2" enum="PropertyUsageFlags" is_bitfield="true">
Default usage but without showing the property in the editor (storage, network).
Default usage but without showing the property in the editor (storage).
</constant>
<constant name="METHOD_FLAG_NORMAL" value="1" enum="MethodFlags" is_bitfield="true">
Flag for a normal method.

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AABB" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Axis-Aligned Bounding Box.
A 3D axis-aligned bounding box.
</brief_description>
<description>
[AABB] consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.
@ -188,7 +188,7 @@
<param index="0" name="from" type="Vector3" />
<param index="1" name="dir" type="Vector3" />
<description>
Returns [code]true[/code] if the given ray intersects with this [AABB]. Ray length is infinite.
Returns the point of intersection of the given ray with this [AABB] or [code]null[/code] if there is no intersection. Ray length is infinite.
</description>
</method>
<method name="intersects_segment" qualifiers="const">
@ -196,7 +196,7 @@
<param index="0" name="from" type="Vector3" />
<param index="1" name="to" type="Vector3" />
<description>
Returns [code]true[/code] if the [AABB] intersects the line segment between [param from] and [param to].
Returns the point of intersection between [param from] and [param to] with this [AABB] or [code]null[/code] if there is no intersection.
</description>
</method>
<method name="is_equal_approx" qualifiers="const">
@ -237,7 +237,7 @@
<return type="bool" />
<param index="0" name="right" type="AABB" />
<description>
Returns [code]true[/code] if the vectors are not equal.
Returns [code]true[/code] if the AABBs are not equal.
[b]Note:[/b] Due to floating-point precision errors, consider using [method is_equal_approx] instead, which is more reliable.
</description>
</operator>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AESContext" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Interface to low level AES encryption features.
Provides access to AES encryption/decryption of raw data.
</brief_description>
<description>
This class provides access to AES encryption/decryption of raw data. Both AES-ECB and AES-CBC mode are supported.
This class holds the context information required for encryption and decryption operations with AES (Advanced Encryption Standard). Both AES-ECB and AES-CBC modes are supported.
[codeblocks]
[gdscript]
extends Node
@ -15,27 +15,27 @@
var key = "My secret key!!!" # Key must be either 16 or 32 bytes.
var data = "My secret text!!" # Data size must be multiple of 16 bytes, apply padding if needed.
# Encrypt ECB
aes.start(AESContext.MODE_ECB_ENCRYPT, key.to_utf8())
var encrypted = aes.update(data.to_utf8())
aes.start(AESContext.MODE_ECB_ENCRYPT, key.to_utf8_buffer())
var encrypted = aes.update(data.to_utf8_buffer())
aes.finish()
# Decrypt ECB
aes.start(AESContext.MODE_ECB_DECRYPT, key.to_utf8())
aes.start(AESContext.MODE_ECB_DECRYPT, key.to_utf8_buffer())
var decrypted = aes.update(encrypted)
aes.finish()
# Check ECB
assert(decrypted == data.to_utf8())
assert(decrypted == data.to_utf8_buffer())
var iv = "My secret iv!!!!" # IV must be of exactly 16 bytes.
# Encrypt CBC
aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8(), iv.to_utf8())
encrypted = aes.update(data.to_utf8())
aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8_buffer(), iv.to_utf8_buffer())
encrypted = aes.update(data.to_utf8_buffer())
aes.finish()
# Decrypt CBC
aes.start(AESContext.MODE_CBC_DECRYPT, key.to_utf8(), iv.to_utf8())
aes.start(AESContext.MODE_CBC_DECRYPT, key.to_utf8_buffer(), iv.to_utf8_buffer())
decrypted = aes.update(encrypted)
aes.finish()
# Check CBC
assert(decrypted == data.to_utf8())
assert(decrypted == data.to_utf8_buffer())
[/gdscript]
[csharp]
using Godot;
@ -50,27 +50,27 @@
string key = "My secret key!!!"; // Key must be either 16 or 32 bytes.
string data = "My secret text!!"; // Data size must be multiple of 16 bytes, apply padding if needed.
// Encrypt ECB
_aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8());
byte[] encrypted = _aes.Update(data.ToUtf8());
_aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer());
byte[] encrypted = _aes.Update(data.ToUtf8Buffer());
_aes.Finish();
// Decrypt ECB
_aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8());
_aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer());
byte[] decrypted = _aes.Update(encrypted);
_aes.Finish();
// Check ECB
Debug.Assert(decrypted == data.ToUtf8());
Debug.Assert(decrypted == data.ToUtf8Buffer());
string iv = "My secret iv!!!!"; // IV must be of exactly 16 bytes.
// Encrypt CBC
_aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8(), iv.ToUtf8());
encrypted = _aes.Update(data.ToUtf8());
_aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer(), iv.ToUtf8Buffer());
encrypted = _aes.Update(data.ToUtf8Buffer());
_aes.Finish();
// Decrypt CBC
_aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8(), iv.ToUtf8());
_aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer(), iv.ToUtf8Buffer());
decrypted = _aes.Update(encrypted);
_aes.Finish();
// Check CBC
Debug.Assert(decrypted == data.ToUtf8());
Debug.Assert(decrypted == data.ToUtf8Buffer());
}
}
[/csharp]

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AcceptDialog" inherits="Window" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Base dialog for user notification.
A base dialog used for user notification.
</brief_description>
<description>
This dialog is useful for small notifications to the user about an event. It can only be accepted or closed, with the same result.
The default use of [AcceptDialog] is to allow it to only be accepted or closed, with the same result. However, the [signal confirmed] and [signal canceled] signals allow to make the two actions different, and the [method add_button] method allows to add custom buttons and actions.
</description>
<tutorials>
</tutorials>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimatableBody2D" inherits="StaticBody2D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Physics body for 2D physics which moves only by script or animation. Useful for moving platforms and doors.
Physics body for 2D physics which moves only by script or animation (while affecting other bodies on its path). Useful for moving platforms and doors.
</brief_description>
<description>
Animatable body for 2D physics.

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimatableBody3D" inherits="StaticBody3D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Physics body for 3D physics which moves only by script or animation. Useful for moving platforms and doors.
Physics body for 3D physics which moves only by script or animation (while affecting other bodies on its path). Useful for moving platforms and doors.
</brief_description>
<description>
Animatable body for 3D physics.

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Animation" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Contains data used to animate everything in the engine.
Holds data that can be used to animate anything in the engine.
</brief_description>
<description>
An Animation resource contains data used to animate everything in the engine. Animations are divided into tracks, and each track must be linked to a node. The state of that node can be changed through time, by adding timed keys (events) to the track.
This resource holds data that can be used to animate anything in the engine. Animations are divided into tracks and each track must be linked to a node. The state of that node can be changed through time, by adding timed keys (events) to the track.
[codeblocks]
[gdscript]
# This creates an animation that makes the node "Enemy" move to the right by

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNode" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Base resource for [AnimationTree] nodes.
Base class for [AnimationTree] nodes. Not related to scene nodes.
</brief_description>
<description>
Base resource for [AnimationTree] nodes. In general, it's not used directly, but you can create custom ones with custom blending formulas.
Inherit this when creating nodes mainly for use in [AnimationNodeBlendTree], otherwise [AnimationRootNode] should be used instead.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="_get_caption" qualifiers="virtual const">

View File

@ -7,6 +7,6 @@
A resource to add to an [AnimationNodeBlendTree]. Blends two animations additively based on an amount value in the [code][0.0, 1.0][/code] range.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
</class>

View File

@ -11,7 +11,7 @@
- A +add animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
</class>

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeAnimation" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Input animation to use in an [AnimationNodeBlendTree].
An input animation for an [AnimationNodeBlendTree].
</brief_description>
<description>
A resource to add to an [AnimationNodeBlendTree]. Only features one output set using the [member animation] property. Use it as an input for [AnimationNode] that blend animations together.
A resource to add to an [AnimationNodeBlendTree]. Only has one output port using the [member animation] property. Used as an input for [AnimationNode]s that blend animations together.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>

View File

@ -7,7 +7,7 @@
A resource to add to an [AnimationNodeBlendTree]. Blends two animations linearly based on an amount value in the [code][0.0, 1.0][/code] range.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>

View File

@ -11,6 +11,6 @@
- A +blend animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
</class>

View File

@ -1,16 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeBlendSpace1D" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Blends linearly between two of any number of [AnimationNode] of any type placed on a virtual axis.
A set of [AnimationRootNode]s placed on a virtual axis, crossfading between the two adjacent ones. Used by [AnimationTree].
</brief_description>
<description>
A resource to add to an [AnimationNodeBlendTree].
This is a virtual axis on which you can add any type of [AnimationNode] using [method add_blend_point].
Outputs the linear blend of the two [AnimationNode]s closest to the node's current value.
You can set the extents of the axis using the [member min_space] and [member max_space].
A resource used by [AnimationNodeBlendTree].
[AnimationNodeBlendSpace1D] represents a virtual axis on which any type of [AnimationRootNode]s can be added using [method add_blend_point]. Outputs the linear blend of the two [AnimationRootNode]s adjacent to the current value.
You can set the extents of the axis with [member min_space] and [member max_space].
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_blend_point">

View File

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeBlendSpace2D" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Blends linearly between three [AnimationNode] of any type placed in a 2D space.
A set of [AnimationRootNode]s placed on 2D coordinates, crossfading between the three adjacent ones. Used by [AnimationTree].
</brief_description>
<description>
A resource to add to an [AnimationNodeBlendTree].
This node allows you to blend linearly between three animations using a [Vector2] weight.
You can add vertices to the blend space with [method add_blend_point] and automatically triangulate it by setting [member auto_triangles] to [code]true[/code]. Otherwise, use [method add_triangle] and [method remove_triangle] to create up the blend space by hand.
A resource used by [AnimationNodeBlendTree].
[AnimationNodeBlendSpace1D] represents a virtual 2D space on which [AnimationRootNode]s are placed. Outputs the linear blend of the three adjacent animations using a [Vector2] weight. Adjacent in this context means the three [AnimationRootNode]s making up the triangle that contains the current value.
You can add vertices to the blend space with [method add_blend_point] and automatically triangulate it by setting [member auto_triangles] to [code]true[/code]. Otherwise, use [method add_triangle] and [method remove_triangle] to triangulate the blend space by hand.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
<methods>

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeBlendTree" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
[AnimationTree] node resource that contains many blend type nodes.
A sub-tree of blend type [AnimationNode]s used for complex animations. Used by [AnimationTree].
</brief_description>
<description>
This node may contain a sub-tree of any other blend type nodes, such as [AnimationNodeTransition], [AnimationNodeBlend2], [AnimationNodeBlend3], [AnimationNodeOneShot], etc. This is one of the most commonly used roots.
This node may contain a sub-tree of any other blend type nodes, such as [AnimationNodeTransition], [AnimationNodeBlend2], [AnimationNodeBlend3], [AnimationNodeOneShot], etc. This is one of the most commonly used animation node roots.
An [AnimationNodeOutput] node named [code]output[/code] is created by default.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_node">

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeOneShot" inherits="AnimationNodeSync" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Plays an animation once in [AnimationNodeBlendTree].
Plays an animation once in an [AnimationNodeBlendTree].
</brief_description>
<description>
A resource to add to an [AnimationNodeBlendTree]. This node will execute a sub-animation and return once it finishes. Blend times for fading in and out can be customized, as well as filters.
@ -25,10 +25,10 @@
[/gdscript]
[csharp]
// Play child animation connected to "shot" port.
animationTree.Set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE);
animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Fire);
// Abort child animation connected to "shot" port.
animationTree.Set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT);
animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Abort);
// Get current state (read-only).
animationTree.Get("parameters/OneShot/active");
@ -36,7 +36,7 @@
[/codeblocks]
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
<members>

View File

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeOutput" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Generic output node to be added to [AnimationNodeBlendTree].
The animation output node of an [AnimationNodeBlendTree].
</brief_description>
<description>
A node created automatically in an [AnimationNodeBlendTree] that outputs the final animation.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeStateMachine" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
State machine for control of animations.
A state machine with multiple [AnimationRootNode]s, used by [AnimationTree].
</brief_description>
<description>
Contains multiple nodes representing animation states, connected in a graph. Node transitions can be configured to happen automatically or via code, using a shortest-path algorithm. Retrieve the [AnimationNodeStateMachinePlayback] object from the [AnimationTree] node to control it programmatically.
Contains multiple [AnimationRootNode]s representing animation states, connected in a graph. Node transitions can be configured to happen automatically or via code, using a shortest-path algorithm. Retrieve the [AnimationNodeStateMachinePlayback] object from the [AnimationTree] node to control it programmatically.
[b]Example:[/b]
[codeblocks]
[gdscript]
@ -18,7 +18,7 @@
[/codeblocks]
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_node">

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeStateMachinePlayback" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Playback control for [AnimationNodeStateMachine].
Provides playback control for an [AnimationNodeStateMachine].
</brief_description>
<description>
Allows control of [AnimationTree] state machines created with [AnimationNodeStateMachine]. Retrieve with [code]$AnimationTree.get("parameters/playback")[/code].
@ -12,13 +12,13 @@
state_machine.travel("some_state")
[/gdscript]
[csharp]
var stateMachine = GetNode&lt;AnimationTree&gt;("AnimationTree").Get("parameters/playback") as AnimationNodeStateMachinePlayback;
var stateMachine = GetNode&lt;AnimationTree&gt;("AnimationTree").Get("parameters/playback").As&lt;AnimationNodeStateMachinePlayback&gt;();
stateMachine.Travel("some_state");
[/csharp]
[/codeblocks]
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="get_current_length" qualifiers="const">

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeStateMachineTransition" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A resource to connect each node to make a path for [AnimationNodeStateMachine].
A transition within an [AnimationNodeStateMachine] connecting two [AnimationRootNode]s.
</brief_description>
<description>
The path generated when using [method AnimationNodeStateMachinePlayback.travel] is limited to the nodes connected by [AnimationNodeStateMachineTransition].
You can set the timing and conditions of the transition in detail.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<members>
<member name="advance_condition" type="StringName" setter="set_advance_condition" getter="get_advance_condition" default="&amp;&quot;&quot;">

View File

@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeSync" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
The base class for [AnimationNode] which has more than two input ports and needs to synchronize them.
Base class for [AnimationNode]s with more than two input ports that must be synchronized.
</brief_description>
<description>
An animation node used to combine, mix, or blend two or more animations together while keeping them synchronized within an [AnimationTree].
</description>
<tutorials>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<members>
<member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync" default="false">

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeTimeScale" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A time-scaling animation node to be used with [AnimationTree].
A time-scaling animation node used in [AnimationTree].
</brief_description>
<description>
Allows scaling the speed of the animation (or reversing it) in any children nodes. Setting it to 0 will pause the animation.
Allows to scale the speed of the animation (or reverse it) in any children [AnimationNode]s. Setting it to [code]0.0[/code] will pause the animation.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
</tutorials>
</class>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeTimeSeek" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A time-seeking animation node to be used with [AnimationTree].
A time-seeking animation node used in [AnimationTree].
</brief_description>
<description>
This node can be used to cause a seek command to happen to any sub-children of the animation graph. Use this node type to play an [Animation] from the start or a certain playback position inside the [AnimationNodeBlendTree].
@ -28,6 +28,6 @@
[/codeblocks]
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
</class>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeTransition" inherits="AnimationNodeSync" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A generic animation transition node for [AnimationTree].
A transition within an [AnimationTree] connecting two [AnimationNode]s.
</brief_description>
<description>
Simple state machine for cases which don't require a more advanced [AnimationNodeStateMachine]. Animations can be connected to the inputs and transition times can be specified.
@ -37,7 +37,7 @@
[/codeblocks]
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationPlayer" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Player of [Animation] resources.
A node used for animation playback.
</brief_description>
<description>
An animation player is used for general-purpose playback of [Animation] resources. It contains a dictionary of [AnimationLibrary] resources and custom blend times between animation transitions.
An animation player is used for general-purpose playback of animations. It contains a dictionary of [AnimationLibrary] resources and custom blend times between animation transitions.
Some methods and properties use a single key to reference an animation directly. These keys are formatted as the key for the library, followed by a forward slash, then the key for the animation within the library, for example [code]"movement/run"[/code]. If the library's key is an empty string (known as the default library), the forward slash is omitted, being the same key used by the library.
[AnimationPlayer] is more suited than [Tween] for animations where you know the final values in advance. For example, fading a screen in and out is more easily done with an [AnimationPlayer] node thanks to the animation tools provided by the editor. That particular example can also be implemented with a [Tween], but it requires doing everything by code.
Updating the target properties of animations occurs at process time.
[AnimationPlayer] is better-suited than [Tween] for more complex animations, for example ones with non-trivial timings. It can also be used over [Tween] if the animation track editor is more convenient than doing it in code.
Updating the target properties of animations occurs at the process frame.
</description>
<tutorials>
<link title="2D Sprite animation">$DOCS_URL/tutorials/2d/2d_sprite_animation.html</link>
@ -94,6 +94,7 @@
<param index="0" name="name" type="StringName" />
<description>
Returns the first [AnimationLibrary] with key [param name] or [code]null[/code] if not found.
To get the [AnimationPlayer]'s global animation library, use [code]get_animation_library("")[/code].
</description>
</method>
<method name="get_animation_library_list" qualifiers="const">
@ -230,7 +231,7 @@
</methods>
<members>
<member name="assigned_animation" type="String" setter="set_assigned_animation" getter="get_assigned_animation">
If playing, the the current animation's key, otherwise, the animation last played. When set, this changes the animation, but will not play it unless already playing. See also [member current_animation].
If playing, the current animation's key, otherwise, the animation last played. When set, this changes the animation, but will not play it unless already playing. See also [member current_animation].
</member>
<member name="audio_max_polyphony" type="int" setter="set_audio_max_polyphony" getter="get_audio_max_polyphony" default="32">
The number of possible simultaneous sounds for each of the assigned AudioStreamPlayers.

View File

@ -1,10 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationRootNode" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
The [AnimationNode] which can be set as the root of an [AnimationTree].
Base class for [AnimationNode]s that hold one or multiple composite animations. Usually used for [member AnimationTree.tree_root].
</brief_description>
<description>
[AnimationRootNode] is a base class for [AnimationNode]s that hold a complete animation. A complete animation refers to the output of an [AnimationNodeOutput] in an [AnimationNodeBlendTree] or the output of another [AnimationRootNode]. Used for [member AnimationTree.tree_root] or in other [AnimationRootNode]s.
</description>
<tutorials>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
</class>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationTree" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A node to be used for advanced animation transitions in an [AnimationPlayer].
A node used for advanced animation transitions in an [AnimationPlayer].
</brief_description>
<description>
A node to be used for advanced animation transitions in an [AnimationPlayer].
A node used for advanced animation transitions in an [AnimationPlayer].
[b]Note:[/b] When linked with an [AnimationPlayer], several properties and methods of the corresponding [AnimationPlayer] will not function as expected. Playback and transitions should be handled using only the [AnimationTree] and its constituent [AnimationNode](s). The [AnimationPlayer] node should be used solely for adding, deleting, and editing animations.
</description>
<tutorials>

View File

@ -128,7 +128,7 @@
The magnitude of area-specific wind force.
</member>
<member name="wind_source_path" type="NodePath" setter="set_wind_source_path" getter="get_wind_source_path" default="NodePath(&quot;&quot;)">
The [Node3D] which is used to specify the the direction and origin of an area-specific wind force. The direction is opposite to the z-axis of the [Node3D]'s local transform, and its origin is the origin of the [Node3D]'s local transform.
The [Node3D] which is used to specify the direction and origin of an area-specific wind force. The direction is opposite to the z-axis of the [Node3D]'s local transform, and its origin is the origin of the [Node3D]'s local transform.
</member>
</members>
<signals>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Array" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A generic array datatype.
A built-in data structure that holds a sequence of elements.
</brief_description>
<description>
A generic array that can contain several elements of any type, accessible by a numerical index starting at 0. Negative indices can be used to count from the back, like in Python (-1 is the last element, -2 is the second to last, etc.).
An array data structure that can contain a sequence of elements of any type. Elements are accessed by a numerical index starting at 0. Negative indices are used to count from the back (-1 is the last element, -2 is the second to last, etc.).
[b]Example:[/b]
[codeblocks]
[gdscript]
@ -38,10 +38,8 @@
GD.Print(array1 + array2); // Prints [One, 2, 3, Four]
[/csharp]
[/codeblocks]
[b]Note:[/b] Concatenating with the [code]+=[/code] operator will create a new array, which has a cost. If you want to append another array to an existing array, [method append_array] is more efficient.
[b]Note:[/b] Arrays are always passed by reference. To get a copy of an array that can be modified independently of the original array, use [method duplicate].
[b]Note:[/b] Erasing elements while iterating over arrays is [b]not[/b] supported and will result in unpredictable behavior.
[b]Note:[/b] When declaring an array with [code]const[/code], the array itself can still be mutated by defining the values at individual indices or pushing/removing elements. Using [code]const[/code] will only prevent assigning the constant with another value after it was initialized.
</description>
<tutorials>
</tutorials>
@ -442,12 +440,23 @@
<return type="Variant" />
<description>
Returns the maximum value contained in the array if all elements are of comparable types. If the elements can't be compared, [code]null[/code] is returned.
To find the maximum value using a custom comparator, you can use [method reduce]. In this example every array element is checked and the first maximum value is returned:
[codeblock]
func _ready():
var arr = [Vector2(0, 1), Vector2(2, 0), Vector2(1, 1), Vector2(1, 0), Vector2(0, 2)]
# In this example we compare the lengths.
print(arr.reduce(func(max, val): return val if is_length_greater(val, max) else max))
func is_length_greater(a, b):
return a.length() &gt; b.length()
[/codeblock]
</description>
</method>
<method name="min" qualifiers="const">
<return type="Variant" />
<description>
Returns the minimum value contained in the array if all elements are of comparable types. If the elements can't be compared, [code]null[/code] is returned.
See also [method max] for an example of using a custom comparator.
</description>
</method>
<method name="pick_random" qualifiers="const">

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AspectRatioContainer" inherits="Container" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Container that preserves its child controls' aspect ratio.
A container that preserves the proportions of its child controls.
</brief_description>
<description>
Arranges child controls in a way to preserve their aspect ratio automatically whenever the container is resized. Solves the problem where the container size is dynamic and the contents' size needs to adjust accordingly without losing proportions.
A container type that arranges its child controls in a way that preserves their proportions automatically when the container is resized. Useful when a container has a dynamic size and the child nodes must adjust their sizes accordingly without losing their aspect ratios.
</description>
<tutorials>
<link title="GUI containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
<link title="Using Containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
</tutorials>
<members>
<member name="alignment_horizontal" type="int" setter="set_alignment_horizontal" getter="get_alignment_horizontal" enum="AspectRatioContainer.AlignmentMode" default="1">

View File

@ -1,16 +1,36 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AudioStreamGenerator" inherits="AudioStream" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Audio stream that generates sounds procedurally.
An audio stream with utilities for procedural sound generation.
</brief_description>
<description>
This audio stream does not play back sounds, but expects a script to generate audio data for it instead. See also [AudioStreamGeneratorPlayback].
[AudioStreamGenerator] is a type of audio stream that does not play back sounds on its own; instead, it expects a script to generate audio data for it. See also [AudioStreamGeneratorPlayback].
Here's a sample on how to use it to generate a sine wave:
[codeblock]
var playback # Will hold the AudioStreamGeneratorPlayback.
@onready var sample_hz = $AudioStreamPlayer.stream.mix_rate
var pulse_hz = 440.0 # The frequency of the sound wave.
func _ready():
$AudioStreamPlayer.play()
playback = $AudioStreamPlayer.get_stream_playback()
fill_buffer()
func fill_buffer():
var phase = 0.0
var increment = pulse_hz / sample_hz
var frames_available = playback.get_frames_available()
for i in range(frames_available):
playback.push_frame(Vector2.ONE * sin(phase * TAU))
phase = fmod(phase + increment, 1.0)
[/codeblock]
In the example above, the "AudioStreamPlayer" node must use an [AudioStreamGenerator] as its stream. The [code]fill_buffer[/code] function provides audio data for approximating a sine wave.
See also [AudioEffectSpectrumAnalyzer] for performing real-time audio spectrum analysis.
[b]Note:[/b] Due to performance constraints, this class is best used from C# or from a compiled language via GDExtension. If you still want to use this class from GDScript, consider using a lower [member mix_rate] such as 11,025 Hz or 22,050 Hz.
</description>
<tutorials>
<link title="Audio Generator Demo">https://godotengine.org/asset-library/asset/526</link>
<link title="Godot 3.2 will get new audio features">https://godotengine.org/article/godot-32-will-get-new-audio-features</link>
</tutorials>
<members>
<member name="buffer_length" type="float" setter="set_buffer_length" getter="get_buffer_length" default="0.5">

View File

@ -24,7 +24,7 @@
<param index="3" name="pitch_scale" type="float" default="1.0" />
<description>
Play an [AudioStream] at a given offset, volume and pitch scale. Playback starts immediately.
The return value is an unique integer ID that is associated to this playback stream and which can be used to control it.
The return value is a unique integer ID that is associated to this playback stream and which can be used to control it.
This ID becomes invalid when the stream ends (if it does not loop), when the [AudioStreamPlaybackPolyphonic] is stopped, or when [method stop_stream] is called.
This function returns [constant INVALID_ID] if the amount of streams currently playing equals [member AudioStreamPolyphonic.polyphony]. If you need a higher amount of maximum polyphony, raise this value.
</description>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="BaseButton" inherits="Control" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Base class for different kinds of buttons.
Abstract base class for GUI buttons.
</brief_description>
<description>
BaseButton is the abstract base class for buttons, so it shouldn't be used directly (it doesn't display anything). Other types of buttons inherit from it.
[BaseButton] is an abstract base class for GUI buttons. It doesn't display anything by itself.
</description>
<tutorials>
</tutorials>
@ -49,6 +49,7 @@
</member>
<member name="button_group" type="ButtonGroup" setter="set_button_group" getter="get_button_group">
The [ButtonGroup] associated with the button. Not to be confused with node groups.
[b]Note:[/b] The button will be configured as a radio button if a [ButtonGroup] is assigned to it.
</member>
<member name="button_mask" type="int" setter="set_button_mask" getter="get_button_mask" enum="MouseButtonMask" default="1">
Binary mask to choose which mouse buttons this button will respond to.

View File

@ -356,13 +356,13 @@
[b]Note:[/b] [member specular_mode] only applies to the specular blob. It does not affect specular reflections from the sky, screen-space reflections, [VoxelGI], SDFGI or [ReflectionProbe]s. To disable reflections from these sources as well, set [member metallic_specular] to [code]0.0[/code] instead.
</member>
<member name="subsurf_scatter_enabled" type="bool" setter="set_feature" getter="get_feature" default="false">
If [code]true[/code], subsurface scattering is enabled. Emulates light that penetrates an object's surface, is scattered, and then emerges.
If [code]true[/code], subsurface scattering is enabled. Emulates light that penetrates an object's surface, is scattered, and then emerges. Subsurface scattering quality is controlled by [member ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality].
</member>
<member name="subsurf_scatter_skin_mode" type="bool" setter="set_flag" getter="get_flag" default="false">
If [code]true[/code], subsurface scattering will use a special mode optimized for the color and density of human skin, such as boosting the intensity of the red channel in subsurface scattering.
</member>
<member name="subsurf_scatter_strength" type="float" setter="set_subsurface_scattering_strength" getter="get_subsurface_scattering_strength" default="0.0">
The strength of the subsurface scattering effect.
The strength of the subsurface scattering effect. The depth of the effect is also controlled by [member ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_scale], which is set globally.
</member>
<member name="subsurf_scatter_texture" type="Texture2D" setter="set_texture" getter="get_texture">
Texture used to control the subsurface scattering strength. Stored in the red texture channel. Multiplied by [member subsurf_scatter_strength].
@ -390,7 +390,7 @@
Repeat flags for the texture. See [enum TextureFilter] for options.
</member>
<member name="transparency" type="int" setter="set_transparency" getter="get_transparency" enum="BaseMaterial3D.Transparency" default="0">
If [code]true[/code], transparency is enabled on the body. Some transparency modes will disable shadow casting. Any transparency mode other than Disabled has a greater performance impact compared to opaque rendering. See also [member blend_mode].
The material's transparency mode. Some transparency modes will disable shadow casting. Any transparency mode other than [constant TRANSPARENCY_DISABLED] has a greater performance impact compared to opaque rendering. See also [member blend_mode].
</member>
<member name="use_particle_trails" type="bool" setter="set_flag" getter="get_flag" default="false">
If [code]true[/code], enables parts of the shader required for [GPUParticles3D] trails to function. This also requires using a mesh with appropriate skinning, such as [RibbonTrailMesh] or [TubeTrailMesh]. Enabling this feature outside of materials used in [GPUParticles3D] meshes will break material rendering.

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Basis" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
3×3 matrix datatype.
A 3×3 matrix for representing 3D rotation and scale.
</brief_description>
<description>
3×3 matrix used for 3D rotation and scale. Almost always used as an orthogonal basis for a [Transform3D].
A 3×3 matrix used for representing 3D rotation and scale. Usually used as an orthogonal basis for a [Transform3D].
Contains 3 vector fields X, Y and Z as its columns, which are typically interpreted as the local basis vectors of a transformation. For such use, it is composed of a scaling and a rotation matrix, in that order (M = R.S).
Can also be accessed as array of 3D vectors. These vectors are normally orthogonal to each other, but are not necessarily normalized (due to scaling).
Basis can also be accessed as an array of 3D vectors. These vectors are usually orthogonal to each other, but are not necessarily normalized (due to scaling).
For more information, read the "Matrices and transforms" documentation article.
</description>
<tutorials>
@ -110,13 +110,13 @@
<return type="bool" />
<param index="0" name="b" type="Basis" />
<description>
Returns [code]true[/code] if this basis and [param b] are approximately equal, by calling [code]is_equal_approx[/code] on each component.
Returns [code]true[/code] if this basis and [param b] are approximately equal, by calling [method @GlobalScope.is_equal_approx] on all vector components.
</description>
</method>
<method name="is_finite" qualifiers="const">
<return type="bool" />
<description>
Returns [code]true[/code] if this basis is finite, by calling [method @GlobalScope.is_finite] on each component.
Returns [code]true[/code] if this basis is finite, by calling [method @GlobalScope.is_finite] on all vector components.
</description>
</method>
<method name="looking_at" qualifiers="static">

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Bone2D" inherits="Node2D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Joint used with [Skeleton2D] to control and animate other nodes.
A joint used with [Skeleton2D] to control and animate other nodes.
</brief_description>
<description>
Use a hierarchy of [code]Bone2D[/code] bound to a [Skeleton2D] to control, and animate other [Node2D] nodes.
You can use [code]Bone2D[/code] and [code]Skeleton2D[/code] nodes to animate 2D meshes created with the Polygon 2D UV editor.
A hierarchy of [Bone2D]s can be bound to a [Skeleton2D] to control and animate other [Node2D] nodes.
You can use [Bone2D] and [Skeleton2D] nodes to animate 2D meshes created with the [Polygon2D] UV editor.
Each bone has a [member rest] transform that you can reset to with [method apply_rest]. These rest poses are relative to the bone's parent.
If in the editor, you can set the rest pose of an entire skeleton using a menu option, from the code, you need to iterate over the bones to set their individual rest poses.
</description>
@ -21,14 +21,14 @@
<method name="get_autocalculate_length_and_angle" qualifiers="const">
<return type="bool" />
<description>
Returns whether this [code]Bone2D[/code] node is going to autocalculate its length and bone angle using its first [code]Bone2D[/code] child node, if one exists. If there are no [code]Bone2D[/code] children, then it cannot autocalculate these values and will print a warning.
Returns whether this [Bone2D] is going to autocalculate its length and bone angle using its first [Bone2D] child node, if one exists. If there are no [Bone2D] children, then it cannot autocalculate these values and will print a warning.
</description>
</method>
<method name="get_bone_angle" qualifiers="const">
<return type="float" />
<description>
Returns the angle of the bone in the [code]Bone2D[/code] node.
[b]Note:[/b] This is different from the [code]Bone2D[/code]'s rotation. The bone angle is the rotation of the bone shown by the [code]Bone2D[/code] gizmo, and because [code]Bone2D[/code] bones are based on positions, this can vary from the actual rotation of the [code]Bone2D[/code] node.
Returns the angle of the bone in the [Bone2D].
[b]Note:[/b] This is different from the [Bone2D]'s rotation. The bone's angle is the rotation of the bone shown by the gizmo, which is unaffected by the [Bone2D]'s [member Node2D.transform].
</description>
</method>
<method name="get_index_in_skeleton" qualifiers="const">
@ -40,7 +40,7 @@
<method name="get_length" qualifiers="const">
<return type="float" />
<description>
Returns the length of the bone in the [code]Bone2D[/code] node.
Returns the length of the bone in the [Bone2D] node.
</description>
</method>
<method name="get_skeleton_rest" qualifiers="const">
@ -53,22 +53,22 @@
<return type="void" />
<param index="0" name="auto_calculate" type="bool" />
<description>
When set to [code]true[/code], the [code]Bone2D[/code] node will attempt to automatically calculate the bone angle and length using the first child [code]Bone2D[/code] node, if one exists. If none exist, the [code]Bone2D[/code] cannot automatically calculate these values and will print a warning.
When set to [code]true[/code], the [Bone2D] node will attempt to automatically calculate the bone angle and length using the first child [Bone2D] node, if one exists. If none exist, the [Bone2D] cannot automatically calculate these values and will print a warning.
</description>
</method>
<method name="set_bone_angle">
<return type="void" />
<param index="0" name="angle" type="float" />
<description>
Sets the bone angle for the [code]Bone2D[/code] node. This is typically set to the rotation from the [code]Bone2D[/code] node to a child [code]Bone2D[/code] node.
[b]Note:[/b] This is different from the [code]Bone2D[/code]'s rotation. The bone angle is the rotation of the bone shown by the [code]Bone2D[/code] gizmo, and because [code]Bone2D[/code] bones are based on positions, this can vary from the actual rotation of the [code]Bone2D[/code] node.
Sets the bone angle for the [Bone2D]. This is typically set to the rotation from the [Bone2D] to a child [Bone2D] node.
[b]Note:[/b] [b]Note:[/b] This is different from the [Bone2D]'s rotation. The bone's angle is the rotation of the bone shown by the gizmo, which is unaffected by the [Bone2D]'s [member Node2D.transform].
</description>
</method>
<method name="set_length">
<return type="void" />
<param index="0" name="length" type="float" />
<description>
Sets the length of the bone in the [code]Bone2D[/code] node.
Sets the length of the bone in the [Bone2D].
</description>
</method>
</methods>

View File

@ -1,11 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="BoneAttachment3D" inherits="Node3D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A node that will attach to a bone.
А node that dynamically copies or overrides the 3D transform of a bone in its parent [Skeleton3D].
</brief_description>
<description>
This node will allow you to select a bone for this node to attach to. The BoneAttachment3D node can copy the transform of the select bone, or can override the transform of the selected bone.
The BoneAttachment3D node must either be a child of a [Skeleton3D] node or be given an external [Skeleton3D] to use in order to function properly.
This node selects a bone in a [Skeleton3D] and attaches to it. This means that the [BoneAttachment3D] node will either dynamically copy or override the 3D transform of the selected bone.
</description>
<tutorials>
</tutorials>

Some files were not shown because too many files have changed in this diff Show More