Commit graph

48566 commits

Author SHA1 Message Date
kleonc
221a89f2ef Docs Clarify Array.fill behavior when reference type is passed in 2022-10-30 13:42:24 +01:00
Anutrix
c9b467ac15 Added missing docs to built-in types float and int 2022-10-30 17:53:59 +05:30
Max Hilbrunner
ad3f2a2340
Merge pull request #67945 from Mickeon/doc-consistency-inspector
Doc consistency: tweak "inspector" Vs. "Inspector"
2022-10-30 12:09:47 +01:00
Max Hilbrunner
9fb481334a
Merge pull request #68039 from Anutrix/docs-fix-signal-syntax
Fixed signal connection examples to use new callable syntax in the docs
2022-10-30 12:03:37 +01:00
Adam Scott
26f0afdce2 [godot#68001] Fix property getter with custom return type 2022-10-29 20:38:26 -04:00
Anutrix
7984598e33 Fixed signal connection examples to use new callable syntax in the docs 2022-10-30 05:26:46 +05:30
Ignacio Roldán Etcheverry
f66a352c0f C#: Add Variant conversion callbacks for generic Godot collections
This allows using generic Godot collections as type arguments for other
generic Godot collections. This also allows generic Godot collections
as parameter or return type in dynamic Callable invocations.
2022-10-30 01:24:15 +02:00
Ignacio Roldán Etcheverry
282bd37e5c C#: Remove need for reflection to invoking callable delegates
We aim to make the C# API reflection-free, mainly for concerns about
performance, and to be able to target NativeAOT in refletion-free mode,
which reduces the binary size.

One of the main usages of reflection still left was the dynamic
invokation of callable delegates, and for some time I wasn't sure
I would find an alternative solution that I'd be happy with.

The new solution uses trampoline functions to invoke the delegates:

```
static void Trampoline(object delegateObj, NativeVariantPtrArgs args, out godot_variant ret)
{
    if (args.Count != 1)
        throw new ArgumentException($"Callable expected 1 arguments but received {args.Count}.");

    string res = ((Func<int, string>)delegateObj)(
        VariantConversionCallbacks.GetToManagedCallback<int>()(args[0])
    );

    ret = VariantConversionCallbacks.GetToVariantCallback<string>()(res);
}

Callable.CreateWithUnsafeTrampoline((int num) => "Foo" + num, &Trampoline);
```

Of course, this is too much boilerplate for user code. To improve this,
the `Callable.From` methods were added. These are overloads that take
`Action` and `Func` delegates, which covers the most common use cases:
lambdas and method groups:

```
// Lambda
Callable.From((int num) => "Foo" + num);

// Method group
string AppendNum(int num) => "Foo" + num;
Callable.From(AppendNum);
```

Unfortunately, due to limitations in the C# language, implicit
conversions from delegates to `Callable` are not supported.

`Callable.From` does not support custom delegates. These should be
uncommon, but the Godot C# API actually uses them for event signals.
As such, the bindings generator was updated to generate trampoline
functions for event signals. It was also optimized to use `Action`
instead of a custom delegate for parameterless signals, which removes
the need for the trampoline functions for those signals.

The change to reflection-free invokation removes one of the last needs
for `ConvertVariantToManagedObjectOfType`. The only remaining usage is
from calling script constructors with parameters from the engine
(`CreateManagedForGodotObjectScriptInstance`). Once that one is made
reflection-free, `ConvertVariantToManagedObjectOfType` can be removed.
2022-10-30 01:24:15 +02:00
Max Hilbrunner
f013315980
Merge pull request #67754 from kleonc/tilemap-fix-collision-shapes-debug-draw
Fix `TileMap` collision shapes debug draw
2022-10-30 00:15:42 +02:00
Max Hilbrunner
6ac7afe7a7
Merge pull request #67836 from stevecotton/particles_demo_link
doc: link GPUParticles2D to a more appropriate demo
2022-10-30 00:10:56 +02:00
Max Hilbrunner
a889c1d7a2
Merge pull request #67909 from Calinou/doc-enetpacketpeer
Document the ENetPacketPeer class
2022-10-30 00:09:24 +02:00
Max Hilbrunner
f3e2f78b21
Merge pull request #67923 from Calinou/doc-displayserver
Document the DisplayServer class
2022-10-30 00:08:50 +02:00
Max Hilbrunner
11d74d606a
Merge pull request #67980 from DeeJayLSP/webpcase
Change all WEBP strings and comments to WebP
2022-10-29 19:28:47 +02:00
Haoyu Qiu
877cb1cbc0 Improve dragging scene into 3D viewport
* When there's nothing to collide with:
    * Place the new scene on XZ plane when possible.
    * When the camera does not point toward the XZ plane or the
      intersection is too far away, place the new scene on a plane that
      is in front of the camera and parallel to the frame.
* Fixes positioning when in orthogonal view.
    * Place on physical collision point or the XZ plane when possible.
    * Otherwise, place it on the plane in front of the camera as if the
      camera was perspective.
* Makes use of snap settings when placing the new scene.
2022-10-29 23:34:39 +08:00
Haoyu Qiu
03bbacfdca Hide axis gizmo after translating 3D nodes 2022-10-29 16:17:28 +08:00
Haoyu Qiu
eb5bfe158e Fix type mismatch error when deselecting a 3D gizmo 2022-10-29 15:15:28 +08:00
Haoyu Qiu
ca9063fe4e Make Camera3D gizmo clickable 2022-10-29 12:38:21 +08:00
Haoyu Qiu
3aed3edc06 Allow selecting SpinBox & LineEdit text when focus enters 2022-10-29 09:58:42 +08:00
Michael Alexsander
4b6e6c6758 Stop centering clicked suggestions in the autocomplete popup 2022-10-28 20:22:28 -03:00
Yuri Rubinsky
11e1bac768
Merge pull request #67112 from Chaosus/fix_boolean_uniform_instances 2022-10-28 23:17:23 +03:00
Clay John
3fa339cfc4
Merge pull request #67849 from kdada/fix-built-in-script-crash
Fix built-in script path of GDScript to prevent crash
2022-10-28 13:04:36 -07:00
Clay John
04ac91f786
Merge pull request #67790 from kdada/fix-flash-window
Make creating window do not flicker when specify custom position
2022-10-28 13:02:58 -07:00
Fabio Alessandrelli
39f3d9d59e [MP] Add MultiplayerPeer disconnect_peer, close.
Update ENet, WebRTC, and WebSocket to support peer disconnection and
unify the close function.
2022-10-28 21:18:01 +02:00
clayjohn
2ec234ff67 Add 2D shadows and canvas SDF to OpenGL3 renderer
This is an initial implementation based on the current RD implementation

Performance will improve later
2022-10-28 11:33:23 -07:00
Clay John
282e50ac88
Merge pull request #67903 from Sauermann/fix-startup-windows-mouse-exit-event
Fix differences between Windows and linuxbsd Display Server
2022-10-28 11:20:36 -07:00
DeeJayLSP
dd64ceab47 Change all WEBP strings and comments to WebP 2022-10-28 15:17:49 -03:00
Clay John
c2caaff96a
Merge pull request #67978 from DeeJayLSP/rename-layered-modes
ResourceImporterLayeredTexture: rename compress modes to match enum
2022-10-28 10:58:37 -07:00
Clay John
ada2661a2c
Merge pull request #67956 from RedMser/safe-velocity-type
Fix type of `safe_velocity` parameter
2022-10-28 10:57:46 -07:00
Clay John
e3b66ff9e3
Merge pull request #67621 from groud/resource_saver_expose_recognize_path
Expose the logic to recognize a save path in ResourceSaver
2022-10-28 10:56:32 -07:00
DeeJayLSP
0619bd44da ResourceImporterLayeredTexture: rename compress modes to match enum 2022-10-28 14:24:32 -03:00
Yuri Rubinsky
999df8cdbf
Merge pull request #67974 from Mickeon/spaaaaaaace 2022-10-28 17:40:11 +03:00
Alfred Reinold Baudisch
e46e70f8ee Improved TextEdit::add_selection_for_next_occurrence test case
It covers additional selections of different words, as well manually adding a cursor in between and selecting the next occurrence. The previous test also was outdated in regards of not testing the implicit call to `select_word_under_caret` made by `add_selection_for_next_occurrence` in case there's no selection.
2022-10-28 15:35:43 +02:00
Micky
0e0a233859 Fix spacing of few PROPERTY_HINT_ENUM hint_strings 2022-10-28 14:51:26 +02:00
Max Hilbrunner
028db9f2b5
Merge pull request #67914 from Calinou/displayserverx11-no-native-icon
Fix `DisplayServer.has_feature()` claiming X11 has native icon support
2022-10-28 12:46:57 +02:00
Gilles Roudière
e23f82f3c1 Expose the logic to recognize a save path in ResourceSaver 2022-10-28 11:15:25 +02:00
Markus Sauermann
4bd601d82a Fix differences between Windows and linuxbsd Display Server
Fix that Windows receive WINDOW_EVENT_MOUSE_EXIT on startup.

When moving the mouse cursor from one window to a different one, make sure that the first window receives the WINDOW_EVENT_MOUSE_EXIT event before the second window receives the WINDOW_EVENT_MOUSE_ENTER event.

Send Mouse-Move events also for Windows, that are currently not focused.

For determining the currently hovered window, consider not just the currently focused window, but also other windows.

Send mouse move events to focused window instead of hovered window.
2022-10-28 09:32:25 +02:00
Yuri Rubinsky
468762b3b7
Merge pull request #67498 from Chaosus/fix_shader_crash 2022-10-28 09:25:07 +03:00
bruvzg
4e44a271f0
ICU: Update to version 72.1 2022-10-28 09:11:55 +03:00
Max Hilbrunner
9ff3a43a32
Merge pull request #67957 from zCubed3/fix_headless_crash
Fix `OS.get_video_adapter_driver_info` crash on headless godot
2022-10-28 03:32:59 +02:00
Bastiaan Olij
6a61d22ce7
Merge pull request #67960 from clayjohn/RD-SSIL
Fix ss_effects_flags uniform in clustered forward renderer
2022-10-28 12:31:39 +11:00
Clay John
0486810697
Merge pull request #67644 from alfredbaudisch/add-selection-next-occurrence
Add Selection and Caret for Next Occurrence of Selection
2022-10-27 17:21:49 -07:00
Clay John
bc7e0f0616
Merge pull request #67946 from BastiaanOlij/openxr_default_aimpose
Change default OpenXR pose to aim pose
2022-10-27 17:17:07 -07:00
zCubed3
e7091d07cd
Fix OS.get_video_adapter_driver_info crash 2022-10-27 15:45:21 -07:00
clayjohn
31c1a06ab5 Fix ss_effects_flags uniform in clustered forward renderer
This comes from an uncaught merge conflict resulting from the split of scene_data into
scene_data and implementation_data
2022-10-27 15:37:38 -07:00
RedMser
b9c3a5534b Fix type of safe_velocity parameter 2022-10-27 22:45:24 +02:00
Clay John
4dc2c8ae6f
Merge pull request #67939 from sambriels/emit-signal-after-target-reached
[NavigationAgent2D/3D]: target_reached signal is emitted before internal state is updated
2022-10-27 12:52:13 -07:00
Clay John
24e788e9be
Merge pull request #67874 from Calinou/doc-vector3-vector4i
Document the Vector3 and Vector4i classes
2022-10-27 12:48:34 -07:00
Clay John
aa989cb26f
Merge pull request #64382 from peastman/support
Optimized support function for large meshes
2022-10-27 12:40:39 -07:00
Clay John
9ffa86357d
Merge pull request #67421 from Sauermann/fix-failure-exit-code
Fix Godot exiting with unexpected failure code
2022-10-27 11:58:50 -07:00
Aaron Franke
fae4ed5a98
Simplify Euler order test code in test_basis.h 2022-10-27 12:10:57 -05:00