Commit graph

8487 commits

Author SHA1 Message Date
Dmitrii Maganov
056066ee95 GDScript: Fix false name conflicts for unnamed enums 2022-12-29 22:04:13 +02:00
Dmitrii Maganov
9507f65e25 GDScript: Disallow return with value in void functions 2022-12-29 03:06:13 +02:00
Raul Santos
a43e8285a7
C#: Avoid generic types in the script path attribute generator
- Avoid generic types in `ScriptPathAttributeGenerator`, this
means they won't be added to the `[AssemblyHasScripts]` attribute
and a `[ScriptPath]` attribute won't be added to the class.
Since generic classes can't be used as scripts they shouldn't use
those attributes, this also makes CSharpScript consider those types
invalid since they won't be added to the script/type map.
- Avoid generic types in `ScriptManagerBridge.LookupScriptsInAssembly`.
- Set `outMethodsDest` in `ScriptManagerBridge.UpdateScriptClassInfo`.
2022-12-28 23:20:02 +01:00
Dmitrii Maganov
b6aa4840d8 Fix usage of Enum as constant 2022-12-28 23:04:40 +02:00
Dmitrii Maganov
f67aa3e46d GDScript: Fix return type of constructor call for extending class 2022-12-27 23:02:12 +02:00
Filipe Rinaldi
2841144096 Fix arm64 build when using Clang
The commit b5a8055b5c should target GCC builds only as
-flax-vector-conversions has different behaviour in Clang and is
currently making the build fail.

Signed-off-by: Filipe Rinaldi <filipe.rinaldi@gmail.com>
2022-12-26 20:39:27 +00:00
cdemirer
bbb21c3fd5 Fix type adjustment skipped when value is considered both not hard and not variant 2022-12-25 17:11:30 +03:00
Silc Renew
8745c206c4 Fix pingpong with loop wrap is not working 2022-12-25 18:16:38 +09:00
Ekaterina Vaartis
60692b4e45 Implement export_multiline support for Array[String] and Dictionary
For arrays, specifically check if it's a string array and pass the
type on to the editor. For dictionaries, save the hint on the type and
use it later to draw the multiline editor, except for when adding a
string key, because that doesn't make much sense. All string values
however will be drawn as multiline.
2022-12-25 01:46:57 +03:00
Ignacio Roldán Etcheverry
f382a2b59b
Merge pull request #70509 from irwiss/reverse-Vector2.AngleToPoint
C#: reverse Vector2.AngleToPoint
2022-12-24 17:22:50 +01:00
Alexey Kim
e9ace71c88 C#: reverse Vector2.AngleToPoint 2022-12-24 04:18:53 +02:00
rune-scape
1b77993257 Inner classes get their docs back 2022-12-23 17:39:24 -05:00
Ignacio Roldán Etcheverry
dfac8bb407 C#: Fix leak in Span to Variant conversions 2022-12-23 21:37:28 +01:00
Ignacio Roldán Etcheverry
5784bf1be0
Merge pull request #70486 from raulsntos/dotnet/convert-to
C#: Rename `ConvertToX` methods
2022-12-23 21:15:24 +01:00
Raul Santos
24e4ac9167
C#: Rename ConvertToX methods
- Renamed `ConvertToX` to `ConvertToNativeX`.
- Renamed `ConvertToXObject` to `ConvertToX`.
- Renamed `ConvertToXManaged` to `ConvertToX`.
- Fix `Signal` name in bindings generator and csharp script.
2022-12-23 19:40:32 +01:00
Raul Santos
03c26d6618
C#: Disallow init-only properties
ReadOnly properties are currently not allowed because the generated code
needs to set them, this also apply to `init` properties because they
need to be set after initialization.
2022-12-23 19:04:14 +01:00
Rémi Verschelde
d0398f62f0
Revert "pcre2: Update to upstream version 10.42"
This reverts commit 62c3e4ab9c.

Needs more work, see comments about `_regex_free` errors in #70447.
2022-12-23 11:29:11 +01:00
Rémi Verschelde
ae4c025da9
Merge pull request #69991 from rune-scape/cast-type
GDScript: Fix cast producing null
2022-12-23 09:22:21 +01:00
Rémi Verschelde
edfa1e8665
Merge pull request #70220 from adamscott/fix-external-enum
Fix external enums not assignable as constants
2022-12-23 09:20:50 +01:00
Rémi Verschelde
62c3e4ab9c
pcre2: Update to upstream version 10.42
Changelog: https://github.com/PCRE2Project/pcre2/blob/pcre2-10.42/ChangeLog

This should also fix support for RISC-V architectures, at least in the sljit
library.
2022-12-22 16:34:29 +01:00
Rémi Verschelde
e1657bd2a7
Merge pull request #70440 from rune-scape/null-again
Fix GDScript analyzer null literal
2022-12-22 16:02:19 +01:00
Rémi Verschelde
801ef6614d
Merge pull request #70138 from anvilfolk/signals
Add MethodInfo to signal datatype
2022-12-22 16:02:11 +01:00
rune-scape
3228fdb88a Fix GDScript analyzer null literal 2022-12-22 06:02:34 -05:00
Yuri Rubinsky
abaedb54f1 Remove unused code paragraph from gdscript_editor.cpp/complete_code 2022-12-22 11:10:11 +03:00
ocean (they/them)
d93dbab054 Add MethodInfo to signal datatype 2022-12-21 22:49:51 -05:00
Rémi Verschelde
d553dca62a
Merge pull request #70391 from TyounanMOTI/fix-basis-universal-transcode
Fix Basis Universal format texture rendering failure
2022-12-21 22:23:56 +01:00
Rémi Verschelde
5ad02aa08d
Merge pull request #67111 from DarkKilauea/nav-queries-link
Added signal to NavigationAgent when entering a link
2022-12-21 19:38:20 +01:00
Hirotoshi Yoshitaka
d144e278ac Fix Basis Universal format texture rendering failure
Fix "failed! on level 0" error message on exported projects with Basis Universal textures.
2022-12-21 17:29:38 +09:00
Rémi Verschelde
63f95c0e58
Merge pull request #70366 from quentinguidee/refactoring/fix-double-get-singleton
Fix double get_singleton()
2022-12-21 09:27:02 +01:00
Rémi Verschelde
6b4a01f99a
Merge pull request #69351 from smix8/gridmap_item_navigation_layers_4.x
Change GridMap navigation_layers to per mesh_library item
2022-12-21 09:21:21 +01:00
Rémi Verschelde
2becec34cd
Merge pull request #70331 from anvilfolk/run-weird
Unify GDScriptAnalyzer in-editor and runtime autoload checks
2022-12-21 09:20:56 +01:00
Rémi Verschelde
f04f53201d
Merge pull request #70317 from HolonProduction/svg_assets
Add support for svg images in the asset lib.
2022-12-21 09:19:14 +01:00
ocean (they/them)
fb418685a0 Unify GDScriptAnalyzer in-editor and runtime autoload checks 2022-12-20 19:01:28 -05:00
smix8
61f33e205c Change GridMap navigation_layers to be per mesh_library item
Changes GridMap navigation_layers from a single bitmask for the entire GridMap to a bitmask for each item used in the mesh_library with a baked navmesh.
2022-12-20 20:51:32 +01:00
Quentin Guidée
d9c05f7fbd
Fix double get_singleton()
Signed-off-by: Quentin Guidée <quentin.guidee@gmail.com>
2022-12-20 14:26:15 -05:00
HolonProduction
66fa776667 Add support for svg images in the asset lib.
Pixel based image formats are identified by magic numbers. This is not possible with svg therefore svg parsing is tried and if it succeeded the result is used.

WebP and bmp support is added as well. But I could not test it as I am not able to run a local instance of the asset lib and there is no asset using those formats.
2022-12-20 15:41:17 +01:00
Rémi Verschelde
4f95912d8a
Merge pull request #70108 from akien-mga/embree-arm64-flax-vector-conversions
embree: Build on ARM64 with -flax-vector-conversions
2022-12-20 10:33:32 +01:00
Rémi Verschelde
2521c2e0e4
Merge pull request #70309 from smix8/gridmap_collision_priority_4.x
Add GridMap collision_priority
2022-12-20 10:33:23 +01:00
Rémi Verschelde
f1f6b35b8c
Merge pull request #70244 from DarkKilauea/nav-fix-abbrev-compat
[4.x] Fix typo and ensure backwards compatibility for changed property names
2022-12-20 10:32:26 +01:00
Rémi Verschelde
b5a8055b5c
embree: Fix Linux ARM64 build with -flax-vector-conversions
This is a change done upstream in the `devel3` branch for 3.13.6:
82ca6b5ccb

They also seem to define it for macOS, but for us it breaks the build...
¯\_(ツ)_/¯

Also change wrong use of CPPFLAGS (pre-processor) where CXXFLAGS (C++)
makes more sense.
2022-12-20 10:10:30 +01:00
Josh Jones
0572346985
Fix typo and ensure backwards compatibility for changed property names
Changes to the name of the `navmesh` and `navpoly` properties on
`NavigationRegion` caused navigation data to be lost on load.
This PR creates uses `_set`/`_get` to handle compatibility with the
older names on load, preserving the data.

