Age | Commit message (Collapse) | Author |
|
Remove `override_selected_font_color` property
|
|
Make Camera3D gizmo clickable
|
|
Simplify Euler order test code in test_basis.h
|
|
Ensure vulkan subgroups are disabled for MoltenVK
|
|
Rename queue_delete => queue_free
|
|
Fix passed dictionary to `internal_process()` in importer plugin for animation
|
|
Check for a Vulkan extension before checking its features
|
|
Fixed Image.save_jpg() does not write any file
|
|
Add a few buttons in Remote Scene Tree
|
|
Allow non-constant string message for assert
|
|
Add OpenGL timer queries to OpenGL3 backend
|
|
Fix exporting with big export templates
|
|
Improve ColorPicker sliders in OKHSL mode
|
|
Use proper types for converting Java float/double arrays in Android code
|
|
Minor code improvements
|
|
Fix get_path() error when calling get_node()
|
|
Fix TextEdit action and CodeEdit completion crash
|
|
Add Caret Insert Below and Above shortcuts to TextEdit
|
|
Support AtlasTexture in radial modes of TextureProgressBar
|
|
C#: Reflection-less delegate callables and nested generic Godot collections
|
|
Added missing docs to built-in types float and int
|
|
|
|
Doc consistency: tweak "inspector" Vs. "Inspector"
|
|
Fixed signal connection examples to use new callable syntax in the docs
|
|
|
|
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.
|
|
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.
|
|
Fix `TileMap` collision shapes debug draw
|
|
doc: link GPUParticles2D to a more appropriate demo
|
|
Document the ENetPacketPeer class
|
|
Document the DisplayServer class
|
|
Change all WEBP strings and comments to WebP
|
|
|
|
|
|
Fix built-in script path of GDScript to prevent crash
|
|
Make creating window do not flicker when specify custom position
|
|
Fix differences between Windows and linuxbsd Display Server
|
|
|
|
ResourceImporterLayeredTexture: rename compress modes to match enum
|
|
Fix type of `safe_velocity` parameter
|
|
Expose the logic to recognize a save path in ResourceSaver
|
|
|
|
|
|
|
|
Fix `DisplayServer.has_feature()` claiming X11 has native icon support
|
|
|
|
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.
|
|
|
|
Fix `OS.get_video_adapter_driver_info` crash on headless godot
|
|
Fix ss_effects_flags uniform in clustered forward renderer
|