Commit graph

7086 commits

Author SHA1 Message Date
Bastiaan Olij
1dd671014b Add startup flag to override XR mode settings 2022-07-28 11:50:34 +10:00
SaracenOne
1307577932 Prevent hard crash in GDScriptVM when a named global can not be found. 2022-07-27 23:37:42 +01:00
Edward
67e34f6120 inconsistent str() error fix
inconsistent str() error fix
2022-07-27 14:16:05 -04:00
Lamia
3fa943fe23 LSP: Sanitizes protocol URI file:///c%3A in file path
Fixes #63205.
2022-07-28 02:25:05 +10:00
Rémi Verschelde
663195f36a
Merge pull request #63325 from EIRTeam/typed_array_fix 2022-07-27 12:39:20 +02:00
Rémi Verschelde
f3fbb157ca
Merge pull request #63121 from aaronfranke/editor-export-split 2022-07-27 11:19:40 +02:00
RedMser
7b834c8bfd Fix unnamed arguments in XML docs 2022-07-26 20:42:38 +02:00
Aaron Franke
e53ae13178
Split up editor export code into multiple files 2022-07-26 08:28:19 -05:00
Fabio Alessandrelli
ca7d572908 [Net] Modularize multiplayer, expose MultiplayerAPI to extensions.
- RPC configurations are now dictionaries.
- Script.get_rpc_methods renamed to Script.get_rpc_config.
- Node.rpc[_id] and Callable.rpc now return an Error.
- Refactor MultiplayerAPI to allow extension.
- New MultiplayerAPI.rpc method with Array argument (for scripts).
- Move the default MultiplayerAPI implementation to a module.
2022-07-26 09:31:12 +02:00
kobewi
e4a961b86a Fix Vector4 parse error 2022-07-26 01:49:57 +02:00
Juan Linietsky
c7255388e1 Remove ThreadWorkPool, replace by WorkerThreadPool
The former needs to be allocated once per usage. The later is shared for all threads, which is more efficient.
It can also be better debugged.
2022-07-25 15:39:50 +02:00
Rémi Verschelde
90019676b0 Code quality: Fix header guards consistency
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 11:17:40 +02:00
Rémi Verschelde
3084a48ace
Merge pull request #63219 from reduz/implement-vector4-projection 2022-07-25 11:13:27 +02:00
Aaron Franke
7b8f9a0e8e
GLTF: Organize structures into a subfolder 2022-07-24 17:16:51 -05:00
Rémi Verschelde
a1f0ea5d19
Merge pull request #63409 from V-Sekai/gltf-export 2022-07-25 00:03:38 +02:00
K. S. Ernest (iFire) Lee
b2bd4cc792 Mend duplicate nodes in the gltf export. 2022-07-24 14:38:57 -07:00
Rémi Verschelde
b7a47bfc09
Merge pull request #63098 from Xwdit/fix_qualifiers_script_doc 2022-07-24 23:26:30 +02:00
Xwdit
5d49df8d97 Fix missing method qualifiers in script doc
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-07-24 23:00:19 +02:00
Aaron Franke
00ec9321f6
GLTF: Move shared defines into a separate gltf_defines.h file
Also move GLTFDocument's template conversion functions into gltf_template_convert.h
2022-07-24 14:21:27 -05:00
Aaron Franke
6887b3f8ee
GLTF: Only list used extensions when they're actually used 2022-07-23 21:59:16 -05:00
reduz
455c06ecd4 Implement Vector4, Vector4i, Projection
Implement built-in classes Vector4, Vector4i and Projection.

* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.

These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.

**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-23 14:00:01 +02:00
Rémi Verschelde
a5bc65bbad
Merge pull request #63265 from reduz/stream-bpm-support
Implement BPM support in AudioStream files.
2022-07-23 11:21:14 +02:00
reduz
d1ddee2258 Implement BPM support
Based on #62896, only implements the BPM support part.

