Commit graph

7774 commits

Author SHA1 Message Date
Rémi Verschelde
8253c28200
Merge pull request #67031 from raulsntos/dotnet/string-extensions
C#: Cleanup and sync StringExtensions with core
2022-11-28 08:21:23 +01:00
Ignacio Roldán Etcheverry
4a82d71d73
Merge pull request #65907 from magian1127/4.0FixPropertiesGenerator
C#: Fix Generated ScriptProperty Error.
2022-11-28 01:48:52 +01:00
Raul Santos
dc2ceef0ec
C#: Remove/deprecate unnecessary string extensions
- Removed `UnicodeAt`
- Removed `EndsWith`
- Removed `LPad` and `RPad`
- Deprecated `BeginsWith` in favor of `string.StartsWith`
- Deprecated `LStrip` and `RStrip` in favor of `string.TrimStart` and `string.TrimEnd`
2022-11-27 23:25:48 +01:00
Magian
c41196f0f3 C#: Fix Generated ScriptProperty Error.
1. Add "this." to prevent errors caused by duplicate variable names.
2. Try to find the default value of property getters.
2022-11-27 17:40:40 +08:00
Ignacio Roldán Etcheverry
690199b7dd
Merge pull request #69194 from raulsntos/dotnet/begone-variant-disposer
C#: Remove VariantSpanDisposer and use constants in stackalloc
2022-11-27 03:30:59 +01:00
Raul Santos
3ff181096a
C#: Remove VariantSpanDisposer and use constants in stackalloc
- Remove `VariantSpanDisposer`, no need to dispose of the Variant Spans
since we are now borrowing the Variants instead of copying them.
- Remove `VariantSpanExtensions.Cleared` that was only used so the
Span was initialized for `VariantSpanDisposer` to know what to dispose.
- Fix stackalloc Spans to use constant VarArgsSpanThreshold
and avoid bound checks.
2022-11-27 03:04:34 +01:00
Ignacio Roldán Etcheverry
68e3f49157
Merge pull request #69191 from raulsntos/dotnet/no-throw
Fix `VariantUtils.UnsupportedType` method throwing
2022-11-26 04:38:11 +01:00
Ignacio Roldán Etcheverry
50badbd1f4
Merge pull request #69088 from raulsntos/dotnet/global
C#: Add `global::` namespace to generated source
2022-11-26 04:36:26 +01:00
Raul Santos
cfab6b0566
Fix VariantUtils.UnsupportedType method throwing
This method was not supposed to throw, just return the new constructed
exception so it can be thrown by the caller.
2022-11-26 03:05:00 +01:00
Raul Santos
b9e1ca1e86
C#: Add global:: namespace to generated source
Adds `global::` to the fully qualified types in source generators to
prevent ambiguity.
2022-11-26 01:13:16 +01:00
Rémi Verschelde
c7ceb94e37
Merge pull request #69079 from adamscott/fix-singleton-scene-cyclic-load
Fix singleton scene cyclic loading
2022-11-25 19:29:57 +01:00
Rémi Verschelde
fcdded2e3d
Merge pull request #68310 from neikeq/csharp-opt-variant-generic-conv
C#: Optimize Variant conversion callbacks
2022-11-25 19:27:26 +01:00
Adam Scott
69bb7e5b11 Fix singleton scene cyclic loading 2022-11-25 12:43:55 -05:00
Raul Santos
d0b166d8e4
C#: Cleanup and sync crypto/buffer StringExtensions with core
- Replaced `MD5Buffer`, `MD5Text`, `SHA256Buffer` and `SHA256Text` implementation to use the `System.Security.Cryptography` classes and avoid marshaling.
- Added `SHA1Buffer` and `SHA1Text`.
- Renamed `ToUTF8` to `ToUTF8Buffer`.
- Renamed `ToAscii` to `ToASCIIBuffer`.
- Added `ToUTF16Buffer` and `ToUTF32Buffer`.
- Added `GetStringFromUTF16` and `GetStringFromUTF32`.
2022-11-25 17:30:45 +01:00
Raul Santos
d9c495f322
C#: Cleanup and sync IsValid* StringExtensions with core
- Renamed `IsValidInteger` to `IsValidInt`.
- Added `IsValidFileName`.
- Added `IsValidHexNumber`.
- Added support for IPv6 to `IsValidIPAddress`.
- Added `ValidateNodeName`.
- Updated the documentation of the `IsValid*` methods.
2022-11-25 17:30:45 +01:00
Raul Santos
6178407940
C#: Cleanup and sync StringExtensions with core
- Moved `GetBaseName` to keep methods alphabetically sorted.
- Removed `Length`, users should just use the Length property.
- Removed `Insert`, string already has a method with the same signature that takes precedence.
- Removed `Erase`.
- Removed `ToLower` and `ToUpper`, string already has methods with the same signature that take precedence.
- Removed `FindLast` in favor of `RFind`.
- Replaced `RFind` and `RFindN` implemenation with a ca ll to `string.LastIndexOf` to avoid marshaling.
- Added `LPad` and `RPad`.
- Added `StripEscapes`.
- Replaced `LStrip` and `RStrip` implementation with a call to `string.TrimStart` and `string.TrimEnd`.
- Added `TrimPrefix` and `TrimSuffix`.
- Renamed `OrdAt` to `UnicodeAt`.
- Added `CountN` and move the `caseSensitive` parameter of `Count` to the end.
- Added `Indent` and `Dedent`.
2022-11-25 17:30:32 +01:00
Rémi Verschelde
a9fbf3718d
Merge pull request #69144 from DeeJayLSP/update_embree
Update embree to 3.13.5
2022-11-25 14:05:19 +01:00
DeeJayLSP
5e4158eb48
Update embree to 3.13.5 2022-11-25 13:09:04 +01:00
Rémi Verschelde
e81b787d36
Merge pull request #69123 from queezle42/queezle42/master
Fix GLAD-related build problems on Linux
2022-11-25 10:00:55 +01:00
Rémi Verschelde
c3af45791c
Merge pull request #67511 from neikeq/issue-66060
C#: Load assemblies as collectible only in the Godot editor
2022-11-25 10:00:33 +01:00
Ignacio Roldán Etcheverry
3f645f980c C#: Optimize Variant conversion callbacks
These callbacks are used for marshaling by callables and generic Godot
collections.

