Commit Graph

7715 Commits

Author SHA1 Message Date
Rémi Verschelde
963ffd8b94
Merge pull request #68374 from rune-scape/rune-gdscript-compiler-bugfixes
Fixes https://github.com/godotengine/godot/issues/65953
Fixes https://github.com/godotengine/godot/issues/68291
Fixes https://github.com/godotengine/godot/issues/68561
Fixes https://github.com/godotengine/godot/issues/64915
Fixes https://github.com/godotengine/godot/issues/61848
Fixes https://github.com/godotengine/godot/issues/61268
2022-11-14 17:15:02 +01:00
Fabio Alessandrelli
67265d14f7 [MP] Move engine and editor profilers to a plugin.
Also refactor the editor plugin out of the ReplicationEditor.
2022-11-14 15:09:00 +01:00
Rémi Verschelde
471c42ee1f
Merge pull request #64530 from bruvzg/svg_in_ot 2022-11-14 14:32:22 +01:00
Rémi Verschelde
038ee04b8f
Merge pull request #67975 from BastiaanOlij/implement_uv2_on_primitives
Add optional UV2 logic for lightmapping to primitive shapes
2022-11-14 11:08:42 +01:00
Rémi Verschelde
4c1a858d5d
Merge pull request #68594 from dzil123/fix_wtype_limits_warning_openxr
Fix -Wtype-limits warning in openxr_interface.cpp
2022-11-13 15:52:29 +01:00
Rémi Verschelde
d62aef71f6
Merge pull request #68603 from HolonProduction/zip
Fix problem with ZIPPacker
2022-11-13 15:52:23 +01:00
Rémi Verschelde
d75018bfd3
Merge pull request #60684 from trollodel/lightweight_editor_plugin
Use forward-declarations in EditorPlugin where possible
2022-11-13 15:51:29 +01:00
HolonProduction
ab23736751 Fix problem with ZIPPacker
The Zipfile Reference should be set to `NULL` when the `ZIPPacker` is closed not when a file in it is closed.

When calling `ZIPPacker.close` without this nothing happens because `zf` is `NULL`. (7zip could still extract the file but warned about unexpected end of file.)
2022-11-13 12:50:40 +01:00
Rune
bce6f1792e GDScript compiler subclass bugfixes 2022-11-13 02:29:21 -08:00
Bastiaan Olij
7658dc6e7e Add optional UV2 logic for lightmapping to primitive shapes 2022-11-13 19:28:10 +11:00
dzil123
2ba5aaa2fc Fix -Wtype-limits warning in openxr_interface.cpp 2022-11-12 20:46:24 -08:00
trollodel
ba9e619b51 Use forward-declarations in EditorPlugin where possible 2022-11-11 20:25:51 +01:00
avemort
8ef1719945 Add index check to OpenXRInterface::get_projection_for_view and OpenXRInterface::get_transform_for_view 2022-11-11 11:00:34 -03:00
David Snopek
a17e93cec2 Fix WebXR after changing Emscripten configuration noExitRuntime to false 2022-11-10 16:10:47 -06:00
Aaron Franke
73c673a614
Change the way GLTFDocumentExtension classes are registered
Also move GLTFDocumentExtension into the extensions folder
2022-11-09 20:58:48 -06:00
David Snopek
c767cc16ea [openxr] Remove unnecessary fallbacks for native handles on X11 2022-11-09 08:09:07 -06:00
Aaron Franke
a3e52925bf
Fix default values on virtual classes causing errors in projects 2022-11-09 01:59:53 -06:00
David Snopek
23603e409c Add support for OpenGL to OpenXR 2022-11-08 18:47:11 -06:00
Yuri Rubinsky
f11b66b084 Fix named enums to use int64 type 2022-11-08 11:20:28 +03:00
Rémi Verschelde
7d4e3a0ea2
Merge pull request #68202 from zaevi/fix_Web_WebSocket_failed
Fix WebSocket connection failed on Web.
2022-11-07 08:47:03 +01:00
Ignacio Roldán Etcheverry
ec521a405a
Merge pull request #68253 from dzil123/fix_array_shuffle
Fix c# Array.Shuffle incorrect mono bindings
2022-11-04 23:54:53 +01:00
dzil123
2fd2a16d92 Fix c# Array.Shuffle incorrect mono bindings 2022-11-04 06:25:31 -07:00
bruvzg
d77902f33a
Implement SVG in OT support. 2022-11-04 14:10:54 +02:00
Rémi Verschelde
f617c30a1e
Merge pull request #68080 from akien-mga/vulkan-sdk-1.3.231.1
vulkan: Update all components to Vulkan SDK 1.3.231.1
2022-11-04 10:04:55 +01:00
Rémi Verschelde
c98d6142d0
Merge pull request #68102 from BastiaanOlij/fix_render_issues_xr
Fix several render issues found while debugging XR
2022-11-03 22:37:42 +01:00
Ignacio Roldán Etcheverry
c0de8d32d5
Merge pull request #68092 from raulsntos/dotnet/variant-from-array
C#: Add implicit conversion from arrays to Variant
2022-11-03 14:46:26 +01:00
Rémi Verschelde
0181d005c9
vulkan: Update all components to Vulkan SDK 1.3.231.1
Updates to volk, vulkan headers, `vk_enum_string_helper.h`, glslang,
spirv-reflect.