Also fixes a typo on `get_vertices_per_polygon` in `NavigationMesh`,
and renames the property to remove the `polygon_` prefix which doesn't
match the setter/getter.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-12-20 09:57:54 +01:00
Aaron Franke
6590e1fd8a
Make script annotations placed before class_name and extends 2022-12-19 22:01:29 -06:00
smix8
eb88aef537 Add GridMap collision_priority
Adds property 'collision_priority' for all physics bodies of the entire GridMap.
2022-12-19 19:31:43 +01:00
Yuri Rubinsky
dcb3754db0
Merge pull request #69720 from Chaosus/inst_to_dict_note
Fix undefined
2022-12-19 20:22:25 +03:00
Rémi Verschelde
36fa6fc8fa
Merge pull request #70291 from BastiaanOlij/small_action_map_fixes
Fix missing undo/redo object and issue with removing actions
2022-12-19 17:12:09 +01:00
Yuri Rubinsky
78d296d7ca Add a note for inst_to_dict to prevent using it on built-in instances 2022-12-19 19:12:00 +03:00
Rémi Verschelde
adc1096b19
Merge pull request #70219 from bruvzg/msdf_outline_scaling
Scale MSDF font outline with the font size and MSDF source size to match dynamic font behavior.
2022-12-19 16:26:56 +01:00
Bastiaan Olij
b5e205a57c Fix missing undo/redo object and issue with removing actions 2022-12-19 19:35:06 +11:00
Rémi Verschelde
e780dc332a
Merge pull request #70275 from rune-scape/autoload-subscript-regression
Fix autoload subscript regression
2022-12-19 01:12:35 +01:00
rune-scape
9f6ad59da7 Fix autoload subscript regression 2022-12-18 18:36:41 -05:00
Rémi Verschelde
02f24eb3f2
Merge pull request #59810 from reduz/fbx-import-dialog
Add a dialog for customizing FBX import
2022-12-18 16:55:21 +01:00
Rémi Verschelde
e9f3e7111f
Merge pull request #70237 from quentinguidee/refactor/fix-comma-instead-of-semicolon
Fix use of comma instead of semicolon
2022-12-18 16:55:10 +01:00
Quentin Guidée
e0f1e02cc7
Fix use of comma instead of semicolon
Signed-off-by: Quentin Guidée <quentin.guidee@gmail.com>
2022-12-17 20:17:04 -05:00
Josh Jones
5d8ba2b2d1 Add support for emitting a signal when entering a NavLink 2022-12-17 16:33:41 -08:00
reduz
e93d991329
Add a dialog for customizing FBX import
* If FBX files are found, a dialog will pop up asking to configure FBX2glTF.
* Dialog can also be accessed by going Editor -> Configure FBX Import.
* The dialog also shows a link to click to download the converter, which
  should contain instructions.
2022-12-18 01:08:54 +01:00
Rémi Verschelde
2ee88192f9
Merge pull request #70229 from adamscott/fix-class-lookup
Fix outer class lookup
2022-12-18 00:11:56 +01:00
Rémi Verschelde
5d2137aeea
Merge pull request #69931 from smix8/navigation_abbreviation_changes_4.x
Fix Navigation API abbreviations inconsistency
2022-12-18 00:11:16 +01:00
Adam Scott
7fc814f697 Fix external enums not assignable as constants
- Add external enums test
- Rename external inner class test
- Clean up `GDScriptAnalyzer::reduce_identifier_from_base` class
  behavior
