Ignacio Roldán Etcheverry
e5e7a795b1
C#: Code cleanup and greatly reduce use of C# pointers
2022-08-22 03:36:51 +02:00
Ignacio Roldán Etcheverry
f16c8e3759
Fix detection of .NET Sdk from snap and allow higher versions
2022-08-22 03:36:51 +02:00
Ignacio Roldán Etcheverry
315636e77c
C#: Fallback to `dotnet --info` to determine .NET RID
...
Some Linux distros use their distro name as the RID for directory names.
If the .NET Host directory cannot be found with the generic RID,
try to get the rid from `dotnet --info`.
The generic RID should still be the first choice. Some platforms like
Windows 10 define the RID as `win10-x64` but still use the generic
`win-x64` for directory names.
Co-authored-by: Lewis James <lewiji+github@gmail.com>
2022-08-22 03:36:51 +02:00
Ignacio Roldán Etcheverry
f9a67ee9da
C#: Begin move to .NET Core
...
We're targeting .NET 5 for now to make development easier while
.NET 6 is not yet released.
TEMPORARY REGRESSIONS
---------------------
Assembly unloading is not implemented yet. As such, many Godot
resources are leaked at exit. This will be re-implemented later
together with assembly hot-reloading.
2022-08-22 03:35:59 +02:00
Ignacio Roldán Etcheverry
513ee857a9
C#: Restructure code prior move to .NET Core
...
The main focus here was to remove the majority of code that relied on
Mono's embedding APIs, specially the reflection APIs. The embedding
APIs we still use are the bare minimum we need for things to work.
A lot of code was moved to C#. We no longer deal with any managed
objects (`MonoObject*`, and such) in native code, and all marshaling
is done in C#.
The reason for restructuring the code and move away from embedding APIs
is that once we move to .NET Core, we will be limited by the much more
minimal .NET hosting.
PERFORMANCE REGRESSIONS
-----------------------
Some parts of the code were written with little to no concern about
performance. This includes code that calls into script methods and
accesses script fields, properties and events.
The reason for this is that all of that will be moved to source
generators, so any work prior to that would be a waste of time.
DISABLED FEATURES
-----------------
Some code was removed as it no longer makes sense (or won't make sense
in the future).
Other parts were commented out with `#if 0`s and TODO warnings because
it doesn't make much sense to work on them yet as those parts will
change heavily when we switch to .NET Core but also when we start
introducing source generators.
As such, the following features were disabled temporarily:
- Assembly-reloading (will be done with ALCs in .NET Core).
- Properties/fields exports and script method listing (will be
handled by source generators in the future).
- Exception logging in the editor and stack info for errors.
- Exporting games.
- Building of C# projects. We no longer copy the Godot API assemblies
to the project directory, so MSBuild won't be able to find them. The
idea is to turn them into NuGet packages in the future, which could
also be obtained from local NuGet sources during development.
2022-08-22 03:35:59 +02:00
Ignacio Roldán Etcheverry
5e37d073bb
C#: Re-write GD and some other icalls as P/Invoke
2022-08-22 03:35:59 +02:00
Ignacio Roldán Etcheverry
9a51430441
C#: Re-write Array, Dictionary, NodePath, String icalls as P/Invoke
2022-08-22 03:35:59 +02:00
Ignacio Roldán Etcheverry
c4ccabd3fb
C#: Remove DynamicGodotObject/Object.DynamicObject
...
We are moving in the direction of no dynamic code generation,
so this is no longer desired.
The feature can still be easily implemented by any project that
still want it.
2022-08-22 03:35:59 +02:00
Ignacio Roldán Etcheverry
124fbf95f8
C#: Move marshaling logic and generated glue to C#
...
We will be progressively moving most code to C#.
The plan is to only use Mono's embedding APIs to set things at launch.
This will make it much easier to later support CoreCLR too which
doesn't have rich embedding APIs.
Additionally the code in C# is more maintainable and makes it easier
to implement new features, e.g.: runtime codegen which we could use to
avoid using reflection for marshaling everytime a field, property or
method is accessed.
SOME NOTES ON INTEROP
We make the same assumptions as GDNative about the size of the Godot
structures we use. We take it a bit further by also assuming the layout
of fields in some cases, which is riskier but let's us squeeze out some
performance by avoiding unnecessary managed to native calls.
Code that deals with native structs is less safe than before as there's
no RAII and copy constructors in C#. It's like using the GDNative C API
directly. One has to take special care to free values they own.
Perhaps we could use roslyn analyzers to check this, but I don't know
any that uses attributes to determine what's owned or borrowed.
As to why we maily use pointers for native structs instead of ref/out:
- AFAIK (and confirmed with a benchmark) ref/out are pinned
during P/Invoke calls and that has a cost.
- Native struct fields can't be ref/out in the first place.
- A `using` local can't be passed as ref/out, only `in`. Calling a
method or property on an `in` value makes a silent copy, so we want
to avoid `in`.
REGARDING THE BUILD SYSTEM
There's no longer a `mono_glue=yes/no` SCons options. We no longer
need to build with `mono_glue=no`, generate the glue and then build
again with `mono_glue=yes`. We build only once and generate the glue
(which is in C# now).
However, SCons no longer builds the C# projects for us. Instead one
must run `build_assemblies.py`, e.g.:
```sh
%godot_src_root%/modules/mono/build_scripts/build_assemblies.py \
--godot-output-dir=%godot_src_root%/bin \
--godot-target=release_debug`
```
We could turn this into a custom build target, but I don't know how
to do that with SCons (it's possible with Meson).
OTHER NOTES
Most of the moved code doesn't follow the C# naming convention and
still has the word Mono in the names despite no longer dealing with
Mono's embedding APIs. This is just temporary while transitioning,
to make it easier to understand what was moved where.
2022-08-22 03:35:59 +02:00
rafallus
da7a5653f4
Expose Basis `set_orthogonal_index` method as a GridMap function
2022-08-20 21:42:20 -05:00
Umang Kalra
7ef5dfcfc3
Changed the title of change node type dialog
2022-08-20 22:53:07 +05:30
Max Hilbrunner
79717dcb46
Merge pull request #64170 from YuriSizov/docs-annotations-in-technicolor
...
Add documentation for all annotations
2022-08-20 00:57:01 +02:00
Yuri Sizov
7895a66cf2
Merge pull request #64334 from YuriSizov/core-bind-property-revert-methods
...
Make `property_*_revert` methods multilevel and expose them for scripting
2022-08-19 20:41:41 +03:00
Yuri Sizov
a0995182fe
Add documentation for all annotations
2022-08-19 15:06:39 +03:00
Max Hilbrunner
6f273d2156
Merge pull request #63326 from MewPurPur/binary-highlighting-fix
...
Fix highlighting of multiple operators
2022-08-19 01:27:02 +02:00
Clay John
17ca5b913c
Merge pull request #64156 from bruvzg/sys_msdf
...
Allow MSDF rendering for system fonts, fix crash on loading damaged / unsupported font files.
2022-08-18 14:58:57 -06:00
RedMser
c25b8f2876
Remove unintentional PROPERTY_USAGE_INTERNAL
...
The flag only matters for property definition,
but was also used in _validate_property a lot.
2022-08-18 16:25:00 +02:00
Silc Renew
b31115cdc1
Add collision weight to PhysicsBody for penetrations must be avoided
...
Co-authored-by: Juan Linietsky <reduzio@gmail.com>
2022-08-18 08:10:31 +09:00
Yuri Sizov
980f5f32f4
Make `property_*_revert` methods multilevel and expose them for scripting
2022-08-18 00:03:53 +03:00
Haoyu Qiu
660c700f9c
Fix action name completion for `Input`
2022-08-15 23:28:49 +08:00
Yuri Sizov
d953d9590b
Improve the `make_rst.py` parser for BBCode tags
2022-08-15 17:45:10 +03:00
Aaron Franke
be81b33e2b
GLTF: Fix orthographic cameras, internally store data in GLTF's format
2022-08-14 19:18:53 -05:00
Aaron Franke
3bbb50359d
Document GLTFLight and GLTFSpecGloss
2022-08-14 14:57:58 -05:00
VolTer
2e6108d181
Improve binary operator highlighting
2022-08-14 15:49:07 +02:00
smix8
4f0730d4bc
Add Navigation Debug for GridMap edge connections
...
Adds navigation visual debug for GridMap edge connections that use baked navigationmesh with bake_navigation=true.
2022-08-13 21:27:56 +02:00
Micky
b62d06fbed
Rename Navigation's `neighbor_dist` to `neightbor_distance`
...
NavigationAgent2D/3D.`neighbor_dist` -> `neighbor_distance` (also affects setters and getters)
NavigationServer2D/3D.`agent_set_neighbor_dist()` -> `agent_set_neighbor_distance()`
Also changes their parameters' names.
Doesn't affect "Agent.neighborDist_" in Agent.h
2022-08-13 12:40:55 +02:00
Rémi Verschelde
345dd9f0fb
Merge pull request #62934 from Xwdit/script_doc_arg_def_var
2022-08-10 16:31:45 +02:00
Rémi Verschelde
a946768151
Merge pull request #63015 from Xwdit/fix_gds_editor_tooltip_arg_type
2022-08-10 16:31:32 +02:00
Rémi Verschelde
26b2ac82ff
Merge pull request #63020 from Xwdit/fix_gds_editor_tooltip_return_type
2022-08-10 16:31:20 +02:00
Rémi Verschelde
0af6aae5bb
Merge pull request #64169 from hakro/fix-gltf-animations-always-imported
2022-08-10 15:25:20 +02:00
Xwdit
f265f175e3
Fix script documentation method argument default values
...
Co-Authored-By: Rémi Verschelde <rverschelde@gmail.com>
2022-08-10 15:07:21 +02:00
Xwdit
e25c86bf5d
Fixed incorrect type display of function argument in GDScript editor tooltips
2022-08-10 15:06:21 +02:00
Xwdit
7e262310a2
Fixed incorrect type display of void return in GDScript editor tooltips
2022-08-10 15:05:47 +02:00
Rémi Verschelde
abe98a95c5
Merge pull request #64206 from Chaosus/gds_fix
2022-08-10 12:29:11 +02:00
Rémi Verschelde
6b84619136
Merge pull request #64188 from YeldhamDev/gridmap_item_fix
2022-08-10 11:50:20 +02:00
Hakim
805ffdfbf6
Prevent AnimationPlayer from being added on GLTF import if the option is unchecked. Fixes #63954
2022-08-10 11:17:29 +02:00
Yuri Rubinsky
df85c9871f
Prevent global functions from overriding completion of subscript
2022-08-10 11:51:53 +03:00
Michael Alexsander
fe16aecbac
Fix error when switching to another `GridMap` with an item with higher index selected
2022-08-09 19:05:02 -03:00
bruvzg
bf1cc6326a
Allow MSDF rendering for system fonts, fix crash on loading damaged / unsupported font files.
2022-08-09 14:21:09 +03:00
antonWetzel
40a1d6d100
vector4 distance_squared_to and update csharp
2022-08-09 01:59:17 +02:00
Rémi Verschelde
f8383a7c72
Merge pull request #64099 from A-Lamia/lsp_uri_path_fixes
2022-08-08 23:04:33 +02:00
Yuri Sizov
c5d7115038
Rename the argument tag to param in XML documentation
2022-08-08 22:34:31 +03:00
Rémi Verschelde
862dedcefe
Merge pull request #64076 from raulsntos/doc-fixes
...
Add `@GDScript.type_exists` documentation, Fix typo in weakref documentation
2022-08-08 19:15:25 +02:00
Rémi Verschelde
bc3ab0aaa8
Merge pull request #64004 from YuriSizov/doctool-fail-on-unnamed-args
...
Add checks and tests for empty/unnamed arguments
2022-08-08 19:15:07 +02:00
Rémi Verschelde
74d2c7d394
Merge pull request #63932 from smix8/navigation_heightmapshape_baking_4.x
2022-08-08 15:47:08 +02:00
Raul Santos
e47ba81050
Add `@GDScript.type_exists` documentation
2022-08-08 15:40:32 +02:00
Yuri Sizov
1362bc22bd
Add tests for empty/unnamed arguments to ClassDB, Variant, GDScript
2022-08-08 16:36:01 +03:00
Lamia
42a16ef76e
fix: modifies workspace->root_uri so that p_uri is symmetrical to other operating systems. #63388
2022-08-08 22:40:13 +10:00
Rémi Verschelde
01ce034398
Merge pull request #64085 from raulsntos/fix-rider-check
2022-08-08 08:58:21 +02:00
Rémi Verschelde
7801ad0531
Merge pull request #64046 from AntonioDell/bugfix/63715-infer-preloaded-const-types
2022-08-08 08:55:37 +02:00
Raul Santos
34c3966510
Avoid paths with invalid characters in `IsRider`
2022-08-08 02:00:17 +02:00
Raul Santos
83ffe70f1f
Various fixes to C# documentation
2022-08-07 19:18:04 +02:00
Antonio Dell'Annunziata
f81a166ab8
fix(gdscript): Infer type from preload const
...
When resolving the type of the attribute from the variant, the result_type.kind was overritten for no reason.
It is assumed that this only needs to be done, if the variant value is not valid to have any kind here.
Solves #63715
2022-08-07 16:09:24 +02:00
Rémi Verschelde
e3876899d3
Merge pull request #63919 from Faless/scons/4.x_easy_deps
2022-08-07 16:09:02 +02:00
Fabio Alessandrelli
43f51d78d1
[MP] Cleanup and fixes for replication plugin.
...
- Remove dead code.
- Fix "Add from path" adding the wrong string when targeting root node.
2022-08-07 15:08:35 +02:00
Fabio Alessandrelli
202320e1ed
[Websocket] Remove dummy JS server implemenation.
...
It does nothing but printing errors (only websocket client is available
in browsers), so we might as well return null when you instantiate it.
2022-08-07 13:44:16 +02:00
Rémi Verschelde
77d3ac700d
Merge pull request #63712 from object71/fix-export-issues
2022-08-06 14:27:17 +02:00
Rémi Verschelde
c81ef51503
Merge pull request #63976 from aaronfranke/godots-own-comment-lines
2022-08-06 13:20:57 +02:00
Rémi Verschelde
ae335196b5
Merge pull request #63762 from bruvzg/ft_warn
...
[TextServer] Add a build warning when building with external FreeType without Brotli support.
2022-08-06 00:31:15 +02:00
Rémi Verschelde
bd833f8e06
Merge pull request #63871 from bruvzg/ts_build_options
...
Add Text Server related options to the build profiles editor.
2022-08-06 00:23:41 +02:00
Aaron Franke
ce0080768c
Make "Godot source files" comment consistent in modules
2022-08-05 17:09:11 -05:00
bruvzg
4b155b939b
[Text Server] Prevent composite glyphs which incorporate kashida from being used for justification. Update TextServer tests to clean up on fail.
2022-08-05 19:35:38 +03:00
smix8
5137cd9d87
Add NavigationMesh baking for HeightMapShape
...
Adds HeightMapShape for StaticColliders and GridMap to the NavigationMeshGenerator for baking NavigationMesh.
2022-08-05 08:56:38 +02:00
Rémi Verschelde
25915cdd0e
Merge pull request #59844 from Calinou/rename-shader-param-methods
2022-08-05 02:52:06 +02:00
Hugo Locurcio
db22b7ded0
Rename shader parameter uniform setter/getter methods for consistency
...
`shader_uniform` is now consistenly used across both per-shader
and per-instance shader uniform methods. This makes methods easier
to find in the class reference when looking for them.
2022-08-04 23:17:06 +02:00
bruvzg
80c9a44492
Fix overrun flag check and HarfBuzz safe to break flag check.
2022-08-04 22:58:28 +03:00
Fabio Alessandrelli
951a1016d3
[Scons] Implement module dependency sorting.
...
Modules can now call:
env.module_add_dependencies(name: str, deps: list, optional: bool)
To add required or optional dependencies during the "can_build" step.
Required dependencies will be checked and the module will be not be
enabled when they are missing, printing a warning to notify the user.
2022-08-04 20:00:19 +02:00
Fabio Alessandrelli
55845bac26
Fix some array size function definition mismatch.
2022-08-04 13:06:17 +02:00
Rémi Verschelde
fdceece7f8
Merge pull request #63899 from bruvzg/hb_510
...
HarfBuzz: Update to version 5.1.0, use new FLAG_SAFE_TO_INSERT_TATWEEL flag to improve justification.
2022-08-04 09:12:05 +02:00
bruvzg
2980c0d60c
HarfBuzz: Update to version 5.1.0, use new FLAG_SAFE_TO_INSERT_TATWEEL flag to improve justification.
2022-08-04 09:10:16 +03:00
Hristo Stamenov
0e1f7e9f89
Removed faulty function update after get_property_list.
...
The function tried to rearrange properties but that lead to problems with duplication or deleted properties. Implemented the logic that that function did inside the get_property_list both for tool scripts and non-tool scripts.
2022-08-03 21:45:16 +03:00
Aaron Franke
19a4d75b44
Replace Vector3.ToDiagonalMatrix with Basis.FromScale in C#
2022-08-03 10:24:22 -05:00
bruvzg
066ca97690
Add Text Server related options to the build profiles editor.
...
Adds SCons options to disable Brotli and Graphite.
Adds option categories to the build profiles editor.
Adds options default state to the build profiles editor.
Adds Text Server related options to the build profiles editor.
Fix misplaced OpenGL/Vulkan SCons options.
2022-08-03 15:06:43 +03:00
Fabian Keller
f242f9c738
Fix consistency of translated/scaled/rotated in Transform2D and Transform3D
2022-08-02 23:38:14 +02:00
Rémi Verschelde
c67febb008
Merge pull request #63830 from KoBeWi/regEX
...
Add static method for creating RegEx
2022-08-02 18:16:04 +02:00
kobewi
61a2cb65b1
Add static method for creating RegEx
2022-08-02 15:56:46 +02:00
Rémi Verschelde
33258d850c
Merge pull request #61315 from lawnjelly/variant_bucket_pools
...
Variant memory pools
2022-08-02 15:54:18 +02:00
bruvzg
4373a0bb86
[TextServer] Add ICU Unicode security and spoofing detection.
2022-08-02 15:37:49 +03:00
Max Hilbrunner
2685cc7bb6
UPNP: Don't delete mappings when adding mappings
...
Don't delete previous mappings when adding a new mapping.
This was a old workaround that seems to cause issues.
2022-08-02 09:11:05 +02:00
Rémi Verschelde
b7346e5025
Merge pull request #53956 from bruvzg/icu_uax_31
2022-08-02 08:54:19 +02:00
Rémi Verschelde
536b5b69ab
Merge pull request #63789 from YuriSizov/editor-remove-old-property-widgets
...
Remove `CustomPropertyEditor` completely
2022-08-02 07:50:20 +02:00
bruvzg
5aa48b6ae5
[TextServer] Implement ICU/UAX 31 based `is_valid_identifier` function.
2022-08-02 08:30:20 +03:00
Ignacio Roldán Etcheverry
8243c7ab5d
Merge pull request #63790 from raulsntos/csharp-unused
...
C#: Remove unused `Transform2D.ScaleBasis` method
2022-08-01 22:38:17 +02:00
Yuri Sizov
86798d36db
Remove `CustomPropertyEditor` completely
2022-08-01 22:57:05 +03:00
Raul Santos
a4ad1dfa51
C#: Remove unused `Transform2D.ScaleBasis` method
2022-08-01 20:56:29 +02:00
Yuri Sizov
1c9ba5ef3e
Remove excessive `editor/property_editor.h` includes
2022-08-01 17:19:11 +03:00
bruvzg
366e2d893e
[TextServer] Add a build warning when building with external FreeType without Brotli support.
2022-08-01 13:22:29 +03:00
Raul Santos
d0e586fc7e
Rename math 'phi' arguments to 'angle' in C#
2022-08-01 02:42:20 +02:00
Rémi Verschelde
14828c331c
Mono: Fix build after #63737
2022-08-01 00:40:18 +02:00
Rémi Verschelde
f04004b24c
Merge pull request #55450 from Calinou/script-editor-improve-light-theme-syntax-colors
2022-08-01 00:08:25 +02:00
Rémi Verschelde
8ad80f0547
Merge pull request #63737 from YuriSizov/editorresourceconversionpluginactomy
2022-07-31 23:52:38 +02:00
Rémi Verschelde
880d93c71c
Merge pull request #63537 from antonWetzel/csharp-vector4
...
`Vector4`, `Vector4i` and `Projection` for Csharp
2022-07-31 23:45:52 +02:00
Hugo Locurcio
0a24d40836
Improve script editor's light theme syntax colors for better readability
...
New colors were hand-picked to have a better contrast rate,
while still following the general coloring of the previous light theme.
This improves the light theme's accessibility, especially in outdoor
environments with direct sunlight.
2022-07-31 23:40:48 +02:00
Rémi Verschelde
c0946d3c38
Merge pull request #63743 from bruvzg/hb_inc_order_and_ver_check
2022-07-31 23:38:00 +02:00
Fabio Alessandrelli
faff5e10a5
Merge pull request #63599 from nathanfranke/mp-docs
...
Document multiplayer replication classes, small changes to MultiplayerSpawner
2022-07-31 23:14:33 +02:00
bruvzg
b54c5c2683
[TextServer] Ensure that built-in library headers are always included before system header, add HarfBuzz version checks for optional features.
2022-07-31 22:52:59 +03:00
Yuri Sizov
9f55bd971e
Extract EditorResourceConversionPlugin into its own source files and clean up editor includes
2022-07-31 21:14:15 +03:00
antonWetzel
87ebfff46d
create vector4, vector4i and projection for csharp
2022-07-31 19:42:34 +02:00
Rémi Verschelde
602e967ba8
Merge pull request #55943 from jvanmourik/master
...
glTF animation parsing: Changed the 'loop' and 'cycle' animation name keywords to be case-insensitive
2022-07-31 17:28:43 +02:00
Rémi Verschelde
556cc22dd0
Merge pull request #63656 from raulsntos/fix-signal-bind-csharp
2022-07-31 13:29:31 +02:00
Rémi Verschelde
bd58300718
Merge pull request #63661 from raulsntos/fix-editor-paths-include
...
Add `editor_paths.h` include missing in mono module
2022-07-31 09:57:37 +02:00
Nathan Franke
b7c5aeca8a
document multiplayer replication classes, small changes to multiplayer spawner
2022-07-30 21:38:19 -05:00
Aaron Franke
ab4b5af286
Fix TranslatedLocal method in C# affecting the original transform
2022-07-30 11:54:35 -05:00
Raul Santos
cef3ca4024
Add editor_paths.h include missing in mono module
2022-07-30 02:00:56 +02:00
Rémi Verschelde
335fc2a946
Merge pull request #48183 from madmiraal/fix-regex-offset
...
Generate error if RegEx offset is negative
2022-07-29 22:38:35 +02:00
Rémi Verschelde
15a02c49be
Merge pull request #61647 from KoBeWi/SaverResource
2022-07-29 22:30:51 +02:00
Raul Santos
ca47471dfa
Fix Callable calls in mono module
...
The `Callable::call` and `Callable::call_deferred` methods have been
renamed to `Callable::callp` and `Callable::call_deferredp`.
2022-07-29 21:56:02 +02:00
Marcel Admiraal
db1270d521
Generate error if RegEx offset is negative
2022-07-29 19:43:23 +01:00
kobewi
c3606cb5f3
Swap arguments of ResourceSaver.save()
2022-07-29 19:53:09 +02:00
LinuxUserGD
6e6569aa78
fix 'Comparison result is always the same' warnings
2022-07-29 19:45:22 +02:00
Rémi Verschelde
ba3734e69a
Merge pull request #63603 from aaronfranke/editor-paths
...
Move editor paths into the EditorPaths class
2022-07-29 19:31:59 +02:00
Rémi Verschelde
7199314eb3
Merge pull request #63595 from reduz/remove-signal-connect-binds
...
Remove Signal connect binds
2022-07-29 18:10:39 +02:00
Aaron Franke
ac870ab1c8
Move editor paths into the EditorPaths class
2022-07-29 11:07:30 -05:00
Juan Linietsky
d4433ae6d3
Remove Signal connect binds
...
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind().
Changed all uses of it to Callable.bind()
2022-07-29 16:26:13 +02:00
Antonio Dell'Annunziata
7b975b50dc
fix(gdscript): Fix infinite loop on type inferernce from super method calls
...
When infering the type from a `super()` call, the gdscript_editor didn't use the base class to search for the original implementation of the method, but instead searched in the extending class.
This caused the same function to be analyzed for type inference which created the infinite loop.
Solves #63592
2022-07-29 10:22:55 +02:00
Rémi Verschelde
0cf26fb8c8
Merge pull request #63584 from smix8/navigation_std_to_localvector_4.x
2022-07-29 09:42:19 +02:00
DeeJayLSP
c8f3b02fcf
Rename every instance of "OGG" to "Ogg"
2022-07-28 16:41:38 -03:00
Rémi Verschelde
14d021287b
Merge pull request #63049 from Faless/mp/4.x_as_module
2022-07-28 20:46:31 +02:00
smix8
8d4922cfb1
Replace Navigation std::vector use with LocalVector
...
Replace Navigation std::vector use with LocalVector.
2022-07-28 20:29:15 +02:00
Antonio Dell'Annunziata
e03b7b1935
fix(gdscript): Fix out of bounds crash after reloading member variables
...
The crash happens because the members Vector is resized, while the member_indices_cache still has the old indices saved.
On deleting a member from the script this can result to a cached index of 1 while the members Vector size is only 1.
2022-07-28 18:52:29 +02:00
Rémi Verschelde
199ea349f5
Merge pull request #57698 from bluenote10/feature/rename_translated_to_translated_local
2022-07-28 10:03:07 +02:00
Rémi Verschelde
fb086d44cf
Merge pull request #63560 from V-Sekai/named_global_crashfix
2022-07-28 09:03:01 +02:00
Bastiaan Olij
1dd671014b
Add startup flag to override XR mode settings
2022-07-28 11:50:34 +10:00
SaracenOne
1307577932
Prevent hard crash in GDScriptVM when a named global can not be found.
2022-07-27 23:37:42 +01:00
Edward
67e34f6120
inconsistent str() error fix
...
inconsistent str() error fix
2022-07-27 14:16:05 -04:00
Lamia
3fa943fe23
LSP: Sanitizes protocol URI `file:///c%3A` in file path
...
Fixes #63205 .
2022-07-28 02:25:05 +10:00
Rémi Verschelde
663195f36a
Merge pull request #63325 from EIRTeam/typed_array_fix
2022-07-27 12:39:20 +02:00
Rémi Verschelde
f3fbb157ca
Merge pull request #63121 from aaronfranke/editor-export-split
2022-07-27 11:19:40 +02:00
RedMser
7b834c8bfd
Fix unnamed arguments in XML docs
2022-07-26 20:42:38 +02:00
Aaron Franke
e53ae13178
Split up editor export code into multiple files
2022-07-26 08:28:19 -05:00
Fabio Alessandrelli
ca7d572908
[Net] Modularize multiplayer, expose MultiplayerAPI to extensions.
...
- RPC configurations are now dictionaries.
- Script.get_rpc_methods renamed to Script.get_rpc_config.
- Node.rpc[_id] and Callable.rpc now return an Error.
- Refactor MultiplayerAPI to allow extension.
- New MultiplayerAPI.rpc method with Array argument (for scripts).
- Move the default MultiplayerAPI implementation to a module.
2022-07-26 09:31:12 +02:00
kobewi
e4a961b86a
Fix Vector4 parse error
2022-07-26 01:49:57 +02:00
Juan Linietsky
c7255388e1
Remove ThreadWorkPool, replace by WorkerThreadPool
...
The former needs to be allocated once per usage. The later is shared for all threads, which is more efficient.
It can also be better debugged.
2022-07-25 15:39:50 +02:00
Rémi Verschelde
90019676b0
Code quality: Fix header guards consistency
...
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 11:17:40 +02:00
Rémi Verschelde
3084a48ace
Merge pull request #63219 from reduz/implement-vector4-projection
2022-07-25 11:13:27 +02:00
Aaron Franke
7b8f9a0e8e
GLTF: Organize structures into a subfolder
2022-07-24 17:16:51 -05:00
Rémi Verschelde
a1f0ea5d19
Merge pull request #63409 from V-Sekai/gltf-export
2022-07-25 00:03:38 +02:00
K. S. Ernest (iFire) Lee
b2bd4cc792
Mend duplicate nodes in the gltf export.
2022-07-24 14:38:57 -07:00
Rémi Verschelde
b7a47bfc09
Merge pull request #63098 from Xwdit/fix_qualifiers_script_doc
2022-07-24 23:26:30 +02:00
Xwdit
5d49df8d97
Fix missing method qualifiers in script doc
...
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-07-24 23:00:19 +02:00
Aaron Franke
00ec9321f6
GLTF: Move shared defines into a separate gltf_defines.h file
...
Also move GLTFDocument's template conversion functions into gltf_template_convert.h
2022-07-24 14:21:27 -05:00
Aaron Franke
6887b3f8ee
GLTF: Only list used extensions when they're actually used
2022-07-23 21:59:16 -05:00
reduz
455c06ecd4
Implement Vector4, Vector4i, Projection
...
Implement built-in classes Vector4, Vector4i and Projection.
* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.
These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.
**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-23 14:00:01 +02:00
Rémi Verschelde
a5bc65bbad
Merge pull request #63265 from reduz/stream-bpm-support
...
Implement BPM support in AudioStream files.
2022-07-23 11:21:14 +02:00
reduz
d1ddee2258
Implement BPM support
...
Based on #62896 , only implements the BPM support part.
* Implements BPM support in the AudioStreamOGG/MP3 importers.
* Can select BPM/Bar Size and total beats in a song file, as well as edit looping points.
* Looping is now BPM aware
* Added a special importer UI for configuring this.
* Added a special preview showing the audio waveform as well as the playback position in the resource picker.
* Renamed `AudioStream::instance` to `instantiate` for correctness.
2022-07-23 07:31:17 +02:00
Rémi Verschelde
3f504eb9fe
Merge pull request #63313 from python273/fix-xr-doc-links
2022-07-22 23:44:00 +02:00
Álex Román Núñez
1b10f744e0
Fix typed array returns returning the incorrect contained type
...
Fixes #59485 and #60218
2022-07-22 20:34:19 +02:00
Aaron Franke
b00bb577e7
Rename directory for export templates from templates to export_templates
2022-07-22 12:35:43 -05:00
Dallon Feldner
07ddc8b3b8
Don't print redundant errors when parsing GDScript
...
The error macros print a generic error, which isn't necessary, and could be confusing to end users.
2022-07-22 09:30:52 -05:00
python273
f78d06c9fe
Fix tutorial links in XR classes docs
2022-07-22 15:05:31 +03:00
Nathan Franke
eb8482cf95
round dimensions of svg
2022-07-21 20:11:29 -05:00
Yuri Rubinsky
ccc56cc6d4
Rename `epsilon` to `tolerance` in the `Plane::has_point` method
2022-07-21 20:15:15 +03:00
Rémi Verschelde
ea3d355f0a
Merge pull request #62433 from KoBeWi/ 🌈
2022-07-21 16:36:34 +02:00
bruvzg
8823eae328
Rename OSX to macOS and iPhoneOS to iOS.
2022-07-21 09:37:52 +03:00
Rémi Verschelde
fa2dcc7ace
Merge pull request #47935 from HaSa1002/doc-loading-run-time
2022-07-20 22:33:49 +02:00
Riteo
a21f8b7c13
Improve `linuxbsd` headless building, cleanup build scripts
...
Now the `linuxbsd` platform can be built headlessly (e.g. without X11
development libraries).
I also cleaned up some weird (old?) usages of the `env` variable which
seem to make no difference and are used nowhere else.
2022-07-20 19:48:35 +02:00
kobewi
df5655fdca
Highlight ^NodePath and &StringName differently
2022-07-19 20:20:30 +02:00
Rémi Verschelde
7fd29b5464
Merge pull request #59301 from fire-forge/layout-preset-full-rect
2022-07-19 12:06:00 +02:00
FireForge
97dfbea6ad
Rename Control PRESET_WIDE to PRESET_FULL_RECT
2022-07-18 20:08:11 -05:00
FireForge
84431bd782
Use integer types in Image and ImageTexture methods
...
- Image.blit_rect()
- Image.blit_rect_mask()
- Image.blend_rect()
- Image.blend_rect_mask()
- Image.fill_rect()
- Image.get_used_rect()
- Image.get_rect()
- ImageTexture.set_size_override()
2022-07-18 19:43:32 -05:00
Rémi Verschelde
d2df09d02b
Merge pull request #63037 from cdemirer/fix-non-global-autoload-code-completion-crash
2022-07-18 16:13:29 +02:00
cdemirer
e9a5beeb01
Fix crash while trying to autocomplete non-global Autoload
2022-07-18 16:35:25 +03:00
Rémi Verschelde
4e9d3130f5
Merge pull request #63024 from Xwdit/fix_grouping_annotation_in_doc
2022-07-18 15:29:11 +02:00
Rémi Verschelde
aace87e0d0
Merge pull request #63123 from zerc/fix_doc_class_description
2022-07-18 14:56:55 +02:00
Vladimir Savin
585eee2a48
GDScript: Fix brief/long description doc comments.
2022-07-18 13:34:07 +01:00
Rémi Verschelde
73a67f9309
Merge pull request #63125 from cdemirer/fix-parameter-shadowing-class-member
...
Check for parameters shadowing class members
2022-07-18 13:36:51 +02:00
cdemirer
52781535a3
Check for parameters shadowing class members
2022-07-18 00:28:27 +03:00
Bastiaan Olij
d139131aab
Adding Variable Rate Shading support to Godot
...
Improve GI renderer and add VRS support
Implement render device has_feature and move subgroup settings to limit_get
2022-07-17 15:42:24 +10:00
Fabian Keller
2bf9e6090c
rename translate(d) to translate(d)_local in Transform 2D/3D
2022-07-16 11:47:54 +02:00
Xwdit
152466938f
Fix grouping annotations displayed in document
2022-07-15 12:39:52 +02:00
bruvzg
cbe3a2dcb7
Use BitField hint for the TextServer enums. Add missing parts for BitField support to the GDextension API.
2022-07-15 08:49:50 +03:00
Rémi Verschelde
184f62cb46
Merge pull request #60458 from KoBeWi/Deprecated-hint,-unused-
2022-07-14 00:20:30 +02:00
Lerg
52adbb763e
Fix documentation for C# Vector2/3i classes.
...
The / operator was wrongly documented as a multiplication.
2022-07-13 22:49:22 +02:00
George Marques
dc5a6362c1
Merge pull request #62895 from KoBeWi/callables_exist_you_know
2022-07-13 09:30:08 -03:00
George Marques
ad11d264b7
Merge pull request #62901 from cdemirer/prevent-unnecessary-additional-parser-error
2022-07-13 09:24:36 -03:00
George Marques
d51aac1137
Merge pull request #62900 from cdemirer/fix-parser-stuck-in-an-error-loop
2022-07-13 09:18:21 -03:00
Rémi Verschelde
b942c1ffe3
Merge pull request #62827 from fire-forge/ok-cancel
...
Add `ok_button_text` to AcceptDialog and `cancel_button_text` to ConfirmationDialog
2022-07-13 14:10:38 +02:00
George Marques
87ef6f554b
Merge pull request #62918 from cdemirer/parser-properly-set-node-extents
2022-07-13 09:08:28 -03:00
George Marques
01f910517d
Merge pull request #62922 from YuriSizov/gdscript-annotation-defaults
2022-07-13 09:06:20 -03:00
George Marques
bf1ef0498e
Merge pull request #62578 from MinusKube/editor-print-crash
...
Fix GDScript parser sometimes crashing when issuing warning for unreachable pattern
2022-07-13 08:44:40 -03:00
kobewi
2f777b9a1e
Remove unused hints
2022-07-12 00:44:13 +02:00
Yuri Sizov
316f78a037
Add default argument bindings to GDScript annotations
2022-07-11 23:02:55 +03:00
cdemirer
12b9572121
Parser: Properly set node extents
2022-07-11 21:31:15 +03:00
cdemirer
5a906a33d9
Prevent unnecessary additional parser error
2022-07-11 03:32:28 +03:00
cdemirer
4f36b2df2a
Fix parser stuck in an error loop
2022-07-11 02:42:40 +03:00
kobewi
e9344f5154
Remove outdated code path
2022-07-10 20:48:33 +02:00
FireForge
e4067064ce
Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog
2022-07-09 10:47:08 -05:00
kobewi
d2900429e8
Add static methods for creating Image and ImageTexture
2022-07-08 13:40:47 +02:00
Rémi Verschelde
31974aaae2
Merge pull request #62805 from raulsntos/csharp-rpc
2022-07-07 17:21:51 +02:00
Rémi Verschelde
3768236ad2
Merge pull request #62789 from raulsntos/csharp-export-nodes
2022-07-07 17:21:10 +02:00
Rémi Verschelde
421e93b590
Merge pull request #62782 from raulsntos/csharp-bitfield-enums
2022-07-07 14:59:21 +02:00
Rémi Verschelde
72b3e81bdf
Merge pull request #62801 from raulsntos/ensure-nuget-path-exists
2022-07-07 12:23:35 +02:00
Rémi Verschelde
1e553e34fb
Merge pull request #62108 from bruvzg/font_config_v3
2022-07-07 12:22:49 +02:00
bruvzg
0c5431644d
Allows parsing of invalid UTF-16 surrogates (can be encountered in Windows filenames) and some non-standard UTF-8 variants, makes Unicode parse errors more verbose.
2022-07-07 11:07:18 +03:00
Rémi Verschelde
28a3dee276
Merge pull request #62791 from raulsntos/csharp-bezier-interpolation
...
C#: Add `BezierInterpolate` method
2022-07-07 09:40:36 +02:00
Raul Santos
8131358b71
C#: New `RPCAttribute`
...
Replace old RPC attributes with a new single `RPCAttribute` which works
like the GDScript `@rpc` annotation.
2022-07-07 04:10:38 +02:00
Raul Santos
1637d0c699
Ensure NuGet.config directory exists
2022-07-07 01:53:32 +02:00
Raul Santos
71f99c6d40
C#: Add `BezierInterpolate` method
...
Adds a `BezierInterpolate` method for floats in `Mathf` and for vectors
in `Vector2` and `Vector3`.
2022-07-06 21:59:42 +02:00
Raul Santos
68477e9b1b
C#: Enable exporting nodes to the inspector
2022-07-06 21:49:53 +02:00
Raul Santos
f9c43c5489
Add C# support for bitfield enums (flags)
2022-07-06 17:49:37 +02:00
Rémi Verschelde
09e12ba9b4
Sync GDScript doc template for new annotations
2022-07-06 16:37:40 +02:00
Rémi Verschelde
f0eb3ac5d3
Merge pull request #62701 from cdemirer/for-variable-conflict
2022-07-06 16:02:49 +02:00
Rémi Verschelde
fdff28e1a2
Merge pull request #62699 from cdemirer/fix-autocomplete-var-assigned-same-statement
2022-07-06 15:57:19 +02:00
Rémi Verschelde
4c56885bc0
Merge pull request #62690 from cdemirer/fix-infinite-guess-recursion
2022-07-06 15:54:16 +02:00
Rémi Verschelde
4873886830
Merge pull request #62760 from cdemirer/fix-annotation-initializer-conflict
...
Fix priority of annotated type vs initializer type
2022-07-06 15:47:56 +02:00
Rémi Verschelde
635d447a69
Merge pull request #62713 from YuriSizov/docs-scripting-annotations
2022-07-06 15:31:19 +02:00
Rémi Verschelde
ea61cd3b32
Merge pull request #62707 from YuriSizov/gdscript-group-those-props
2022-07-06 15:24:07 +02:00
Rémi Verschelde
55fca1cb94
Merge pull request #62344 from BastiaanOlij/extract_dependencies
2022-07-06 13:24:46 +02:00
bruvzg
344ba0ffaf
Refactor Font configuration and import UI, and Font resources.
2022-07-06 14:12:36 +03:00
Rémi Verschelde
cf19484746
Merge pull request #62374 from reduz/implement-bitfield-hint
...
Implement a BitField hint
2022-07-06 09:35:40 +02:00
cdemirer
f280975bf1
Fix priority of annotated type vs initializer type
2022-07-06 04:25:44 +03:00
reduz
5ac42cf576
Implement a BitField hint
...
Allows to specify the binder that an enum must be treated as a bitfield.
2022-07-05 22:13:37 +02:00
Yuri Sizov
f85bafaa11
Add grouping annotations for class properties in GDScript
2022-07-05 22:01:40 +03:00
PZerua
aa7ab96e71
Fix light intensity and attenuation import from GLTF
2022-07-05 19:48:01 +02:00
Yuri Sizov
a9098e6147
Add support for documenting built-in annotations
2022-07-04 20:21:39 +03:00
lawnjelly
b221eab426
Variant memory pools
...
Memory pools via PagedAllocator for Transform2D, Transform3D, Basis and AABB.
2022-07-04 12:01:46 +01:00
cdemirer
dbdf0174b4
Do error when for variable conflicts with a variable in scope
2022-07-04 12:30:39 +03:00
cdemirer
3a827349bf
Fix autocomplete for variable which is assigned to in the current statement
2022-07-04 10:08:41 +03:00
bruvzg
6c27d9d624
HarfBuzz: Update to version 4.4.1
2022-07-04 09:12:19 +03:00
cdemirer
bd518f6b11
Fix infinite recursion when guessing type of variable which is being assigned to
2022-07-04 02:49:36 +03:00
Rémi Verschelde
eafb565f0c
Merge pull request #62653 from akien-mga/gltf-warning-typo-fix
2022-07-03 03:30:50 +02:00
Rémi Verschelde
e72f3abe2f
glTF: Fix a couple typos in warnings on image parsing
2022-07-03 02:55:31 +02:00
mj.Jernigan
a413656e07
Register missing WebRTCDataChannelJS type
2022-07-03 01:21:17 +02:00
Rémi Verschelde
6bbfd160b0
SCons: Properly track codegen script dependency for generated GLSL headers
2022-07-02 16:01:48 +02:00
MinusKube
92367bad4e
Fix GDScript parser sometimes crashing when issuing warning for unreachable pattern
2022-07-01 02:05:00 +02:00
Silc Renew
dc43cfc830
implement bone renamer in importer
2022-07-01 03:55:28 +09:00
Rémi Verschelde
b730d2ee09
Merge pull request #60675 from voylin/Add-BBCode-support-for-printing-output
...
Adding print_rich() for printing with BBCode
2022-06-28 23:35:53 +02:00
Rémi Verschelde
f6072c9c98
Merge pull request #62485 from cdemirer/fix-set-chain-jump-if-shared
...
Fix chain assignment bug with jump_if_shared
2022-06-28 19:13:35 +02:00
cdemirer
a0608bd891
Fix set chain bug with jump_if_shared
2022-06-28 18:45:27 +03:00
Voylin
c6291bcd8a
Adding print_rich for printing with BBCode
2022-06-29 00:41:29 +09:00
Rémi Verschelde
622b656c40
Merge pull request #53135 from briansemrau/fix-ref-leak
2022-06-28 17:26:44 +02:00
Rémi Verschelde
4c14bf7482
Merge pull request #62470 from vnen/gdscript-export-nodes
...
GDScript: Enable exporting nodes to the inspector
2022-06-28 08:07:00 +02:00
Rémi Verschelde
b863c40356
Merge pull request #62468 from V-Sekai/core-const-expressions
...
Add a const call mode to Object, Variant and Script.
2022-06-28 01:08:24 +02:00
George Marques
9490146a16
GDScript: Enable exporting nodes to the inspector
...
Also fix an small issue in the property editor for NodePath trying to
use the meta property when not needed.
2022-06-27 18:42:52 -03:00
Rémi Verschelde
c4a426d6ec
Merge pull request #62462 from vnen/gdscript-setter-chaining
...
GDScript: Fix setter being called in chains for shared types
2022-06-27 23:25:53 +02:00
K. S. Ernest (iFire) Lee
9ddebc0c22
Add a const call mode to Object, Variant and Script.
...
For this to work safely (user not call queue_free or something in the expression), a const call mode was added to Object and Variant (and optionally Script).
This mode ensures only const functions can be called, making it safe to use from the editor.
Co-Authored-By: reduz <reduzio@gmail.com>
2022-06-27 13:33:06 -07:00
George Marques
511a4b761c
GDScript: Fix setter being called in chains for shared types
...
When a type is shared (i.e. passed by reference) it doesn't need to be
called in a setter chain (e.g. `a.b.c = 0`) since it will be updated in
place.
This commit adds an instruction that jumps when the value is shared so
it can be used to skip those cases and avoid redundant calls of setters.
It also solves issues when assigning to sub-properties of read-only
properties.
2022-06-27 12:09:51 -03:00
Bastiaan Olij
ecfcfd97fa
Split dependency logic
...
Split FOG
Split visibility notifier
Final cleanup of storage classes
2022-06-28 00:10:29 +10:00
Rémi Verschelde
b192073001
Merge pull request #62309 from reduz/remake-resource-thread-safety
...
Remake ResourceCache thread safety code and API
2022-06-25 14:09:28 +02:00
Rémi Verschelde
dd3de622d8
Merge pull request #62372 from MarcusElg/nosliderrename
...
Rename @export_range's noslider option to no_slider
2022-06-25 14:03:44 +02:00
Rémi Verschelde
56b8d579b2
Merge pull request #62255 from vnen/gdscript-implicit-onready
...
GDScript: Use implicit method for @onready variables
2022-06-24 23:24:33 +02:00
George Marques
cf015673d3
GDScript: Use implicit method for @onready variables
...
Initialize them with the implicit method so they're not related to the
overriding of the `_ready` method of the script but instead are always
set.
2022-06-24 14:49:21 -03:00
George Marques
81cac4907f
GDScript: Don't add implicit constructor to the list of functions
...
So it's not shown on docs or when listing the methods. This also avoids
being able to call it using the `call()` function.
2022-06-24 14:48:46 -03:00
Priyansh Rathi
e995764e50
add support for soft shadows to the lightmapper
2022-06-24 21:50:13 +05:30
Rémi Verschelde
fec3a48e53
Merge pull request #59918 from piiertho/enhancement/rename-controll-minimum_size-to-custom_minimum_size
2022-06-24 14:54:53 +02:00
Marcus Elg
6c1ac9f3be
Rename export_range's noslider option to no_slider
2022-06-24 10:45:34 +02:00
Rémi Verschelde
faae24637c
Merge pull request #62300 from smix8/navigation_map_force_update_4.x
2022-06-24 10:13:07 +02:00
Rémi Verschelde
81afea620f
Merge pull request #62353 from smix8/navigation_region_owns_point_4.x
...
Add NavigationServer region_owns_point() helper function
2022-06-24 09:08:25 +02:00
Rémi Verschelde
ecf187705e
Merge pull request #62238 from V-Sekai/openexr-buffer
...
For in-engine processing allow saving openexr to a buffer.
2022-06-24 00:12:16 +02:00
smix8
e57360d8df
Add NavigationServer.region_owns_point() helper function
...
Adds a helper function to check if a world space position is currently owned by a navigation region.
2022-06-23 23:32:05 +02:00