No update to VMA which still has 3.0.1 as it's last tagged release.
2022-11-03 12:20:46 +01:00
Zae
0a1a40e6eb Fix WebSocket connection failed on Web. 2022-11-03 14:29:39 +08:00
Aaron Franke
9e952c8386
Allow getting Quaternion rotation in different Euler orders 2022-11-02 19:20:10 -05:00
Rémi Verschelde
08d56ac2f1
Merge pull request #66747 from aaronfranke/move-euler-order
Move EulerOrder enum to math_defs.h and global scope
2022-11-02 22:37:12 +01:00
Raul Santos
99260d972f
C#: Add implicit conversion from arrays to Variant
Adds an implicit conversion from supported array types (the ones that
are equivalent to `Packed*Array` types in Godot) to Variant.
2022-11-02 21:46:32 +01:00
Aaron Franke
8556fdd4bc
Move EulerOrder enum to math_defs.h and global scope 2022-11-02 13:44:13 -05:00
Rémi Verschelde
f7c611ab71
Style: Misc docs and comment style and language fixes
- Removed empty paragraphs in XML.
- Consistently use bold style for "Example:", on a new line.
- Fix usage of `[code]` when hyperlinks could be used (`[member]`, `[constant]`).
- Fix invalid usage of backticks for inline code in BBCode.
- Fix some American/British English spelling inconsistencies.
- Other minor fixes spotted along the way, including typo fixes with codespell.
- Don't specify `@GlobalScope` for `enum` and `constant`.
2022-11-02 19:01:18 +01:00
Rémi Verschelde
eefba5bc33
Merge pull request #65062 from KoBeWi/RedoUndo
Unify usage of undo_redo in editor
2022-11-02 18:54:05 +01:00
Rémi Verschelde
30e4e7c083
Merge pull request #67917 from Faless/mp/4.x_auth
[MP] Add peer authentication support to the default MultiplayerAPI.
2022-11-02 18:53:38 +01:00
Rémi Verschelde
d2e1b4b9f0
Merge pull request #68118 from aaronfranke/quat-from-euler
Replace Quaternion Euler constructor with `from_euler` method
2022-11-02 18:51:59 +01:00
kobewi
15831e381b Unify usage of undo_redo in editor 2022-11-02 17:51:58 +01:00
Fabio Alessandrelli
33dda2e68a [MP] Remove connection state signals from MultiplayerPeer.
Now handled directly by the MultiplayerAPI implementation.
2022-11-02 15:17:23 +01:00
Fabio Alessandrelli
9773803e4e [MP] Add optional authentication to SceneMultiplayer.
Add few methods to allow peers to exchange authentication information.

- `set_auth_callback(callback)`: Enable the authentication features.
  The callback is a `Callable` that accepts an `int` (the peer ID), and
  a `PackedByteArray` of data.
- The `peer_authenticating(id)` signal will be emitted instead of
  `peer_connected` when a new peer connects.
- Use `send_auth(id: int, data: PackedByteArray)` to exchange data.
- Call `complete_auth(id: int)` when the authentication process is
  complete and you expect to start receiving game data.
- The `peer_connected` signal will be emitted as soon as both parties
  complete the authentication.
- Use `disconnect_peer(id)` to disconnect a connected peer.
- If the `peer_connected` signal didn't fire for that peer (i.e. it was
  still in the authentication phase), the `peer_auth_failed` signal will
  be emitted instead of `peer_disconnected`.
