Commit Graph

6758 Commits

Author SHA1 Message Date
Fabio Alessandrelli 7fab11da0c
Merge pull request #40975 from rohanrhu/master
Added set_extra_headers() to WebSocketServer
2022-04-12 23:04:26 +02:00
Oğuzhan Eroğlu fd4341fba4 Added set_extra_headers() to WebSocketServer 2022-04-12 17:50:53 +03:00
Priyansh Rathi 0ea7780e33
move gltf export under scene menu 2022-04-12 19:42:41 +05:30
Nicholas Huelin e8a326a08f Fix Visual Script's jump to function relative to zoom
When double-clicking on a function name the graph will now correctly jump to the function relative to the zoom ratio.
2022-04-12 15:27:49 +02:00
bruvzg 4bf99f4af2 Narrow FileAccess scope to prevent deadlocks. 2022-04-12 10:54:39 +03:00
Josh Kabo 1570bcd03b catch null profile_def causing crash on startup 2022-04-11 08:55:23 -07:00
Rémi Verschelde 4ab86c6731
Merge pull request #59980 from reduz/animation-libraries 2022-04-11 14:18:35 +02:00
reduz 6f401439f8 Implement Animation Libraries
* Instead of containing single animations, AnimationPlayer now contains libraries.
* Libraries, in turn, contain the animations.

This paves the way for implementing the possibility of importing scenes as animation libraries, finally allowing to import animations separate from the 3D models.

Missing (will be done on separate PRs):

* Make it possible to import scenes (dae/fbx/gltf) as animation libraries.
* Make it possible for AnimationTree to import animation libraries on its own, so it does not rely on AnimationPlayer for everything.
2022-04-11 12:51:54 +02:00
bruvzg 9381acb6a4
Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
Rémi Verschelde 831dc74b1f
Merge pull request #59940 from BastiaanOlij/xr_new_controllers_20220405 2022-04-11 11:38:39 +02:00
Rémi Verschelde eb6ebdc4af
Merge pull request #59995 from Scony/fix-threaded-navmesh-baking
Fix navmesh baking
2022-04-09 01:27:55 +02:00
Pawel Lampe fcd26b8841 Fix navmesh baking
- improved mesh data calculation from standalone static colliders so that no
  VisualServer calls are performed - and thus no VS mutexes need to
  be locked in case of on-thread baking
- improved the same for GridMap's static colliders
2022-04-08 21:01:59 +02:00
George Marques cdbd6056ef
GDScript: Fix method call on singletons 2022-04-08 12:20:57 -03:00
Aaron Franke f3eca5abef
GDScript: Rename OPCODE_TYPE_ADJUST_TRANSFORM to have a 3D suffix 2022-04-07 23:32:56 -05:00
Rémi Verschelde d4b54e35f9 Fix path handling in FBX and Blend importers
Fixes #59996.
2022-04-07 23:33:28 +02:00
David Maziarka 1f62965d26 Add built-in Variant types to autocompletion list
Co-authored-by: Gustav <gusan092@student.liu.se>
2022-04-07 11:10:19 -05:00
Rémi Verschelde 4d0fdf2e98
Merge pull request #59947 from vnen/gdscript-static-methods-classdb 2022-04-06 20:57:34 +02:00
George Marques 4710e2b278
GDScript: Add support for static method calls in native types 2022-04-06 14:14:38 -03:00
jordi 14bad75206 Add enum values (Ignore, Warn, Error) to GDScript warnings 2022-04-06 10:57:33 -05:00
Bastiaan Olij f8dab282cb Added missing interaction profiles and making sure related extensions are enabled if available 2022-04-06 23:00:26 +10:00
bruvzg f851c4aa33
Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
Eeli Reilin 60f3d1d36f Fix CSG gizmos only working on root shapes 2022-04-06 13:36:34 +03:00
Rémi Verschelde 5d55846715
Merge pull request #59862 from bruvzg/font_delay_texture_update
Delay font texture update, until `draw` is called. Rasterize glyphs during shaping.
2022-04-06 08:39:45 +02:00
Rémi Verschelde e4f0fc50f7
Merge pull request #59930 from Scony/fix-navi-get-simple-path-master
Fix `map_get_path` aka `get_simple_path` behavior in 2D & 3D
2022-04-05 23:55:47 +02:00
Pawel Lampe dcab82ad43 Fix get_simple_path behavior in 2D & 3D 2022-04-05 23:26:37 +02:00
Paweł Fertyk 79b4844be5 Fix `NoiseTexture._generate_texture` crash
Fixes #59915 .
2022-04-05 22:24:58 +02:00
Rémi Verschelde 77843355a0 CI: Update black formatter and apply changes 2022-04-05 17:43:12 +02:00
bruvzg aad9d1414c
Delay font texture update, until `draw` is called. Rasterize glyphs during shaping. 2022-04-05 10:49:41 +03:00
Rémi Verschelde b512fe67a6
Merge pull request #59888 from akien-mga/clang-tidy 2022-04-04 23:57:30 +02:00
Rémi Verschelde db8e6bd83f
Merge pull request #59885 from Jayman2000/autoload-inheritance-message 2022-04-04 23:56:20 +02:00
Jason Yundt 1cc7e7ec33 Improve autoload inheritance error message
Autoloaded scripts should always inherit from Node. When you run a
project that tries to autoload a script which doesn’t inherit from Node,
then Godot gives an error.