* Implements BPM support in the AudioStreamOGG/MP3 importers.
* Can select BPM/Bar Size and total beats in a song file, as well as edit looping points.
* Looping is now BPM aware
* Added a special importer UI for configuring this.
* Added a special preview showing the audio waveform as well as the playback position in the resource picker.
* Renamed `AudioStream::instance` to `instantiate` for correctness.
2022-07-23 07:31:17 +02:00
Rémi Verschelde
3f504eb9fe
Merge pull request #63313 from python273/fix-xr-doc-links 2022-07-22 23:44:00 +02:00
Álex Román Núñez
1b10f744e0 Fix typed array returns returning the incorrect contained type
Fixes #59485 and #60218
2022-07-22 20:34:19 +02:00
Aaron Franke
b00bb577e7
Rename directory for export templates from templates to export_templates 2022-07-22 12:35:43 -05:00
Dallon Feldner
07ddc8b3b8 Don't print redundant errors when parsing GDScript
The error macros print a generic error, which isn't necessary, and could be confusing to end users.
2022-07-22 09:30:52 -05:00
python273
f78d06c9fe Fix tutorial links in XR classes docs 2022-07-22 15:05:31 +03:00
Nathan Franke
eb8482cf95
round dimensions of svg 2022-07-21 20:11:29 -05:00
Yuri Rubinsky
ccc56cc6d4 Rename epsilon to tolerance in the Plane::has_point method 2022-07-21 20:15:15 +03:00
Rémi Verschelde
ea3d355f0a
Merge pull request #62433 from KoBeWi/🌈 2022-07-21 16:36:34 +02:00
bruvzg
8823eae328
Rename OSX to macOS and iPhoneOS to iOS. 2022-07-21 09:37:52 +03:00
Rémi Verschelde
fa2dcc7ace
Merge pull request #47935 from HaSa1002/doc-loading-run-time 2022-07-20 22:33:49 +02:00
Riteo
a21f8b7c13 Improve linuxbsd headless building, cleanup build scripts
Now the `linuxbsd` platform can be built headlessly (e.g. without X11
development libraries).