2022-12-17 17:59:38 -05:00
Adam Scott
1bbb2b4159 Fix outer class lookup 2022-12-17 17:57:00 -05:00
smix8
34e7628f5f Fix Navigation API abbreviations inconsistency
Schema for navigation to name user facing API with  "navigation" without abbreviation and e.g. NavigationServer internals with abbr "nav".
2022-12-17 22:06:22 +01:00
bruvzg
20d9457f9d
Scale MSDF font outline with the font size and MSDF source size to match dynamic font behavior. 2022-12-17 22:47:54 +02:00
Ignacio Roldán Etcheverry
d44d0cc0fd
Merge pull request #70210 from raulsntos/dotnet/script-not-found-error
C#: Add note about the class name in instantiate error
2022-12-17 21:45:56 +01:00
Rémi Verschelde
fa345869f5
Merge pull request #70181 from quentinguidee/fix/gltf-crash-shader-material
glTF: Fix export crash with a ShaderMaterial
2022-12-17 20:56:52 +01:00
Raul Santos
2be8cd6863
C#: Add note about the class name in instantiate error
Adds a note about the requirement that a C# class name must match the
script filename in which the they are defined to the instantiate error.
2022-12-17 20:02:01 +01:00
Adam Scott
2fefcf7329 Fix inner class constant assignment 2022-12-17 12:03:03 -05:00
Rémi Verschelde
8d52eea52b
Merge pull request #70000 from rune-scape/find-more-classes
GDScript: Fix built-in script `find_class` bugs
2022-12-17 16:30:34 +01:00
Quentin Guidée
b14c87cb92
glTF: Fix export crash with a ShaderMaterial (fixes #70159) 2022-12-17 10:03:42 -05:00
Rémi Verschelde
ccbefa1f43
Merge pull request #70117 from rsjtdrjgfuzkfg/openxr-action-map-crashfix
OpenXR: fix action map editor crash on save / reset
2022-12-17 12:22:32 +01:00
Rémi Verschelde
791e742af7
Merge pull request #70180 from rune-scape/enum-value-regression
Fix enum value regression
2022-12-17 11:30:54 +01:00
rune-scape
213c94b42f Fix enum value regression 2022-12-16 22:48:25 -05:00
rsjtdrjgfuzkfg
20c192cc2d OpenXR: fix casts and loop in action map editor
This commit replaces potentially unsafe static casts with
Object::cast_to and fixes the order in which UI elements are looped over
when removing controls. This fixes crashes and wrong data being
displayed in the OpenXR action map editor when saving or resetting
action maps.
2022-12-16 21:32:43 +01:00
Rémi Verschelde
912fd3f0e1
Merge pull request #64563 from timothyqiu/word-wrap
Fix `String::word_wrap()` for long words
2022-12-16 13:47:05 +01:00
Ignacio Roldán Etcheverry
df0cf08878
Merge pull request #69867 from raulsntos/dotnet/color
C#: Synchronize Color with Core
2022-12-16 13:17:03 +01:00
Haoyu Qiu
207e52c161 Fix String::word_wrap() for long words
- Changes `TextServer.string_get_word_breaks()`
  - Returns pairs of boundary start and end offsets
  - Accepts `chars_per_line` to return line breaks
- Removes `String::word_wrap()`

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2022-12-16 13:18:57 +08:00
Raul Santos
d843a7ab97
C#: Synchronize Color with Core
- Add `Luminance` readonly property.
- Add `LinearToSrgb` and `SrgbToLinear` static methods.
- Add `FromOkHsl` static method.
- Add `FromRgbe9995` static method.
- Add `FromString` static method.
- Expose `FromHtml` static method.
- Expose `HtmlIsValid` static method.
- Add and update some Color documentation.
2022-12-16 03:04:05 +01:00
Rémi Verschelde
f18f2740da
Merge pull request #70131 from rune-scape/preload-type-regression
Fix preload type regression
2022-12-16 00:31:26 +01:00
Rémi Verschelde
c4b4e69cd9
Merge pull request #70126 from stmSi/fixed-gdscript-unary-unary-crash
Fixed GDScript crashed when two consecutive unary operators are analyzed/(script is saved).
2022-12-15 23:55:49 +01:00
Rémi Verschelde
d4bbfc7075
Merge pull request #70125 from TokageItLab/cs-sync-usage-flags
Fix out of sync PropertyUsageFlags for cs
2022-12-15 23:55:44 +01:00
stmSi
2a341a6321 Fixed GDScript crashed when two consecutive unary operators are analysed 2022-12-16 04:45:53 +06:30
rune-scape
17e03c29d6 Fix preload type regression 2022-12-15 16:47:13 -05:00
Silc Renew
a52479f770 Fix out of sync PropertyUsageFlags for cs 2022-12-16 06:27:04 +09:00
bruvzg
53c76fa5d1
[RTL/TextServer] Add baseline inline alignment mode for objects and RTL tables. 2022-12-15 23:16:02 +02:00
Rémi Verschelde
15631e24f7
Merge pull request #70113 from adamscott/fix-crash-gdscript-from-variant
Fix `GDScript::_get_gdscript_from_variant()` crash
2022-12-15 22:13:34 +01:00
rune-scape
e1c63fee86 GDScript: Fix built-in script and other find_class bugs 2022-12-15 14:56:23 -05:00
Adam Scott
3684fd249e Fix GDScript::_get_gdscript_from_variant() crash
The crash would happen, theoretically, when getting the type of a invalid
variant.
2022-12-15 12:29:01 -05:00
RedMser
ba388d09b4 Batch import Blend files using XML RPC
This improves performance when importing many Blender files, as it
avoids waiting for Blender to startup every time.
Old logic is still available by setting the RPC port setting to 0.
2022-12-15 18:27:02 +01:00
Alberto Vilches
2d60b9c6e4 Added Projection to ConvertTo<T> and CreateFrom<T> 2022-12-15 13:38:09 +01:00
Rémi Verschelde
346efd29e0
Fix typos with codespell 2022-12-15 12:24:08 +01:00
Rémi Verschelde
6debf86d51
Merge pull request #69471 from rune-scape/rune-out-of-order
GDScript: Out of order member resolution
2022-12-15 07:56:23 +01:00
rune-scape
2dfc6d5b69 GDScript: Allow out of order member resolution 2022-12-14 21:44:05 -05:00
Rémi Verschelde
b8e1d6585c
Merge pull request #69971 from neikeq/csharp-vararg-ret-premature-free
C#: Fix premature free of returned Variant in vararg methods
2022-12-14 23:27:40 +01:00
Rémi Verschelde
353fccc0e0
Merge pull request #69968 from raulsntos/dotnet/signal
C#: Rename `SignalInfo` to `Signal` and make awaitable
2022-12-14 00:17:02 +01:00
Rémi Verschelde
cd855f6516
Merge pull request #68528 from BastiaanOlij/openxr_actionmap_changes
Various fixes for OpenXR action map meta data and editing
2022-12-13 10:16:19 +01:00
Rémi Verschelde
cb7984e411
Merge pull request #70010 from akien-mga/graphite-mit
graphite: Update to latest Git, switch to MIT license
2022-12-13 10:13:16 +01:00
Rémi Verschelde
5ddd59fc79
Merge pull request #69992 from rune-scape/stringname-not-compat
GDScript Analyzer: Fix String type compatibility being too permissive
2022-12-13 10:12:13 +01:00
Rémi Verschelde
0ee6ffb257
graphite: Update to latest Git, switch to MIT license
Graphite is now available under:
MIT OR MPL-2.0 OR LGPL-2.1-or-later OR GPL-2.0-or-later

We pick MIT which is the same as Godot's main license for simplicity.

Remove define to skip deprecation warnings, upstream fixed those.
2022-12-13 10:06:00 +01:00
Aaron Franke
cee8f1a786
Improve architecture support logic in Raycast module 2022-12-12 21:42:10 -06:00
rune-scape
7d0d6aa16f GDScript: Fix cast producing null 2022-12-12 19:57:26 -05:00
Ignacio Roldán Etcheverry
833b252ce7 C#: Fix premature free of returned Variant in vararg methods
Notably, this fixes obscure issues after calling `script.New()` when
the returned instance is a `RefCounted`.
2022-12-12 17:54:28 +01:00
Raul Santos
1a4c8856ec
C#: Rename SignalInfo to Signal and make awaitable 2022-12-12 17:30:14 +01:00
Raul Santos
1ab4f26cc4
C#: Fix bindings generator for methods that return signals 2022-12-12 17:04:03 +01:00
Rémi Verschelde
ec8f52df8f
Merge pull request #69629 from smix8/agent_wild_callback_pointer_4.x
Fix Navigation agent callback wild pointer crash
2022-12-12 13:51:48 +01:00
rune-scape
08449ab16e Fix String type compatibility being too permissive 2022-12-12 07:27:41 -05:00
smix8
194c1c44e0 Fix Navigation agent callback wild pointer crash
Fixes crash in sanitizer builds when callback agent or object are already freed.
2022-12-12 13:03:55 +01:00
Rémi Verschelde
f1edd03d4c
Merge pull request #69718 from groud/finally_rename_gdnative_to_gdextension
Rename all gdnative occurences to gdextension
2022-12-12 11:43:59 +01:00
Gilles Roudière
be1c9d677d Rename all gdnative occurences to gdextension
Non-exhaustive list of case-sensitive renames:

GDExtension -> GDNative
GDNATIVE -> GDEXTENSION
gdextension -> gdnative
ExtensionExtension ->Extension (for where there was GDNativeExtension)
EXTENSION_EXTENSION ->EXTENSION (for where there was GDNATIVE_EXTENSION)
gdnlib -> gdextension
gdn_interface -> gde_interface
gdni -> gde_interface
2022-12-12 11:04:57 +01:00
Rémi Verschelde
333504453c
Merge pull request #69925 from aaronfranke/gltf-export-pref-state
Pass GLTFState to the export_preflight method
2022-12-12 08:25:42 +01:00
Rémi Verschelde
1bfaa73e14
Merge pull request #69416 from anvilfolk/default-val
Add GDScript implicit type conversion for member variables with initializers
2022-12-11 23:58:22 +01:00
Rémi Verschelde
0580790140
Merge pull request #69933 from neikeq/issue-69822
C#: Fix exported properties of GodotObject[] type
2022-12-11 22:56:05 +01:00
ocean (they/them)
c8293a73b4 Add GDScript member initializer implicit type conversion 2022-12-11 16:55:02 -05:00
Ignacio Roldán Etcheverry
51f2d7b59f
Merge pull request #69869 from raulsntos/dotnet/attributes
C#: Expose attribute properties and add documentation
2022-12-11 22:40:35 +01:00
Rémi Verschelde
71eccdff8b
Merge pull request #69894 from evan-gordon/text-server-uppercase-fix
check for empty string TextServer _string_to_upper
2022-12-11 22:34:42 +01:00
Rémi Verschelde
8410e7c9c6
Merge pull request #66733 from MewPurPur/unary-op-warnings
Fix unary op warnings never showing
2022-12-11 22:33:58 +01:00
Ignacio Roldán Etcheverry
5c6c766732 C#: Fix exported properties of GodotObject[] type
This was a regression from 17b2838f39.
`MarshalUtils` was changed in the source generators to use
`ConvertTo<T>` and `CreateFrom<T>`, which don't support `GodotObject[]`
because it would need reflection.
As such, we need to keep the custom cases for `GodotObject[]` in
`MarshalUtils`.
2022-12-11 22:29:31 +01:00
kobewi
7c6b659bd7 Add PropertyInfo overload for GLOBAL_DEF 2022-12-11 21:36:48 +01:00
evan-gordon
88015b0edb check for empty string TextServer _string_to_upper 2022-12-11 12:01:54 -08:00
Aaron Franke
f83f13f3a2
Pass GLTFState to the export_preflight method 2022-12-11 13:22:25 -06:00
Rémi Verschelde
05097ded0a
Merge pull request #69897 from poohcom1/fix/function-return-completion
Fix autocomplete on functions returning variants
2022-12-11 15:18:24 +01:00
rune-scape
98e1a2031d Fix subscript of preloaded script 2022-12-11 07:59:43 -05:00
Rémi Verschelde
1d19b0750e
Merge pull request #69883 from adamscott/fix-gdscript-cache-clear-crash
Fix `GDScriptCache::clear()` crash when clearing packed scenes
2022-12-11 09:26:39 +01:00
poohcom1
1845d927dc Fix autocomplete on functions returning variants
- When guessing return type, check type hints before last return value
2022-12-11 14:17:27 +07:00
Adam Scott
0139bd04b2 Fix GDScriptCache::clear() crash when clearing packed scenes 2022-12-10 19:10:12 -05:00
Aaron Franke
5c48dfac48
Consistently use p_ for parameters in GLTFDocument 2022-12-10 16:07:17 -06:00
Rémi Verschelde
a4131b61b1
Merge pull request #69857 from bruvzg/bim_font_no_clean
[TextServer] Do not clean up font texture cache when setting `allow_system_fallback` property.
2022-12-10 22:09:04 +01:00
Rémi Verschelde
21136aaf9a
Merge pull request #67399 from Calinou/rename-precision-double-scons
Rename `float=64` SCons option to `precision=double`
2022-12-10 22:08:18 +01:00
Rémi Verschelde
c3d7f7a57e
Merge pull request #66729 from DarkKilauea/nav-owners
Enable assigning an owner to navigation regions and links
2022-12-10 22:01:34 +01:00
Rémi Verschelde
8f6f244680
Merge pull request #69587 from adamscott/fix-constant-base-typing-in-extended-class
Fix constants scope in extended or inner GDScript classes
2022-12-10 21:58:50 +01:00
Josh Jones
5769b0e8d8 Enable assigning an owner to navigation regions and links
This allows users of the server APIs to get back the nodes that created certain regions and links.
2022-12-10 12:03:06 -08:00
Raul Santos
a86f076321
C#: Expose attribute properties and add documentation
- Exposes the properties of C# attribute so they can be accessed from
reflection, renaming them to PascalCase to follow .NET conventions.
- Added some documentation to the newly exposed members.
- Made attribute properties readonly to avoid giving the impression that
they could be modified.
2022-12-10 20:11:17 +01:00
Adam Scott
beaef88abd Remove debug macro for GDScriptLanguage script_list 2022-12-10 14:09:04 -05:00
Adam Scott
65a49bad5a Fix constant base typing in extended GDScript class 2022-12-10 13:39:45 -05:00
Adam Scott
ff544df926 Fix GDScriptCache to not remove scripts/scenes individually when clearing 2022-12-10 12:48:07 -05:00
Hugo Locurcio
063637ec77
Rename float=64 SCons option to precision=double
This avoids confusion with the old `bits=64` option and building
for 64-bit CPUs in general.
2022-12-10 16:43:45 +01:00
bruvzg
3395539ed4
[TextServer] Do not clean up font texture cache when setting allow_system_fallback property. 2022-12-10 17:07:42 +02:00
Rémi Verschelde
1ac7e5a334
Merge pull request #69518 from rune-scape/rune-analyze-values
GDScript: Preload should make native type
2022-12-10 11:29:50 +01:00
Rémi Verschelde
0c1273629d
Merge pull request #69372 from aaronfranke/gltf-cleanup
GLTF module: Clean up lots of includes
2022-12-10 10:48:14 +01:00
Rémi Verschelde
f6ea295bb1
Merge pull request #69467 from rune-scape/rune-subclass-script-path
GDScript: Fix subclass script path issues
2022-12-10 10:21:19 +01:00
Rémi Verschelde
907298d673
Merge pull request #68747 from rune-scape/rune-stringname-unification
GDScript: Unify StringName and String
2022-12-09 18:06:48 +01:00
Adam Scott
da65b61edb Fix autocomplete crash as it would infinite loop 2022-12-08 23:40:17 -05:00
Haoyu Qiu
80ccd46dcd Use capitalized ID in the doc 2022-12-08 09:40:49 +08:00
Adam Scott
59c6642f2a Add missing packed scene cache clear inside GDScriptCache::clear() 2022-12-07 15:29:18 -05:00
Rémi Verschelde
907c3e06f6
Merge pull request #69717 from Chaosus/gds_fix_lookup
Fix lookup to docs for variables initialized with `get_node`
2022-12-07 13:26:32 +01:00
Rémi Verschelde
62f7f378d4
Merge pull request #69690 from BastiaanOlij/display_refresh_type
Fix property type for OpenXR display refresh rate
2022-12-07 13:25:48 +01:00
Rémi Verschelde
a565ddcd09
Merge pull request #69654 from BastiaanOlij/openxr_submit_depth_optional
Make submitting depth buffer in OpenXR optional
2022-12-07 13:25:42 +01:00
Rémi Verschelde
df2b41f3b7
Merge pull request #69627 from RumblingTurtle/editor-scene-importer-crash-fix
Fix crash on old scene reimport
2022-12-07 13:24:26 +01:00
Yuri Rubinsky
b229a19688 Fix lookup to docs for variables initialized with get_node 2022-12-07 15:16:04 +03:00
Bastiaan Olij
0b48ca0303 Fix property type for OpenXR display refresh rate 2022-12-07 10:17:34 +11:00
Eduard Zalyaev
627b9ca049 EditorSceneFormatImporterGLTF: check if "animation/trimming" parameter from import settings exists
Fixes godotengine#69625
2022-12-06 19:11:21 +03:00
Rémi Verschelde
9bd7ad53f7
Merge pull request #69506 from adamscott/move-gdscript-uninit-to-finalize
Move GDScript uninitialization to `GDScriptLanguage::finish()`
2022-12-06 16:11:21 +01:00
Adam Scott
88f3045301 Move GDScript uninitialization to GDScriptLanguage::finalize()
Co-authored-by: Ricardo Buring <ricardo.buring@gmail.com>
Co-authored-by: kleonc <9283098+kleonc@users.noreply.github.com>
2022-12-06 09:35:39 -05:00
Bastiaan Olij
484cd90d29 Make submitting depth buffer in OpenXR optional 2022-12-06 22:37:33 +11:00
Bastiaan Olij
a35d792e65 Fix typo that resulted in left eye depth buffer being submitted for the right eye 2022-12-06 21:30:55 +11:00
Rémi Verschelde
18f7461db8
Merge pull request #69606 from red1939/bug/vscode_crash
Keep GDScriptAnalyzer alive for whole parse()
2022-12-06 11:00:51 +01:00
Rémi Verschelde
85602efef6
Merge pull request #69639 from Chaosus/gds_fix_completion
Fix completion for the raw `get_node` call
2022-12-06 11:00:15 +01:00
Bartosz Bielecki
2af4f7f762 Keep GDScriptAnalyzer alive for whole parse()
Analyzed data is allocated by Parser but kept as a reference in the cache
which in turn is held by the Analyzer. If Analyzer goes away Parser is left
with a tree of dangling references.

Code is analogous to all other usages of Analyzer + Parser pair.
2022-12-06 10:01:18 +01:00
Yuri Rubinsky
20660bb23a Fix completion for the raw get_node call 2022-12-06 10:42:44 +03:00
rune-scape
e79be6ce07 Unify String and StringName 2022-12-05 21:46:47 -05:00
Dmitrii Maganov
97280279ee Fix incomplete shadowing of member properties by parameters 2022-12-06 00:22:56 +02:00
Rémi Verschelde
8ff2ca35c5
Merge pull request #69169 from akien-mga/embree-wasm-win32
embree: Enable raycast module build for Web and Windows x86_32
2022-12-05 10:14:25 +01:00
Rémi Verschelde
8912f3e4a7
Merge pull request #69578 from dsnopek/android-native-handles
Clean up DisplayServerAndroid::window_get_native_handle() with the GLES3 renderer
2022-12-05 00:31:12 +01:00
David Snopek
61cec0b023 Clean up DisplayServerAndroid::window_get_native_handle() with the GLES3 renderer 2022-12-04 13:07:51 -06:00
bruvzg
ecec415988
Use system fonts as fallback and improve system font handling.
Add support for font weight and stretch selection when using system fonts.
Add function to get system fallback font from a font name, style, text, and language code.
Implement system font support for Android.
Use system fonts as a last resort fallback.
2022-12-04 18:44:20 +02:00
rune-scape
6f8ffd5591 GDScript: preload should make native type 2022-12-04 05:36:17 -05:00
Adam Scott
7bcaa9df9e Fix missing parent class name identifier crash 2022-12-02 21:30:19 -05:00
Raul Santos
fbd41a6eda
C#: Always convert float Variants to System.Double
Godot floats are always 64-bit.
The real_t feature only affects vectors, not scalars.
2022-12-02 17:04:11 +01:00
Rémi Verschelde
f3c68d6c83
Merge pull request #69391 from NeilKleistGao/sln
Fix C# Solution Directory Project Settings
2022-12-02 16:48:30 +01:00
Rémi Verschelde
d746b618be
Merge pull request #69428 from neikeq/no
C#: Cleanup of Marshaling methods
2022-12-02 16:48:17 +01:00
NeilKleistGao
2bab84c8c7 Fix C# solution directory settings
Co-authored-by: Ignacio Roldán Etcheverry <neikeq@users.noreply.github.com>
2022-12-02 22:01:15 +08:00
Ignacio Roldán Etcheverry
17b2838f39 C#: Cleanup Variant marshaling code in source/bindings generators
This change aims to reduce the number of places that need to be changed
when adding or editing a Godot type to the bindings.

Since the addition of `Variant.From<T>/As<T>` and
`VariantUtils.CreateFrom<T>/ConvertTo<T>`, we can now replace a lot of
the previous code in the bindings generator and the source generators
that specify these conversions for each type manually.

The only exceptions are the generic Godot collections (`Array<T>` and
`Dictionary<TKey, TValue>`) which still use the old version, as that
one cannot be matched by our new conversion methods (limitation in the
language with generics, forcing us to use delegate pointers).

The cleanup applies to:

- Bindings generator:
  - `TypeInterface.cs_variant_to_managed`
  - `TypeInterface.cs_managed_to_variant`
- Source generators:
  - `MarshalUtils.AppendNativeVariantToManagedExpr`
  - `MarshalUtils.AppendManagedToNativeVariantExpr`
  - `MarshalUtils.AppendVariantToManagedExpr`
  - `MarshalUtils.AppendManagedToVariantExpr`
2022-12-02 14:47:12 +01:00
Ignacio Roldán Etcheverry
f86c6b6ac4 C#: Replace most conversions between Variant and System.Object
This commit replaces most usages of `ConvertManagedObjectToVariant` and
`ConvertVariantToManagedObjectOfType`, by using the `Godot.Variant`
struct instead of `System.Object`.

The most notable change is to the `GetGodotPropertyDefaultValues` method
that's generated for scripts. The dictionary it returns now stores
`Godot.Variant` values.

Remaining usages are:

- The `DelegateUtils` class, for the serialization of closure display
  classes during assembly reloading by the editor. These display classes
  are compiler generated classes to store values captured by a closure.
  Since it's generated by the compiler, the only way we have to access
  the fields is through reflection. This leads to using `System.Object`.
- Converting parameters when invoking constructors from the engine.
  This will be replaced with source generators in the future.
- Legacy support for old `GetGodotPropertyDefaultValues` return values.
  We need to keep supporting the old version of this generated method
  for some time. Otherwise, if loading a project built with the previous
  version, it could lead to the loss of exported property values.
  Ideally, we should remove this legacy support before a stable release.
2022-12-02 14:47:12 +01:00
Rémi Verschelde
23c58be800
Merge pull request #69483 from akien-mga/openxr-3d-only
SCons: Disable openxr module with disable_3d=yes
2022-12-02 12:24:58 +01:00
Rémi Verschelde
7ef9947d0e
Merge pull request #68870 from dsnopek/master-webxr-input
Get WebXR fully working in Godot 4!
2022-12-02 12:24:40 +01:00
Rémi Verschelde
801080a6ab
Merge pull request #69448 from BastiaanOlij/fix_etc_rgba_bgra_issue
ETCPAK expects BGRA data for ETC
2022-12-02 12:23:49 +01:00
Rémi Verschelde
75d5dfe591
SCons: Disable openxr module with disable_3d=yes
Fixes #69470.
2022-12-02 11:40:24 +01:00
David Snopek
310bf39cd3 Get WebXR fully working in Godot 4! 2022-12-01 21:46:30 -06:00
Ignacio Roldán Etcheverry
3afeb28560 C#: Remove ConvertVariantToManagedObject
Its two usages were:

- The Array `ICollection.CopyTo` implementation.
  It's possible that this class shouldn't be implementing the
  non-generic `ICollection`, but this commit doesn't change that.
  The new implementation stores the elements as boxed `Variant` values.
- The `Variant.Obj` property.
  I'm not sure if this property's existence is justified, but for now
  I rewrote it as a simpler version of `ConvertVariantToManagedObject`.
2022-12-02 03:34:40 +01:00
Ignacio Roldán Etcheverry
bcc061edae
Merge pull request #67023 from raulsntos/dotnet/fix-signal-callback-generation
C#: Fix signature of generated signal callbacks
2022-12-02 03:19:49 +01:00
rune-scape
d531869a7c GDScript: Fix subclass script path issues 2022-12-01 20:43:27 -05:00
Yuri Sizov
bf9cf7d034
Merge pull request #69166 from souplamp/icon-annotation-not-working
Update docs to clarify `@icon` only works with global script classes
2022-12-02 03:04:23 +03:00
kobewi
e9a3e49086 Cleanup function state connections when destroying instance
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
2022-12-02 00:20:11 +01:00
souplamp
369c7d2422 Update docs to mention @icon only works with global script classes
Update the docs to clarify that the `@icon` annotation does not work
when only attaching a script to a node, and clarify that the script itself
must be a globally accessible script type.
2022-12-01 12:52:58 -06:00
Rémi Verschelde
4821de146e
Merge pull request #69423 from KoBeWi/parenture
Improve parent signature error
2022-12-01 18:10:31 +01:00
Rémi Verschelde
2d96f63e09
Merge pull request #68481 from dalexeev/gds-fix-dyn-arg-def-val
GDScript 2.0: Fix shift due to skip of non-constant default argument values
2022-12-01 18:09:25 +01:00
Bastiaan Olij
ebec23d8d8 ETCPAK expects BGRA data for ETC 2022-12-02 01:34:05 +11:00
kobewi
d1e4146462 Improve parent signature error 2022-12-01 15:16:16 +01:00
Rémi Verschelde
eb555d7559
Merge pull request #69303 from Chaosus/gds_fix_loops
Reset unassigned local variables to null in the loops
2022-12-01 10:21:21 +01:00
VolTer
bfc093c53f Fix unary op warnings never showing 2022-12-01 01:09:10 +01:00
Rémi Verschelde
f5dbec2f73
Merge pull request #69392 from dsnopek/openxr-quest-fix
Fix OpenXR on the Meta Quest: XR_KHR_loader_init_android is not reported as available (but it works anyway)
2022-11-30 19:08:55 +01:00
Ignacio Roldán Etcheverry
6745e199fb
Merge pull request #69278 from rhofour/remove-namespaces
Remove unnecessary namespaces in generated PropertyDefVal files.
2022-11-30 18:31:52 +01:00
Rémi Verschelde
c868e0b4b9
Merge pull request #69269 from red1939/red1939/master
Acknowledge that a CLASS kind of a DataType might not have an identifier
2022-11-30 10:49:09 +01:00
Bartosz Bielecki
e10b0c5d98 Acknowledge that a CLASS kind of a DataType might not have an identifier 2022-11-30 09:26:50 +01:00
Aaron Franke
1bbbee384d
GLTF: Clean up lots of includes 2022-11-29 23:11:08 -06:00
R. Alex Hofer
215022c507 Remove unnecessary namespaces in generated PropertyDefVal files. 2022-11-29 22:12:34 -05:00
David Snopek
aa5b42946c Fix OpenXR on the Meta Quest: XR_KHR_loader_init_android is not reported as available (but it works anyway) 2022-11-29 20:45:01 -06:00
Ignacio Roldán Etcheverry
5826e96014
Merge pull request #65905 from raulsntos/dotnet/marshaling-collections
C#: Fix marshaling generic Godot collections
2022-11-30 01:00:59 +01:00
clayjohn
9141984e7e Enable GLES3 on Android
Add necessary build flags and switch from using a
GLES2 context to a GLES3 one.

This also enables building for OpenXR

Co-authored-by: m4gr3d <fhuyakou@gmail.com>
Co-authored-by: dsnopek <dsnopek@gmail.com>
2022-11-29 14:18:24 -08:00
Rémi Verschelde
09e1db2148
Merge pull request #68665 from TokageItLab/cut-unkeyed-gltf-anim
Add "Trimming" option to cut un-keyed timeline before first key in glTF animation
2022-11-29 16:51:56 +01:00
trollodel
c90d0bd84f Use forward-declarations in big editor classes 2022-11-29 09:59:43 +01:00
Silc Renew
db7473672f Add trimming option to cut un-keyed timeline before first key in gltf 2022-11-29 13:53:33 +09:00
Yuri Rubinsky
8d2506e811 Reset unassigned local variables to null in the loops 2022-11-28 19:45:24 +03:00
Rémi Verschelde
4555ccdf98
Merge pull request #69224 from adamscott/fix-PackedScene-reload_from_file
Add `PackedScene::reload_from_file()` override
2022-11-28 16:53:36 +01:00
Adam Scott
a34a26eb66 Add PackedScene::reload_from_file() override 2022-11-28 10:23:02 -05:00
Yuri Rubinsky
afbea19a22 Fix lookup code to pass functions with the same name as built-ins 2022-11-28 15:53:14 +03:00
Rémi Verschelde
166066d9f7
Merge pull request #69259 from adamscott/fix-cyclic-reference-base-issue
Fix cyclic reference base being loaded but not valid (which is ok)
2022-11-28 11:45:11 +01:00
Rémi Verschelde
c392093668
Merge pull request #69272 from rune-scape/rune-avoid-global-base
Avoid using `get_global_class_native_base`
2022-11-28 11:02:43 +01:00
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
Adam Scott
4e60689695 Fix cyclic reference base being loaded but not valid (which is ok) 2022-11-27 15:50:19 -05: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
rune-scape
847c9bd248 GDScript: Avoid using get_global_class_native_base 2022-11-27 03:55:53 -05: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
b2373298a2
embree: Enable raycast module build for Web and Windows x86_32
Embree initially only supported x86_64, then got arm64 support added.
Now it seems to be possible to build it with Emscripten (wasm32) and
on x86_32 Windows.
2022-11-25 14:48:29 +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
Bastiaan Olij
96bbdf7249 Various fixes for OpenXR action map meta data and editing 2022-11-25 20:26:30 +11: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
Yuri Rubinsky
f6c8c140f0 Fix using signals in lambda functions 2022-11-22 11:22:41 +03:00
Rémi Verschelde
c474e2f639
Merge pull request #68987 from adamscott/fix-godot#61386-autoload-scenes-implicit-types
Fix autoload scenes implicit types
2022-11-22 08:31:36 +01:00
Rémi Verschelde
17b0c862ff
Merge pull request #68972 from adamscott/fix-godot#68971-cached-scene
Fetch cached scene if it exists in `GDScriptCache::get_packed_scene()`
2022-11-22 08:31:24 +01:00
Rémi Verschelde
28039094b3
Merge pull request #68911 from souplamp/return-value-discarded-error
Clarify what happens when return value is discarded in GDScript warning text
2022-11-22 08:30:51 +01:00
Adam Scott
eb62d241c0 [godot#61386] Fix autoload scenes implicit types 2022-11-21 23:39:31 -05:00
souplamp
5bdd883dfd change RETURN_VALUE_DISCARDED GDScript warn text
changed RETURN_VALUE_DISCARDED GDscript warning text to mention how the return value of a function is discarded; update GDScript parser warning test to include new warning text.
2022-11-21 15:04:04 -06:00
Adam Scott
e86e15571f [godot#68971] Fetch cached scene if it exists in GDScriptCache 2022-11-21 15:57:45 -05:00
Aaron Franke
98ef359240
Add three new methods to GLTFDocumentExtension 2022-11-21 14:38:46 -06:00
Yuri Rubinsky
4a8276a773 Fix GDScript completion crash 2022-11-21 16:34:03 +03:00
Rémi Verschelde
a5ccfad223
Merge pull request #68945 from bruvzg/fix_fontawesome_breaks
[TextServer] Fix line breaking for the special fonts that substitute a long string (with breaks opportunities in it) with a single glyph.
2022-11-21 11:43:56 +01:00
Rémi Verschelde
92993c64c6
Merge pull request #68025 from Sauermann/fix-cppcheck-code-simplifications
Code simplifications found by cppcheck
2022-11-21 11:43:19 +01:00
Rémi Verschelde
404184105e
Merge pull request #68933 from fire/meow-meow-meow
Add GLTFDocument documentation.
2022-11-21 11:42:01 +01:00
Markus Sauermann
28af870750 Code simplifications found by cppcheck
They are based on:
- Boolean arithmetic simplifications
- setting variables that are not accessed
- constant variables
2022-11-21 08:43:36 +01:00
bruvzg
e910aa490c
[TextServer] Fix line breaking for the special fonts that substitute a long string (with breaks opportunities in it) with a single glyph. 2022-11-21 09:42:34 +02:00
K. S. Ernest (iFire) Lee
5aafa3f54a Add GLTFDocument documentation.
Co-authored-by: Meow <mosesturner@protonmail.com>
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
2022-11-20 14:51:41 -08:00
Rémi Verschelde
190226098b
Merge pull request #68929 from adamscott/add-rename-check
Add `GDScriptCache::move_script` check before executing logic
2022-11-20 23:25:30 +01:00
Rémi Verschelde
15df1ffa9b
Merge pull request #68927 from rune-scape/rune-cache-parse-error
GDScript: Cache scripts after parse error
2022-11-20 23:25:19 +01:00
Adam Scott
98ceb7ecf5 Add move_script check before executing logic 2022-11-20 15:21:57 -05:00
rune-scape
5ef971da1a GDScript: Cache scripts after parse error 2022-11-20 13:06:14 -05:00
Rémi Verschelde
f042a4e566
GDScript: Fix setting to disable all warnings
The boolean was never set with the value from the project settings.

Fixes #64559.
2022-11-20 18:54:09 +01:00
Rémi Verschelde
9dc2739c1f
Merge pull request #68689 from Faless/mp/4.x_offline_is_server
[MP] New default multiplayer_peer acting as server.
2022-11-20 15:37:26 +01:00
Fabio Alessandrelli
b19c1a2e4f [MP] New default multiplayer_peer acting as server.
Adds a OfflineMultiplayerPeer class which behaves like a server with no
connected peers.

Use OfflineMultiplayerPeer as default for SceneMultiplayer.

This means that the SceneTree will act as the multiplayer authority by
default.
Calls to is_server will return true, and calls to get_unique_id will
return TARGET_PEER_SERVER.
2022-11-20 14:17:20 +01:00
Fabio Alessandrelli
fdc4e73a2c [MP] RPC visibility.
Implemented using MultiplayerSynchronizers.

If you didn't use the synchronizer visibility features, nothing changes.

If you were using visibility, RPCs to broadcast should now behave as
expected in most configurations (i.e. by sending the RPC to _visible_
peers).

If you want to limit the visibility of RPCs for a node, add a
synchronizer for it, and configure the visibility via
"set_visibility_for" or by adding a visibility filter.
2022-11-20 14:11:43 +01:00
Rémi Verschelde
8aafcf9d2a
Merge pull request #68914 from rune-scape/rune-empty-editor-regression
GDScript: Fix empty text in editor
2022-11-20 11:44:41 +01:00
Rémi Verschelde
d5d83eefd3
Merge pull request #66026 from aaronfranke/gltf-extension
Change the way GLTFDocumentExtension classes are registered
2022-11-20 11:44:05 +01:00
rune-scape
a6410878db Fix empty text in editor 2022-11-20 03:17:16 -05:00
Fabio Alessandrelli
f38e116026 [MP] Initial replication profiler.
Part of the current network profiler stack.
Tracks synchronizers, incoming/outgoing state sizes, and their
bandwidth usage.
2022-11-19 12:48:16 +01:00
Rémi Verschelde
52c51563fd
Merge pull request #68866 from raulsntos/dotnet/godot-enums
C#: Synchronize Godot enums with core
2022-11-19 09:40:05 +01:00
Adam Scott
6d7c8533d5 Remove fix leftover that caused cyclic load issues 2022-11-18 23:37:00 -05:00
Raul Santos
792e618749
C#: Synchronize Godot enums with core 2022-11-19 01:54:23 +01:00
Rémi Verschelde
1bc131afb8
Merge pull request #68758 from Faless/mp/4.x_better_debug
[MP] Improve network profiler.
2022-11-18 23:29:02 +01:00
Rémi Verschelde
5f73d55dfb
Merge pull request #68854 from anvilfolk/highlight-var
Add error highlighting for duplicate variables/constants
2022-11-18 23:08:11 +01:00
Rémi Verschelde
80b3813b15
Merge pull request #67714 from adamscott/fix-preload-cyclic-references-part2
Fix cyclic references in GDScript 2.0
2022-11-18 23:08:01 +01:00
Adam Scott
5704055d30 Fix cyclic references in GDScript 2.0 2022-11-18 16:41:31 -05:00
ocean (they/them)
ef2aeca5df Add error highlighting for duplicate variables/constants 2022-11-18 15:20:26 -05:00
Rémi Verschelde
c3132b42cb
Merge pull request #66816 from raulsntos/dotnet/readonly
Add `readonly` to C# methods and types that don't mutate
2022-11-18 16:20:29 +01:00
ocean (they/them)
13be0ab733 Fix ability to overload "script" variable 2022-11-17 17:21:12 -05:00
Fabio Alessandrelli
92ed27d8f6 [MP] Improve network profiler.
Fix RPC profiler and add average RPC size.

Improve bandwidth debugger to account for all multiplayer traffic
(excluding the lower level peer transformations).
2022-11-17 03:14:21 +01:00
Yuri Rubinsky
95a85c9058
Merge pull request #68717 from rune-scape/rune-compiler-regression
Fixes https://github.com/godotengine/godot/issues/68716
2022-11-16 08:32:00 +03:00
Rune
61df8f4484 GDScript Compiler: regression fix 2022-11-15 22:20:49 -06:00
Rémi Verschelde
4935493f72
Merge pull request #67948 from DeeJayLSP/split_webp
Overhaul WebP packer and split compression options
2022-11-15 16:25:40 +01:00
Rémi Verschelde
2d3197c525
Merge pull request #65372 from Mickeon/fix-treat-warnings-as-errors
Fix "Treat Warnings as Errors" Project Setting doing nothing
2022-11-15 16:25:25 +01:00
Rémi Verschelde
c52d8369ce
Merge pull request #66516 from DeeJayLSP/update_theora
Update libtheora to GIT (2020.10)
2022-11-15 16:25:05 +01:00
Yuri Rubinsky
e2b60798fe
Merge pull request #68663 from Chaosus/gds_fix_completion 2022-11-15 18:21:20 +03:00
DeeJayLSP
da132f3266 Overhaul WebP packer and split compression options 2022-11-15 11:52:22 -03:00
Rémi Verschelde
077d4831a4
Merge pull request #68671 from raulsntos/dotnet/c-escape-hell
C#: Remove "?" from CEscape and CUnescape
2022-11-15 10:28:53 +01:00
Raul Santos
ac8ea5c821
C#: Remove "?" from CEscape and CUnescape 2022-11-15 01:40:12 +01:00
Rémi Verschelde
80dbcfd995
Merge pull request #68657 from Sauermann/fix-redundant-initialization
Remove redundant non-trivial Variant types initializations
2022-11-14 23:23:54 +01:00
Rémi Verschelde
d7d34e4bc1
Merge pull request #68658 from Calinou/message-fix-periods
Fix periods in editor strings and messages
2022-11-14 23:22:53 +01:00
Fabio Alessandrelli
aa4c286808
Merge pull request #68488 from dsnopek/master-webxr-no-exit-runtime
Fix WebXR after changing Emscripten configuration noExitRuntime to false
2022-11-14 21:31:58 +01:00
Yuri Rubinsky
65d14679e7 Fix completion popup for the variables created with get_node call 2022-11-14 23:27:59 +03:00
Raul Santos
71df6d66ae
Add readonly to C# methods and types that don't mutate
Also removes a few unnecessary temp variables
2022-11-14 20:32:20 +01:00
Hugo Locurcio
efe3220b2e
Fix periods in editor strings and messages
- Ensure all strings with ellipsis end with 3 periods instead of 2.
- Fix extraneous period in "Error calling from signal '...' to callable"
  messages.
2022-11-14 19:36:36 +01:00
Markus Sauermann
3b14f0334c Remove redundant Variant-types initializations 2022-11-14 19:35:19 +01:00
Rémi Verschelde
4d9adfea23
Merge pull request #65712 from Chaosus/gds_fix_completion
fix https://github.com/godotengine/godot/issues/64477
2022-11-14 17:20:54 +01:00
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
B. Ogan Mancarcı
fc260cade8
fix typo in zipreader doc 2022-11-12 14:24:42 -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
Danil Alexeev
0f8e28f818
GDScript 2.0: Fix shift due to skip of non-constant default argument values 2022-11-10 19:22:52 +03: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
rsjtdrjgfuzkfg
4243b85990 OpenXR: support XR_KHR_android_create_instance
This commit adds support for the OpenXR extension
XR_KHR_android_create_instance, which seems to be required on Pico
devices.
2022-11-04 01:57:48 +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
VolTer
05a9637d5d Fix small mistakes throughout much of the documentation 2022-10-21 00:20:59 +02:00
Pedro J. Estébanez
ae38d7930e Let the RD driver itself expose subgroup caps 2022-10-20 19:37:35 +02:00
Robbie Cooper
f54c3d4287 Support 2 bits per pixel BMP images 2022-10-19 22:30:08 -04:00
Max Hilbrunner
cb36006f9e
Merge pull request #67100 from Mickeon/doc-peeves
Tweak `@GDScript` documentation overall
2022-10-19 21:45:35 +02:00
Max Hilbrunner
5f7906a289
Merge pull request #67527 from BastiaanOlij/fix_tracker_names
Fix two typos in tracker names and a bug in OpenXR haptic feedback
2022-10-19 18:18:36 +02:00
DeeJayLSP
b87584a070 Update libtheora to GIT (2020.10) 2022-10-18 21:15:13 -03:00
kobewi
d06a8320e5 Simplify GDVIRTUAL_CALL calls 2022-10-19 00:05:48 +02:00
Micky
a34cf161aa Tweak @GDScript documentation overall
- 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-18 22:54:46 +02:00
kobewi
e48c5daddf Unify usage of GLOBAL/EDITOR_GET 2022-10-18 19:01:48 +02:00
bruvzg
c1af9d57a3
Improve font glyph cache packing shelf best height fit heuristic. 2022-10-18 18:42:04 +03:00
bruvzg
634c2fbcae
[TextServer] Fix build with disabled graphite. 2022-10-18 18:41:31 +03:00
Bastiaan Olij
4a96fce801
Merge pull request #67529 from BastiaanOlij/filter_out_htc_paths
Filter out HTC OpenXR paths based on extension
2022-10-19 01:53:56 +11:00
Bastiaan Olij
19f9fe1dec Filter out HTC OpenXR paths based on extension 2022-10-19 00:09:54 +11:00
Bastiaan Olij
45ce45c001 Fix missing itos for OpenXR logging 2022-10-18 13:55:39 +11:00
Rémi Verschelde
28a4eec9a7 Merge pull request #67532 from Faless/ws/4.x_fix_poll
[WebSocket] Fix client failing to connect to direct IP.
2022-10-17 17:32:16 +02:00
Rémi Verschelde
667bc202b5 Merge pull request #67179 from BastiaanOlij/openxr_add_refresh_rate_extension
Adding support for the OpenXR Display Refresh Rate extension
2022-10-17 17:32:01 +02:00
Rémi Verschelde
3c4b110ae0 Merge pull request #67521 from nikitalita/speed_up_texture_pos
Speed up `find_texture_pos_for_glyph()`
2022-10-17 17:31:54 +02:00
Rémi Verschelde
69bcda3dd2 Merge pull request #67514 from timothyqiu/defer
Fix memory leak when `_ensure_cache_for_size()` fails
2022-10-17 17:31:41 +02:00
Rémi Verschelde
1654810409 Merge pull request #67469 from anvilfolk/resource-load-clarification
Clarified reason why a resource cannot be preload()'ed
2022-10-17 17:31:32 +02:00
Rémi Verschelde
c43ce5e341 Merge pull request #67485 from kdada/kdada/master
Fix peer visiblity in SceneReplicationInterface._update_sync_visibility
2022-10-17 17:31:20 +02:00
Rémi Verschelde
f921409984 Merge pull request #67428 from aaronfranke/gltf-additional-data
Add a way to store additional data in GLTFState and GLTFNode
2022-10-17 17:30:49 +02:00
Fabio Alessandrelli
adb3d2338e [WebSocket] Fix client failing to connect to direct IP.
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-17 12:52:09 +02:00
Bastiaan Olij
1e7f009492 Fix two typos in tracker names and a bug in OpenXR haptic feedback 2022-10-17 20:29:19 +11:00
bruvzg
68ec84cded
[TextServer] Do not round glyph advances / coordinates if font oversampling or bitmap glyph scaling is used. 2022-10-17 10:57:49 +03:00
nikitalita
21341ddaed Speed up find_texture_pos_for_glyph() 2022-10-16 22:29:26 -07:00
Haoyu Qiu
6db8e79eed Fix memory leak when _ensure_cache_for_size() fails 2022-10-17 12:47:38 +08:00
Ignacio Roldán Etcheverry
9afc8337bd
Merge pull request #67440 from raulsntos/dotnet/bindings-conflicts
Guard against more potential conflicts in C# bindings generator
2022-10-17 00:28:07 +02:00
Ignacio Roldán Etcheverry
2303c26783 C#: Load assemblies as collectible only in the Godot editor
We use collectible AssemblyLoadContexts as that's the only way to allow
reloading assemblies after building. However, collectible assemblies
have some restrictions:

- https://learn.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/collectible-assemblies#restrictions-on-collectible-assemblies

Those restrictions can cause issues with third-party code, such as some
mocking libraries.

In order to work around this problem, we're going to load assemblies
as collectible only in Godot editor, and not when running games.
These issues will still exist in the editor, but this will be enough
for some users.
2022-10-17 00:22:48 +02:00
João Martins
a0c4002520 Clarified reason why a resource cannot be loaded. 2022-10-16 17:27:00 -04:00
Wei Guo
972242d664 Fix MultiplayerSynchronizer peer visibility 2022-10-16 23:02:31 +08:00
Yuri Rubinsky
04f7207009 Add a Plane(Vector3, Vector3) constructor for C# 2022-10-16 14:10:58 +03:00
Aaron Franke
a70dce893f
Add a way to store additional data in GLTFState and GLTFNode 2022-10-15 12:04:36 -05:00
Rémi Verschelde
dc4b616596 Merge pull request #63332 from KoBeWi/static_images_aka_photos
Make some Image methods static
2022-10-15 12:56:57 +02:00
Rémi Verschelde
96ec73f3ee Merge pull request #65281 from MisterMX/zip-module
Expose minizip API to allow creating zips using scripts
2022-10-15 12:56:26 +02:00
Raul Santos
333f88dc49
Guard against more potential conflicts in C# bindings generator 2022-10-15 12:47:10 +02:00
Marcelo Fernandez
ea6cc3e260 Expose minizip API to allow creating zips using scripts
Co-authored-by: Marcelo Fernandez <marcelofg55@gmail.com>
Co-authored-by: James Westman <flyingpimonster@gmail.commail>
Co-authored-by: MisterMX <mbxd12@web.de>

Signed-off-by: MisterMX <mbxd12@web.de>
2022-10-14 21:51:38 +02:00
clayjohn
0a51bb4ca5 Add STATIC_CALLED_ON_INSTANCE warning to highlight
when static functions are called directly from objects
2022-10-14 10:43:42 -07:00
Guilherme Sousa
5d06843fcf Added custom node export 2022-10-14 17:31:00 +02:00
kobewi
072f6feaba Make some Image methods static 2022-10-14 14:34:15 +02:00
Rémi Verschelde
343bb9c07f Merge pull request #67361 from clayjohn/GDScript-unused-return-warning
Implement RETURN_VALUE_DISCARDED warning in GDscript
2022-10-14 10:19:55 +02:00
clayjohn
be1e9acb7c Implement RETURN_VALUE_DISCARDED warning in GDscript 2022-10-13 11:56:45 -07:00
Rémi Verschelde
46a1b92bb7
Merge pull request #66294 from reduz/optimize-convex-collision 2022-10-13 20:34:00 +02:00
Juan Linietsky
71d2e38cb5 Optimize Convex Collision
Implements the Gauss Mapping optimization to SAT convex collision test.

* Described [here](https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2013/slides/822403Gregorius_Dirk_TheSeparatingAxisTest.pdf) by Dirk Gregorius.
* Requires adding of face information to edges in MeshData
* Took the chance to convert MeshData to LocalVector for performance.
2022-10-13 19:07:53 +02:00
Rémi Verschelde
01ae26d31b Merge pull request #67351 from akien-mga/thorvg-0.8.2-cleanup-includes
thorvg: Sync with 0.8.2, cleanup SCsub and fix includes
2022-10-13 18:41:40 +02:00
Fabio Alessandrelli
0fe01b6b4a [WebSocket] Fix potential double free after multiplayer clear. 2022-10-13 18:05:50 +02:00
Fabio Alessandrelli
40d60ca6ae [WebSocket] Fix debugger implementation.
Register module during core initialization so the remote debugger can
properly handle the "wss://" protocol.
2022-10-13 17:25:29 +02:00
Rémi Verschelde
99b450762b thorvg: Sync with 0.8.2, cleanup SCsub and fix includes
We were compiling `src/loaders/external_png` but using the header from
`src/loaders/png`, leading to `-Wodr` warnings.

Remove unused bundled lodepng code since we use `external_png` (libpng).

Whitespace changes are from upstream, will attempt PR'ing a cleanup there for
future updates.
2022-10-13 17:05:41 +02:00
Fabio Alessandrelli
7464f39de8 [WebSocket] Fix Web write mode. 2022-10-13 16:46:48 +02:00
Fabio Alessandrelli
a5d243cac2 [WebSocket] Fix TCP connection being closed while connecting.
Fix a bug causing the WebSocketPeer to fail connecting to a remote
server when the TCP 3-way handshake took more than a few milliseconds.
2022-10-13 14:24:54 +02:00
Rémi Verschelde
b9e924c806 Merge pull request #67216 from dotlogix/Bugfix/FixErrorWhenSerializingSignals
Fix crash when serializing empty delegates in C#
2022-10-13 09:05:22 +02:00
Alexander Schill
5f47873f10 Adding null check to prevent null reference exception when serializing delegates in C# 2022-10-13 00:19:46 +02:00
Rémi Verschelde
f2248969db
Merge pull request #66952 from bruvzg/macos_net_export
Fix macOS .NET export.
2022-10-12 22:52:59 +02:00
Rune
624af7e032 GDScript: fix highlighting '.' after global class name 2022-10-11 22:18:19 -07:00
Fabio Alessandrelli
a8950f98dd [WebSocket] Refactor websocket module.
This commit is a huge refactor of the websocket module.
The module is really old, and some design choices had to be
re-evaluated.

The WebSocketClient and WebSocketServer classes are now gone, and
WebSocketPeer can act as either client or server.
The WebSocketMultiplayerPeer class is no longer abstract, and implements
the Multiplayer API on top of the lower level WebSocketPeer.

WebSocketPeer is now a "raw" peer, like StreamPeerTCP and StreamPeerTLS,
so it emits no signal, and just needs polling to update its internal
state.

To use it as a client, simply call WebSocketPeer.coonect_to_url, then
frequently poll the peer until STATE_OPEN is reached and then you can
write or read from it, or STATE_CLOSED and then you can check the
disconnect code and reason).

To implement a server instead, a TCPServer must be created, and the
accepted connections needs to be provided to
WebSocketPeer.accept_stream (which will perform the HTTP handshake).

A full example of a WebSocketServer using TLS will be provided in the
demo repository.
2022-10-11 15:52:30 +02:00
Micky
fe56c1ff75 Use JSON::stringify where possible 2022-10-11 00:27:23 +02:00
Rémi Verschelde
8017827144 SCons: Re-enable treating #warning as error with werror
Replace all TODO uses of `#warning` by proper TODO comments, and will open
matching bug reports to keep track of them.

We don't have a great track record fixing TODOs, but I'd wager we're even
worse for fixing these "TODO #warning" so we should prohibit this usage.
2022-10-10 16:12:26 +02:00
Bastiaan Olij
e14717bb2e Adding support for the OpenXR Display Refresh Rate extension 2022-10-10 20:41:46 +11:00
Bastiaan Olij
7f6c00f41a Cleanup a bunch of debug messages in OpenXR and change the ones we want to keep to print_verbose 2022-10-10 20:19:18 +11:00
Raul Santos
fbea89d4f1
C#: Generate symbols packages 2022-10-08 13:59:06 +02:00
Rémi Verschelde
62b066dbd6 Fix more MSVC C4702 (unreachable code) warnings 2022-10-07 14:43:59 +02:00
MladoniSzabi
a5c4df7a99 Fixed Image.save_jpg() returning OK but not saving image.
The function that was supposed to implement the saving in
image_loader_jpegd was just returning OK without doing anything.
Copied the code from _jpgd_buffer_save_func to _jpgd_save_func but
changed the ImageLoaderJPGOSBufferto a ImageLoaderJPGOSFile to save
to a file instead of memory. Changed the image format from
FORMAT_ETC2_RGB8 to FORMAT_RGB8 since the first one was creating
a weird greyscale interlaced image.
2022-10-07 11:56:51 +01:00
bruvzg
6daf4c6593
[.NET Export] Improve .NET export process.
[macOS export] Fix incorrect file placement, search paths and architecture detection.
[macOS export] Automatically detect executable files and set +x flag.
[macOS export] Automatically apply "Disable Library Validation" entitlements when required.
[macOS export] Remove old Mono export code.
Fix folder tree creation for shared objects export.
Add arch suffix to the exported .NET "data" folder name.
Remove old Mono code from .NET "data" folder lookup.
2022-10-07 13:33:06 +03:00
Raul Santos
86f6662a8c
C#: Fix signature of generated signal callbacks
- Use `long` and `double` types since signals currently only support 64-bit types.
- Fix bug for checking if the type name is a class registered in ClassDB.
2022-10-07 12:11:24 +02:00
bruvzg
0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
VolTer
ac1761c8cd Fix outdated keywords autocompletion 2022-10-06 23:47:19 +02:00
Rémi Verschelde
74eade929c Merge pull request #66957 from BastiaanOlij/fix_error_typo_opengl
Fixing an incorrect error message in OpenXR
2022-10-06 08:57:12 +02:00
Bastiaan Olij
c6ba626af4 Fixing an incorrect error message in OpenXR reporting missing OpenGL support 2022-10-06 11:15:57 +11:00
Rémi Verschelde
340f62d1ec .NET: Generate SdkPackageVersions.props from version.py
Ensures that the versions always match the Godot version, albeit following
SemVer 2.0 so inserting a dot between "beta" and the build number.

For "stable" status, we omit the suffix as this would be interpreted as a
pre-release build too.

So we have:

| Godot version  | Nupkg version  |
| -------------- | -------------- |
| 4.0.0-beta     | 4.0.0-beta     |
| 4.0.0-beta2    | 4.0.0-beta.2   |
| 4.0.0-rc1      | 4.0.0-rc.1     |
| 4.0.0-stable   | 4.0.0          |
2022-10-05 20:31:26 +02:00
Rémi Verschelde
5f3439e2d9 Merge pull request #66919 from bruvzg/ts_gde_fix
[TextServer GDExtension] Update build scripts and `.gdextension` files to use new target names and arch suffixes.
2022-10-05 11:45:00 +02:00
Rémi Verschelde
5b6ccf2fd2 Merge pull request #66720 from qarmin/unintialized_memory
Remove usage of unitialized variables
2022-10-05 11:42:47 +02:00
bruvzg
930be37bb4
[TextServer GDExtension] Update build scripts and .gdextension files to use new target names and arch suffixes. 2022-10-05 11:41:03 +03:00
Rémi Verschelde
9cd62741bb Merge pull request #66839 from aaronfranke/editor-prop-hide-slider
Fix `hide_slider` vs `no_slider` inconsistency in editor property code
2022-10-05 08:47:06 +02:00
Rémi Verschelde
52f5a58c38 Merge pull request #66873 from akien-mga/script-tweak-error-invalid-script-type
GDScript/C#: Tweak error message for invalid script type for object
2022-10-05 08:38:52 +02:00
Rémi Verschelde
3a2b0ab73d Merge pull request #66898 from aaronfranke/proj-mat-columns
Rename Projection `matrix` to `columns`
2022-10-05 08:35:26 +02:00
Rémi Verschelde
8590721450 Merge pull request #66885 from atirut-w/lsp-doc-fix
LSP: Fix GDScript doc comments
2022-10-05 08:31:56 +02:00
Rémi Verschelde
58a112183c Merge pull request #65227 from BastiaanOlij/complete_render_target_api
Implementing override functionality for XR
2022-10-05 08:31:40 +02:00
Rémi Verschelde
c3e929cce6 Merge pull request #64577 from Calinou/improve-dictionary-printing
Improve dictionary printing to avoid confusion with arrays
2022-10-05 08:30:55 +02:00
Rémi Verschelde
75616d60e4 Merge pull request #66841 from jtnicholl/blend_enum_checks
Clean up .blend importer to fix unreachable code paths
2022-10-05 08:29:35 +02:00
Atirut Wattanamongkol
f2522adb89 LSP: Fix GDScript doc comments 2022-10-05 11:25:52 +07:00
Bastiaan Olij
c7656978ba Adding getters to RenderTarget and implementing override functionality for XR 2022-10-05 11:37:49 +11:00
Hugo Locurcio
6afbf0bd5a
Improve dictionary printing to avoid confusion with arrays
- Add leading and trailing spaces within dictionaries, as the `{}`
  characters are hard to distinguish from `[]` on some fonts.
  This is especially helpful with empty arrays and dictionaries.
2022-10-04 20:33:40 +02:00
Aaron Franke
2cea42cc7f
Rename Projection matrix to columns 2022-10-04 12:34:19 -05:00
Micky
ae5771e1b1 Rename remaining "Spatial" in Plugins to "Node3D"
For EditorNode3DGizmo:
- `get_spatial_node` -> `get_node_3d`
- `set_spatial_node` -> `set_node_3d`

For EditorPlugin:
- `add_spatial_gizmo_plugin` -> `add_node_3d_gizmo_plugin`
- `remove_spatial_gizmo_plugin` -> `remove_node_3d_gizmo_plugin`

Also renames some internal methods for consistency (`forward_3d_draw_over_viewport` & `forward_3d_force_draw_over_viewport` ...). Basically, Spatial has been completely eradicated.
2022-10-04 16:27:29 +02:00
Rémi Verschelde
5bf95518fd GDScript/C#: Tweak error message for invalid script type for object
See #66870.
2022-10-04 12:56:49 +02:00
Rémi Verschelde
f36dda3185 Merge pull request #66867 from Rindbee/implement-willSaveWaitUntil
Implement `GDScriptTextDocument::willSaveWaitUntil` to clean up outdated documents before saving
2022-10-04 10:33:03 +02:00
Rémi Verschelde
cd7f172cf8 Merge pull request #66804 from akien-mga/core-remove-NO_SAFE_CAST
Remove unsupported `NO_SAFE_CAST`/`-fno-rtti` from Android build
2022-10-04 10:22:24 +02:00
Rindbee
ab0314938e Implement GDScriptTextDocument::willSaveWaitUntil to clean up outdated documents before saving
Implement `GDScriptTextDocument::willSaveWaitUntil` to clean up outdated documents before saving,
then update the document in `GDScriptTextDocument::didSave`.
2022-10-04 15:38:57 +08:00
Clay John
4b52c6caef
Merge pull request #59481 from LunaticInAHat/gltf_texture_filter_fix_4
Respect texture filtering when importing GLTF
2022-10-03 16:33:11 -07:00
The Tophat Demon
c1a600545c GLTF imports & exports material texture filters 2022-10-03 16:20:08 -04:00
Jonathan Nicholl
2830e276b8 Clean up .blend importer to fix unreachable code paths 2022-10-03 14:48:36 -04:00
Aaron Franke
094e8db97c
Fix hide_slider vs no_slider inconsistency in editor property code 2022-10-03 13:40:31 -05:00
Yuri Rubinsky
321251a133
Merge pull request #66759 from Chaosus/gds_fix_param_completion 2022-10-03 17:44:20 +03:00
Fabio Alessandrelli
c477e7c461
Merge pull request #66794 from Faless/mp/4.x_multiple_sync
[MP] Allow multiple synchronizers per node.
2022-10-03 15:45:35 +02:00
Rémi Verschelde
208b440398 Merge pull request #66817 from raulsntos/dotnet/color-span
C#: Use Span in Color to avoid string allocations
2022-10-03 14:52:29 +02:00
Fabio Alessandrelli
32a62af648 [MP] Allow multiple synchronizers per node.
The same node can now be controlled by multiple synchronizers at once.
Spawn visibility is composed in OR across multiple synchronizers (i.e.
if any synchronizer is visible to the peer, the object will be spawned).

Synchronizers controlling spawned nodes can now have a different
authority then the one spawning the node, in that case, the spawn
variables for that specific synchronizer are simply ignored (other
synchronizers with the same authority of the spawner will correctly
synchronize variables on spawn).

The SceneReplicationState class has been completly removed, since it was
bloating the implementation, the state is now simply stored in the
SceneReplicationInterface.
2022-10-03 14:45:00 +02:00
Raul Santos
67d058da30
C#: Use Span in Color to avoid string allocations 2022-10-03 12:11:37 +02:00
Rémi Verschelde
54418ea659 Remove NO_THREADS fallback code, Godot 4 requires thread support
This also removes `OS::can_use_threads` from the public API since it's always
true.
2022-10-03 11:23:26 +02:00
Rémi Verschelde
82b87d7a17 Remove unsupported NO_SAFE_CAST/-fno-rtti from Android build
Android was the last platform to still attempt to disable RTTI (for binary
size), but both the Android editor and now the ICU library used by templates
need RTTI.

There could still be the possibility to support this for non-ICU template
builds (i.e. without the TextServerAdvanced module), but since this isn't one
of the build configurations we test regularly it's pretty risky to keep this
option only for that specific use case. And our code is already littered with
`dynamic_cast`s which weren't guarded with `!defined(NO_SAFE_CAST)`.
2022-10-03 11:18:31 +02:00
Rémi Verschelde
6609f1b09f Merge pull request #66709 from MewPurPur/fix-unary-operators-being-STILL-broken
Fix more highlighting bugs
2022-10-03 09:30:01 +02:00
Rémi Verschelde
9d62d59293 Merge pull request #66784 from Geekotron/fix-nav3d-not-reachable-crash
Fix crash in navigation 3d when target is not reachable
2022-10-03 09:26:26 +02:00
Rémi Verschelde
9c2894180d Merge pull request #66387 from aaronfranke/cs-basis-euler
C#: Update Basis Euler angle code to match core
2022-10-03 09:26:16 +02:00
Clay John
f2061f11fe
Merge pull request #66767 from jtnicholl/blend_visibility
Fix visibility filtering options for .blend imports
2022-10-02 18:07:31 -06:00
Sean
9b525da531 Fix crash in navigation 3d when target is not reachable
The code that resets variables to retry navigation to the closest possible poly was not resetting 1 variable, which caused it to exceed the vector bounds
2022-10-02 13:18:33 -06:00
VolTer
2d48bf0b88 Fix more highlighting bugs 2022-10-02 17:44:39 +02:00
Jonathan Nicholl
3086b1b79d Fix visibility filtering options for .blend imports 2022-10-02 11:11:04 -04:00
Yuri Rubinsky
7822378293 Fix completion of parameters in function call (2) 2022-10-02 13:30:15 +03:00
Rafał Mikrut
2233624152 Remove usage of unitialized variables 2022-10-01 21:09:22 +02:00
Patrick Dawson
161f295f52 ManagedCallable: use delegate target instead of middleman when possible
If the delegate target is an Object, the connected signal will be registered in that object instead of the middleman. So when that object is destroyed, the signal will be properly disconnected.
2022-10-01 02:09:58 +02:00
Rémi Verschelde
ef8834a642 Merge pull request #64784 from yedpodtrzitko/yed/ci-add-mypy
ci: add Python static analysis check via mypy
2022-09-30 17:44:39 +02:00
Rémi Verschelde
539d21318f Merge pull request #65970 from GuilhermeGSousa/synchronizer-auth-change
Add warning for synchronizer authority mismatch
2022-09-30 17:44:19 +02:00
Yuri Rubinsky
6f75b0d79b
Merge pull request #64717 from Chaosus/gds_fix_param_completion 2022-09-30 18:34:33 +03:00
Yuri Rubinsky
5d4853f8ca Fix completion of parameters in function call 2022-09-30 15:42:05 +03:00
Rémi Verschelde
166df0896c Fix typos with codespell
Using codespell 2.3-dev from current git.

And fix typo in `methods.py` for `vsproj=yes` option (still won't work
though).
2022-09-30 14:23:36 +02:00
Jiri Suchan
c5bd2f9dce ci: add Python static analysis check via mypy 2022-09-30 19:03:17 +07:00
Guilherme Sousa
a6c201fa76 Add Error for synchronizer authority mismatch 2022-09-30 13:11:56 +02:00
Rémi Verschelde
f47979f087
Merge pull request #66242 from akien-mga/scons-unify-tools-target 2022-09-30 12:28:50 +02:00
Rémi Verschelde
44799b896f Merge pull request #66534 from akien-mga/scons-msvc-graphite-silence-c++17-deprecation-warnings
SCons: Silence MSVC C++17 deprecation warnings in Graphite
2022-09-29 15:33:45 +02:00
Rémi Verschelde
0dd308cedd Merge pull request #66545 from akien-mga/msvc-warnings-c4324-c4389-c4456-c4459
Fix MSVC warnings C4324, C4389, C4456, and C4459
2022-09-28 20:47:43 +02:00
Rémi Verschelde
361d9b514e Merge pull request #66542 from akien-mga/msvc-warning-c4706
Fix MSVC warning C4706: assignment within conditional expression
2022-09-28 20:47:23 +02:00
Rémi Verschelde
4c5891186a Merge pull request #66525 from Calinou/doc-gdscript-get-stack-debug-instance
Document `print_stack()` and `get_stack()` requiring a debugger connection
2022-09-28 17:14:04 +02:00
Rémi Verschelde
24b36354ff Merge pull request #66532 from bruvzg/mipmap_change
[Text Server] Clear textures after "generate mipmaps" property change.
2022-09-28 17:13:57 +02:00
Rémi Verschelde
d8268aae30 Fix MSVC warnings C4324, C4389, C4456, and C4459
Part of #66537.
2022-09-28 16:43:09 +02:00
Rémi Verschelde
0e53dd642c Fix MSVC warning C4706: assignment within conditional expression
Part of #66537.
2022-09-28 16:05:07 +02:00
Rémi Verschelde
965022e5f6 SCons: Silence MSVC C++17 deprecation warnings in Graphite
Fixes #66497.
2022-09-28 13:27:19 +02:00
Hugo Locurcio
530e31d4a3
Document print_stack() and get_stack() requiring a debugger connection 2022-09-28 12:24:39 +02:00
Rémi Verschelde
14e1f36e61 Merge pull request #66492 from bruvzg/gde_ts_underscr
[GDExtension] Use function names with underscore for TextServer extension, add macros to generate wrappers for module functions.
2022-09-28 12:12:29 +02:00
bruvzg
51978dde5a
[Text Server] Clear textures after "generate mipmaps" property change. 2022-09-28 12:43:34 +03:00
Rémi Verschelde
f7b21e88d0 Merge pull request #66490 from timothyqiu/navmap-realloc
get_path()`
2022-09-28 10:10:48 +02:00
Rémi Verschelde
45d0033188 Merge pull request #65898 from konczg/add_passthrough_extension_wrapper
Add passthrough extension wrapper
2022-09-28 10:08:15 +02:00
bruvzg
8f5d56e04a
[GDExtension] Use function names with underscore for TextServer extension, add macros to generate wrappers for module functions. 2022-09-28 10:04:11 +03:00
Haoyu Qiu
9d58454567 Fix heap-use-after-free in NavMap::get_path() 2022-09-28 10:50:03 +08:00
Rémi Verschelde
3fd9452a8c SCons: Fix MSVC warning LNK4042 about dupe objects in regex 2022-09-27 13:45:16 +02:00
Gabor Koncz
72203a4da4 Add Passthrough extension wrapper 2022-09-27 12:26:53 +02:00