Before this change, the error said “Script does not inherit a Node”.
That error message is a little bit misleading. If a class inherits a
Node, then one of its superclasses has a Node. If a class inherits
_from_ Node, then one of its superclasses is Node. This change corrects
that mistake.

Fixes #59884.
2022-04-04 15:51:02 -04:00
Rémi Verschelde b78aa4fe19 Style: Apply clang-tidy to current code, add `readability-redundant-member-init` 2022-04-04 21:49:51 +02:00
Rémi Verschelde f8ab79e68a Zero initialize all pointer class and struct members
This prevents the pitfall of UB when checking if they have been
assigned something valid by comparing to nullptr.
2022-04-04 19:49:50 +02:00
Rémi Verschelde 338b23d572
Merge pull request #59513 from BastiaanOlij/openxr_actionmap_editor 2022-04-04 14:26:28 +02:00
Bastiaan Olij 9b7b9de0e5 Add action map editor for OpenXR 2022-04-04 18:43:29 +10:00
cdemirer 3c5b9d1be3 Fix issues with multiple bind patterns in match statement 2022-04-04 15:47:08 +08:00
Marc Gilleron 277825e956 Initialize pointer variables to fix random crash on startup.
`configure_blender_dialog` is lazily created if equal to null,
however nothing really sets it to null.
2022-04-03 23:21:29 +01:00
Rémi Verschelde c630c2001d
Merge pull request #59633 from EricEzaM/better-code-complete-update
Improve sorting of Code Completion options.
2022-04-03 12:34:00 +02:00
dzil123 726614ff4b fix gridmap cursor showing the wrong mesh 2022-04-02 01:53:36 -07:00
Eric M 4ab605d14d Improve sorting of Code Completion options.
Done by ordering options by their location in the code - e.g. local, parent class, global, etc.
2022-04-01 20:39:09 +10:00
Rémi Verschelde 4263f02f28
Merge pull request #59764 from reduz/blender-import-autodetect 2022-04-01 11:42:05 +02:00
reduz e32215fbad Add Blender install autodetection and configuration.
This PR is a continuation to #54886

* Changed Blender path editor setting from binary to installation.
* Add a class to query whether the format is supported.
* This class allows to create proper editors to configure support.

**NOTE**: This PR only provides autodetection on Linux. Code needs to be added for Windows and MacOS to autodetect the Blender installation.

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2022-04-01 11:01:12 +02:00
FireForge 60dfe76e1f Fix group name in FastNoise and Gradient 2022-03-31 21:21:04 -05:00
Rémi Verschelde 340ad7d748
Merge pull request #59755 from V-Sekai/import-gltf-mat-placeholder 2022-04-01 01:12:16 +02:00
Rémi Verschelde 47d58b5a97
Merge pull request #59753 from V-Sekai/let-there-be-light 2022-03-31 22:21:23 +02:00
K. S. Ernest (iFire) Lee d8b3d14d82 Add support for Blend importing of material placeholders.
Couldn't get the 'NONE' option to work.
2022-03-31 10:11:06 -07:00
K. S. Ernest (iFire) Lee b675a6b9de Allow importing punctual lights from Blend. 2022-03-31 09:34:12 -07:00
bruvzg 947d7c8329
Fix some issues found by clang sanitizers. 2022-03-31 18:35:56 +03:00
bruvzg 4d9689e7f6
[Brotli] Use aligned reads when building with sanitizers. 2022-03-31 18:00:49 +03:00
Rémi Verschelde a647fb3e62 Fix typos with codespell
Using codespell 2.2-dev from current git.

Fix a couple incorrect uses of gendered pronouns.
2022-03-31 14:07:29 +02:00
bruvzg 824927dc50
[ICU] Add library name suffix for API rename to avoid conflicts (GDExtension build). 2022-03-31 13:04:54 +03:00
Rémi Verschelde 5ba3b993d5
Merge pull request #59694 from vnen/gdscript-better-call-super 2022-03-30 17:58:11 +02:00
Rémi Verschelde 543c5658ba
Merge pull request #58983 from Chaosus/gds_fix_builtin_methods_completion 2022-03-30 17:33:27 +02:00
George Marques be718285f7
GDScript: Fix issues with completion and `super` calls
- Make call errors use the call node instead of the calle, which will be
  empty on super calls.