I also cleaned up some weird (old?) usages of the `env` variable which
seem to make no difference and are used nowhere else.
2022-07-20 19:48:35 +02:00
kobewi
df5655fdca Highlight ^NodePath and &StringName differently 2022-07-19 20:20:30 +02:00
Rémi Verschelde
7fd29b5464
Merge pull request #59301 from fire-forge/layout-preset-full-rect 2022-07-19 12:06:00 +02:00
FireForge
97dfbea6ad Rename Control PRESET_WIDE to PRESET_FULL_RECT 2022-07-18 20:08:11 -05:00
FireForge
84431bd782 Use integer types in Image and ImageTexture methods
- Image.blit_rect()
- Image.blit_rect_mask()
- Image.blend_rect()
- Image.blend_rect_mask()
- Image.fill_rect()
- Image.get_used_rect()
- Image.get_rect()
- ImageTexture.set_size_override()
2022-07-18 19:43:32 -05:00
Rémi Verschelde
d2df09d02b
Merge pull request #63037 from cdemirer/fix-non-global-autoload-code-completion-crash 2022-07-18 16:13:29 +02:00
cdemirer
e9a5beeb01 Fix crash while trying to autocomplete non-global Autoload 2022-07-18 16:35:25 +03:00
Rémi Verschelde
4e9d3130f5
Merge pull request #63024 from Xwdit/fix_grouping_annotation_in_doc 2022-07-18 15:29:11 +02:00
Rémi Verschelde
aace87e0d0
Merge pull request #63123 from zerc/fix_doc_class_description 2022-07-18 14:56:55 +02:00
Vladimir Savin
585eee2a48 GDScript: Fix brief/long description doc comments. 2022-07-18 13:34:07 +01:00
Rémi Verschelde
73a67f9309
Merge pull request #63125 from cdemirer/fix-parameter-shadowing-class-member
Check for parameters shadowing class members
2022-07-18 13:36:51 +02:00
cdemirer
52781535a3 Check for parameters shadowing class members 2022-07-18 00:28:27 +03:00
Bastiaan Olij
d139131aab Adding Variable Rate Shading support to Godot
Improve GI renderer and add VRS support
Implement render device has_feature and move subgroup settings to limit_get
2022-07-17 15:42:24 +10:00
Fabian Keller
2bf9e6090c rename translate(d) to translate(d)_local in Transform 2D/3D 2022-07-16 11:47:54 +02:00
Xwdit
152466938f Fix grouping annotations displayed in document 2022-07-15 12:39:52 +02:00
bruvzg
cbe3a2dcb7
Use BitField hint for the TextServer enums. Add missing parts for BitField support to the GDextension API. 2022-07-15 08:49:50 +03:00
Rémi Verschelde
184f62cb46
Merge pull request #60458 from KoBeWi/Deprecated-hint,-unused- 2022-07-14 00:20:30 +02:00
Lerg
52adbb763e Fix documentation for C# Vector2/3i classes.
The / operator was wrongly documented as a multiplication.
2022-07-13 22:49:22 +02:00
George Marques
dc5a6362c1
Merge pull request #62895 from KoBeWi/callables_exist_you_know 2022-07-13 09:30:08 -03:00
George Marques
ad11d264b7
Merge pull request #62901 from cdemirer/prevent-unnecessary-additional-parser-error 2022-07-13 09:24:36 -03:00
George Marques
d51aac1137
Merge pull request #62900 from cdemirer/fix-parser-stuck-in-an-error-loop 2022-07-13 09:18:21 -03:00
Rémi Verschelde
b942c1ffe3
Merge pull request #62827 from fire-forge/ok-cancel
Add `ok_button_text` to AcceptDialog and `cancel_button_text` to ConfirmationDialog
2022-07-13 14:10:38 +02:00
George Marques
87ef6f554b
Merge pull request #62918 from cdemirer/parser-properly-set-node-extents 2022-07-13 09:08:28 -03:00
George Marques
01f910517d
Merge pull request #62922 from YuriSizov/gdscript-annotation-defaults 2022-07-13 09:06:20 -03:00
George Marques
bf1ef0498e
Merge pull request #62578 from MinusKube/editor-print-crash
Fix GDScript parser sometimes crashing when issuing warning for unreachable pattern
2022-07-13 08:44:40 -03:00
kobewi
2f777b9a1e Remove unused hints 2022-07-12 00:44:13 +02:00
Yuri Sizov
316f78a037 Add default argument bindings to GDScript annotations 2022-07-11 23:02:55 +03:00
cdemirer
12b9572121 Parser: Properly set node extents 2022-07-11 21:31:15 +03:00
cdemirer
5a906a33d9 Prevent unnecessary additional parser error 2022-07-11 03:32:28 +03:00
cdemirer
4f36b2df2a Fix parser stuck in an error loop 2022-07-11 02:42:40 +03:00
kobewi
e9344f5154 Remove outdated code path 2022-07-10 20:48:33 +02:00
FireForge
e4067064ce Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
kobewi
d2900429e8 Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
Rémi Verschelde
31974aaae2
Merge pull request #62805 from raulsntos/csharp-rpc 2022-07-07 17:21:51 +02:00
Rémi Verschelde
3768236ad2
Merge pull request #62789 from raulsntos/csharp-export-nodes 2022-07-07 17:21:10 +02:00
Rémi Verschelde
421e93b590
Merge pull request #62782 from raulsntos/csharp-bitfield-enums 2022-07-07 14:59:21 +02:00
Rémi Verschelde
72b3e81bdf
Merge pull request #62801 from raulsntos/ensure-nuget-path-exists 2022-07-07 12:23:35 +02:00
Rémi Verschelde
1e553e34fb
Merge pull request #62108 from bruvzg/font_config_v3 2022-07-07 12:22:49 +02:00
bruvzg
0c5431644d
Allows parsing of invalid UTF-16 surrogates (can be encountered in Windows filenames) and some non-standard UTF-8 variants, makes Unicode parse errors more verbose. 2022-07-07 11:07:18 +03:00
Rémi Verschelde
28a3dee276
Merge pull request #62791 from raulsntos/csharp-bezier-interpolation
C#: Add `BezierInterpolate` method
2022-07-07 09:40:36 +02:00
Raul Santos
8131358b71
C#: New RPCAttribute
Replace old RPC attributes with a new single `RPCAttribute` which works
like the GDScript `@rpc` annotation.
2022-07-07 04:10:38 +02:00
Raul Santos
1637d0c699
Ensure NuGet.config directory exists 2022-07-07 01:53:32 +02:00
Raul Santos
71f99c6d40
C#: Add BezierInterpolate method
Adds a `BezierInterpolate` method for floats in `Mathf` and for vectors
in `Vector2` and `Vector3`.
2022-07-06 21:59:42 +02:00
Raul Santos
68477e9b1b
C#: Enable exporting nodes to the inspector 2022-07-06 21:49:53 +02:00
Raul Santos
f9c43c5489
Add C# support for bitfield enums (flags) 2022-07-06 17:49:37 +02:00
Rémi Verschelde
09e12ba9b4 Sync GDScript doc template for new annotations 2022-07-06 16:37:40 +02:00
Rémi Verschelde
f0eb3ac5d3
Merge pull request #62701 from cdemirer/for-variable-conflict 2022-07-06 16:02:49 +02:00
Rémi Verschelde
fdff28e1a2
Merge pull request #62699 from cdemirer/fix-autocomplete-var-assigned-same-statement 2022-07-06 15:57:19 +02:00
Rémi Verschelde
4c56885bc0
Merge pull request #62690 from cdemirer/fix-infinite-guess-recursion 2022-07-06 15:54:16 +02:00
Rémi Verschelde
4873886830
Merge pull request #62760 from cdemirer/fix-annotation-initializer-conflict
Fix priority of annotated type vs initializer type
2022-07-06 15:47:56 +02:00
Rémi Verschelde
635d447a69
Merge pull request #62713 from YuriSizov/docs-scripting-annotations 2022-07-06 15:31:19 +02:00
Rémi Verschelde
ea61cd3b32
Merge pull request #62707 from YuriSizov/gdscript-group-those-props 2022-07-06 15:24:07 +02:00
Rémi Verschelde
55fca1cb94
Merge pull request #62344 from BastiaanOlij/extract_dependencies 2022-07-06 13:24:46 +02:00
bruvzg
344ba0ffaf
Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
Rémi Verschelde
cf19484746
Merge pull request #62374 from reduz/implement-bitfield-hint
Implement a BitField hint
2022-07-06 09:35:40 +02:00
cdemirer
f280975bf1 Fix priority of annotated type vs initializer type 2022-07-06 04:25:44 +03:00
reduz
5ac42cf576 Implement a BitField hint
Allows to specify the binder that an enum must be treated as a bitfield.
2022-07-05 22:13:37 +02:00
Yuri Sizov
f85bafaa11 Add grouping annotations for class properties in GDScript 2022-07-05 22:01:40 +03:00
PZerua
aa7ab96e71 Fix light intensity and attenuation import from GLTF 2022-07-05 19:48:01 +02:00
Yuri Sizov
a9098e6147 Add support for documenting built-in annotations 2022-07-04 20:21:39 +03:00
lawnjelly
b221eab426 Variant memory pools
Memory pools via PagedAllocator for Transform2D, Transform3D, Basis and AABB.
2022-07-04 12:01:46 +01:00
cdemirer
dbdf0174b4 Do error when for variable conflicts with a variable in scope 2022-07-04 12:30:39 +03:00
cdemirer
3a827349bf Fix autocomplete for variable which is assigned to in the current statement 2022-07-04 10:08:41 +03:00
bruvzg
6c27d9d624
HarfBuzz: Update to version 4.4.1 2022-07-04 09:12:19 +03:00
cdemirer
bd518f6b11 Fix infinite recursion when guessing type of variable which is being assigned to 2022-07-04 02:49:36 +03:00
Rémi Verschelde
eafb565f0c
Merge pull request #62653 from akien-mga/gltf-warning-typo-fix 2022-07-03 03:30:50 +02:00
Rémi Verschelde
e72f3abe2f glTF: Fix a couple typos in warnings on image parsing 2022-07-03 02:55:31 +02:00
mj.Jernigan
a413656e07 Register missing WebRTCDataChannelJS type 2022-07-03 01:21:17 +02:00
Rémi Verschelde
6bbfd160b0 SCons: Properly track codegen script dependency for generated GLSL headers 2022-07-02 16:01:48 +02:00
MinusKube
92367bad4e Fix GDScript parser sometimes crashing when issuing warning for unreachable pattern 2022-07-01 02:05:00 +02:00
Silc Renew
dc43cfc830 implement bone renamer in importer 2022-07-01 03:55:28 +09:00
Rémi Verschelde
b730d2ee09
Merge pull request #60675 from voylin/Add-BBCode-support-for-printing-output
Adding print_rich() for printing with BBCode
2022-06-28 23:35:53 +02:00
Rémi Verschelde
f6072c9c98
Merge pull request #62485 from cdemirer/fix-set-chain-jump-if-shared
Fix chain assignment bug with jump_if_shared
2022-06-28 19:13:35 +02:00
cdemirer
a0608bd891 Fix set chain bug with jump_if_shared 2022-06-28 18:45:27 +03:00
Voylin
c6291bcd8a Adding print_rich for printing with BBCode 2022-06-29 00:41:29 +09:00
Rémi Verschelde
622b656c40
Merge pull request #53135 from briansemrau/fix-ref-leak 2022-06-28 17:26:44 +02:00
Rémi Verschelde
4c14bf7482
Merge pull request #62470 from vnen/gdscript-export-nodes
GDScript: Enable exporting nodes to the inspector
2022-06-28 08:07:00 +02:00
Rémi Verschelde
b863c40356
Merge pull request #62468 from V-Sekai/core-const-expressions
Add a const call mode to Object, Variant and Script.
2022-06-28 01:08:24 +02:00
George Marques
9490146a16
GDScript: Enable exporting nodes to the inspector
Also fix an small issue in the property editor for NodePath trying to
use the meta property when not needed.
2022-06-27 18:42:52 -03:00
Rémi Verschelde
c4a426d6ec
Merge pull request #62462 from vnen/gdscript-setter-chaining
GDScript: Fix setter being called in chains for shared types
2022-06-27 23:25:53 +02:00
K. S. Ernest (iFire) Lee
9ddebc0c22 Add a const call mode to Object, Variant and Script.
For this to work safely (user not call queue_free or something in the expression), a const call mode was added to Object and Variant (and optionally Script).

