307 Commits

Author SHA1 Message Date
dedf461674 Add blob shadows feature
BlobShadow node (sphere or capsule)
BlobFocus
Backends for GLES2 and GLES3
2025-10-01 06:37:54 +01:00
d0dbb2f0af Merge pull request #108382 from Faless/mbedtls/3.x_update_to_mbedtls_3.6.4
[3.x] mbedTLS: Update to mbedTLS 3.6.4
2025-09-13 10:29:56 +01:00
0770c9a4a3 mbedTLS: Update to mbedTLS 3.6.4
mbedTLS 2.28 is now EOL, and will no longer receive security updates.

This commit backports from Godot 4 the changes needed to update to
mbedTLS 3.6 (new LTS), including TLSv1.3 support.
2025-07-07 17:18:44 +02:00
62e7304ffe [3.x] Backport nonexclusive fullscreen mode. 2025-06-16 11:31:50 +03:00
d164443cd3 Add ability to mute AudioServer.
Adds the option to change the audio driver to the Dummy driver and back at runtime, with a set of MuteState flags - Disabled (user control), Silence (period of silence), Focus Loss (when app is not in focus), and Paused (when app is paused).

Control for the flags is added for the editor in EditorSettings, and for the project in ProjectSettings.

Editor defaults to muted (Dummy driver) when there is no audio output, and automatically switches to active on output. This significantly reduces CPU usage.
2025-06-10 16:53:58 +01:00
65eb3a2e31 FTI - Optimize SceneTree traversal 2025-05-24 18:26:25 +01:00
32ddd4f4e0 Doctool: Remove version attribute from XML header
We don't use that info for anything, and it generates unnecessary diffs
every time we bump the minor version (and CI failures if we forget to
sync some files from opt-in modules (mono, text_server_fb).

(cherry picked from commit 81064cc239)
2024-09-11 12:41:48 +02:00
75cadbabcb Merge pull request #81089 from SysError99/3.x-dont-warm-about-return-value-discarded
[3.x] GDScript: Don't warn about `RETURN_VALUE_DISCARDED` by default
2024-04-04 13:02:22 +01:00
99c8cd2b17 Rotary input for 3.x 2024-02-18 22:25:10 +04:00
b9cbffd957 add ORMSpatialMaterial 2024-02-08 20:34:11 +01:00
6f3c5e63f3 Merge pull request #82584 from lawnjelly/lightcull_23
[3.x] Shadow volume culling and tighter shadow caster culling
2024-01-29 23:27:56 +01:00
739d27ae40 Add project settings for AVAudioSessionCategory on iOS
Co-authored-by: Georg Wacker <contact@georgwacker.com>
2024-01-10 13:33:11 +01:00
8ca631a466 Shadow volume culling and tighter shadow caster culling
Existing shadow caster culling using the BVH takes no account of the camera. This PR adds the highly encapsulated class VisualServerLightCuller which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum.

This is used to:
* More accurately defer dirty updates to shadows when the shadow volume does not intersect the camera frustum.
* Tighter cull shadow casters to the view frustum.

Lights dirty state is now automatically managed:
* Continuous (tighter caster culling)
* Static (all casters are rendered)
2023-11-14 14:17:57 +00:00
e9045a6d03 Add Android project settings for gesture support
- Include project setting to enable long press for Android devices
- Include project setting to enable pan and scale gestures on Android devices
2023-11-03 05:25:18 -07:00
f84a202235 Mark debugger limits settings as requiring a restart
These settings are only read once on engine initialization.
2023-09-16 00:31:35 +02:00
2b3d52a7d0 [3.x] Don't warn about RETURN_VALUE_DISCARDED by default 2023-08-29 02:47:33 +07:00
29eeb461f2 Merge pull request #68738 from lawnjelly/faster_canvas_item
[3.x] Canvas item hierarchical culling
2023-06-27 08:40:22 +02:00
63d208d1b0 Input - fix just pressed and released with short presses
Previously if an action was both pressed and released on the same tick or frame, `is_action_just_pressed()` would return false, resulting in missed input.

This PR separately the timestamp for pressing and releasing so each can be tested independently.
2023-06-12 16:33:48 +01:00
18ee8da7d6 Add audio/general/text_to_speech project setting to enable/disable TTS. 2023-05-26 20:57:29 +03:00
b777a9e5f9 Canvas item hierarchical culling
Adds optional hierarchical culling to the 2D rendering (within VisualServer).

Each canvas item maintains a bound in local space of the item itself and all child / grandchild items. This allows branches to be culled at once when they don't intersect a viewport.
2023-04-25 20:17:33 +01:00
d20305a718 Improve documentation related to ubershaders in ProjectSettings 2023-04-25 19:03:49 +02:00
4c5a934408 Merge pull request #68960 from lawnjelly/multirect
Batching - Add MultiRect command
2023-04-17 17:25:20 +02:00
5f1e7e6fbc Make MessageQueue growable
* Uses simple vector resizing (po2)
* Uses pair of read and write buffers
2023-03-31 10:07:56 +01:00
910ddd13c4 Batching - Add MultiRect command
Large groups of similar rects can be processed more efficiently using the MultiRect command. Processing common to the group can be done as a one off, instead of per rect.

Adds the new API to VisualServerCanvas, and uses the new functionality from Font, BitmapFont, DynamicFont and TileMap, via the VisualServerCanvasHelper class.
2023-03-10 10:58:04 +00:00
28b11a0785 iOS: Fix memory leak on touch input
Replaces iOS gesture with touch implementation

Fixes #66422

Remove godot_view_gesture_recognizer

It's now unused.

Remove input_devices/pointing/ios/touch_delay

Unused with removal of gesture.

Remove unused methods from interface

Implementation made obsolete in prior commit

Style conformance
2023-02-15 21:38:55 -08:00
65465f309c Add a project setting to make the root viewport transparent
This allows creating a project with a transparent window without having
to write any script.
2022-12-18 00:38:05 +01:00
4475a93736 Document debanding only affecting 3D rendering by default 2022-12-12 11:01:26 +01:00
92aedd5063 Merge pull request #68190 from ztc0611/3.x-ios-promotion
[3.x] Add ProMotion/High Refresh Rate Support to iOS Exports
2022-11-03 11:34:22 +01:00
e538771d4f [3.x] Add ProMotion Support to iOS Exports 2022-11-02 22:14:34 -04:00
5e7b0e3a61 [3.x] Add iOS UI Options 2022-11-02 22:13:18 -04:00
ac31fac9a5 Improve documentation related to audio input permissions 2022-09-03 01:36:55 +02:00
6358e41772 Merge pull request #64838 from akien-mga/3.x-cherrypicks
Cherry-picks for the 3.x branch (future 3.6) - 2nd batch
2022-08-25 00:51:19 +02:00
fd08545a59 Merge pull request #64579 from marcinn/backport-panning-strength
[3.x] Backport panning strength parameters from 4.0
2022-08-24 23:55:28 +02:00
bf33de769a Add boot splash display time setting
Implements #8867.

(cherry picked from commit dad9683d11)
2022-08-24 17:30:00 +02:00
90762b9660 [3.x] Backport panning strength parameters from 4.0 2022-08-23 23:27:51 +02:00
d2ef3bf8a6 Improve documentation related to anisotropic filtering 2022-08-22 18:40:40 +02:00
0a8d5d7098 Bump version to 3.6-beta 2022-08-05 18:51:38 +02:00
df70aa1772 Merge pull request #57566 from Calinou/viewport-shadow-atlas-clamp-sizes 2022-07-03 03:08:03 +02:00
f971c886fa Add safe defaults for async shader compilation 2022-06-28 11:50:38 +02:00
acd4a01b8c ProjectSettings: Ensure 'editor/' settings aren't nested
Having a mix of settings with and without subcategory makes the 'Editor'
section stand out with a weird UX, as instead of simply being a foldable
section like the others, it also holds its own top-level settings and is
therefore selectable.

This wasn't the case in 3.4, and is fixed in 4.0 by refactoring, so for
3.5 we should preserve the 3.4 UX, even if it's not the best.
2022-06-19 11:47:19 +02:00
bec892c010 Tweak default crash handler message in exported projects
When an exported project crashes, the crash handler message
shouldn't reference the Godot issue tracker, as not all crashes
are Godot's fault.

Reporting crashes that only occur on exported projects is still allowed,
but it should not be done by people who aren't working on the project
in question.

(cherry picked from commit c850ccb7c0)
2022-06-16 10:16:32 +02:00
4e7363cac7 Merge pull request #61996 from smix8/navigation_bp_update_3.x
[3.5] Update NavigationServer backport
2022-06-16 00:17:16 +02:00
8bd7c6188b [3.5] Update NavigationServer backport
Backports features and bugfixes from current Godot 4.0 to 3.5 and brings functions and codebase of both version largely in sync to make tutorials more compatible and future backports easier.
2022-06-14 05:55:14 +02:00
70d8e71b0e Enable asynchronous shader compilation + cache by default in GLES3
This reduces stuttering when a material is displayed for the first
time, and prevents stuttering from occurring entirely after the
project is restarted when a similar situation is encountered.
2022-06-13 16:32:19 +02:00
96d98d8c4e Backport default World navigation maps
Backports default navigation maps created with each World or World2D.
2022-06-09 14:05:39 +02:00
ad9b2b3794 Physics Interpolation - add helper warnings
When physics interpolation is active on a node, it is essential that transforms are updated during "_physics_process()" rather than "_process()" calls, for the interpolation to give the correct result.

This PR adds optional warnings for instances, cameras and multimeshes which can flag updates being incorrectly called, and thus make these problems much easier to fix.
2022-04-26 13:56:02 +01:00
a3b445d7e8 Remove duplicate resizable settings
(cherry picked from commit f1a7caf9bb)
2022-04-13 11:43:49 +02:00
bba6d18973 Add missing period in classref of 3D render layer 2022-04-05 09:43:38 +08:00
4e6dfac969 Improve documentation related to 3D material vertex lighting 2022-03-31 18:11:18 +02:00
b087538119 Add an XML schema for documentation
This makes it easier to spot syntax errors when editing the
class reference. The schema is referenced locally so validation
can still work offline.

Each class XML's schema conformance is also checked on GitHub Actions.
2022-03-16 23:01:02 +01:00