- Don't allow `super()` to be used within lambdas.
2022-03-30 11:58:29 -03:00
Yuri Roubinsky 0584387918 Fix autocompletion of static methods in built-in types in GDScript 2022-03-30 17:40:41 +03:00
K. S. Ernest (iFire) Lee 0a6889d834 Add fbx2gltf support for importing .fbx files
Lets you drag or place .fbx files in the project folder and it will import the files.

An editor setting sets the location of the fbx2gltf binary.

Enables .fbx and .blend by default.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-03-30 15:22:46 +02:00
Rémi Verschelde 33d477498e Remove ad-hoc FBX importer
This importer was the fruit of a lot of amazing reverse engineering
work by RevoluPowered, based on the original Assimp importer that was
introduced by fire.

While promising and well tuned for a specific type of FBX scenes, it
was found to have many flaws to support the many FBX exporters and
legacy models that Godot users want to use. As we currently lack a
maintainer to improve it, those issues are left unresolved and FBX
import is still sub-par in the current Godot releases.

After some experimentation, we're instead adding a new importer that
relies on Facebook's `fbx2gltf` command line tool to convert FBX to
glTF, so that we can then use our well-maintained glTF importer.
See #59653 and https://github.com/facebookincubator/FBX2glTF for details.
2022-03-30 13:04:31 +02:00
reduz 45f74ceb85 Add PortableCompressedTexture
* Resource that allows saving textures embedded in scenes or standalone.
* Supports only formats that are portable: Lossy, Lossles or BasisUniversal

This is something I wanted to add for a long time. I made it now because @fire
requires it for importing GLTF2 files with embedded textures, but also this
will allow saving Godot scenes as standalone binary files that will run
in all platforms (because textures will load everywhere).

This is ideal when you want to distribute individual standalone assets online
in games that can be built from Godot scenes.
2022-03-30 10:39:41 +02:00
Rémi Verschelde dab46db619
Merge pull request #59507 from bruvzg/openxr_move_proj_settings
Move OpenXR project settings to the main, to make them visible on unsupported platforms.
2022-03-29 23:48:16 +02:00
bruvzg d2add64f91
Move OpenXR project settings to the main, to make them visible on unsupported platforms. 2022-03-29 23:25:33 +03:00
K. S. Ernest (iFire) Lee 9484ee7a9e Add support for importing .blend files
Lets you drag or place .blend files in the project folder and it will import the files.

Checks for Blender 3.0's gltf2 `export_keep_originals` option.