This mode ensures only const functions can be called, making it safe to use from the editor.

Co-Authored-By: reduz <reduzio@gmail.com>
2022-06-27 13:33:06 -07:00
George Marques
511a4b761c
GDScript: Fix setter being called in chains for shared types
When a type is shared (i.e. passed by reference) it doesn't need to be
called in a setter chain (e.g. `a.b.c = 0`) since it will be updated in
place.

This commit adds an instruction that jumps when the value is shared so
it can be used to skip those cases and avoid redundant calls of setters.
It also solves issues when assigning to sub-properties of read-only
properties.
2022-06-27 12:09:51 -03:00
Bastiaan Olij
ecfcfd97fa Split dependency logic
Split FOG
Split visibility notifier
Final cleanup of storage classes
2022-06-28 00:10:29 +10:00
Rémi Verschelde
b192073001
Merge pull request #62309 from reduz/remake-resource-thread-safety
Remake ResourceCache thread safety code and API
2022-06-25 14:09:28 +02:00
Rémi Verschelde
dd3de622d8
Merge pull request #62372 from MarcusElg/nosliderrename
Rename @export_range's noslider option to no_slider
2022-06-25 14:03:44 +02:00
Rémi Verschelde
56b8d579b2
Merge pull request #62255 from vnen/gdscript-implicit-onready
GDScript: Use implicit method for @onready variables
2022-06-24 23:24:33 +02:00
George Marques
cf015673d3
GDScript: Use implicit method for @onready variables
Initialize them with the implicit method so they're not related to the
overriding of the `_ready` method of the script but instead are always
set.
2022-06-24 14:49:21 -03:00
George Marques
81cac4907f
GDScript: Don't add implicit constructor to the list of functions
So it's not shown on docs or when listing the methods. This also avoids
being able to call it using the `call()` function.
2022-06-24 14:48:46 -03:00
Priyansh Rathi
e995764e50
add support for soft shadows to the lightmapper 2022-06-24 21:50:13 +05:30
Rémi Verschelde
fec3a48e53
Merge pull request #59918 from piiertho/enhancement/rename-controll-minimum_size-to-custom_minimum_size 2022-06-24 14:54:53 +02:00
Marcus Elg
6c1ac9f3be Rename export_range's noslider option to no_slider 2022-06-24 10:45:34 +02:00
Rémi Verschelde
faae24637c
Merge pull request #62300 from smix8/navigation_map_force_update_4.x 2022-06-24 10:13:07 +02:00
Rémi Verschelde
81afea620f
Merge pull request #62353 from smix8/navigation_region_owns_point_4.x
Add NavigationServer region_owns_point() helper function
2022-06-24 09:08:25 +02:00
Rémi Verschelde
ecf187705e
Merge pull request #62238 from V-Sekai/openexr-buffer
For in-engine processing allow saving openexr to a buffer.
2022-06-24 00:12:16 +02:00
smix8
e57360d8df Add NavigationServer.region_owns_point() helper function
Adds a helper function to check if a world space position is currently owned by a navigation region.
2022-06-23 23:32:05 +02:00
Rémi Verschelde
471050e6a7
Merge pull request #62342 from reduz/methodinfo-varargs
Implement varargs in Methodinfo
2022-06-23 22:49:16 +02:00
Rémi Verschelde
6a5267ebb2
Merge pull request #62352 from akien-mga/mono-newtonsoft.json-13.0.1
Mono: Update Newtonsoft.Json to 13.0.1
2022-06-23 22:43:22 +02:00
Pierre-Thomas Meisels
5ad1a1b5e7 enhancement: rename exposed property Control::minimum_size to Control::custom_minimum_size 2022-06-23 18:06:10 +02:00
K. S. Ernest (iFire) Lee
ce42ee790c For in-engine processing allow saving openexr to a buffer. 2022-06-23 08:53:15 -07:00
smix8
fdea269805 Add NavigationServer map_force_update() function
Adds map_force_update() function to NavigationServer. This function immediately flushes the Navigationserver command queue and recalculates all navigationmeshes and region connections for a specific map.
2022-06-23 17:32:07 +02:00
Rémi Verschelde
870c02143b Mono: Update Newtonsoft.Json to 13.0.1
See https://github.com/advisories/GHSA-5crp-9r3c-p9vr
2022-06-23 16:24:16 +02:00
Rémi Verschelde
462127eff0
Merge pull request #62312 from smix8/navigation_get_maps_4.x 2022-06-23 16:14:12 +02:00
Rémi Verschelde
bdd41a836c
Merge pull request #62293 from smix8/navigation_disable_editorprogress_bake_4.x 2022-06-23 16:13:12 +02:00
Rémi Verschelde
ef5bc1baad
Merge pull request #62348 from smix8/navigation_baking_aabb_4.x 2022-06-23 16:10:40 +02:00
smix8
0c4d99f4fd Implement NavigationMesh bake area
Adds two new properties to NavigationMesh resources to restrict the navmesh baking to an area enclosed by an AABB with volume.
2022-06-23 14:55:21 +02:00
reduz
dd8c0522a6 Implement varargs in Methodinfo
Variadic templates are an awful thing. Implements #62233 using them in MethodInfo so less changes are required.
2022-06-23 14:50:38 +02:00
Rémi Verschelde
e3fb066cb0
Merge pull request #62317 from Black-Cat/release-return-fix 2022-06-23 14:37:33 +02:00
Rémi Verschelde
d1dac8427a
Merge pull request #55846 from ellenhp/fix_ogg_edge_cases
Fix ogg edge cases
2022-06-22 23:33:51 +02:00
Black Cat
5c365713ca Do not reset return value in release build 2022-06-22 20:55:09 +04:00
smix8
c0fed1d4e8 Add Navigation function to get all navigation maps
Added new function that returns all created navigation map RIDs from the NavigationServer. The function returns both 2D and 3D created navigation maps as technically there is no distinction between them.
2022-06-22 15:33:40 +02:00
reduz
e772b65d92 Remake resource thread safety and API
* Ensures thread safety when resources are destroyed.
* Simplified API by always forcing `ResourceCache::get_ref`, which needs less hacks and is fully thread safe.
* Removed RWLock for resources because its not possible to use for the new logic. Should not be a problem.

