summaryrefslogtreecommitdiff
path: root/modules
AgeCommit message (Collapse)Author
2022-10-31Merge pull request #68065 from zCubed3/fix_min_max_crashRémi Verschelde
`GDScriptAnalyzer` Fix math utilities crashing when invalid args are passed
2022-10-31Merge pull request #67445 from Zylann/rename_queue_deleteRémi Verschelde
Rename queue_delete => queue_free
2022-10-31Merge pull request #66929 from MladoniSzabi/save_jpeg_fileRémi Verschelde
Fixed Image.save_jpg() does not write any file
2022-10-31Merge pull request #62695 from Spartan322/relax-constant-assertsRémi Verschelde
Allow non-constant string message for assert
2022-10-31Merge pull request #67987 from neikeq/dotnet-more-static-marshalingIgnacio Roldán Etcheverry
C#: Reflection-less delegate callables and nested generic Godot collections
2022-10-30Fix math utility functions crashing when invalid args passedzCubed3
2022-10-30Merge pull request #68039 from Anutrix/docs-fix-signal-syntaxMax Hilbrunner
Fixed signal connection examples to use new callable syntax in the docs
2022-10-30Fixed signal connection examples to use new callable syntax in the docsAnutrix
2022-10-30C#: Add Variant conversion callbacks for generic Godot collectionsIgnacio Roldán Etcheverry
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-30C#: Remove need for reflection to invoking callable delegatesIgnacio Roldán Etcheverry
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-30Merge pull request #67909 from Calinou/doc-enetpacketpeerMax Hilbrunner
Document the ENetPacketPeer class
2022-10-29Merge pull request #67980 from DeeJayLSP/webpcaseMax Hilbrunner
Change all WEBP strings and comments to WebP
2022-10-28Merge pull request #67849 from kdada/fix-built-in-script-crashClay John
Fix built-in script path of GDScript to prevent crash
2022-10-28Change all WEBP strings and comments to WebPDeeJayLSP
2022-10-27Merge pull request #67946 from BastiaanOlij/openxr_default_aimposeClay John
Change default OpenXR pose to aim pose
2022-10-27[MP] Let MultiplayerAPI handle packet relaying and peer signaling.Fabio Alessandrelli
MultiplayerPeer changes: - Adds is_server_relay_supported virtual method Informs the upper MultiplayerAPI layer if it can signal peers connected to the server to other clients, and perform packet relaying among them. - Adds get_packet_channel and get_packet_mode virtual methods Allows the MultiplayerAPI to retrieve the channel and transfer modes to use when relaying the last received packet. SceneMultiplayerPeer changes: - Implement peer signaling and packet relaying when the MultiplayerPeer advertise they are supported. ENet, WebRTC, WebSocket changes: - Removed custom code for relaying from WebSocket and ENet, and let it be handled by the upper layer. - Update WebRTC to split create_client, create_server, and create_mesh, with the latter behaving like the old initialize with "server_compatibility = false", and the first two supporting the upper layer relaying protocol.
2022-10-28Change default OpenXR pose to aim poseBastiaan Olij
2022-10-26Document the ENetPacketPeer classHugo Locurcio
2022-10-25Merge pull request #67843 from Calinou/doc-csgshape3dMax Hilbrunner
Document `collision_priority` in the CSGShape3D class
2022-10-25Merge pull request #67858 from TechnoPorg/fix-upnp-docsMax Hilbrunner
Fix Thread usage in UPNP docs.
2022-10-24Fix Thread usage in UPNP docs.TechnoPorg
The threading API has changed between Godot 3 and Godot 4. See https://github.com/godotengine/godot-proposals/issues/4691.
2022-10-24Rename queue_delete => queue_freeMarc Gilleron
# Conflicts: # editor/plugins/tiles/tiles_editor_plugin.cpp
2022-10-25Fix built-in script path of GDScriptWei Guo
2022-10-24Merge pull request #67541 from RandomShaper/refactor_subgroup_adsClay John
Let the RD driver itself expose subgroup caps
2022-10-24Document `collision_priority` in the CSGShape3D classHugo Locurcio
2022-10-23Merge pull request #65334 from dsnopek/opengl-multiviewClay John
[opengl] Add multiview to the opengl3 driver
2022-10-23Fix MultiplayerSynchronizer::update_outbound_sync_time when ↵Wei Guo
replication_interval is not 0
2022-10-22Use `.generated` suffix for generated C# codeRaul Santos
Use the `.generated` suffix instead of `_Generated` so .NET marks C# file generated by Godot source generators as generated code.
2022-10-21Add multiview to the opengl3 driverDavid Snopek
2022-10-21Merge pull request #67656 from MewPurPur/instance🧹Max Hilbrunner
Fix minor mistakes throughout the documentation
2022-10-21Fix small mistakes throughout much of the documentationVolTer
2022-10-20Let the RD driver itself expose subgroup capsPedro J. Estébanez
2022-10-19Merge pull request #67100 from Mickeon/doc-peevesMax Hilbrunner
Tweak `@GDScript` documentation overall
2022-10-19Merge pull request #67527 from BastiaanOlij/fix_tracker_namesMax Hilbrunner
Fix two typos in tracker names and a bug in OpenXR haptic feedback
2022-10-18Tweak `@GDScript` documentation overallMicky
- Made use of [param] more frequently, - Link to other classes' documentation more often, improve the examples. - Made the writing style closer to how the rest of the documentation is formatted. - Ensure these are called "functions", not "methods". - Add [b]Warning:[/b] where more appropriate than [b]Note:[/b] Most notably, removed " It must be a static string, so format strings can't be used.", as this behavior is actually a bug.
2022-10-19Merge pull request #67529 from BastiaanOlij/filter_out_htc_pathsBastiaan Olij
Filter out HTC OpenXR paths based on extension
2022-10-19Filter out HTC OpenXR paths based on extensionBastiaan Olij
2022-10-18Fix missing itos for OpenXR loggingBastiaan Olij
2022-10-17Merge pull request #67532 from Faless/ws/4.x_fix_pollRémi Verschelde
[WebSocket] Fix client failing to connect to direct IP.
2022-10-17Merge pull request #67179 from BastiaanOlij/openxr_add_refresh_rate_extensionRémi Verschelde
Adding support for the OpenXR Display Refresh Rate extension
2022-10-17Merge pull request #67521 from nikitalita/speed_up_texture_posRémi Verschelde
Speed up `find_texture_pos_for_glyph()`
2022-10-17Merge pull request #67514 from timothyqiu/deferRémi Verschelde
Fix memory leak when `_ensure_cache_for_size()` fails
2022-10-17Merge pull request #67469 from anvilfolk/resource-load-clarificationRémi Verschelde
Clarified reason why a resource cannot be preload()'ed
2022-10-17Merge pull request #67485 from kdada/kdada/masterRémi Verschelde
Fix peer visiblity in SceneReplicationInterface._update_sync_visibility
2022-10-17Merge pull request #67428 from aaronfranke/gltf-additional-dataRémi Verschelde
Add a way to store additional data in GLTFState and GLTFNode
2022-10-17[WebSocket] Fix client failing to connect to direct IP.Fabio Alessandrelli
The bug was caused by not checking the TCP CONNECTING state appropriately during the client handshake, and not checking the TCP CONNECTED state during connection (which is unlikely, but might still happen).
2022-10-17Fix two typos in tracker names and a bug in OpenXR haptic feedbackBastiaan Olij
2022-10-16Speed up `find_texture_pos_for_glyph()`nikitalita
2022-10-17Fix memory leak when `_ensure_cache_for_size()` failsHaoyu Qiu
2022-10-17Merge pull request #67440 from raulsntos/dotnet/bindings-conflictsIgnacio Roldán Etcheverry
Guard against more potential conflicts in C# bindings generator