C# generics don't support specialization the way C++ templates do.
I knew NativeAOT could optimize away many type checks when the types
are known at compile time, but I didn't trust the JIT would do as good
a job, so I initially went with cached function pointers.

Well, it turns out the JIT is also very good at optimizing in this
scenario, so I'm changing the methods to do the conversion directly,
rather than returning a function pointer for the conversion.

The methods were moved to `VariantUtils`, and were renamed from
`GetFromVariantCallback/GetToVariantCallback` to `ConvertTo/CreateFrom`.

The new implementation looks like it goes through many `if` checks
at runtime to find the right branch for the type, but in practice it
works pretty much like template specialization. The JIT only generates
code for the relevant branch. Together with inlining, the result is
very close or the same as doing the conversion manually:

```cs
godot_variant variant;

int foo = variant.Int;
int bar = VariantUtils.ConvertTo<int>(variant);
```

If the type is a generic Godot collection, the conversion still goes
through a function pointer call.

The new code happens to be much shorter as well, with the file going
from 1057 lines to 407.

Side note: `Variant.cs` was mistakenly created in the wrong folder,
so I moved it to the `Core` folder.
2022-11-25 03:14:10 +01:00
Jens Nolte
67f31f571e Fix GLAD-related build problems on Linux
- Use gl.h provided by GLAD in the OpenXR module
- Use non-EXT variants of some OpenGL defines
- Remove libGL-related code paths
2022-11-25 02:52:17 +01:00
Raul Santos
ca5c51f47e
C#: Add Projection documentation
- Add documentation to Projection type
- Reorder Projection members to be consistent with other C# types
2022-11-25 00:29:58 +01:00
Rémi Verschelde
8b7efd2306
Merge pull request #69134 from jquinl/export_range_int_fix
GDScript: Properly respect `int` type hint for `@export_range`
2022-11-24 23:30:40 +01:00
unknown
5fd382c2ab GDScript: Properly respect int type hint for @export_range
Fixes #69104.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-11-24 22:14:05 +01:00
clayjohn
075cea1077 Ensure class name is printed in STATIC_CALLED_ON_INSTANCE warning 2022-11-24 12:06:11 -08:00
Rémi Verschelde
e1b87cc6a5
Merge pull request #69127 from KoBeWi/redUNDOnt
Cleanup remaining EditorUndoRedoManager usages
2022-11-24 19:04:16 +01:00
kobewi
8a3d2f4e0c Cleanup remaining EditorUndoRedoManager usages 2022-11-24 18:56:22 +01:00
Rémi Verschelde
93be29be06
Merge pull request #69125 from raulsntos/dotnet/bezier_derivative
C#: Implement BezierDerivative
2022-11-24 18:56:02 +01:00
Rémi Verschelde
0d202cb5f1
Merge pull request #69111 from TokageItLab/put-together-interpolations
Refactor interpolating functions in some classes to use `Math` class
2022-11-24 18:54:30 +01:00
Rémi Verschelde
06bdc91afd
Merge pull request #69083 from fire/abstract_gltf_material
Cache materials in gltf as the abstract class of Material in GLTFDocument
2022-11-24 18:54:25 +01:00
K. S. Ernest (iFire) Lee
baab97302a Cache materials in gltf as the abstract class of Material
Use the abstract material class instead of BaseMaterial3D. This allows inserting ShaderMaterials into gltf. Like in VRM.
2022-11-24 09:00:09 -08:00
Raul Santos
d2f7314716
C#: Implement BezierDerivative
Adds `BezierDerivative` method to Mathf, Vector2 and Vector3 (already exposed in Core).
2022-11-24 17:55:07 +01:00
Silc Renew
b217c41d36 Refactor interpolating functions in some classes to use Math class 2022-11-24 20:31:43 +09:00
Rémi Verschelde
910d6d8e62
GDScript: Only check if ignoring warnings in debug build 2022-11-24 11:50:32 +01:00
Rémi Verschelde
c39c251255
Merge pull request #68023 from rsjtdrjgfuzkfg/pico
Partial support for Pico 4
2022-11-24 10:43:15 +01:00
Rémi Verschelde
cfb5ce771c
Merge pull request #69048 from akien-mga/thorvg-better-errors
ImageLoaderSVG: Improve error reporting
2022-11-23 17:22:16 +01:00
Rémi Verschelde
49bb53093d
Merge pull request #68985 from adamscott/fix-godot#68977-constant-parameters
Fix parameters that are considered as constants
2022-11-23 17:21:41 +01:00
Rémi Verschelde
124594593f
Merge pull request #68580 from rhofour/fix-source-generation
First attempt at fully qualifying the default values of C# properties.
2022-11-23 17:19:26 +01:00
Adam Scott
2918689ff1 [godot#68977] Fix constants parameters 2022-11-23 08:15:54 -05:00
Rémi Verschelde
d3b8faac74
ImageLoaderSVG: Improve error reporting 2022-11-23 13:27:31 +01:00
Rémi Verschelde
608d266853
Merge pull request #69022 from RedMser/unregister-gltfdocext
Add unregister for `GLTFDocumentExtension`
2022-11-23 08:31:43 +01:00
R. Alex Hofer
6ab93bd919 Fully qualify C# default values in exported fields.
This avoids issues when the default values rely on using
namespaces.
2022-11-22 18:10:34 -05:00
RedMser
9c50e99c5c Add unregister for GLTFDocumentExtension 2022-11-22 21:46:59 +01:00
Rémi Verschelde
dfcb2d4fb8
Merge pull request #64250 from raulsntos/openxr-string-arrays
Expose string array properties in OpenXR module as PackedStringArray
2022-11-22 21:41:24 +01:00
Rémi Verschelde
ad20007970
Merge pull request #68948 from KoBeWi/eeny_meeny_miny_moe
Fill random docs
2022-11-22 21:37:05 +01:00
kobewi
a23f6d0aa6 Fill random docs 2022-11-22 17:59:45 +01:00
Rémi Verschelde
4abbb2d684
GDScript: Don't warn about RETURN_VALUE_DISCARDED by default
This happens too often with normal usage of the API.
The warning can still be useful to find actual bugs where discarding the return
value wasn't intentional, but this should stay enabled manually, at least until
we either improve the API to remove false positives, or improve the warning (e.g.
to only warn about unused return value on const functions).
2022-11-22 15:01:24 +01:00
Rémi Verschelde
e3a51e53ef
Merge pull request #68581 from oganm/oganm/master
fix typo in ZIPReader doc
2022-11-22 12:36:45 +01:00
Rémi Verschelde
0b2dc0f017
Merge pull request #68970 from Chaosus/gds_fix_lambda_signal
Fix using signals in lambda functions
2022-11-22 10:00:05 +01:00