Supersedes #57533
2022-06-22 13:46:46 +02:00
smix8
24bb0af4a9 Disable thread-unsafe EditorProgress for navmesh baking
Disables navmesh baking EditorProgress for now until fixed as EditorProgress is not thread-safe and uses hacks and Main::iteration() for steps which can result in random crashes when baking navmesh.
2022-06-22 10:47:00 +02:00
Aaron Franke
8f05bd97b5
Add support for saving WebP images 2022-06-21 08:27:51 -05:00
Rémi Verschelde
40c360b870
Merge pull request #62122 from reduz/implement-movie-writer
Implement a Movie Maker mode
2022-06-21 14:24:14 +02:00
reduz
5786516d4d Implement Running Godot as Movie Writer
* Allows running the game in "movie writer" mode.
* It ensures entirely stable framerate, so your run can be saved stable and with proper sound (which is impossible if your CPU/GPU can't sustain doing this in real-time).
* If disabling vsync, it can save movies faster than the game is run, but if you want to control the interaction it can get difficult.
* Implements a simple, default MJPEG writer.

This new features has two main use cases, which have high demand:
* Saving game videos in high quality and ensuring the frame rate is *completely* stable, always.
* Using Godot as a tool to make movies and animations (which is ideal if you want interaction, or creating them procedurally. No other software is as good for this).

**Note**: This feature **IS NOT** for capturing real-time footage. Use something like OBS, SimpleScreenRecorder or FRAPS to achieve that, as they do a much better job at intercepting the compositor than Godot can probably do using Vulkan or OpenGL natively. If your game runs near real-time when capturing, you can still use this feature but it will play no sound (sound will be saved directly).

Usage:

$ godot --write-movie movie.avi [scene_file.tscn]

Missing:

* Options for configuring video writing via GLOBAL_DEF
* UI Menu for launching with this mode from the editor.
* Add to list of command line options.
* Add a feature tag to override configurations when movie writing (fantastic for saving videos with highest quality settings).
2022-06-21 11:28:47 +02:00
Rémi Verschelde
21b0c7fc22
Merge pull request #62214 from smix8/navigation_layer_bitmask_helpers_4.x 2022-06-20 15:13:33 +02:00
Rémi Verschelde
77be20ede8
Merge pull request #58921 from BastiaanOlij/htc_vive_trackers 2022-06-20 14:17:30 +02:00