Add basepath support to GLTFDocument append_from_file.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-03-29 21:54:41 +02:00
Rémi Verschelde da346ed4ad
Merge pull request #59583 from V-Sekai/svg-crash 2022-03-29 19:33:30 +02:00
K. S. Ernest (iFire) Lee 683b61b094 Set threads to be one to avoid SVG crash. 2022-03-29 10:05:43 -07:00
Rémi Verschelde 3b4e94c8b5
Merge pull request #59660 from timothyqiu/fbx-reg 2022-03-29 10:41:19 +02:00
Haoyu Qiu c17d9f05f8 Simplify FBX importer project settings registering 2022-03-29 15:00:43 +08:00
bruvzg ea4d62dca3
[ICU] Add library name suffix for API rename to avoid conflicts. 2022-03-29 08:38:21 +03:00
Rémi Verschelde 5149db8d85
Merge pull request #59644 from akien-mga/template-no-editor-dep 2022-03-28 23:35:51 +02:00
Rémi Verschelde 8c12dfe099
Merge pull request #56718 from Geometror/noise-overhaul 2022-03-28 21:59:18 +02:00
Rémi Verschelde 45ec0e31c3 Remove last editor code dependencies in template build
SConstruct change also makes it possible to outright delete the `editor`
folder in a `tools=no` build, which we use in CI to ensure no invalid
cross-dependencies are added.
2022-03-28 21:13:01 +02:00
Rémi Verschelde 1ae8b2de38
Merge pull request #59636 from akien-mga/string-remove-ttr 2022-03-28 21:12:44 +02:00
Rémi Verschelde 0c7a15d777
Merge pull request #59641 from Sauermann/fix-encoder-compiler-warning 2022-03-28 20:43:34 +02:00
Rémi Verschelde 80d4f35215
Merge pull request #59626 from lufog/const_ref 2022-03-28 20:29:53 +02:00
Rémi Verschelde 7119d355eb String: Remove TTR and DTR defines in non-tools build
This ensures we don't use TTR in runtime code, as it's specifically meant
to source translations for the editor.
2022-03-28 20:26:35 +02:00
Rémi Verschelde 4799009a0f
Merge pull request #59631 from akien-mga/websocket-no-tools-disable-editor-code
Modules: Don't build editor-specific classes in templates
2022-03-28 19:56:20 +02:00
Markus Sauermann 759d04e28e basisu_uastc_enc.cpp was included twice in encoder_sources 2022-03-28 19:34:03 +02:00
Rémi Verschelde 5fe6984639 Modules: Don't build editor-specific classes in templates
They're moved to an `editor` subfolder so that we can easily handle them
separately.
2022-03-28 16:48:15 +02:00
Rémi Verschelde c9b75431f3 Refactor GDScript/C# script templates logic to be editor-only
Not a full refactor as it still goes through ScriptLanguage so it's hacky,
but at least it can now compile without this.
2022-03-28 16:21:00 +02:00
Rémi Verschelde 143d13717b
Merge pull request #59553 from reduz/script-extension-support 2022-03-28 13:35:21 +02:00
Juan Linietsky ed14ff5a08
Revert "Sort autocomplete/code completion options in a better way" 2022-03-28 13:31:32 +02:00
Rémi Verschelde 01f34495bf
Merge pull request #59621 from bruvzg/icu_external 2022-03-28 11:58:12 +02:00
Rémi Verschelde 795304e34f
Merge pull request #59612 from YeldhamDev/style_and_grace 2022-03-28 11:36:27 +02:00
Aleksey Smirnov 1a13de0f8d Replace copies with constant refs 2022-03-28 12:34:05 +03:00
bruvzg 40b0634b34
Fix TextServer build with `builtin_icu=no`. 2022-03-28 11:06:49 +03:00
Rémi Verschelde 7fe5bece45
Merge pull request #58931 from EricEzaM/proposals/4189-better-code-completion
Sort autocomplete/code completion options in a better way
2022-03-28 08:56:27 +02:00
Rémi Verschelde c422dc5feb
Merge pull request #59064 from Chaosus/gds_fix_narrowing_conv_warning
Prevent NARROWING_CONVERSION warning for `int(float)` function in GDScript
2022-03-28 08:55:52 +02:00
Michael Alexsander 42df9ed059 Make script templates follow the GDScript style guide 2022-03-28 01:32:12 -03:00
Fabio Alessandrelli 331f1662df [Net] Drop is_connected_to_host for TCP and UDP.
The UDP method is now called `is_socket_connected` to limit confusion
with the actual host connection status which doesn't make sense in UDP.

The TCP method is completly dropped, use get_status instead.

The only one left is the WebSocketPeer one, which should be fine as is
for now.
2022-03-27 16:36:44 +02:00
Fabio Alessandrelli 0e52867668 [Net] Make StreamPeerTCP::_poll_connection explicit.
No longer hacked into `get_status` and renamed to `poll`.

The old `poll` (for *nix `poll`, win `select`) is now called `wait`.
2022-03-27 16:36:44 +02:00
reduz 360dea5348 Add GDExtension support to Script
* Ability to create script languages from GDExtension
* Some additions to gdnative_extension.h to make this happen
* Moved the GDExtension binder to core

This now allows creating scripting languages from GDExtension, with the same ease as if it was a module. It replaces the old PluginScript from Godot 3.x.
Warning: GodotCPP will need to be updated to support this (it may be a bit of work as ScriptInstance needs to be created over there again).
2022-03-27 16:13:00 +02:00
Rémi Verschelde 6fce38d1da
Merge pull request #59489 from adamscott/add-gltf-dae-fbx-blend-shape-mask-array-format-enforcers
Add GLTF, DAE and FBX importers enforcement for blend shape mask array
2022-03-25 22:47:16 +01:00
Rémi Verschelde 7c37ab53be
Merge pull request #59503 from V-Sekai/basis-universal-update 2022-03-25 11:00:57 +01:00
Bastiaan Olij c78876f977 Cleanup OpenXR on initialisation failure 2022-03-25 18:30:47 +11:00
K. S. Ernest (iFire) Lee 3529141b4b Update basis universal to version 1.16.3.
Enable basis universal uastc internal storage instead of etc1s for better quality.
2022-03-24 22:41:23 -07:00
Fabio Alessandrelli 1ed6ad939b
Merge pull request #59255 from winterpixelgames/fix-js-websocket-close
Use 3001 instead of 1001 when destroying a Javascript websocket
2022-03-25 05:20:13 +01:00
Adam Scott 5e6d4baa48 Add GLTF, DAE and FBX importers enforcement for blend shape mask array 2022-03-24 17:15:23 -04:00
Eric M f9e1c094a2 Improve sorting of Code Completion options.
Done by ordering options by their location in the code - e.g. local, parent class, global, etc.
2022-03-24 22:24:14 +10:00
Rémi Verschelde d7d528c15f
Merge pull request #59065 from fabriceci/script-template-condition-too-wide 2022-03-23 12:13:07 +01:00
fabriceci dae97909bd Restrict the condition when checking if a script is a template 2022-03-23 11:03:44 +01:00
Raul Santos 83e0e13f4a
Support static methods in C# bindings generator 2022-03-22 19:36:57 +01:00
bruvzg 803e1ae920
[Help] Add simulated slanted font support to the editor help. 2022-03-22 16:16:04 +02:00
Rémi Verschelde 2a116f601b
Merge pull request #59275 from bruvzg/ft_brotli 2022-03-22 12:47:00 +01:00
Yuri Roubinsky c14043b166 Prevent NARROWING_CONVERSION warning for int(float) function in GDScript 2022-03-22 09:17:00 +03:00
Yuri Rubinsky 6cba2143de
Merge pull request #59056 from Chaosus/gds_fix_extends_crash 2022-03-22 08:27:03 +03:00
Yuri Rubinsky 7befa7234d
Merge pull request #58971 from Chaosus/gds_multiline_annotation 2022-03-22 08:25:37 +03:00
Rémi Verschelde 188fa0c846
Merge pull request #59194 from Chaosus/gds_export_flags_limit_error
Add an error emitting when the `@export_flags` arg count is exceeded
2022-03-21 21:21:49 +01:00
Rémi Verschelde 5e249d047f
Merge pull request #59141 from Chaosus/gds_fix_default_arg_check
Fix default value count checking for inherited function
2022-03-21 21:21:25 +01:00
Hendrik Brucker 2a55f10e8b Add FastNoiseLite / general noise overhaul
- replace OpenSimplexNoise