2022-11-02 15:17:23 +01:00
Rémi Verschelde
7eb44fa47d
Merge pull request #68125 from kleonc/range-fix-single-arg-optimized-type-mismatch
[GDScript] Fix type mismatch in optimized single arg `range`
2022-11-02 14:18:24 +01:00
Rémi Verschelde
34c66fac0a
Merge pull request #68161 from Chaosus/dotnet_quaternion_constructor
Add missed Quaternion constructor to C#
2022-11-02 14:18:19 +01:00
Rémi Verschelde
b3c2db954f
Merge pull request #68136 from qarmin/projection_not_equal
Support for checking that Projection is(not) null
2022-11-02 14:17:29 +01:00
Rémi Verschelde
2fd2a04efc
Merge pull request #68131 from benbusby/hotfix/zippacker_null_check
Remove `zf != NULL` check from `ZIPPacker::start_file`
2022-11-02 14:17:07 +01:00
Rémi Verschelde
7c0e46f1c1
Merge pull request #68040 from adamscott/fix-property-getter-return-type
Fix property getter with custom return type
2022-11-02 14:16:37 +01:00
Rémi Verschelde
a30ed00fb1
Merge pull request #68057 from Klowner/tga-truncated-crash-fix-67985
Add buffer size check to Image.load_tga_from_buffer(). Fixes #67985
2022-11-02 14:15:40 +01:00
Rémi Verschelde
1bd7f2110a
Merge pull request #68110 from bruvzg/hexbox_ver
[TextServer] Fix hex code box positions in vertical text layout.
2022-11-02 14:15:23 +01:00
kleonc
c268e3a235 GDScript Fix type mismatch in optimized single arg range 2022-11-02 13:20:47 +01:00
Yuri Rubinsky
9487a6ea32 Add missed Quaternion constructor to C# 2022-11-02 11:41:32 +03:00
Rafał Mikrut
d7d130295e Support for checking that Projection is(not) null 2022-11-01 20:49:52 +01:00
Fabio Alessandrelli
0a0e99cadc
Merge pull request #67982 from Faless/mp/4.x_disconnect_close
[MP] Add MultiplayerPeer disconnect_peer, close.
2022-11-01 20:35:04 +01:00
Ben Busby
3b37f50e50
Remove zf != NULL check from ZIPPacker::start_file
This check was removed because it introduces a bug which prevents
ZIPPacker from actually adding any files, since it must be opened before
adding any files (and therefore shouldn't be NULL at the start of
`start_file`).
2022-11-01 11:37:02 -06:00
Aaron Franke
83634119d4
Replace Quaternion Euler constructor with from_euler method 2022-11-01 09:28:12 -05:00
bruvzg
02a4b3f859
[TextServer] Fix hex code box positions in vertical text layout. 2022-11-01 11:51:29 +02:00
Bastiaan Olij
a4e58ec84a Fix several render issues found while debugging XR 2022-11-01 13:27:03 +11:00
Haoyu Qiu
3b88851e25 Clarify offset parameter behavior in RegEx methods 2022-11-01 09:29:08 +08:00
bruvzg
397fa2fa7a
[TextServer] Fix incorrect line breaks count for embedded objects (e.g. RTL tables). 2022-10-31 17:34:07 +02:00
bruvzg
f0b7ff324c
Improve text line breaking performance for long lines. 2022-10-31 15:35:51 +02:00
Rémi Verschelde
cd25e48456
Merge pull request #67562 from bruvzg/improve_font_packing
Improve font glyph cache packing shelf best height fit heuristic.
2022-10-31 14:26:13 +01:00
Rémi Verschelde
d43364e3cc
Merge pull request #67968 from bruvzg/icu72.1
ICU: Update to version 72.1
2022-10-31 14:25:37 +01:00
Rémi Verschelde
76ef71bda0
Merge pull request #67585 from bruvzg/fix_no_graphite_build
[TextServer] Fix build with disabled graphite.
2022-10-31 14:22:32 +01:00
Rémi Verschelde
ae81a569b9
Merge pull request #67409 from bruvzg/fix_oversampling_rounding
[TextServer] Do not round glyph advances / coordinates if font oversampling or bitmap glyph scaling is used.
2022-10-31 14:21:56 +01:00
Rémi Verschelde
5947f22be9
Merge pull request #67578 from KoBeWi/GEDITOR
Unify usage of GLOBAL/EDITOR_GET
2022-10-31 13:15:58 +01:00
Rémi Verschelde
1e0edc48b5
Merge pull request #67826 from Chaosus/gds_fix_enum
Fix enum type to use int64_t instead of int in GDScript
2022-10-31 13:10:28 +01:00
Rémi Verschelde
be126d42d4
Merge pull request #67588 from KoBeWi/if(!GDVIRTUAL_CALL)don't
Simplify GDVIRTUAL_CALL calls
2022-10-31 11:55:56 +01:00
Rémi Verschelde
f4f98c4ecb
Merge pull request #67055 from GuilhermeGSousa/custom-node-export
Added custom node export
2022-10-31 11:11:07 +01:00
Rémi Verschelde
213ba46672
Merge pull request #68065 from zCubed3/fix_min_max_crash
`GDScriptAnalyzer` Fix math utilities crashing when invalid args are passed
2022-10-31 10:59:27 +01:00
Rémi Verschelde
420eb1aa34
Merge pull request #67445 from Zylann/rename_queue_delete
Rename queue_delete => queue_free
2022-10-31 10:51:18 +01:00
Rémi Verschelde
62a778fdd6
Merge pull request #66929 from MladoniSzabi/save_jpeg_file
Fixed Image.save_jpg() does not write any file
2022-10-31 10:48:10 +01:00
Rémi Verschelde
b43cc96535
Merge pull request #62695 from Spartan322/relax-constant-asserts
Allow non-constant string message for assert
2022-10-31 10:44:56 +01:00
Ignacio Roldán Etcheverry
256c0079b0
Merge pull request #67987 from neikeq/dotnet-more-static-marshaling
C#: Reflection-less delegate callables and nested generic Godot collections
2022-10-31 04:21:13 +01:00
zCubed3
b7f0ab13a4
Fix math utility functions crashing when invalid args passed 2022-10-30 15:18:03 -07:00
Mark Riedesel
5cb07486db Add buffer size check to Image.load_tga_from_buffer(). Fixes #67985 2022-10-30 11:20:50 -05: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
a889c1d7a2
Merge pull request #67909 from Calinou/doc-enetpacketpeer
Document the ENetPacketPeer class
2022-10-30 00:09:24 +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
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
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
DeeJayLSP
dd64ceab47 Change all WEBP strings and comments to WebP 2022-10-28 15:17:49 -03:00
bruvzg
4e44a271f0
ICU: Update to version 72.1 2022-10-28 09:11:55 +03: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
Fabio Alessandrelli
7536d15fe3 [MP] Let MultiplayerAPI handle packet relaying and peer signaling.
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-27 18:08:58 +02:00
Bastiaan Olij
91945c3077 Change default OpenXR pose to aim pose 2022-10-28 01:56:06 +11:00
Hugo Locurcio
16ba235e0a
Document the ENetPacketPeer class 2022-10-26 19:40:18 +02:00
Max Hilbrunner
bb77342c07
Merge pull request #67843 from Calinou/doc-csgshape3d
Document `collision_priority` in the CSGShape3D class
2022-10-25 14:26:47 +02:00
Max Hilbrunner
9e509caa8b
Merge pull request #67858 from TechnoPorg/fix-upnp-docs
Fix Thread usage in UPNP docs.
2022-10-25 14:22:23 +02:00
Yuri Rubinsky
9e04531938 Fix enum type to use int64_t instead of int in GDScript 2022-10-25 09:06:08 +03:00
TechnoPorg
4c06237b93 Fix Thread usage in UPNP docs.
The threading API has changed between Godot 3 and Godot 4.
See https://github.com/godotengine/godot-proposals/issues/4691.
2022-10-24 17:23:33 -06:00
Marc Gilleron
7543a5e014 Rename queue_delete => queue_free
# Conflicts:
#	editor/plugins/tiles/tiles_editor_plugin.cpp
2022-10-24 22:07:02 +01:00
Wei Guo
d0edd36f80 Fix built-in script path of GDScript 2022-10-25 03:41:18 +08:00
Clay John
c51a42778d
Merge pull request #67541 from RandomShaper/refactor_subgroup_ads
Let the RD driver itself expose subgroup caps
2022-10-24 12:02:06 -07:00
Hugo Locurcio
df636ac881
Document collision_priority in the CSGShape3D class 2022-10-24 18:44:30 +02:00
Clay John
753a182797
Merge pull request #65334 from dsnopek/opengl-multiview
[opengl] Add multiview to the opengl3 driver
2022-10-23 17:00:01 -07:00
Wei Guo
95113a7cd5 Fix MultiplayerSynchronizer::update_outbound_sync_time when replication_interval is not 0 2022-10-23 14:01:51 +08:00
Raul Santos
687633e5bd
Use .generated suffix for generated C# code
Use the `.generated` suffix instead of `_Generated` so .NET marks C#
file generated by Godot source generators as generated code.
2022-10-22 23:13:52 +02:00
David Snopek
398ee08375 Add multiview to the opengl3 driver 2022-10-21 21:00:32 -05:00
Max Hilbrunner
13138b307b
Merge pull request #67656 from MewPurPur/instance🧹
Fix minor mistakes throughout the documentation
2022-10-21 18:19:32 +02:00