Co-authored-by: Cory Petkovsek <tinmanjuggernaut@users.noreply.github.com>
2022-03-20 14:53:45 +01:00
Raul Santos 4bbfd20aa9
Ignore PhysicsServer3DExtension class in C#
PhysicsServer3DExtension inherits from PhysicsServer3D which is a
singleton class, since singleton classes are generated as static in C#
it would generate invalid C# so for now we'll be
ignoring PhysicsServer3DExtension.
2022-03-18 17:28:48 +01:00
Jason Knight b659cfbd53 Use 3001 instead of 1001 when destroying a websocket. 2022-03-18 10:09:50 -06:00
Rémi Verschelde ca47f25eb1
Merge pull request #59277 from bruvzg/hb401 2022-03-18 14:43:06 +01:00
bruvzg e07a8f0aa6
Add brotli decoder and WOFF2 support. 2022-03-18 15:09:38 +02:00
bruvzg 94a365e94b
HarfBuzz: Update to version 4.0.1 2022-03-18 14:50:57 +02:00
bruvzg f19cd44346
Unify TextServer built-in module and GDExtension code. 2022-03-17 08:15:29 +02:00
Yuri Roubinsky 8a6ab899ec Add an error emitting when the `@export_flags` arg count is exceeded 2022-03-16 17:12:15 +03:00
bruvzg 98d0af7d5c
Implement GDExtension export plugin. 2022-03-16 11:16:19 +02:00
Rémi Verschelde 51bbcbdec2
Merge pull request #45263 from KoBeWi/😕 2022-03-15 13:18:27 +01:00
Yuri Roubinsky 5a99aa3b3a Fix default value count checking for inherited function 2022-03-14 18:00:42 +03:00
Haoyu Qiu 1049e75b89 Fix determination of SVG canvas size 2022-03-14 00:00:05 +08:00
bruvzg d9f8cadafb
Improve simulated bold fonts advance. 2022-03-13 15:07:53 +02:00
Rémi Verschelde 84b358c1d8
Merge pull request #58338 from aaronfranke/bools
Initialize bools in the headers in `editor/`
2022-03-12 22:00:38 +01:00
Aaron Franke 918b09cabc
Initialize bools in the headers in editor 2022-03-12 13:34:06 -06:00
Aaron Franke 89c4990274
Fix Slerp C# docs and add test cases for vectors in the same direction 2022-03-12 13:20:55 -06:00
Yuri Roubinsky d009d96a92 Prevent crash due to empty error message on empty extends in GDScript 2022-03-12 09:46:51 +03:00
MythTitans ec2984f7c7 Prevent non-smoothed face normals to participate to smoothed face normals 2022-03-11 20:23:13 +01:00
Haoyu Qiu 77f80aa4ee Use `RTR()` for VisualScriptNode captions and texts 2022-03-11 23:36:16 +08:00
Rémi Verschelde e56b69269f
Merge pull request #59013 from bruvzg/fake_bold_italics 2022-03-11 14:24:13 +01:00
bruvzg b32e8d63d8
Add options to embolden and transform font outlines to simulate bold and italic typefaces. 2022-03-11 14:02:30 +02:00
Rémi Verschelde 768f9422bc Convert uses of `DirAccess *` to `DirAccessRef` to prevent memleaks
`DirAccess *` needs to be deleted manually, and this is often forgotten
especially when doing early returns with `ERR_FAIL_COND`.
`DirAccessRef` is deleted automatically when it goes out of scope.

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2022-03-11 09:13:11 +01:00
Rémi Verschelde 259114e9e0
Merge pull request #59001 from BastiaanOlij/only_uninitialise_openxr_if_initialised
Only uninitialise OpenXR on destruct if it was initialized
2022-03-11 08:06:56 +01:00
MythTitans 8bcbaff411 Fix normals computation at the 'seam' of smoothed torus shape 2022-03-11 00:16:30 +01:00
Bastiaan Olij d2ef2715ea Only uninitialise OpenXR on destruct if it was initialised 2022-03-11 09:59:04 +11:00
Rémi Verschelde 1c51fd48db
Merge pull request #58781 from BastiaanOlij/openxr_signals_and_events
Adding signals and events to OpenXR interface
2022-03-10 18:10:26 +01:00
reduz 6f51eca1e3 Discern between virtual and abstract class bindings
* Previous "virtual" classes (which can't be instantiated) are not corretly named "abstract".
* Added a new "virtual" category for classes, they can't be instantiated from the editor, but can be inherited from script and extensions.
* Converted a large amount of classes from "abstract" to "virtual" where it makes sense.

Most classes that make sense have been converted. Missing:

* Physics servers
* VideoStream
* Script* classes.

which will go in a separate PR due to the complexity involved.
2022-03-10 12:28:11 +01:00
Yuri Roubinsky 85488f12f3 Allow making multiline annotations in GDScript 2022-03-10 10:56:14 +03:00
Rémi Verschelde 277b0dddee
Merge pull request #58958 from hoontee/master
Revert #52647 (Don't update CSG Shape when not inside tree)
2022-03-10 08:34:26 +01:00
Bastiaan Olij d11cb5fe98 Adding signals and events to OpenXR interface
Improving interaction profile logic
2022-03-10 17:14:56 +11:00
hoontee 9c312c486c
Revert #52647 2022-03-09 17:25:45 -06:00
Rémi Verschelde 3d7f155586 Remove unused Bullet module and thirdparty code
It has been disabled in `master` since one year (#45852) and our plan
is for Bullet, and possibly other thirdparty physics engines, to be
implemented via GDExtension so that they can be selected by the users
who need them.
2022-03-09 21:45:47 +01:00
Rémi Verschelde 33c907f9f5
Merge pull request #58929 from reduz/remove-variant-arg-macros
Remove VARIANT_ARG* macros
2022-03-09 20:48:45 +01:00
reduz 21637dfc25 Remove VARIANT_ARG* macros
* Very old macros from the time Godot was created.
* Limited arguments to 5 (then later changed to 8) in many places.
* They were replaced by C++11 Variadic Templates.
* Renamed methods that take argument pointers to have a "p" suffix. This was used in some places and not in others, so made it standard.
* Also added a dereference check for Variant*. Helped catch a couple of bugs.
2022-03-09 18:39:13 +01:00
hoontee f1cc99c6e8
Add SNAME macro optimization missed during rebase 2022-03-09 11:23:46 -06:00
kobewi 39d429e497 Change some math macros to constexpr
Changes `MAX`, `MIN`, `ABS`, `CLAMP` and `SIGN`.
2022-03-09 16:24:32 +01:00
Rémi Verschelde 922348f4c0
Merge pull request #58925 from akien-mga/remove-unused-gdnative-code 2022-03-09 15:57:30 +01:00
Rémi Verschelde 56d055c1f9
Merge pull request #40814 from hoontee/master 2022-03-09 14:16:09 +01:00
Rémi Verschelde 9b05f29894 Remove unused GDNative code
This has been superseded by GDExtension so this code is no longer useful
nor usable.

There's still some GDNative-related stuff in platform export code which
needs to be adapted for GDExtension (e.g. to include GDExtension libraries
in exports).
2022-03-09 13:59:03 +01:00
Rémi Verschelde 70c5e7b0b8
Merge pull request #58920 from timothyqiu/autoload-cap 2022-03-09 09:20:34 +01:00
Haoyu Qiu 851ed8886c Fix Autoload capitalization inconsistency 2022-03-09 15:03:03 +08:00
Yuri Roubinsky 4fee0e3b7d Fix `VisualShaderNodeCustom` script template 2022-03-09 09:45:20 +03:00
hoontee ce2b367afb
Properly handle CSGShape parent and visibility updates, plus some refactoring 2022-03-08 18:58:47 -06:00
Marcel Admiraal 507f72db8e Rename Control's Rect properties to exclude rect_ part 2022-03-08 16:30:35 +00:00
K. S. Ernest (iFire) Lee f7a809603c ThorVG: Sync with upstream 0.8.0 2022-03-08 06:30:31 -08:00
Rémi Verschelde 8c3d8b12ed
Merge pull request #58853 from V-Sekai/default-arg-values 2022-03-07 10:40:42 +01:00
K. S. Ernest (iFire) Lee 2eaadb1b52 Restore building web platform by enclosing resolve_function_signature. 2022-03-07 00:35:11 -08:00
Rémi Verschelde 53cf5eff9a
Merge pull request #58847 from KoBeWi/editor_settings_mess 2022-03-07 08:38:15 +01:00
Rémi Verschelde 1177bd635f
Merge pull request #58208 from MythTitans/fix-sphere-and-cylinder-shapes-normals-seam 2022-03-07 08:37:29 +01:00
Rémi Verschelde ffd64505c5
Merge pull request #58832 from reduz/uniform-set-cache
Add a UniformSet cache
2022-03-07 07:19:58 +01:00
Rémi Verschelde 47f1c4f900
Merge pull request #58827 from XPhyro/cs-deconstruct
Implement `Deconstruct` methods for C# vectors
2022-03-06 22:36:45 +01:00
kobewi 2057ea2883 Remove duplicate editor settings definitions 2022-03-06 22:05:49 +01:00
George Marques 1ebcb58e69
GDScript: Check if method signature matches the parent
To guarantee polymorphism, a method signature must be compatible with
the parent. This checks if:

1. Return type is the same.
2. The subclass method takes at least the same amount of parameters.
3. The matching parameters have the same type.
4. If the subclass takes more parameters, all of the extra ones have a
default value.
5. If the superclass has default values, so must have the subclass.

There's a few test cases to ensure this holds up.
2022-03-06 11:16:20 -03:00
reduz b0ca03b0a2 Add a UniformSet cache
* Changed syntax usage for RD::Uniform to create faster with a single RID
* Converted render pass setup to use this in clustered renderer to test.

This is the first step into creating a proper uniform set cache system to simplify large parts of the codebase.
2022-03-06 13:03:33 +01:00
Berke Kocaoğlu 20d72e462b
Implement `Deconstruct` methods for C# vectors
See https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/functional/deconstruct#user-defined-types
2022-03-06 11:16:30 +03:00
strank 7d48afa96d Add test cases for accessing parent elements from child class 2022-03-04 12:41:20 -05:00
Rémi Verschelde 0453e7e115
Merge pull request #58752 from akien-mga/webrtc-fix-put_packet-error 2022-03-04 17:58:40 +01:00
Rémi Verschelde 79bbe57244
Merge pull request #56830 from strank/parent-signals 2022-03-04 17:29:49 +01:00
Rémi Verschelde 1769f80547 WebRTC: Fix potential nullptr dereference in error message
This was evidently a typo. Didn't get a crash but GCC 12 raised a
`-Warray-bounds` warning:

```
In file included from ./core/io/stream_peer.h:34,
                 from ./core/io/packet_peer.h:34,
                 from ./core/multiplayer/multiplayer_peer.h:34,
                 from modules/webrtc/webrtc_multiplayer_peer.h:34,
                 from modules/webrtc/webrtc_multiplayer_peer.cpp:31:
In member function 'T* Ref<T>::operator->() [with T = WebRTCMultiplayerPeer::ConnectedPeer]',
    inlined from 'virtual Error WebRTCMultiplayerPeer::put_packet(const uint8_t*, int)' at modules/webrtc/webrtc_multiplayer_peer.cpp:376:4:
./core/object/ref_counted.h:101:24: error: array subscript 0 is outside array bounds of 'Ref<WebRTCMultiplayerPeer::ConnectedPeer> [0]' [-Werror=array-bounds]
  101 |                 return reference;
      |                        ^~~~~~~~~
```
2022-03-04 16:02:40 +01:00
Rémi Verschelde bb8c4acdc9
Merge pull request #58185 from V-Sekai/explicit_variant_assignment_fix 2022-03-04 14:56:38 +01:00
Rémi Verschelde e133adeb8c
Merge pull request #58201 from V-Sekai/debugger_locals 2022-03-04 14:50:56 +01:00
Rémi Verschelde 4bbd7417c4
Merge pull request #58320 from mphe/fix_object_typed_arrays 2022-03-04 14:49:06 +01:00
Rémi Verschelde a4195a3ea8
Merge pull request #58250 from V-Sekai/typed_array_fix 2022-03-04 14:48:40 +01:00
Rémi Verschelde d31aaed172
Merge pull request #58626 from groud/fix_gdscript_analyser_crash 2022-03-04 14:15:59 +01:00
Rémi Verschelde 0ff45dd3a7
Merge pull request #58673 from Calinou/smooth-trimesh-collision-always-setting 2022-03-04 12:25:36 +01:00
Rémi Verschelde 9b94a1dc4a
Merge pull request #58670 from KoBeWi/internal_debugger 2022-03-04 10:44:56 +01:00
Raul Santos eaddb79ec6
Refactor `bbcode_to_xml` into multiple specific methods
The specific `_append_xml_*` methods implement the logic that generates
the proper XML documentation for the given BBCode tag and target and
appends it to the output.
2022-03-03 23:35:10 +01:00
Raul Santos 84615b4b53
Find inherited members in C# documentation generator 2022-03-03 19:53:06 +01:00
Raul Santos 42989befd6
Add theme_item support to C# documentation generator 2022-03-03 18:54:49 +01:00
Raul Santos e601c9eb8f
Fix checking for `@GlobalScope` in C# documentation generator 2022-03-03 18:54:41 +01:00
Raul Santos 424817039a
Check for missing methods/members in C# documentation generator
- Outputs errors for missing members or methods when generating the C#
documentation.
- Hardcodes a special case for the `_init` method, in C# we'll reference
the constructor.
- Ignores properties with slashes (since they are not declared in C# and
can't be referenced in the documentation).
2022-03-03 18:53:15 +01:00
Raul Santos 47a7d85cc4
Fix references to global constants in C# documentation generator
Tries to find the referenced constants in the GlobalScope
if not found in the target class or if no class is specified.
2022-03-03 18:53:15 +01:00
Lyuma 35b964606e glTF export for new TYPE_BLEND_SHAPE tracks 2022-03-03 05:28:00 -08:00
Max Hilbrunner 57838fc0ee
Merge pull request #58262 from Sauermann/fix-range-doc
Describe usage of float in range documentation
2022-03-03 13:12:29 +01:00
Hugo Locurcio 4219485a82
Always register the Smooth Trimesh Collision project setting
This ensures the project setting never disappears from the editor,
even if the current physics engine is GodotPhysics.

This also adds documentation for the Smooth Trimesh Collision
project setting.
2022-03-02 18:49:34 +01:00
kobewi 98dd04c38c Fix debugger not opening built-in scripts 2022-03-02 17:57:56 +01:00
bruvzg 9b0fbfa06d
HarfBuzz: Update to version 4.0.0 2022-03-02 10:48:37 +02:00
kobewi cd6bd04cba Remove unimplemented set_clip() method 2022-03-02 00:44:30 +01:00
Gilles Roudière 7ae988ce5e Fix a crash in GDScriptAnalyzer when a script class's file is not found 2022-02-28 12:20:00 +01:00
Bastiaan Olij 8f035b2ab4 Fix color issues with OpenXR 2022-02-28 13:02:03 +11:00
Bastiaan Olij 1f1b786a36 Use VK_NULL_HANDLE when initializing XrSwapchainImageVulkanKHR 2022-02-27 21:13:02 +11:00
Raul Santos a95cc4eff3
Sort variables in VisualScriptEditor
Sorts the script variables in alphabetical order to display them
in VisualScriptEditor.
2022-02-24 21:18:02 +01:00
Rémi Verschelde 4dc8214831
Merge pull request #58496 from JFonS/fix_lm_crash 2022-02-24 13:29:51 +01:00
jfons d0fd5fd3c7 Add sanity checks to lightmap unwrap texel size 2022-02-24 13:00:51 +01:00
Gilles Roudière f045c97218 Fix llvm compilation by adding missing override 2022-02-23 18:07:02 +01:00
Rémi Verschelde e3b70f3582
Merge pull request #58244 from V-Sekai/typed_fail_case_return 2022-02-23 14:12:14 +01:00
Rémi Verschelde 1f3916e0b6
Merge pull request #56394 from BastiaanOlij/OpenXR_Core4 2022-02-23 13:36:07 +01:00
Rémi Verschelde 2fd17df2ce
Merge pull request #58354 from timothyqiu/gridmap-export 2022-02-23 13:05:26 +01:00
Rémi Verschelde 95783f7bfc
Merge pull request #58415 from V-Sekai/cyclic_assignment_gdscript_fixes 2022-02-23 12:09:44 +01:00
Bastiaan Olij a78a9fee71 Implementing OpenXR driver 2022-02-23 12:02:24 +01:00
Rémi Verschelde fcf8c2006d
Merge pull request #58411 from cbscribe/rename_motion_velocity 2022-02-23 09:48:58 +01:00
Chris Bradfield 849d34ba8e Rename motion_velocity to velocity 2022-02-22 23:31:33 -08:00
clayjohn fe49244611 Use Filament specular models and parametrization 2022-02-22 19:39:41 -08:00
SaracenOne b6aa4ed55d Fixes cyclic detection from variables assigning themselves to themselves in autocomplete, and restricts initialization of variables from other variables which have not been declared above it in class body 2022-02-22 01:21:21 +00:00