Commit Graph

4828 Commits

Author SHA1 Message Date
Rémi Verschelde ddfaf20f62
Merge pull request #50483 from akien-mga/3.x-ci-emscripten-2.0.25 2021-08-18 11:56:39 +02:00
Rémi Verschelde 1de8f31448
CI: Upgrade Emscripten to 2.0.25
That's the version used by current containers for Godot 3.4.

Fixes a couple stray warnings that new Emscripten/LLVM catches.
2021-08-18 11:13:34 +02:00
Jihyun Yu 5c66891048 Auto-reload scripts with external editor 2021-08-18 16:52:14 +09:00
Rémi Verschelde 632844e464
Merge pull request #51320 from pycbouh/docs-extract-theme-items-3.x
[3.x] Add theme item descriptions to the online documentation
2021-08-13 22:39:09 +02:00
Rémi Verschelde f0b37b1519
doc: Point URLs to 3.4 version of the online docs 2021-08-12 17:08:10 +02:00
Rémi Verschelde ba8551451f
Resource: Remove unused `_use_builtin_script()` virtual method
And another piece of dead code found while searching for "use_builtin".

(cherry picked from commit 6e9439198c)
2021-08-12 16:45:48 +02:00
K. S. Ernest (iFire) Lee beb3a6859d
Continue when glTF2 lights fail to parse.
(cherry picked from commit 0c79a8fa22)
2021-08-12 16:42:16 +02:00
Rémi Verschelde 0142a378c6
HTML5: Fix a couple warnings
Add a missing call to disable warnings on a forked env for freetype's
`sfnt.c`.

(cherry picked from commit c44ebb020d)
2021-08-12 16:37:38 +02:00
Marcel Admiraal 2449b581dd Fix multiple issues with CSGPolygon 2021-08-12 09:55:18 +01:00
Hugo Locurcio d0508e5155
Enable range coder compression by default in NetworkedMultiplayerENet
From empirical testing, this seems to provide the best compression
compared to other compression algorithms when used in the
Multiplayer Bomber demo.

Other algorithms may provide better compression ratios for more
complex games, but some compression is probably better than
no compression.

Zstandard was also not very efficient in my testing, so I added
a note in the documentation.
2021-08-11 21:05:37 +02:00
Haoyu Qiu f4a6737eed Improve NavigationMesh typing, parameter validation and documentation 2021-08-11 18:18:27 +08:00
PouleyKetchoupp da159cd258 Fix 3D moving platform logic
Same thing that was already done in 2D, applies moving platform motion
by using a call to move_and_collide that excludes the platform itself,
instead of making it part of the body motion.

Helps with handling walls and slopes correctly when the character walks
on the moving platform.

Also made some minor adjustments to the 2D version and documentation.

Co-authored-by: fabriceci <fabricecipolla@gmail.com>
2021-08-09 18:55:49 -07:00
Rémi Verschelde 0403cb8ad5
Merge pull request #51447 from nekomatata/fix-moving-platform-rotation-3.x
[3.x] Fix applied rotation from moving platforms in move_and_slide
2021-08-09 23:20:35 +02:00
PouleyKetchoupp f101349225 Fix applied rotation from moving platforms in move_and_slide
When synchronizing KinematicBody motion with moving the platform using
direct body state, only the linear velocity was taken into account.

This change exposes velocity at local point in direct body state and
uses it in move_and_slide to get the proper velocity that includes
rotations.
2021-08-09 12:04:57 -07:00
Fabio Alessandrelli ef43d95897 [Net] Add "dtls_hostname" property to ENet.
Used to specify the expected "CN" in the server certificate if different
from the server address.
2021-08-09 15:50:52 +02:00
Rémi Verschelde a418d09617
Merge pull request #51166 from RandomShaper/fix_can_reset_3.x 2021-08-09 09:19:25 +02:00
Rémi Verschelde 030bdc5a41
Merge pull request #51325 from raulsntos/fix-msbuild-exception-3.x
[3.x] Ensure MSBuildPanel buttons are instantiated
2021-08-07 12:19:43 +02:00
Raul Santos dd9c07ee46 Ensure MSBuildPanel buttons are instantiated 2021-08-06 22:32:54 +02:00
Francois Belair 6db17a523e Fix LSP completion crashing on sceneless scripts 2021-08-06 15:31:04 -04:00
Yuri Sizov fcbe5a3fde Add theme item descriptions to the online documentation 2021-08-06 18:20:51 +03:00
31 659b89c615
Fix 'script_class' null access when reloading a deleted C# script
(cherry picked from commit 6fd2edddc0)
2021-08-06 13:03:03 +02:00
Rémi Verschelde 70784f983b
Mono: Remove diagnostics incompatible with 3.x codebase 2021-08-06 12:59:17 +02:00
Francois Belair 1f0fa16a15
Fix LSP parsing get_node only from the scene root
(cherry picked from commit 03f8fa9f62)
2021-08-06 11:45:08 +02:00
Raul Santos 332e31260e
Reduce C# Dictionary internal calls
- Implements new `KeyValuePairs` and `KeyValuePairAt` internal calls
to get the `key` and the `value` in one call.
- Caches the `DictionaryEntry` to reuse properties without repeating
internal calls.

(cherry picked from commit 2deefd938f)
2021-08-06 11:10:04 +02:00
Raul Santos ca32c18458
Add documentation to Dictionary in C#
Adds documentation to `Godot.Collections.Dictionary` in C#.

(cherry picked from commit 0669ffcd15)
2021-08-06 11:09:56 +02:00
Raul Santos 5c206c38f9
Simplify C# print methods
- Extracts the parameters logic to a single method
- Simplify the handling of null parameters

(cherry picked from commit ad460cde79)
2021-08-05 16:35:55 +02:00
Rémi Verschelde 63047093c9
Merge pull request #48616 from Razoric480/lsp-3x-rename
Implement LSP didSave notify and rename request [3.x]
2021-08-04 20:28:16 +02:00
Yuri Sizov 3857fd5ceb Fix the editor theme application for the Mono build log 2021-08-03 22:11:33 +03:00
Rémi Verschelde d38180b20f
Merge pull request #51208 from Chaosus/vs_cleanup_warnings_3.x
[3.x] Prevents some warnings from appearing in visual scripts
2021-08-03 11:08:00 +02:00
Yuri Roubinsky 96f957f93b [3.x] Prevents some warnings from appearing in visual scripts 2021-08-03 11:27:45 +03:00
Rémi Verschelde f5836b40d4
doc: Use self-closing tags for `return` and `argument`
For the time being we don't support writing a description for those, preferring
having all details in the method's description.

Using self-closing tags saves half the lines, and prevents contributors from
thinking that they should write the argument or return documentation there.

(cherry picked from commit 7adf4cc9b5)
2021-08-03 10:20:19 +02:00
Haoyu Qiu 812076baf6
Validates VisualScript.add_node input node
(cherry picked from commit 0ca38ffe76)
2021-08-03 09:33:25 +02:00
Haoyu Qiu f4208ad1e8
Do nothing when dragging CSGBox handle perpendicular to the camera
(cherry picked from commit 0f1e107ede)
2021-08-03 09:33:24 +02:00
K. S. Ernest (iFire) Lee 8f592d50c3
glTF2 fallback load PNG and JPG
(cherry picked from commit ddff1c10c3)
2021-08-03 09:15:34 +02:00
K. S. Ernest (iFire) Lee 6ba37005d1
In glTF2 animations, log spam less when running.
(cherry picked from commit 882f7d9bdf)
2021-08-03 09:15:34 +02:00
K. S. Ernest (iFire) Lee 42ad091738
Make curve interpolate crash less.
(cherry picked from commit d67c5afa95)
2021-08-03 09:15:33 +02:00
Raul Santos ecb973ab02
Use `allowEmpty` parameter in Split
(cherry picked from commit b7a66a820b)
2021-08-03 09:15:33 +02:00
Haoyu Qiu ac04032e95 Fix NetworkedMultiplayerENet client memory leak
The host is not destroyed in some error conditions.
2021-08-03 10:14:14 +08:00
Pedro J. Estébanez d272464e6e Implement inherits_script() for NativeScript and PluginScript
(cherry picked from commit 2dcd064056)
2021-08-02 17:58:04 +02:00
Ignacio Roldán Etchevery e72fdc4b95 C#+iOS: Cache AOT compilater output
Implemented some basic caching to avoid unnecessary AOT compilation
of unchanged assemblies that were already compiled previously.
This reduces iOS export times considerably for subsequent builds
since many dependencies never change, such as framework assemblies
and the Godot bindings.

The AOT compiler asm output and object files are now placed in
`res://.mono/temp/obj/<CONFIG>/godot-aot-cache/` instead of a
temporary directory.
2021-08-02 17:27:47 +02:00
Ignacio Etcheverry 417a69c643 Implement CSharpScript::inherits_script()
(cherry picked from commit 840255a04b)
2021-08-02 15:30:13 +02:00
Pedro J. Estébanez 7426b3fa91 Add Script::inherits_script()
Partial cherry-pick of 5d4dc2d45c.

Co-authored-by: Juan Linietsky <reduzio@gmail.com>
2021-08-02 15:18:30 +02:00
Rémi Verschelde 02967a9c5e
Merge pull request #51037 from winterpixelgames/ws-fix
3.x WebsocketPeer outbound buffer fixes and buffer size query
2021-08-01 11:14:03 +02:00
Jordan Schidlowsky 023548c0a5 Websocket peer outbound buffer fixes. Expose outbound buffered amount. 2021-07-31 19:50:05 -06:00
Haoyu Qiu a3b221e99f Make action names translatable 2021-07-31 22:19:47 +08:00
Rémi Verschelde 9735f2803c
Merge pull request #46800 from The-O-King/normal_compression
[3.x] Implement Octahedral Map Normal/Tangent Attribute Compression
2021-07-30 17:34:47 +02:00
Omar El Sheikh d274284069 Octahedral Normal/Tangent Compression
Implement Octahedral Compression for normal/tangent vectors
*Oct32 for uncompressed vectors
*Oct16 for compressed vectors

Reduces vertex size for each attribute by
*Uncompressed: 12 bytes, vec4<float32> -> vec2<unorm16>
*Compressed: 2 bytes, vec4<unorm8> -> vec2<unorm8>

Binormal sign is encoded in the y coordinate of the encoded tangent

Added conversion functions to go from octahedral mapping to cartesian
for normal and tangent vectors

sprite_3d and soft_body meshes write to their vertex buffer memory
directly and need to convert their normals and tangents to the new oct
format before writing

Created a new mesh flag to specify whether a mesh is using octahedral
compression or not
Updated documentation to discuss new flag/defaults

Created shader flags to specify whether octahedral or cartesian vectors
are being used

Updated importers to use octahedral representation as the default format
for importing meshes

Updated ShaderGLES2 to support 64 bit version codes as we hit the limit
of the 32-bit integer that was previously used as a bitset to store
enabled/disabled flags
2021-07-30 10:29:09 -04:00
lawnjelly e06cd3042f Portals - Fix CSG updates on room conversion
Due to a quirk in CSG Shapes, updating is usually deferred to the next frame. This is problematic as we need to read back the geometry on the first frame when converting levels.

This PR adds a function to CSGShape to force immediate updating (if dirty), and calls it during room conversion.
2021-07-29 12:41:23 +01:00
Aaron Franke 48308a5e0a
Fix CSGSphere3D mesh creation
(cherry picked from commit b2156b22ea)
2021-07-28 15:34:00 +02:00
Rémi Verschelde bcc5250cde
Merge pull request #50914 from Razoric480/3x-lsp-symbolkind-fix
[3.x] Fix LSP reporting wrong types
2021-07-27 13:32:46 +02:00
Raul Santos 9fd201c7a4
Ignore paths with invalid chars in PathWhich
(cherry picked from commit d636ebbfe9)
2021-07-27 12:17:14 +02:00
Raul Santos 2d60a64260
Use Array.Empty instead of allocating a every time
Use `System.Array.Empty<T>` to get an empty array instead of allocating
a new one every time. Since arrays are immutable there is no need to
allocate them every time.

(cherry picked from commit accd05f4ad)
2021-07-27 12:17:09 +02:00
Rémi Verschelde 6a6b6fa5cb
Merge pull request #50827 from Calinou/bakedlightmap-add-bounce-indirect-energy 2021-07-27 10:44:41 +02:00
Gallilus 9342457bcd
Change "Add Preload Node" action to "Add Node(s)"
The action might also drop Custom Nodes

(cherry picked from commit 70a6ff0a71)
2021-07-26 13:36:07 +02:00
Aaron Franke 1180256090
Add documentation to Array in C#
(cherry picked from commit 080f44a3b7)
2021-07-26 13:35:52 +02:00
Raul Santos 6ea8334012
Fix documentation in StringExtensions
(cherry picked from commit ba99387bf3)
2021-07-26 13:35:12 +02:00
Hugo Locurcio 974d3aa9cd
Add a property to control the bounce indirect energy in BakedLightmap
Higher values will make indirect lighting brighter.
A value of 1.0 represents physically accurate behavior, but higher values
can be used to make indirect lighting propagate more visibly when using
a low number of bounces.

This can be used to speed up bake times by lowering the number of bounces
then increasing the bounce indirect energy. Unlike BakedLightmapData's
energy property, this property does not affect direct lighting
emitted by light nodes or emissive materials.
2021-07-25 03:04:40 +02:00
Aaron Franke 17551fe29e
[3.x] Add a simple C# .editorconfig 2021-07-24 16:27:57 -04:00
Francois Belair 02bc1bf355 Fix LSP SymbolKind reporting wrong types
Classes were properties, functions interfaces, etc.
2021-07-24 16:25:47 -04:00
Hugo Locurcio 069281d58f
Improve documentation for GDScript constants
(cherry picked from commit 8ff8c1e5f8)
2021-07-24 00:59:35 +02:00
Rémi Verschelde 48d80b31b1
Merge pull request #50709 from DavidCambre/Improve-and-stramline-VisualScriptFuncNodes-Call-Set-Get
[3.x] Improve and streamline VisualScriptFuncNodes Call Set Get
2021-07-23 13:00:24 +02:00
David Cambré af1ea1800d Improve and streamline VisualScriptFuncNodes Call Set Get
This PR improves and streamlines the workflow for VisualScriptFunctionNodes Call Set Get
Uniform design.
Drag in set-get from tree is now working.
port 'pass' not backported to 3.x to keep script backwards compatibility
2021-07-22 21:13:37 +02:00
Rémi Verschelde ca8e4889eb
Merge pull request #50706 from dsnopek/webrtc-gdnative-version-3.x
Update GDNative API version for changes from #50659 (Godot 3.x)
2021-07-22 12:47:24 +02:00
Rémi Verschelde 5ca46ee1fd
Merge pull request #50696 from DavidCambre/Allow-dropping-custom-node-scripts-in-VisualScript-editor
[3.x] Allow dropping custom node scripts in VisualScript editor
2021-07-22 12:42:06 +02:00
Rémi Verschelde 9178e24d30 Expose visual script custom node type hints 2021-07-21 19:33:10 +02:00
David Snopek a27f4de2ef Update GDNative API version for changes from #50659 2021-07-21 10:30:31 -05:00
David Cambré 968dd73141 Allow dropping custom node scripts in VisualScript editor 2021-07-21 15:01:07 +02:00
David Snopek 5b2dcc5f6b Add get_buffered_amount() to WebRTCDataChannel 2021-07-20 16:52:33 -05:00
David Snopek 1899a3b1ea
Fix "IDHandler.get_prop is not a function" error when calling some methods on WebRTCDataChannel
(cherry picked from commit 756ed308ee)
2021-07-20 13:05:11 +02:00
Rémi Verschelde f8264abb46
Mono: Remove info dialog discouraging use in production
While there are still various bugs to solve and features to implement, the C#
support as of Godot 3.4 is fairly mature and already used by a number of users
in production. Now that we default to dotnet CLI as build tool, it also seems
to be more reliable than MSBuild.

The documentation can (and does for the most part) point out some caveats that
users should be aware of, but this info dialog has outlived its intended
purpose.

(cherry picked from commit 671467b888)
2021-07-20 13:05:04 +02:00
Francois Belair 802bb9c01f Implement LSP didSave notify and rename request 2021-07-17 11:50:17 -04:00
Tomasz Chabora 6021ab5b01
Document remaining Visual Script classes
(cherry picked from commit 1054956461)
2021-07-15 10:46:04 +02:00
Andrea Catania 74e6adda57
Add env.Depends to modules_enabled.gen.h generator
Sometimes scons doesn't detects that a new module is being added. This commit fix it.

(cherry picked from commit b667e72adf)
2021-07-14 23:46:44 +02:00
Rémi Verschelde 875045adde
Use modules_enabled.gen.h to improve inter dependency checks
- Fix build with gdscript module disabled. Fixes #31011.
- Remove unused `gdscript` compile option.
- Fix build with regex module disabled.
- Fix ImageLoaderSVG to forward declare thirdparty structs.

(cherry picked from commit f3726ee994)
2021-07-14 23:36:38 +02:00
Rémi Verschelde cbbea6084d
SCons: Generate header with info on which modules are enabled
We already had `MODULE_*_ENABLED` defines but only in the modules
environment, and a few custom `*_ENABLED` defines in the main env
when we needed the information in core.

Now this is defined in a single header which can be included in the
files that need this information.

(cherry picked from commit b7297fb39c)
2021-07-14 23:09:47 +02:00
Rémi Verschelde 6cff43e093
Merge pull request #50150 from Valeryn4/3.x-fix_lightmap_cpu 2021-07-14 12:19:53 +02:00
Rémi Verschelde aa3a5c9f6a
Merge pull request #50184 from JFonS/cpu_lightmapper_soft_shadows
[3.x] Add soft shadows to the CPU lightmapper
2021-07-14 12:18:08 +02:00
Rémi Verschelde b0b2b7df31
Merge pull request #50257 from Calinou/physicsserver3d-add-set-iterations-3.x
Add a method to set the number of physics solver iterations in 3D (3.x)
2021-07-14 07:56:57 +02:00
PouleyKetchoupp 788db5cf47 Clean convex hull decomposition code
Remove unnecessary conversion between triangle data and vertex data
whenever possible.
2021-07-13 11:13:25 -07:00
Rémi Verschelde 9a04e2afeb
Revert "Fix gdnative api generation for methods that return enums"
This reverts commit aaacc753a7.
2021-07-13 17:02:59 +02:00
Francois Belair 5774098a91
Implement didClose notification in LSP
(cherry picked from commit 10429019ad)
2021-07-13 10:20:02 +02:00
Rémi Verschelde 9d2cbe2c02
Merge pull request #50328 from nekomatata/convex-hull-simplification-3.x
[3.x] Options to clean/simplify convex hull generated from mesh
2021-07-12 22:34:22 +02:00
Hugo Locurcio 9259b4adc4
Add a method to set the number of physics solver iterations in 3D
This is only for GodotPhysics, and adds a 3D counterpart to the 2D
method that was recently added.
2021-07-10 16:29:41 +02:00
PouleyKetchoupp 240c33708c Options to clean/simplify convex hull generated from mesh
Clean: remove duplicate and interior vertices (uses Bullet algorithm)
Simplify: modify the geometry for further simplification (uses VHACD
algorithm)

In the editor, single convex hull now uses the clean option.
Added a new editor entry to create a simplified convex hull, can be
useful for creating convex hull from highly tessellated triangle meshes.

Specific change for 3.x:
Add support for Vector<Vector3> and PoolVector<Vector3> in the convex hull generator.
2021-07-09 17:45:59 -07:00
JestemStefan 9513354f68 Added signed_angle_to for Vector3
Added signed_angle_to method for Vector3

Added signed_angle_to for Vector3

formatting fix...
2021-07-09 12:49:12 +02:00
Hugo Locurcio 4a140294fe
Fix typo in Bullet method name: "collisin" -> "collision"
This method is not exposed to scripting, so compatibility with
existing projects should be preserved.
2021-07-07 22:07:32 +02:00
Hugo Locurcio 37ff524d8c
Improve error reporting in WebSocketServer
This should make troubleshooting easier.

(cherry picked from commit 58455b18b5)
2021-07-06 13:38:54 +02:00
Ranie Jade Ramiso aaacc753a7
Fix gdnative api generation for methods that return enums
(cherry picked from commit 78f55698f2)
2021-07-06 13:36:07 +02:00
Hugo Locurcio 3b11b1022d
Remove unused code related to Travis CI
(cherry picked from commit 257a8a337e)
2021-07-06 11:19:56 +02:00
Fabio Alessandrelli 32e91b232c
[Crypto] Delete mbedtls ctx in deconstructor.
Would cause memory leak when the context was `start`ed but not
`finish`ed.

(cherry picked from commit a28d25c441)
2021-07-06 11:10:47 +02:00
Pitanov V.V d3dab1d06c
Fix GridMap erase Octans
(cherry picked from commit 4da4514b71)
2021-07-06 11:10:45 +02:00
JFonS a2ba7910ba Add soft shadows to the CPU lightmapper
Adds the "light_size" property to Lights. It's only considered in baked
lightmaps for soft shadowing purposes.
2021-07-05 19:02:35 +02:00
Питанов Валера 47b9afa3e9 fix lightmap cpu crashes 2021-07-06 01:45:04 +10:00
Rémi Verschelde e3d48d7e2c
Merge pull request #49999 from kleonc/visual_script_editor-fix-position-when-zooming
[3.x] VisualScriptEditor Fix in graph position calculation (do not skip zoom)
2021-06-29 16:31:27 +02:00
kleonc 3336453dff VisualScriptEditor Fix in graph position calculation (do not skip zoom) 2021-06-29 15:32:16 +02:00
Fabio Alessandrelli 63f6b29f51
[Net] Add WebSocketServer handshake_timeout property.
Allows customization of the maximum time a client is allowed to stay in
the the "pending" state (i.e. awaiting HTTP handshake).

This used to be 1 second by before, the new default is 3 seconds.

(cherry picked from commit 458437edef)
2021-06-29 14:02:23 +02:00
Fabio Alessandrelli 4994b3a99e
[Net] Fix WebSocketClient path parsing.
Recent changes to parse_url caused the client to make invalid HTTP
requests if no path was specified.

(cherry picked from commit d244dda597)
2021-06-29 14:02:23 +02:00
Paweł Fertyk 2676d815ab
Validate image formats, check if resize_to_po2 failed
(cherry picked from commit 3dae9993ac)
2021-06-29 14:02:23 +02:00
Francois Belair 59d72279ae
Translate file path to URI on LSP symbol requests
(cherry picked from commit a56c2e459b)
2021-06-29 13:12:15 +02:00
Umang Kalra 71da90f5bb
Fixes missing descriptions in search window of visualscript
(cherry picked from commit 5e8d31ef0e)
2021-06-29 13:11:47 +02:00
Rafał Mikrut cb5faca39a
Prevent setting too big or too small Collision Mask and Layer 2021-06-27 17:40:07 +02:00
Aaron Franke 85a0345d57
[3.x] Add Quat angle_to method 2021-06-18 11:00:44 -04:00
Marcel Admiraal 7e03bd1671 Remove duplicate WARN_PRINTS macro 2021-06-18 12:57:59 +01:00
Aaron Franke b3ac1669c0
[3.x] Fix C# bindings generator for default value types 2021-06-18 01:07:28 -04:00
kobewi dac54b6db3
Fix GridMap still drawing when Alt+Tabbing
(cherry picked from commit 9fbef6f7db)
2021-06-17 12:47:55 +02:00
Fabio Alessandrelli e05a7a4a4b
[Net] ENet non-relaying server now process broadcasts.
Setting `server_relay = false` prevents the server from letting clients
communicate with each other, but without this fix, the server would also
ignore broadcast packets.
With this change, the server still does not relay messages to other
clients, but will correctly process broadcast messages (and "exclusive"
messages) as if they were directed to just the server.

(cherry picked from commit fc255bde29)
2021-06-17 12:47:55 +02:00
Pedro J. Estébanez 2d1943b8d1
Fix slow load/save of scenes with many instances of the same script
(cherry picked from commit 2ca6b9c610)
2021-06-17 12:47:54 +02:00
Rémi Verschelde 465ab36ddf
Merge pull request #49653 from madmiraal/remove-err_prints-3.x
[3.x] Remove duplicate ERR_PRINTS macro
2021-06-16 17:33:22 +02:00
Marcel Admiraal 5a58516231 Remove duplicate ERR_PRINTS macro 2021-06-16 11:56:25 +01:00
bruvzg d86ccf8309 Fix loading RLE compressed TGA files.
Fix memory reads outside of input buffer when loading invalid TGA files.
2021-06-14 18:51:09 +03:00
Rémi Verschelde c45ce768b1
Merge pull request #47854 from mortarroad/3.x-lossless-webp
[3.x] Implement lossless WebP encoding
2021-06-11 19:35:47 +02:00
Morris Tabor 5de08ef1d6 Implement lossless WebP encoding 2021-06-11 18:48:04 +02:00
Rémi Verschelde 80e1585a6e
Style: Cleanup uses of double spaces between words
Or after punctuation. Tried to leave third-party stuff alone, unless it has
been heavily modified for Godot.

(cherry picked from commit c1c76850cb)
2021-06-07 12:06:59 +02:00
Ignacio Roldán Etchevery a3722a73aa C#+iOS: Fix crash at exit for passing NULL domain to mono_jit_cleanup 2021-06-02 01:34:00 +02:00
Ignacio Roldán Etchevery 4838e609ee C#+iOS: Fixes for games exported with `Use Interpreter` disabled
Added `SystemConfiguration.framework` to the Xcode project to fix
undefined symbols errors building without the interpreter, like:
`_SCNetworkReachabilityScheduleWithRunLoop`.

Added explicit static constructors to the generated `NativeCalls`
class to avoid a `TypeInitializationException` at startup when
Godot attempts to read the static fields (like `godot_api_hash`)
from this class.
This seems to be an issue with Mono's AOT compiler and classes
with the `beforefieldinit` attribute. Not sure if it only happens
when the fields are only accessed via reflection as was our case.
Explicitly declaring the static constructor makes the C# compiler
not add the `beforefieldinit` attribute to the class.
2021-06-02 01:34:00 +02:00
Ignacio Roldán Etchevery 21a739e3b1 C#+iOS: Fix P/Invoke symbols being stripped by the linker
We use `Mono.Cecil` to search for P/Invoke methods in assemblies in
order to collect symbols that we must prevent from being stripped.

We could pass the symbols as `-u` linker arguments (`-Wl,-u,symbol`)
for the native target (not for the project), but it was simpler to
generate referencing code and avoid changes to Godot's iOS exporter.
2021-06-02 01:34:00 +02:00
Ignacio Roldán Etchevery c9047de455 C#+iOS: Fix simulator builds
Replaced obsolete preprocessor check for simulator/device in C code.
Architecture can no longer be used to determine this with Apple Silicon.
The new code uses `TARGET_OS_SIMULATOR` from `TargetConditionals.h`.

We have some mono libs which can only be used in devide builds.
We were adding them as static libs. Previously it was only causing
warnings because missing arch for the simulator, but now this
is treated as an error.

To fix this we turn them into xcframeworks with dummy static libs
for the simulator and the actual ones for devices.
2021-06-02 01:34:00 +02:00
Ignacio Roldán Etchevery 7569f2dccb Fix copying Mono shared libs on macOS 2021-06-02 01:33:55 +02:00
bruvzg 683f96df35 Add separate `simulator` flag for iOS build, change main library to `xcframework`.
Build and export iOS Mono libs as `.xcframework`s, for Apple Silicon iOS simulator support.
2021-06-02 01:09:03 +02:00
Paweł Fertyk 6e67b7a93e
Check for _language in PluginScript.instance_has
(cherry picked from commit 4b25892501)
2021-06-01 12:53:31 +02:00
David Cambré 72bb6dd2be
The built in function math/seed was missing the sequenceport.
(cherry picked from commit d7205ef1d0)
2021-06-01 12:52:18 +02:00
Casey Foote ecf8d99d37
Add support for generating noise images with an offset.
(cherry picked from commit 97c8d9f348)
2021-06-01 12:52:18 +02:00
RaphaelHunter 68f92e6785
Fix OpenSimplexNoise get_image() swap axes
(cherry picked from commit 00cac6e9b6)
2021-06-01 12:52:18 +02:00
Lyuma d699600ec7 gltf: Fix mesh nodes which are also bones.
Fix issue when two skeletons end up directly parented.
Prevent animating TRS for skinned Mesh node.
Fix animating weights on meshes with targets but no weights.
2021-05-31 13:18:10 -07:00
K. S. Ernest (iFire) Lee 6ec9468e75 Backport gltf2 module from master. 2021-05-31 13:18:06 -07:00
Marcel Admiraal a2204f3cb3 Fix UV mapping on CSGSphere 2021-05-29 19:13:57 +01:00
Hugo Locurcio a38b447413
Highlight control flow keywords with a different color
This makes them easier to distinguish from other keywords.
2021-05-25 00:31:39 +02:00
Rémi Verschelde 65ddfd95ee
Merge pull request #48967 from akien-mga/3.x-embree-3.13.0
[3.x] Upgrade Embree to the latest official release.
2021-05-24 17:03:04 +02:00
Rémi Verschelde b94b09cd19
Merge pull request #46860 from bruvzg/symlinks_and_macos_gdn_framework_export 2021-05-24 15:15:10 +02:00
bruvzg 53f05c9167
Add GDNative Framework loading and export support. 2021-05-24 12:50:18 +03:00
Rémi Verschelde ac3417005d
Merge pull request #48533 from mortarroad/3.x-convex-hull-ported
[3.x] Port Bullet's convex hull computer to replace of QuickHull
2021-05-22 23:23:15 +02:00
jfons a69cc9f13d
Upgrade Embree to the latest official release.
Since Embree v3.13.0 supports AARCH64, switch back to the
official repo instead of using Embree-aarch64.

`thirdparty/embree/patches/godot-changes.patch` should now contain
an accurate diff of the changes done to the library.

(cherry picked from commit 767e374dce)
2021-05-22 15:14:07 +02:00
Morris Tabor ba396caefc Replace QuickHull with Bullet's convex hull computer.
The code is based on the current version of thirdparty/vhacd and modified to use Godot's types and code style.

Additional changes:
- backported and extended PagedAllocator to allow leaked objects
- applied patch from https://github.com/bulletphysics/bullet3/pull/3037
2021-05-22 08:16:43 +02:00
Rémi Verschelde 2660fafcc0
Merge pull request #48869 from tavurth/feature/hmac-port
Backport HMACContext to 3.x
2021-05-21 19:06:18 +02:00
Rémi Verschelde eb78f80f03
Fix typos with codespell
Using codespell 2.0.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
GIRD
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2021-05-20 12:56:56 +02:00
Will Whitty 3f606263d5 Backport HMac crypto to 3.x
Fix headers

Fix docs formatting

Changes for PR

Fix tests
2021-05-20 13:29:38 +03:00
Rémi Verschelde 6355877c0d
Merge pull request #47863 from mphe/same_line_warning_ignore
Allow warning-ignore in the same line as the respective warning
2021-05-18 15:08:00 +02:00
Pedro J. Estébanez 817ffc01e1
Make all file access 64-bit (`uint64_t`)
This changes the types of a big number of variables.

General rules:
- Using `uint64_t` in general. We also considered `int64_t` but eventually
  settled on keeping it unsigned, which is also closer to what one would expect
  with `size_t`/`off_t`.
- We only keep `int64_t` for `seek_end` (takes a negative offset from the end)
  and for the `Variant` bindings, since `Variant::INT` is `int64_t`. This means
  we only need to guard against passing negative values in `core_bind.cpp`.
- Using `uint32_t` integers for concepts not needing such a huge range, like
  pages, blocks, etc.

In addition:
- Improve usage of integer types in some related places; namely, `DirAccess`,
  core binds.

Note:
- On Windows, `_ftelli64` reports invalid values when using 32-bit MinGW with
  version < 8.0. This was an upstream bug fixed in 8.0. It breaks support for
  big files on 32-bit Windows builds made with that toolchain. We might add a
  workaround.

Fixes #44363.
Fixes godotengine/godot-proposals#400.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-05-16 17:52:31 +02:00
Rémi Verschelde c7182512dd
VisualScript: Fix wrongly setting default value on property hint change
PR #45096 put the backported code in the wrong case, it should be for `type`
and not for `hint`.

Also synced `hint` enum values with `Object.PropertyHint`.

Fixes #48698.
2021-05-13 22:37:31 +02:00
Morris Tabor 9caee3b930
fix misaligned loads in bmp loader
(cherry picked from commit 89a8bbda0a)
2021-05-11 10:44:21 +02:00
Rémi Verschelde 4185a22ca8
Merge pull request #48131 from LightningAA/fix-48113-3.x
[3.x] Fix Array.max() navigating to @GDScript.max()
2021-05-06 20:42:23 +02:00
Rémi Verschelde 48d7eff3e3
Merge pull request #48485 from JFonS/3.x_embree_aarch64
Add checks for __SSE2__ in the lightmap raycaster
2021-05-05 18:35:04 +02:00
JFonS 20717990fd Add checks for __SSE2__ in the lightmap raycaster 2021-05-05 18:24:13 +02:00
Rémi Verschelde e53422c8f9
SCons: Disable embree-based modules on x86 (32-bit)
Fixes #48482.
2021-05-05 18:01:45 +02:00
Rémi Verschelde 140350d767
Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2021-05-05 15:02:01 +02:00
Rémi Verschelde b8d198eeed
Merge pull request #48455 from JFonS/3.x_embree_aarch64
[3.x] Switch to embree-aarch64
2021-05-05 15:01:18 +02:00
JFonS 73e2ccd603 Switch to embree-aarch64 2021-05-04 18:59:00 +02:00
Rémi Verschelde 0c8b5b5c4d
Style: Remove redundant void argument lists
Using clang-tidy's `modernize-redundant-void-arg`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-redundant-void-arg.html
2021-05-04 16:40:33 +02:00
Rémi Verschelde b4af1eba0a
Style: Enforce use of bool literals instead of integers
Using clang-tidy's `modernize-use-bool-literals`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-bool-literals.html
2021-05-04 16:39:13 +02:00
Rémi Verschelde a828398655
Style: Replaces uses of 0/NULL by nullptr (C++11)
Using clang-tidy's `modernize-use-nullptr`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2021-05-04 16:30:23 +02:00
Rémi Verschelde b5e1e05ef2
Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
Rémi Verschelde 64a63e0861
Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine 2021-05-04 14:45:15 +02:00
Rémi Verschelde 3d15f04668
Style: clang-format: Disable AllowShortIfStatementsOnASingleLine 2021-05-04 14:45:15 +02:00
Rémi Verschelde 6e600cb3f0
Style: Set clang-format Standard to c++14 2021-05-04 14:45:15 +02:00
Rémi Verschelde 7e61be3cb0
Style: Remove executable bit from non-runnable files 2021-05-04 14:45:07 +02:00
Rémi Verschelde 2660f24160
Merge pull request #48429 from kleonc/posmod-change-int-to-int64
[3.x] Make posmod use int64_t instead of int
2021-05-04 12:31:01 +02:00
Rémi Verschelde 62bea72601
doc: Sync classref with Mono build 2021-05-03 22:34:11 +02:00
kleonc f04a964627 Make posmod use int64_t instead of int 2021-05-03 22:03:16 +02:00
MaxStgs 1fc0fb7a5e
Add WebSocketMultiplayerPeer _incoming_packets check bound
(cherry picked from commit 05ad08941b)
2021-05-03 21:39:43 +02:00
Fabio Alessandrelli 77e3514315
[Net] Implement String::parse_url for parsing URLs.
Splits the URL into (scheme, host, port, path).
Supports both literal IPv4 and IPv6.
Strip credentials when present (e.g. http://user:pass@example.com/).

Use that function in both HTTPRequest and WebSocketClient.

(cherry picked from commit 3bb40669d5)
2021-05-03 21:39:43 +02:00
Rémi Verschelde e94161dada
SCons: Add explicit dependencies on thirdparty code in cloned env
Since we clone the environments to build thirdparty code, we don't get an
explicit dependency on the build objects produced by that environment.

So when we update thirdparty code, Godot code using it is not necessarily
rebuilt (I think it is for changed headers, but not for changed .c/.cpp files),
which can lead to an invalid compilation output (linking old Godot .o files
with a newer, potentially ABI breaking version of thirdparty code).

This was only seen as really problematic with bullet updates (leading to
crashes when rebuilding Godot after a bullet update without cleaning .o files),
but it's safer to fix it everywhere, even if it's a LOT of hacky boilerplate.

(cherry picked from commit c7b53c03ae)
2021-04-29 16:57:00 +02:00
Rémi Verschelde 70ae90e0e8
Core: Drop custom `copymem`/`zeromem` defines
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f6639.

There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.

Backport of #48239.
2021-04-29 12:34:11 +02:00
David Snopek 1db31d0afa
Fixes #48178: WebXR broken when built with Emscripten 2.0.13 or later
(cherry picked from commit b77925d246)
2021-04-29 12:30:36 +02:00
Johannes Witt 41a016c1e8
Fix CSG Path Polygon cache being removed after connect
fixes #30229

(cherry picked from commit bab36f1273)
2021-04-29 12:29:28 +02:00
Marcel Admiraal a68c88adfd Update CSGMesh3D's documentation to explain how vertex normals are used 2021-04-27 18:37:19 +01:00
Rémi Verschelde 2d57df60f7
Merge pull request #48144 from Faless/crypto/3.3_encryption_stable 2021-04-27 13:46:49 +02:00
Rémi Verschelde c3272997cd
doc: Update classref headers with 3.4 version 2021-04-26 13:15:29 +02:00
Marcel Admiraal cfccf77edb
Fix CSGMesh undo not refreshing gizmo
(cherry picked from commit 4311c2f66e)
2021-04-26 12:52:15 +02:00
Francois Belair 1f54a75310
Make LSP update the filesystem of changed scripts
This updates global classes and exposes base member variables.
Fixes #39713

(cherry picked from commit b16bb33a5b)
2021-04-26 12:20:28 +02:00
Rémi Verschelde 137f71fd75
Merge pull request #48173 from madmiraal/fix-empty-csgshape-error-3.x
[3.x] Fix new `CSGMesh` errors
2021-04-26 12:20:08 +02:00
Rémi Verschelde e554ecd691
Merge pull request #47451 from BastiaanOlij/arvr_positional_tracker_ref
Change ARVRPositionalTracker to a reference (3.x)
2021-04-26 07:45:34 +02:00
Marcel Admiraal decdf4fcbc Fix empty CSGShape error 2021-04-25 08:01:14 +01:00
Fabio Alessandrelli dcd5433b3b Implement RSA encryption/decryption. 2021-04-24 00:04:56 +02:00
Fabio Alessandrelli 09b9e65688 Implement sign and verify in crypto. 2021-04-24 00:04:56 +02:00
Fabio Alessandrelli 09af27fa39 CryptoKey supports public keys. 2021-04-24 00:04:56 +02:00
Fabio Alessandrelli a486783d3d Better zeroizing in CryptoKey. 2021-04-24 00:04:56 +02:00
Lightning_A 2c4aa50648 Fix Array.max() navigating to @GDScript.max() etc. 2021-04-23 09:40:24 -06:00
kleonc 4d7f642fb3 Improve some argument names for core types 2021-04-23 15:34:24 +02:00
Rémi Verschelde a2c68d9da7
lightmapper: Disable build if raycast module can't build
We need to propagate the hacky checks from the raycast config to the
lightmapper config, as the failure of a `can_build()` check is not notified to
other modules (which might even be checked further depending on the processing
order in SConstruct).

A more thorough fix would be to change SConstruct to do two loops on modules:
one to check `can_build()` and disable modules which can't build, then another
one to rechecked `can_build()` with the new lineup and do further config.
But there would be more risk for regressions than with this ad hoc hack.

Similar story for the `platform/x11/detect.py` change... oh my eyes :(
2021-04-22 19:12:37 +02:00
Rémi Verschelde b1898c77fb
Merge pull request #48073 from akien-mga/3.x-unbundle-embree
embree: Allow building against system library on Linux
2021-04-22 18:06:49 +02:00
Rémi Verschelde 2a00a6bfca
fbx: Fix include for zlib that broke unbundling
It's possible to link against system zlib on Linux, so we should use system paths.

(cherry picked from commit 93b7406138)
2021-04-22 17:22:18 +02:00
bruvzg 575433b997
Fix crash on GDNative API json generator exit.
(cherry picked from commit a4423c82f8)
2021-04-22 17:21:52 +02:00
Rémi Verschelde b266cc2315
embree: Allow building against system library on Linux 2021-04-22 17:06:28 +02:00
JFonS 2db2d1153d CPU lightmapper environment energy fixes.
* Better handling of the scene's environment energy in the lightmapper
  bakes.
* Fixed a bug where ProceduralSky::get_panorama() returned a reference
  instead of a copy.
* Removed includes to Embree's internal header files.
2021-04-22 16:26:04 +02:00
Hugo Locurcio f0d1bedc74
Print a warning when trying to seek in VideoPlayer
Seeking isn't implemented in built-in video formats and can only
be supported in GDNative-provided video formats.

(cherry picked from commit ea46639e22)
2021-04-20 20:16:42 +02:00
Ignacio Roldán Etcheverry 83494c30fe C#: Fix `double` casting in wasm m2n trampolines
The trampolines were casting double to `size_t` (likely a copy-paste
mistake), so the value was getting truncated.
2021-04-17 05:24:00 +02:00
Marvin Ewald 3715ea268f Allow warning-ignore in same line 2021-04-13 13:55:33 +02:00
Hugo Locurcio cd4906ee0b
Document secure wss:// caveats for WebSocketClient
See https://github.com/godotengine/godot/issues/37739.

(cherry picked from commit a56e37545b)
2021-04-12 00:23:44 +02:00
Lyuma 5cf5e7e3d3 Fix crash on importing empty .fbx file for 3.x 2021-04-08 02:52:15 -07:00
Rémi Verschelde ed44e2806f
doc: Fix markup issues in classref 2021-04-07 11:52:44 +02:00
Alex Hirsch 6a7ee81610
Always dynamically allocate PropertyTable
- `Texture::~Texture` expects `props` to be dynamically allocated.

- `GetPropertyTable` returned a pointer to an existing `PropertyTable`
  but is expected to return a newly, dynamically allocated one.

- `PropertyTable::PropertyTable()` suggests that an empty `element`
  property is valid.

fix #46876
fix #45573

(cherry picked from commit 09bda3f140)
2021-04-07 11:26:19 +02:00
Marcel Admiraal 1e28e234c5
Check for the use of an empty shape in Bullet Kinematic collisions
(cherry picked from commit ff9a6c4e39)
2021-04-06 22:37:35 +02:00
Bastiaan Olij 5228871e26
Only cleanup meta data if GDNative library is reloadable and we're about to unload it
(cherry picked from commit 81131bd844)
2021-04-06 10:03:41 +02:00
Jan Haller f64d9423a5
Fixes #47607 (forgotten statement in GDNative cleanup)
Co-authored-by: geekrelief <geekrelief@gmail.com>
(cherry picked from commit 0fe851da23)
2021-04-05 12:02:56 +02:00
Francois Belair 4e8e887748 Implement LSP didDeleteFiles to clear diagnostics
Fixes #43133
2021-04-01 13:41:53 -04:00
Kyle b38a36923a
Fix gdnative config file set as null
Fixes #45997.

Setting a GDNativeLibrary config file as null or any other object but a ConfigFile will now cause an error.

(cherry picked from commit 618dd892f5)
2021-03-31 21:32:12 +02:00
geekrelief 2bf0b2996a
fixes #46839, ensure library_classes is cleared and free funcs are called
Co-authored-by: toasteater <48371905+toasteater@users.noreply.github.com>
Co-authored-by: Jan Haller <bromeon@gmail.com>
(cherry picked from commit 58fa4973f6)
2021-03-29 16:26:40 +02:00
Bastiaan Olij 4cce36e35d Change ARVRPositionalTracker to a reference and better expose it to GDNative 2021-03-29 23:01:04 +11:00
Rémi Verschelde acbd1e8b02
Merge pull request #46781 from BastiaanOlij/gdn_set_interface
Add set_interface for access by GDNative
2021-03-26 11:27:27 +01:00
Rémi Verschelde 015973df04
doc: Make all tutorial links point to 3.3 branch of docs 2021-03-26 10:43:43 +01:00
Paul Joannon 596169d7df
class reference proofreading
(cherry picked from commit 8455e901f3)
2021-03-26 09:49:07 +01:00
Bastiaan Olij 717f3227ec ARVR GDNative enhancements:
- add set_interface function
- add access to depth buffer
- add supplying a depth buffer from an ARVR plugin
2021-03-25 22:37:47 +11:00
Francois Belair 7f8fe58825 Make LSP parser aware of variables in sub-blocks
Fixes #43164 and Fixes godotengine/godot-vscode-plugin#207
2021-03-24 16:52:38 -04:00
Rémi Verschelde 92daf26043
SCons: Don't pass -msse2 to MSVC for Embree
This is a flag only supported by GCC/Clang.
2021-03-24 13:13:18 +01:00
Rémi Verschelde 1aba997d75
doc: Sync classref with 3.3 version bump 2021-03-23 13:40:34 +01:00
Alex Hirsch 44855c40da
FBX Import: Normalize rotation quaternions
fix #47174

(cherry picked from commit 72d3bfc88c)
2021-03-23 13:16:09 +01:00
Matthew A. Robinson b4455ffd75 Add mutex protecting script bindings map from getting corrupted 2021-03-22 20:26:44 -04:00
Alex Hirsch 2c93256432
FBX Import: Check bone map access for valid cluster target node id
fix #47184

(cherry picked from commit d03f4cefea)
2021-03-20 23:09:02 +01:00
Rémi Verschelde a0f56b5459
Mono: Fix Android build after #46900
(cherry picked from commit 2274d4eebc)
2021-03-18 17:58:49 +01:00
Ilya Kuznetsov cacf96962d
Added mono_unhandled_exception call to unhandled_exception hook
(cherry picked from commit 6061ff7ba1)
2021-03-17 15:17:02 +01:00
Rémi Verschelde 33628c482f
miniupnpc: Update to version 2.2.2
(cherry picked from commit 69486b1059)
2021-03-17 15:16:59 +01:00
Rémi Verschelde e6b291b152
Mono: Bump Godot.NET.Sdk to 3.3.0
Using only 3.3 results in a build warning.

Follow-up to #47055.
2021-03-17 14:46:26 +01:00
Rémi Verschelde 0341251d0f
Bump version to 3.3-rc
We decided to rename the upcoming 3.2.4 release to 3.3 to better reflect that
it is a significant feature release, and not a maintenance update.

The `3.2` branch was also renamed to `3.x` and will now be the development
branch for future 3.x releases (3.3, 3.4, etc.).
2021-03-16 12:16:36 +01:00
Hugo Locurcio ee8661158c
Document the valid input range for `acos()` and `atan()`
(cherry picked from commit d359e159da)
2021-03-16 11:37:26 +01:00
Haoyu Qiu 871843bbdc Fix uninitialized GridMapEditor::node 2021-03-16 10:20:56 +08:00
Fabio Alessandrelli 50f0f51604 [Net] Fix miniupnpc when no interface is specified
This is a tricky one, it used to work, but it was wrong, because in such
a scenario instead of passing NULL as required by the API, it would pass
a buffer containing the `\0` terminator.
This stopped working on a specific miniupnpc version, when they fixed
some network endianess issue on Windows, to which we made a workaround,
which in turn would probably result in failures when the interface is
specified.

This commit address the issue properly, by checking the specified
interface string size, and correctly passing NULL instead of the empty
string when necessary.

Also reverts the commit that introduced the bogus workaround:
388adac947

One of those PR when the explanation is much longer then code changes
:).
2021-03-15 18:12:05 +01:00
Ev1lbl0w a586f9daae
Replace malloc's with Godot's memalloc macro
(cherry picked from commit 838e7d0a8d)
2021-03-13 22:01:27 +01:00
Ignacio Etcheverry 10c8438178
C#: Fix StringName leak warnings after generating bindings
`Main::cleanup()` prints warnings if it finds `StringName`s still alive.
We need the `BindingsGenerator` to be destructed before calling cleanup.

(cherry picked from commit d9603b2d73)
2021-03-13 21:56:31 +01:00
jfons ab3b7a57f2 Fix visibility toggle for baked GridMaps
(cherry picked from commit 809d88b925)
2021-03-12 13:26:10 +01:00
Rémi Verschelde 3f246ebeed
Merge pull request #46932 from JFonS/fix_lm_capture_env
[3.2] Batch of lightmapper fixes and minor improvements
2021-03-12 12:30:36 +01:00
JFonS e2c28675ef Batch of lightmapper fixes and minor improvements
- Fix objects with no material being considered as fully transparent by the lightmapper.
- Added "environment_min_light" property: gives artistic control over the shadow color.
- Fixed "Custom Color" environment mode, it was ignored before.
- Added "interior" property to BakedLightmapData: controls whether dynamic capture objects receive environment light or not.
- Automatically update dynamic capture objects when the capture data changes (also works for "energy" which used to require object movement to trigger the update).
- Added "use_in_baked_light" property to GridMap: controls whether the GridMap will be included in BakedLightmap bakes.
- Set "flush zero" and "denormal zero" mode for SSE2 instructions in the Embree raycaster. According to Embree docs it should give a performance improvement.
2021-03-12 12:00:53 +01:00
O01eg 18eca32761 Fix visibility for GCC
(cherry picked from commit 1393ededfd)
2021-03-12 10:07:48 +01:00
Rémi Verschelde 0d8182d2b1 NoiseTexture: Fix regression in starting thread
Was a regression from #45618.

Fixes #46907.
2021-03-11 21:58:53 +01:00
Duddino aabb8d78ef Added some checks to prevent accessing a null collider
Previously godot would try to access
`CollisionObjectBullet::bt_collision_object` even if it was null.
Fixes #46651

(cherry picked from commit c47070e165)
2021-03-07 22:51:06 +01:00
Rémi Verschelde 558d524bcb Mono: Don't use C++17 [[maybe_unused]] to preserve C++14 compatibility
The 3.2 branch compiles against the C++14 standard to keep good compatibility
with somewhat older compilers.

Fixes #45839.
2021-03-05 23:28:09 +01:00
Shane Liesegang 4d06a5c2b0 Mono/macOS: Separate data dir into frameworks and resources for codesigning
Co-authored-by: Ignacio Etcheverry <ignalfonsore@gmail.com>
(cherry picked from commit 42eb09ddcc)
2021-03-04 12:21:17 +01:00
Fabian 2aafe2b25e Add set_peer_timeout to NetworkedMultiplayerENet.
(cherry picked from commit 1b54de3039)
2021-03-02 10:26:14 +01:00
Aaron Franke b2d723b039 Add generic support to PackedScene.Instance
(cherry picked from commit 3f50954ced)
2021-03-02 10:26:14 +01:00
Bastiaan Olij 9c296bcb59 Fix duplicate check for bone names in FBX import 2021-03-02 10:55:29 +11:00
Jack Linhart 8190305075 Added GridMap description to get_bake_meshes()
(cherry picked from commit 03fd2b4c86)
2021-02-25 22:37:29 +01:00
Hugo Locurcio b3c01392fd Document seamless noise having a lower contrast than non-seamless noise
See #41787.

(cherry picked from commit 2e8e6e26a8)
2021-02-25 22:37:04 +01:00
Taylor C. Richberger 59b82e1b6a remove invalid codeLensProvider value from lsp
codeLensProvider was false, it may not be a boolean like some of the other providers can, only optionally present.

(cherry picked from commit 91ce8d5fff)
2021-02-25 22:34:56 +01:00
Rémi Verschelde 92d59d0879 SCons: Properly handle overriding default values to bool options
The `dev=yes` and `production=yes` options work as aliases to set a number of
options, while still aiming to allow overriding specific options if the user
wishes so. (E.g. `production=yes use_lto=no` should work to enable production
defaults *but* disable LTO.)

That wasn't working as `ARGUMENTS.get()` returns a string and not a boolean as
expected by `BoolVariable`, and this wasn't flagged as a bug... So added a
helper method using SCons' `BoolVariable._text2bool` to do the conversion
manually.
2021-02-24 10:20:46 +01:00
Rémi Verschelde 6b2cfa416c SCons: Work around compilation issue on Linux ARM64
Fixes #45687.

This is really just a band-aid, our current buildsystem doesn't work well for
cross-compilation and needs a thorough refactoring to do so.
2021-02-23 14:08:45 +01:00
Pedro J. Estébanez 6f4f49c1d5 Make glue generation shutdown more graceful
(cherry picked from commit 23907e6f19)
2021-02-22 21:40:16 +01:00
Angad Kambli 327586f582 fix minor issue in smooth step function's documentation
(cherry picked from commit 892060fa47)
2021-02-22 14:16:42 +01:00
Marcel Admiraal e89ba5fb49 Add missing semicolons to webxr.eterns.js
(cherry picked from commit 92e0a84a4c)
2021-02-22 10:17:23 +01:00
Vignesh1-art 13871deb57 Fixed Invalid function bindings #46135
Fixed  GDScriptLanguageProtocol::notify_client - have 3 arguments, but only 2 are binded

(cherry picked from commit a5d931033e)
2021-02-18 23:46:54 +01:00
Rémi Verschelde 001aaa7131
Merge pull request #45356 from asmaloney/fix-lightmap-raycaster-compile
[3.2] Fix sign comparison error in lightmap_raycaster.cpp
2021-02-18 21:09:29 +01:00
Pedro J. Estébanez 4485b43a57 Modernize atomics
- Based on C++11's `atomic`
- Reworked `SafeRefCount` (based on the rewrite by @hpvb)
- Replaced free atomic functions by the new `SafeNumeric<T>`
- Replaced wrong cases of `volatile` by the new `SafeFlag`
- Platform-specific implementations no longer needed

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18 12:23:25 +01:00
Pedro J. Estébanez 6d89f675b1 Modernize Thread
- Based on C++11's `thread` and `thread_local`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed (except for the few cases of non-portable functions)
- Simpler for `NO_THREADS`
- Thread ids are now the same across platforms (main is 1; others follow)
2021-02-18 11:58:08 +01:00
Pedro J. Estébanez 8f6a636ae7 Modernize Semaphore
- Based on C++11's `mutex` and `condition_variable`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed
- Simpler for `NO_THREADS`
2021-02-18 11:58:08 +01:00
Pedro J. Estébanez 4ddcdc031b Modernize Mutex
- Based on C++11's `mutex`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed
- Simpler for `NO_THREADS`
- `BinaryMutex` added for special cases as the non-recursive version
- `MutexLock` now takes a reference. At this point the cases of null `Mutex`es are rare. If you ever need that, just don't use `MutexLock`.
- `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same.
2021-02-18 11:58:08 +01:00
JFonS 71d4e47452 Fix missing include in MacOS builds 2021-02-17 11:19:28 +01:00
Ellen Poe fc0419d84a
Fix mono->stereo conversion for oggs (see #40630)
(cherry picked from commit f993d2eeee)
2021-02-16 14:27:40 +01:00
Ellen Poe 5db83defcd
Fail mp3 loading when attempting to load invalid mp3s
This also adds a warning for unspecified MP3 loading error codes

(cherry picked from commit 936767deca)
2021-02-16 14:27:40 +01:00
Rafał Mikrut 54b6a7b8b7
Fix memory leak in Xatlas module
(cherry picked from commit e57b8d79ec)
2021-02-16 14:27:38 +01:00
Bastiaan Olij 8aa022f99c
Only unload the library when no NativeScript objects exist if the reloadable flag is true. If it is false it is likely the library does other things and can't be unloaded
(cherry picked from commit ae7675065a)
2021-02-16 14:27:38 +01:00
JFonS 56bf256d76 Add options to reduce lightmaps disk usage.
Added BakedLightmap.use_hdr and BakedLightmap.use_color properties
that can reduce the flie size of lightmap texture at the expense of quality.

Changed the denoiser to work in a single buffer, reducing RAM
usage. Also added the `-mstackrealign` flag in the denoiser compilation
for MinGW builds. This flag helped fix a bug in Embree, so I want to see
if it will help fix GH #45296.
2021-02-16 13:20:27 +01:00
JFonS 7241139356 Backport EXR compression support from master 2021-02-15 12:51:55 +01:00
Meriipu 347a9df0a1
GDScript: Clarified/fixed inaccuracies in the built-in function docs.
The input to smoothstep is not actually a weight, and the decscription
of smoothstep was pretty hard to understand and easy to misinterpret.

Clarified what it means to be approximately equal.

nearest_po2 does not do what the descriptions says it does. For one,
it returns the same power if the input is a power of 2. Second, it
returns 0 if the input is negative or 0, while the smallest possible
integral power of 2 actually is 1 (2^0 = 1). Due to the implementation
and how it is used in a lot of places, it does not seem wise to change
such a core function however, and I decided it is better to alter the
description of the built-in.

Added a few examples/clarifications/edge-cases.

(cherry picked from commit 7f9bfee0ac)
2021-02-11 13:12:06 +01:00
Gordon MacPherson 53aee600d3 fixed bug in vertex duplication breaking meshes 2021-02-09 16:33:46 +00:00
Kanabenki 3abe6ae281
Snap VisualScript comment to grid when resizing
(cherry picked from commit 07fb7f9888)
2021-02-08 22:36:36 +01:00
Rémi Verschelde f36c529ad0
Merge pull request #45752 from JFonS/cpu_lightmapper_fixes
Assorted CPU lightmapper fixes
2021-02-06 11:44:52 +01:00
JFonS 27c1e65969 Assorted CPU lightmapper fixes
- Fix crash when a ray hits a texel with a UV2 coordinate exactly
  equal to 1.0.
- Take BakedLightmap extents into account.
- Clear capture data between bakes.
- Fix minor issues with seam correction.
2021-02-05 19:18:19 +01:00
Hugo Locurcio 4a74f6f3b7 Document that GridMap doesn't support visual layers or cull masks
See #40245.

(cherry picked from commit 95fda7e881)
2021-02-05 10:26:03 +01:00
bruvzg 9e4cecc8ea [Mono] Use the same search logic for both `MSBuild` and `dotnet`, add custom search paths on macOS.
(cherry picked from commit e304f716c7)
2021-02-05 09:29:29 +01:00
Rémi Verschelde f42f6ed01c
Merge pull request #45702 from hpvb/fix-tga-crash-32
[3.2] Fix a crash in the TGA loader with malformed input
2021-02-04 14:47:37 +01:00
Hein-Pieter van Braam-Stewart 113b5ab1c4 Fix a crash in the TGA loader with malformed input 2021-02-04 13:10:03 +01:00
zaevi f94dffd2de
Fix C# string.Hash()
(cherry picked from commit baac70c27e)
2021-02-02 13:30:54 +01:00
David Snopek 0eb6dfa04a
Remove reference to CanvasLayer in WebXR example, because it can cause rendering issues in AR.
(cherry picked from commit f6e8da3661)
2021-02-02 13:02:46 +01:00
Ivan Shakhov 7ecc2561cd
Fix off by one error navigating to line number in Rider
Fixes https://github.com/JetBrains/godot-support/issues/61

(cherry picked from commit deef9a73a5)
2021-02-02 13:02:46 +01:00
Rémi Verschelde 07f169af72
Merge pull request #45353 from asmaloney/fix-lightmapper_cpu-compile-error
[3.2] Fix undeclared identifier error (rand) in lightmapper_cpu
2021-02-02 12:35:42 +01:00
Hugo Locurcio 351efc334e
Fix WebXRInterface code sample in the class reference
This also fixes the code sample's indentation to look correct in the
editor help.
2021-01-31 00:00:25 +01:00
Aaron Franke 226528097e
[3.2] Backport hex_to_int/bin_to_int zero check and C# changes 2021-01-28 09:24:44 -05:00
David Snopek 5625dc502c Prevent fatal error in WebXR when 'immersize-ar' loses and regains tracking 2021-01-27 20:22:40 -06:00
Rémi Verschelde 9ba95970ad
Merge pull request #45445 from dsnopek/webxr-mono
[3.2] Support mono devices in WebXR
2021-01-27 21:11:56 +01:00
geekrelief 311ca0c6f2
Removes the gdnative library when no script (gdns) references it any longer. This enables hot reload for gdnative.
(cherry picked from commit cc5d8bb5ad)
2021-01-26 22:10:29 +01:00
Ignacio Etcheverry 44d8669364
C#: Fix System.Collections.Generic.List marshalling
(cherry picked from commit da90364adf)
2021-01-26 17:00:17 +01:00
Rémi Verschelde 9f2c24e8ce
Cleanup: Remove executable bit from files which don't need it
Drop unused xpmfix.sh script.

(cherry picked from commit 76c6007aa6)
2021-01-26 17:00:15 +01:00
Rémi Verschelde 21746ce714
Merge pull request #45347 from lucasvanmol/patch-1
[3.2] Fix highlight color for class attributes that are also keywords
2021-01-26 15:56:29 +01:00
Rémi Verschelde 061f87e064
Merge pull request #45336 from naithar/feature/plugins-migration-3.2
[3.2] [iOS] iOS Plugins Migration
2021-01-26 15:06:46 +01:00
Yuri Sizov a9552cefa2 Fix minimap capturing events and improve its theme
Add an editor setting for minimap opacity in visual editors
2021-01-25 21:49:34 +03:00
David Snopek dca9f09386 Support mono devices in WebXR 2021-01-25 08:36:29 -06:00
Andy Maloney 95cc19d320 Fix sign comparison error in lightmap_raycaster.cpp
Compiling with latest clang on macOS produces this error:

comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'int' [-Werror,-Wsign-compare]

This file is not present in 4.0/master.
2021-01-21 16:07:25 -05:00
Andy Maloney 85377e96d2 Fix undeclared identifier error in lightmapper_cpu.cpp
Compiling with latest clang on macOS produced this error: use of undeclared identifier 'rand'.

Fixes godotengine/godot#45342

This file is not present in 4.0/master.
2021-01-21 13:07:30 -05:00
Andy Maloney 77f045db99 Fix const warnings in FBX (build failure on macOS)
Fixes several instances of error: 'const' type qualifier on return type has no effect [-Werror,-Wignored-qualifiers]

This looks like it was fixed in 6607fc7da9
when FBX was merged into the 4.0 master branch:

"- fixed const correctness with C++/C version change"
2021-01-21 11:18:44 -05:00
lucasvanmol 6742f6894e
Fix highlight color for class attributes that are also keywords
Fixes #45338. 
This PR also makes any word after a "." not highlight as a keyword, i.e. the cos
in Color.cos will highlight the same as any other class constant. Additionally,
trying to do things like ".print()" will not highlight print as a keyword but as
a class function.
2021-01-21 11:46:32 +00:00
Rafał Mikrut d025194602 Remove thread after use to prevent memory leak 2021-01-20 09:37:25 +01:00
Rémi Verschelde 2fa93d8514
Merge pull request #45279 from magian1127/3.2
[3.2] Mono: Fix support for Unicode identifiers
2021-01-19 15:15:02 +01:00
Rémi Verschelde 544f0bfff1
Merge pull request #45291 from RandomShaper/fix_lightmapper_mingw_3.2
Fix crash in lightmapper under MinGW-GCC Windows (3.2)
2021-01-18 19:40:20 +01:00
Pedro J. Estébanez 89237c8952 Fix crash in lightmapper under MinGW-GCC Windows 2021-01-18 18:28:11 +01:00
Lyuma 2c2f70c444 embree: cross compile fixes.
Fix typos in #if; add missing _MSC_VER; avoid warning in random generator.
2021-01-18 06:20:24 -08:00
magian1127 cb679dc434 C # mono supports Unicode code 2021-01-18 16:34:10 +08:00
Sergey Minakov d4096285b6 [iOS] Remove plugins from modules. 2021-01-17 14:46:03 +03:00
Hugo Locurcio dc2e568352
Mention that NetworkedMultiplayerENet uses UDP only
This is important to clarify for those doing port forwarding.

(cherry picked from commit 7b33498995)
2021-01-15 16:49:46 +01:00
Rémi Verschelde 0f5d475100
Merge pull request #41340 from naithar/feature/pluggable-ios-modules-3.2
[iOS] [3.2] iOS Plugins
2021-01-15 16:13:45 +01:00
Rémi Verschelde 497653ab53
Merge pull request #44628 from JFonS/new_cpu_lightmapper_3.2
[3.2] New CPU lightmapper
2021-01-15 13:25:46 +01:00
JFonS b1ca82c43a CPU lightmapper fixes.
- Fix Embree runtime when using MinGW (patch by @RandomShaper).
- Fix baking of lightmaps on GridMaps.
- Fix some GLSL errors.
- Fix overflow in the number of shader variants (GLES2).
2021-01-15 12:32:54 +01:00
Rémi Verschelde d298949513
Merge pull request #42882 from madmiraal/fix-39767-3.2
[3.2] Set Bullet collision shape index to zero when using a single shape or ConcavePolygonShape
2021-01-14 20:46:06 +01:00
Rémi Verschelde 152415a006
Merge pull request #43924 from madmiraal/fix-43588-3.2
[3.2] Fix cast_motion sometimes failing
2021-01-14 20:44:40 +01:00
JFonS 7d7d7ef16d CPU lightmapper formatting and minor fixes. 2021-01-14 18:08:33 +01:00
JFonS 112b416056 Implement new CPU lightmapper
Completely re-write the lightmap generation code:
- Follow the general lightmapper code structure from 4.0.
- Use proper path tracing to compute the global illumination.
- Use atlassing to merge all lightmaps into a single texture (done by @RandomShaper)
- Use OpenImageDenoiser to improve the generated lightmaps.
- Take into account alpha transparency in material textures.
- Allow baking environment lighting.
- Add bicubic lightmap filtering.

There is some minor compatibility breakage in some properties and methods
in BakedLightmap, but lightmaps generated in previous engine versions
should work fine out of the box.

The scene importer has been changed to generate `.unwrap_cache` files
next to the imported scene files. These files *SHOULD* be added to any
version control system as they guarantee there won't be differences when
re-importing the scene from other OSes or engine versions.

This work started as a Google Summer of Code project; Was later funded by IMVU for a good amount of progress;
Was then finished and polished by me on my free time.

Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2021-01-14 18:05:56 +01:00
JFonS a80e4a6158 Add Embree thirdparty library 2021-01-14 18:02:07 +01:00
JFonS ad8abef74c Add OpenImageDenoise thirdparty library 2021-01-14 18:02:07 +01:00
Sergey Minakov 614f701373 iOS Modules: separate main platform code from modules
Moved previously builtin modules 'GameCenter', 'AppStore', 'iCloud' to separate modules to be represented as plugin.
Modified 'ARKit' and 'Camera' to not be builtin into engine and work as plugin.
Changed platform code so it's not affected by the move.
Modified Xcode project file to remove parameters that doesn't make any effect.
Added basic '.gdip' plugin config file.
2021-01-14 15:30:00 +03:00
Rémi Verschelde f93c2ddc92
Merge pull request #45163 from akien-mga/3.2-cherrypicks
Cherry-picks for the 3.2 branch (future 3.2.4) - 16th batch
2021-01-13 17:38:05 +01:00
Rémi Verschelde 652105dcdd
Merge pull request #44704 from madmiraal/fix-44510-3.2
[3.2] Add signal to inform joint that body has exited tree
2021-01-13 17:16:19 +01:00
Rémi Verschelde b64fe918aa
Merge pull request #45160 from madmiraal/fix-45145-3.2
[3.2] Only remove Bullet's body constraints when removing body from space
2021-01-13 17:16:01 +01:00
Rémi Verschelde 8a8e0ae2eb
Merge pull request #40990 from madmiraal/fix-40739-3.2
[3.2] Reload Bullet space override modifier even when RigidBody is inactive.
2021-01-13 16:44:04 +01:00
Vedat Günel de34616552
Change reserved keyword in Regex documentation code
(cherry picked from commit 446a3f8ff2)
2021-01-13 16:17:09 +01:00
David Snopek bd0f5f50b2
Invert the Y-axis on thumbsticks and trackpads in WebXR
(cherry picked from commit 7a0d4275a2)
2021-01-13 16:17:09 +01:00
zero13cool 57416ce3ff
Changed type to make it work on x32 architecture.
(cherry picked from commit 9f3d7d9709)
2021-01-13 16:17:09 +01:00
Aaron Franke 6e1b2af770
Descriptive error message when using AudioStream(OGG/MP3) incorrectly
(cherry picked from commit 193564d83e)
2021-01-13 16:17:08 +01:00
nevarek 2167b977de
Optimize data format for OpenSimplex images
The previous RGBA format included unused RGB data. Using the LA8 format
removes the need to store the extra data.

The Docs have been updated to reflect the format changes.

(cherry picked from commit 041fe20f64)
2021-01-13 16:17:07 +01:00
Rémi Verschelde 49646383f1
Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆

(cherry picked from commit b5334d14f7)
2021-01-13 16:17:06 +01:00
Rémi Verschelde 188609e5ab
CI: Update to clang-format 11 and apply ternary operator changes
(cherry picked from commit af878716f2)
2021-01-13 16:14:35 +01:00
Marcel Admiraal 47657cd140 Only remove Bullet's body constraints when removing body from space 2021-01-13 13:45:40 +00:00
Rémi Verschelde 0a8cc0a565
Merge pull request #44006 from RandomShaper/gds_needless_check_3.2
Remove useless check in GDScript (3.2)
2021-01-11 13:53:42 +01:00
Yuri Roubinsky 602fc00e56 [3.2] Auto-assign default value for variable in visual script on type changing 2021-01-11 10:29:12 +03:00
Rémi Verschelde 3d31433229
doc: Remove links to RNG tutorial, not yet in 3.2 branch 2021-01-07 14:33:36 +01:00
Rémi Verschelde a18df71789
Merge pull request #44897 from RevoluPowered/add-blender-fbx-support
Preliminary Blender FBX support [3.2]
2021-01-06 09:43:26 +01:00
Gordon MacPherson 31bc1af82a Preliminary Blender FBX support
limitations:
- always has to use generated normal's.
- some animations won't be compatible (yet)

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-01-05 21:56:21 +00:00
Rémi Verschelde d7102ac78f
doc: Sync classref with current source 2021-01-05 21:33:34 +01:00
LoipesMas 0fc433d046
More explicit wording for str() and print() functions
(cherry picked from commit 9c65927aeb)
2021-01-05 21:33:34 +01:00
Hugo Locurcio e35f17d33d
Use `static const int` instead of `#define` for OpenSimplexNoise octaves
This closes #44860.

(cherry picked from commit 7a65375b7a)
2021-01-05 21:33:32 +01:00
Rémi Verschelde 3d88ea8468
Merge pull request #42397 from dsnopek/webxr
Add WebXR support (for Godot 3.2)
2021-01-05 00:13:10 +01:00
David Snopek 22cfa90ef5 Add support for WebXR 2021-01-04 17:01:42 -06:00
Marcel Admiraal 6b3bab6e54 Add signal to inform joint that body has exited tree 2020-12-31 14:51:07 +00:00
Rémi Verschelde 10cc044ea5
FBX: Clarify outdated format error
See #44780.

(cherry picked from commit 1dd75f41e5)
2020-12-29 16:02:03 +01:00
hoontee 85cc31332a
Properly handle empty CSGShapes
(cherry picked from commit 24a6aac472)
2020-12-29 16:02:02 +01:00
Marcel Admiraal cb629dd06b
Ensure flags are applied to CVTT options
(cherry picked from commit 709aa8ae2c)
2020-12-29 16:02:02 +01:00
Eyad d4bfa5a684
Fixes #42149 and fixes indentation errors to pass clang-format
(cherry picked from commit be1c161b0b)
2020-12-29 16:02:01 +01:00
Yuri Roubinsky 742a3f461c
Fix broken members panel in visual script editor
(cherry picked from commit d6bdd042bc)
2020-12-29 16:02:01 +01:00
Ignacio Etcheverry bf942447a3
Mono: Add extra WASM framework assemblies on game export
This is needed with newer Mono versions, at least with Mono 6.12+

Depends on the following commit from our build scripts:
godotengine/godot-mono-builds@9d75cff174

(cherry picked from commit b98e8b11e6)
2020-12-29 16:01:59 +01:00
skyace65 e072b3db82
Pow method doc fix
(cherry picked from commit 4fd20015f3)
2020-12-29 16:01:59 +01:00
Rémi Verschelde 688d422554
PVRTC: Move compress func to `modules/pvr`, drop obsolete PVRTexTool code
The code we had for PVRTexTool doesn't work as it's not compatible with current
PVRTexTool CLI options, and likely hasn't been for years.

Instead, we have our own vendored pvrtccompressor thirdparty library which all
users have thus de-facto been using. This commit moves the compress code to
`modules/pvr` where it belongs.

There's no proper compress function for PVRTC 2-bit format, that's a bug that
will need to be fixed (currently it's compressed as 4-bit format even if you
use Image::FORMAT_PVRTC2).

Fixes #28669.

(cherry picked from commit 1a31274855)
2020-12-29 15:12:06 +01:00
Marcel Admiraal 125032d8ee Fix ETC quality setting 2020-12-25 11:36:26 +00:00
Rémi Verschelde 344a02834b
Merge pull request #43899 from madmiraal/fix-43852-3.2
[3.2] Remove any constraints connected to a Bullet body when removing it
2020-12-19 09:31:04 +01:00
Rémi Verschelde 65c1db3131
Merge pull request #44305 from RevoluPowered/fbx-update-plugin
[fbx] Implement ColorIndex for Vertex Colors to ensure they are correct and duplicate vertexes correctly for multiple color attributes.
2020-12-17 21:19:59 +01:00
Rémi Verschelde 80c9f2d975
Merge pull request #44373 from neikeq/3.2-mono-wasm-m2n-hook
[3.2] Mono: Make Godot provide its own WASM m2n trampolines
2020-12-17 09:58:50 +01:00
Rémi Verschelde c01ccab885
Merge pull request #44392 from madmiraal/fix-42285-3.2
[3.2] Remove Generic6DOFJoint precision property
2020-12-15 19:07:27 +01:00
Marcel Admiraal 825ad65fc4 Remove Generic6DOFJoint precision property 2020-12-15 10:15:42 +00:00
Gordon MacPherson 18d1898309 [fbx] Fix #44371 #44376 File crash and Buffer Overflow
Fixes:
- Element collection will only contain valid elements.
- Fixes buffer overflow in the FBX document
2020-12-14 21:57:41 +00:00
Ignacio Etcheverry 1a5e985ed4 [3.2] Mono: Make Godot provide its own WASM m2n trampolines
This depends on a custom Mono patch from this commit:
godotengine/godot-mono-builds@0e312939bd
2020-12-14 19:46:41 +01:00
Gordon MacPherson 8ffad0d8bd ColorIndex supported now for vertex colors.
Other properties should index override where appropriate in future.
2020-12-14 16:51:15 +00:00
Ignacio Etcheverry 2c89152b33 Mono: Don't use -rdynamic when compiling for WASM
`-rdynamic` was causing the emsdk linker to silently fail to
generate the output `.wasm` file (even though exit code was 0).
2020-12-13 21:46:38 +01:00
Rémi Verschelde fd6b3060c1
Merge pull request #44316 from madmiraal/fix-handles-baseexception-3.2
[3.2] Don't handle BaseException in build scripts
2020-12-12 12:44:17 +01:00
Marcel Admiraal e21adf2bc6 Don't handle BaseException in build scripts 2020-12-12 10:10:23 +00:00
Rémi Verschelde b5e8b48bb7
Merge pull request #43921 from RevoluPowered/fbx-update-plugin
[FBX] general purpose fixes 🎄
2020-12-10 20:56:03 +01:00
Gordon MacPherson de61cfe7c5 [fbx] bugfixes skinning, materials and debugging info, merry xmas 🎄
Better materials:
- default values will no longer trigger things like emission,
clear coat being enabled etc incorrectly, mostly importers misunderstand
this value, a value of 1 is not actually enabled emission, it must have a
non zero setting other than emission value for the emission flags to
actually be enabled correctly in our engine #42386
- lambert materials are warned against significantly,
do not use Lambert in Godot, use a PBR material like Ai Standard Surface
 (it's like going from low quality to high definition in terms of output
 in scenes and on assets)
- roughness values are calculated correctly in this version

Fixes for normal's array - some normal's from some files were dropped and
generated, this is now fixed.
- FBX indexing for items with (-1) index, for normal data is supported,
this is super helpful at increasing our range of compatibility of
FBX meshes.

Fix bone rest data **no longer requiring go to bind pose in Maya and various applications**
- Partial fix for #43688

Validation tools added for validating large projects

Provide package name, vendor and FBX vendor in the log.

Implemented metadata properties so we can read extra document
info required for bug reporting

**FBX 2011 (version 7200)** is unsupported now,
you must re-export your file in Maya or Max to upgrade the file format.

Fixes skin bind poses being generated based on node xforms in the scene
Fixes duplicate bones being added to skin and prevents add_bones from
registering skeleton bones it now registers skin bind poses,
but this should really be documented in the engine correctly right now
 it doesn't tell you this is the case.
2020-12-10 19:30:17 +00:00
Rémi Verschelde 31cd9e560c
Mono: Fix GodotTools build after invalid cherry-pick
I wrongly resolved the cherry-pick conflict in c5acdfb5f5.
2020-12-10 17:54:37 +01:00
Rémi Verschelde 0c7a9bd283
doc: Sync classref with current source
And fix broken doctool after #43948.
2020-12-10 14:22:31 +01:00
PouleyKetchoupp e1561a6f29 Fix regression in gdscript initialization
A case was missing when cherry-picking PR #44093 from 4.0 to 3.2 branch.
2020-12-09 17:11:03 -07:00
Hugo Locurcio 8542d6ecd5
Tweak log file names for consistency between Mono and non-Mono logs
- Avoid spaces in Mono log file names.
- Use a `.log` extension for Mono logs, just like non-Mono logs.
- Use periods to separate hours/minutes/seconds for non-Mono logs.

(cherry picked from commit 4d81776fc9)
2020-12-09 11:22:05 +01:00
Ignacio Etcheverry a624448197
Mono: Add mono_bcl SCons option for a custom BCL location
Makes it let's bothersome to work with builds from our
godotengine/godot-mono-builds scripts, as they write the
BCL into an output directory separate from the runtime
(which is good as two runtimes may share the same BCL).

(cherry picked from commit dd5ace219d)
2020-12-09 11:22:05 +01:00
Ignacio Etcheverry 2725ce6798
Fix unhandled exception re-thrown in the editor
(cherry picked from commit bbaf854956)
2020-12-09 11:22:05 +01:00
Ignacio Etcheverry c5acdfb5f5
C#: Fix very slow build log update in the editor
(cherry picked from commit b0eb9061e4)
2020-12-09 11:22:05 +01:00
PouleyKetchoupp 9d2c012f23
Fix base script not initialized properly in some cases
Storing script references to pointer only in result.script_type could
lead to losing the last reference, causing further conversions from
Script* to Ref<Script> to fail.

Now result.script_type_ref is always set first, and then cleared in the
specific case of the script being the owner, to avoid cyclic reference
issues.

(cherry picked from commit 87d73faa66)
2020-12-09 11:22:05 +01:00
Sacha Waked d5ea412848
Updated open-simplex to have const noise functions
"open-simplex-noise-in-c" now updated to master and "opensimplex" module refactored accordingly

(cherry picked from commit 7e2b88a7eb)
2020-12-09 11:22:04 +01:00
Danil Alexeev 6c3a0e3a5a
Several edits to the GDScript docs
(cherry picked from commit bf96056ad0)
2020-12-09 11:22:03 +01:00
Rémi Verschelde 0b5a9bf716
Merge pull request #44135 from neikeq/godot-net-sdk-fixes-n-impr
Godot.NET.Sdk/3.2.4 - Fix targeting .NETFramework with .NET 5
2020-12-08 09:44:15 +01:00
Rémi Verschelde 2beb36fbad
Merge pull request #44170 from Faless/js/3.x_gdnative
[3.2] [HTML5] Optional GDNative Support
2020-12-07 18:15:13 +01:00
Vincent 75d38765a8 mp3 import and playback support backport 2020-12-07 15:32:09 +01:00
Ignacio Etcheverry a07589e2ad C#: Bump Godot.NET.Sdk version to 3.2.4 2020-12-06 01:12:10 +01:00
Ignacio Etcheverry cd339ff002 C#: Remove ProjectTypeGuids from Godot.NET.Sdk
The property has no effect as the older VS project system doesn't
work with Sdk style projects.

The presence of the property was preventing Visual Studio for Mac
from opening the project if the Godot extension is not installed.
2020-12-06 01:12:10 +01:00
Ignacio Etcheverry d639941446 C#: Fix targeting .NETFramework with Godot.NET.Sdk and .NET 5
Our target was overriding the official one, while not doing its job
assuming it was already taken care of...
2020-12-06 01:12:10 +01:00
Ignacio Etcheverry 9b24d5f2d0 C#: Don't overwrite newer Godot.NET.Sdk patch version in csproj
Allow game projects to use a Godot.NET.Sdk with a newer patch version.
The major and minor version are still required to be the same.

For example: Allow a Godot 3.2.4 C# project to use a hypothetical
3.2.5 version of Godot.NET.Sdk.
2020-12-06 01:11:31 +01:00
Fabio Alessandrelli 79a1418e7d [HTML5] Make GDNative support feature-based.
This is suboptimal as it requires adding an extra flag, but rewriting
how feature tags work is beyond the scope of this work.
2020-12-05 01:14:03 +01:00
Fabio Alessandrelli 4d1ebaad0f [HTML5] GDNative support via SIDE_MODULE.
Working, with emscripten > 2.0.9
Yes, the unreleased version. 2.0.9 works, but throws and error due to a
bug in emscripten with the thirdparty ENet library.
The issue is fixed upstream so newer releases will work.
2020-12-05 01:00:02 +01:00
Fabio Alessandrelli 8ebb52fad6 [HTML5] Add function signatures to JS libraries. 2020-12-04 23:37:41 +01:00
Rémi Verschelde 9df3d06d1f
Merge pull request #43897 from RandomShaper/fix_refl_probe_vis_3.2
Put misc. 3D tool visible instances on their own layer (3.2)
2020-12-03 13:29:36 +01:00
Adam Brown 639fdefc10
xatlas should be using the options configured here
It was using the defaults by mistake

(cherry picked from commit 9367b1d6c1)
2020-12-02 20:54:39 +01:00
Adam Brown df047e56fe
xatlas: Sync with upstream 5571fc7
Fixes #44017 by changing the `normalize()` function to check for non-negative rather than non-zero via an epsilon check.

(cherry picked from commit 23c754360a)
2020-12-02 16:03:26 +01:00
Pedro J. Estébanez 46fc451b9c Remove useless check in GDScript
The removed check was adding a protection for the case where a `Reference` has not yet got its reference count initialized and a script is called on it. That would cause the object to be released after the call. The removed code was constructing the `Variant` via the `Object` constructor so it didn't deal with the reference count and so the release was prevented.

 However, `Variant` no longer works that way so that check was useless. Now it's just illegal to run GDScript on a Reference whose reference count has not been initialized.
2020-12-01 12:35:06 +01:00
Marcel Admiraal 2e99b5b137 Fix cast_motion sometimes failing
- Fixes Godot physics failing when the cast Shape is inside of, or
already colliding with another Shape.
- Fixes Bullet physics failing when there is no motion.
- Ensures Godot and Bullet physics behave the same.
- Updates the documentation to exclude the caveats for the failures and
differences.
2020-11-27 15:32:25 +00:00
Pedro J. Estébanez 08a46bbacd Put misc. 3D tool visible instances on their own layer
This makes that visible stuff invisible to ReflectionProbes, whose preview in the editor shouldn't involve them.
2020-11-26 20:08:30 +01:00
Marcel Admiraal 4bfcaeff5a Remove any constraints connected to a Bullet body when removing it 2020-11-26 18:16:47 +00:00
Marcel Admiraal e4b3461441
Fix useless assignement in webrtc/library_godot_webrtc.js
(cherry picked from commit 4f654dad13)
2020-11-26 09:38:47 +01:00
Hugo Locurcio 922136b30d
Document that WebM videos don't support the alpha channel
(cherry picked from commit 1a616726cf)
2020-11-26 09:38:46 +01:00
Rémi Verschelde ac8dedd532
doc: Warn about using Node internal processing
See #43689.

Also 'fixed' some spelling for behavior in publicly visible strings.
(Sorry en_GB, en_CA, en_AU, and more... Silicon Valley won the tech spelling
war.)

(cherry picked from commit a655de89e3)
2020-11-26 09:38:45 +01:00
Rémi Verschelde 94c31175de
Merge pull request #43152 from Chaosus/color_autocompletion_3.2
[3.2] Shows ColorRect in Color constants autocompletion
2020-11-26 09:32:32 +01:00
Fabio Alessandrelli f316a1719d [HTML5] Run eslint --fix.
Should I write a poem about this whole new world? ;)
2020-11-23 13:27:13 +01:00
Fabio Alessandrelli e4cdae3624 [HTML5] Libraries refactor for linting.
Initial work to make liniting easier.

This includes:
- Rename http_request.js to library_godot_http_request.js.
- Rename externs.js to engine.externs.js.
- New library_godot_runtime.js (GodotRuntime) wraps around emscripten
  functions.
- Refactor of XMLHttpRequest handler in engine/preloader.js.
- Few fixes to bugs spotted by early stage linting.
2020-11-21 14:23:32 +01:00
Marcel Admiraal 04103db6bd
Fix godot_js_websocket_send function unused assignment.
(cherry picked from commit 112e2fdfc3)
2020-11-17 22:25:49 +01:00
Aaron Franke 3b10458a5d
Add HexEncode to C#
(cherry picked from commit 6b54d7dde1)
2020-11-17 12:02:00 +01:00
Aaron Franke e3419a7fe1
Add LStrip and RStrip to C# strings
(cherry picked from commit c89af1d433)
2020-11-17 12:01:59 +01:00
Rémi Verschelde fc5b106369
Merge pull request #42168 from madmiraal/fix-42108-3.2
[3.2]  Remove the unnecessary sync() and the restrictions it imposes on 3D Physics.
2020-11-16 09:33:17 +01:00
Aaron Franke 9c83b8ed70
[3.2] Improve comments in Color documentation 2020-11-14 04:56:18 -05:00
Rémi Verschelde adf2dabbde
Merge pull request #43456 from akien-mga/3.2-cherrypicks
Cherry-picks for the 3.2 branch (future 3.2.4) - 7th batch
2020-11-11 22:33:31 +01:00
Rémi Verschelde a57b6eb211
doc: Sync classref with current source
Move EditorSceneImporterFBX doc to its module folder.
2020-11-11 17:00:41 +01:00
Hugo Locurcio 913afd843b
Clarify that code in `assert()` should avoid side effects
(cherry picked from commit d6c7073bd7)
2020-11-11 15:44:18 +01:00
Rémi Verschelde 941e2f2ff3
Merge pull request #43454 from Faless/js/3.x_audio_worklet
[3.2][HTML5] Port inline JS code to libraries, AudioWorklet support.
2020-11-11 15:31:10 +01:00
Yuri Roubinsky 23620ff046
[Mono] Added Shuffle method to Array
(cherry picked from commit 156e4043b4)
2020-11-11 15:30:57 +01:00
Aaron Franke 1bb81488bb
Minor clamp and float fixes
(cherry picked from commit ee79fc627c)
2020-11-11 15:30:57 +01:00
Hugo Locurcio 7db872b55a
Add `Image.load_bmp_from_buffer()` for run-time BMP image loading
This partially addresses
https://github.com/godotengine/godot-proposals/issues/676.

(cherry picked from commit 0209e3790e)
2020-11-11 15:30:55 +01:00
Umang Kalra f40d46bafc
Fixes the misleading error message for call_recursive method for TreeItems
(cherry picked from commit c37f633216)
2020-11-11 15:12:02 +01:00
Fabio Alessandrelli e52ed6d89e [HTML5] Port JavaScript inline code to libraries.
The API is implemented in javascript, and generates C functions that can
be called from godot.
This allows much cleaner code replacing all `EM_ASM` calls in our C++
code with plain C function calls.
This also gets rid of few hacks and comes with few optimizations (e.g.
custom cursor shapes should be much faster now).
2020-11-10 10:56:13 +01:00
Gordon 866c8de0ac Revert partial "FBX add roughness mappings and fixes general some material bugs"
This reverts partial commit b624e13681.

This resolves a bug with pivots and skinning breaking with this change.
2020-11-09 18:03:06 +00:00
Gordon b624e13681 FBX add roughness mappings and fixes general some material bugs
- Fixed bug with FBX so we can import material values from the document for PBR when using StingRay (not Arnold *yet*)
- Adds more explicit errors and makes things simpler to read. Has more sanity checks to be sure things are working correctly
- Lazy Properties fixed items not loading due to capital letter errors in FBX parser
- Added debug tools to the materials so you know explicitly what material mapping is assigned to a texture and where it came from. (enable verbose printing to use this)
- Fix broken material mappings and debug entries properly
- Fix make embedded images properly detected
- Spam less errors for unsupported shading models with materials.

Future plans:
- Arnold materials need converted to PBR model, if possible.
2020-11-07 14:34:09 +00:00
Fabio Alessandrelli 10e69f5fa9 Fix gdnative build when WebRTC module is disabled. 2020-11-06 18:23:08 +01:00
Rémi Verschelde 8135fdd382
Merge pull request #43298 from RevoluPowered/fbx-bugfix-mesh-compression-flags
FBX respect mesh compression flags
2020-11-03 22:53:46 +01:00
Gordon MacPherson 48ef4f45a7 FBX respect mesh compression flags
Fixes mesh compression setting being totally ignored.
2020-11-03 20:06:58 +00:00
Gordon MacPherson bcf77deaae FBX fix unskinned bones not being in the Ref<Skin> causing the rasteriser to error
This is because a skin bind count must match skeleton bone count, we should make this not the case for 4.0 IMHO as we can reduce the skin size in godot and make the skin surface simpler to process and have less entries :)
2020-11-03 18:23:52 +00:00
Rémi Verschelde 4f908fb671
Merge pull request #42941 from RevoluPowered/fbx-3-2-2020
[3.2] FBX importer rewrite
2020-10-30 17:34:28 +01:00
Gordon MacPherson 8197a611fa Rewrite FBX Importer to convert directly to Godot scene format
Co-authored-by: Gordon MacPherson <gordon@gordonite.tech>
Co-authored-by: Andrea Catania <info@andreacatania.com>
Co-authored-by: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>

This is a complete rewrite of the importer. It will give more deterministic behaviour and has been sponsored by IMVU inc, over 1 year has gone into the development of this importer to remove the burden of the FBX SDK.
This was my project for 1 entire year and I really enjoyed the opportunity to add to Godot.

Along the road of implementing fixes we implemented fbx pivots, animations and inheritance type handling, which in most cases works properly.
We have implemented animation and mesh skinning too this should work out of the box, if there are issues let us know.
It's designed so that you can expand this with ease, and fix bugs easily too.
It can import from Autodesk Maya and import into Godot, with pivots.
There are bits we could polish but for now this is good enough.

Additional fixes made before upstreaming:
- fixed memory leaks
- ensure consistent ordering on mac linux and windows for fbx tree. (very important for material import to be deterministic)
- disabled incorrect warnings for fbx_material
- added compatibility code for /RootNode/ so compat is not broken
- Optimise FBX - directly import triangles
- remove debug messages
- add messages for mesh id, mesh re-import is sometimes slow and we need to know what mesh is being worked on
- Document no longer uses unordered maps
- Removed some usages of &GetRequiredToken replaced with safe *GetRequiredToken() function
- Added parser debugging
- Added ERR_FAIL_CONDS for unsupported mesh formats (we can add these later super easy to do now)
- Add memory debugging for the Tokens and the TokenParser to make it safe
- Add memory initialisation to mesh.cpp surface_tool.h and mesh.h
- Initialise boolean flags properly
- Refactored to correct naming for the fbx_mesh_data.h so you know what data you are working on
- Disabled corruption caused by the FIXME:
- Fixed document reading indexes and index_to_direct vs indexes mode
- Fixed UV1 and UV2 coordinates
- Fixed importer failing to import version 7700 files
- Replaced memory handling in the FBX Document with pointers, before it was dereferencing invalid memory.
- Fixed typed properties
- Improved Document API
- Fixed bug with ProcessDOMConnection() not working with the bool flag set to true.
- Fixed FBX skinning not deforming for more than one single mesh
- Fixed FBX skeleton mapping and skin mapping not being applied properly (now retrieved from document skin list)
- Fixed set_bone_pose being used in final version()
- Fixed material properties exceeding 1.0.
- FBX Document parser revamped to use safe memory practices, and with graceful error messages.
- ScopePtr, TokenPtr and various internal types have been fleshed out to use proper typedefs across the codebase.
- Fixed memory leaks caused by token cleanup failing (now explicit cleanup step, no shared_ptr, etc)
- Fixed bug with PropertyTable not reading all properties and not cleaning up properly.
- Fixed smoothing groups not working
- Fixed normal duplications
- Fixed duplication check for pre-existing coordinates.
- Fixed performance of vertex lookup in large meshes being slow, using lookup table separate to the data for indexing, this reduces import time from 10 minutes of bistro down to 30 seconds.
- Fixed includes requiring absolute path in headers and cpp files using CPPPath.

Bugs/Features wish list:
- locator bones
- quat anim key interpolation (most fbx maya files have euler rotations from blender and maya, nobody uses this)
- some rigs skins scale up when SSC enabled inconsistently per bone
- some skins can disappear entirely
- material mapping needs expanded, but this will be done for 4.0 as it requires rewrite.

Workarounds for issues found until we patch them:
- mesh -> clear skin can resolve most of the bugs above.
- locators can be worked around by removing them before exporting your rig.
- some material properties wont always import, this is okay to override in the material properties.

**If you are having issues or need support fear not!**
Please provide minimal rigs which can reproduce issues as we can't spend a lot of time investigating each rig. We need a small example which breaks and we can then sort the problem. In some cases this is not possible so its okay to privately send models to us via IRC or a ticket and we can provide an email address, we won't reveal or disclose privately sent rig files to any companies, or to companies I work for, they will not be shared, only tested and bugs will be drawn up from the conclusions. Also include identifying information about what you did and how it didn't work. Please file each file separately in a bug report, unless the problem is the same.
This was sponsored by IMVU, and a special thanks to everyone who supported this project.

Signed-off-by: Gordon MacPherson <gordon@gordonite.tech>
2020-10-30 15:59:19 +00:00
George Marques 798ee982ac Actually set GDScript static reference
(cherry picked from commit 0f1da72492)
2020-10-29 21:04:57 +01:00
George Marques e360dc9a79 GDScript: Remove self static reference and create one on calls
This is needed because of the new changes to Variant. The reference
counter is increased by adding it to a Variant, which means no GDScript
will be freed (or will be double freed if manually freed somewhere).

(cherry picked from commit 4d960efafc)
2020-10-29 21:04:57 +01:00
Andrii Doroshenko (Xrayez) 9aecf040e1
GDNative XR: remove redundant `config.py`
It's not an engine module. This is handled by GDNative's
`SCsub` instead, as done for other subdirectories already.

(cherry picked from commit 650ae413ce)
2020-10-28 14:05:41 +01:00
Tomer Keren 3e4816efbd
Setting visibility on GridMap now works. Closes #41374.
Continuing the work from f43a0ef327,
It seems the maps visibility was not actually set and a flase value was propogated to the meshes
Trying to set the maps visibility directly (Using `set_visibility` causes the map to no longer to recieve visibility notifications, instead this approach was chosen

(cherry picked from commit fe52c6b0b7)
2020-10-28 14:05:39 +01:00
Yuri Roubinsky 374253242d [3.2] Shows ColorRect in Color constants autocompletion 2020-10-28 12:39:41 +03:00
Mateo de Mayo edb79e584a Fix misleading editor message when redeclaring variables 2020-10-22 18:32:34 -03:00
Rémi Verschelde 0237d42809
Merge pull request #42547 from neikeq/3.2-rework-csharp-build-panel
[3.2] C#: Re-work solution build output panel
2020-10-20 15:12:30 +02:00
Haoyu Qiu 82900e54ea Fixes crash after using enums in export variables 2020-10-20 18:41:41 +08:00
Rémi Verschelde 311bdbc16c
doc: Sync classref with current source 2020-10-19 17:13:30 +02:00
Rémi Verschelde 4287af5148
doc: Make docs.godotengine.org links point to 3.2 branch 2020-10-19 16:10:01 +02:00
Aaron Franke 069ed4ec63
Link to demos from within the class reference
(cherry picked from commit 439be614f4)
2020-10-19 16:10:01 +02:00
Aaron Franke 730d42d8a4
Add GetStringFromUTF8 and GetStringFromASCII
(cherry picked from commit 029de52001)
2020-10-19 16:10:01 +02:00
Hugo Locurcio 8d445f3f9f
Link the Random number generation tutorial in the class reference
(cherry picked from commit 802c1e4df1)
2020-10-19 16:10:00 +02:00
Tomasz Chabora cd23be5da7
Bind missing constant in VisualScriptPropertyGet
(cherry picked from commit aadc8d54a4)
2020-10-19 16:09:59 +02:00
Rémi Verschelde 9bbfa929bc
Mono: Fix typo in Godot.NET.Sdk.nuspec
Fixes #42666.

(cherry picked from commit 1af3cf15c2)
2020-10-19 16:09:59 +02:00
Jacob Edie 8467d28b16
added temp variable because *p_inputs[2] is the same as *p_outputs[0]
(cherry picked from commit d76457a7f3)
2020-10-19 16:09:58 +02:00
Marcel Admiraal b7d00a364e Set Bullet collision shape index to zero when using a single shape
or ConcavePolygonShape.
2020-10-19 11:50:29 +01:00
Ignacio Etcheverry fdfba05fab [3.2] C#: Re-work solution build output panel
- Removed item list that displayed multiple build
  configurations launched. Now we only display
  the last build that was launched.
- Display build output next to the issues list.
  Its visibility can be toggled off/on.
  This build output is obtained from the MSBuild
  process rather than the MSBuild logger. As such
  it displays some MSBuild fatal errors that
  previously couldn't be displayed.
- Added a context menu to the issues list with
  the option to copy the issue text.
- Replaced the 'Build Project' button in the panel
  with a popup menu with the options:
  - Build Solution
  - Rebuild Solution
  - Clean Solution
- The bottom panel button was renamed from 'Mono'
  to '.NET' and now display an error/warning icon
  if the last build had issues.
2020-10-11 16:51:54 +02:00
Rémi Verschelde 4040cd350d
Merge pull request #42582 from naithar/feature/3.2-arc-refactor
[3.2] [iOS] Port 4.0 changes
2020-10-07 21:17:01 +02:00
Sergey Minakov 5d1284204d iOS: port ARC support 2020-10-06 00:23:25 +03:00
Sergey Minakov 2bdfec2418 iOS: Refactor platform code
Change project structure to be more like 4.0
Refactor and remove old code as followup after deprecations fix
2020-10-06 00:23:09 +03:00
Marcel Admiraal d9d9be07c2
Check entire basis column for zero size when unscaling Bullet basis.
(cherry picked from commit 5278e07095)
2020-10-04 20:52:38 +02:00
Serhat 09a8dd7b3b
Fixed padding bug of sprintf function
(cherry picked from commit 9f2cdfea82)
2020-10-04 20:51:58 +02:00
Andrii Doroshenko (Xrayez) 1a71792655
Cross-reference GDScript `load` and `ResourceLoader.load` in classref
The GDScript `load` mention is moved from the class `ResourceLoader`
description to the `ResourceLoader.load` method description instead,
where it is more likely to be found.

(cherry picked from commit a8404cf56c)
2020-10-04 20:51:40 +02:00
Paulb23 2ef8aba8e9 Fix gdscript multiline string nested highlighting 2020-10-03 16:16:34 +01:00
Sergey Minakov 3386fac02c iOS: fix deprecations
Change deprecated method calls to new ones.
Guard iOS version dependant functionality behind availability checks.
2020-10-01 18:09:55 +03:00
Eduardo Rodrigues f14e569ab3
Fix error message when exporting a write-only property without a setter
(cherry picked from commit aca0cede67)
2020-10-01 16:00:43 +02:00
Rémi Verschelde 8d36b7206c
Merge pull request #42460 from ThakeeNathees/signal-lines-marked-safe
[3.2] GDScript signal lines marked as safe
2020-10-01 14:18:22 +02:00
Rémi Verschelde b83f9d47a0
Merge pull request #41830 from RandomShaper/fix_40353_3.2
Avoid warning about harmless unfulfilled yields (3.2)
2020-10-01 14:17:56 +02:00
Rémi Verschelde 3961f50176
Merge pull request #40461 from nekomatata/script-editor-init-optimization-3.2
[3.2] Optimized ScriptEditor initialization when many scripts are loaded
2020-10-01 13:58:01 +02:00
Rémi Verschelde 0a26217579
Merge pull request #41200 from madmiraal/fix-38001-3.2
[3.2] Mark the first shape as inside, not the second shape, when CSG shapes are co-planer.
2020-10-01 13:50:19 +02:00
Thakee Nathees a69c3cace2 GDScript signal lines marked as safe
Fix: #33927
2020-10-01 17:01:11 +05:30
Rémi Verschelde aaf0b32e91
doc: Sync classref with current source 2020-09-29 13:57:58 +02:00
Pedro J. Estébanez d56112005f
Avoid infinite loop in GDScript at shutdown
(cherry picked from commit de4e54dd91)
2020-09-29 13:57:55 +02:00
Hugo Locurcio 7b3f9ebb94
Enable the `copy_mono_root` SCons option by default
This closes #41652.

(cherry picked from commit cfd564b385)
2020-09-29 13:57:55 +02:00
Hugo Locurcio 880ab559ec
Improve documentation related to printing error/warning messages
(cherry picked from commit 50f3a8e312)
2020-09-29 08:54:45 +02:00
Francois Belair d0eedd4c23
Make LSP ignore $/ messages
Fixes #38814

(cherry picked from commit 9c273307d8)
2020-09-29 08:54:44 +02:00
Rémi Verschelde 8ca9680b13
Merge pull request #38076 from DrMoriarty/fix_pvrtc
iOS: Fix multiple issues with PVRTC import, disable ETC1
2020-09-28 10:17:22 +02:00
Pedro J. Estébanez 4cab6452d9 Fix GDScript leak avoidance
Modify usage of types so that the `Ref` created from `base_type.script_type` doesn't involve converting first to `Variant`, which will use the constructor for `Object *`, as if the argument wasn't a `Reference`, and therefore will convert back to null.
2020-09-25 01:41:31 +02:00
Hugo Locurcio 92a85b4445
Improve documentation about VideoPlayer video formats
This closes https://github.com/godotengine/godot-docs/issues/4021.

(cherry picked from commit 1efe57848a)
2020-09-24 14:43:11 +02:00
Stephan Dilly 11426cb0f7
add iOS Simulator platform
without this we have to manually drop a `x86_64` builds of gdnative libs into the Xcode project to allow running in `iOS Simulator`

(cherry picked from commit f49199bcc3)
2020-09-24 14:43:10 +02:00
Aaron Franke ea3bbbe0f2
Add concatenation support and a new ctor to Godot.Collections.Array
(cherry picked from commit a4dcd48d16)
2020-09-24 14:43:10 +02:00
Ricardo Alcantara 197b375b89
Basis RotationQuat should be public.
(cherry picked from commit a676b8ea66)
2020-09-24 14:43:08 +02:00
Aaron Franke 1dcbcaaa0d
Change inequality comparison operators to use exact equality
(cherry picked from commit d0a1399a1b)
2020-09-24 14:43:08 +02:00
Zae e5b357cfb1
Fix C# string.IsAbsPath()
(cherry picked from commit b5eea5cfd4)
2020-09-24 14:43:08 +02:00
Raul Santos cf45fa7f36
Fix ExprMatch stackoverflow
(cherry picked from commit d425cf6fed)
2020-09-24 14:43:07 +02:00
Marcel Admiraal a9b5dc56a6
Check and correct for zero scaling when unscaling Bullet basis.
(cherry picked from commit 4b14916288)
2020-09-24 14:43:06 +02:00
Marcel Admiraal 808865af97
Don't attempt to insert points into degenerate triangles.
Use a simpler degenerate triangle check that calculates area.

(cherry picked from commit 3521239d96)
2020-09-24 14:43:05 +02:00
hoontee aa0221f0fb
Transform CSGShape collision when necessary
(cherry picked from commit fc8574fbac)
2020-09-24 14:43:05 +02:00
hoontee 8ce88d38f2
Properly handle empty CSGCombiners
(cherry picked from commit 001b6075cb)
2020-09-24 14:43:05 +02:00
Rémi Verschelde bca2633f93
Merge pull request #41931 from RandomShaper/fix_gdscript_leaks_3.2
Fix leaks in GDScript (3.2)
2020-09-24 08:33:04 +02:00
Vasiliy Makarov f388ea00bf iOS: Fix multiple issues with PVRTC import, disable ETC1
Fixes: #28683, #28621, #28596 and maybe others

For iOS we enable pvrtc feature by default for both GLES2/GLES3
Etc1 for iOS doesn't have any sense, so it disabled.
Fixed checks in export editor.
Fixed pvrtc ability detection in GLES2 driver.
Fixed pvrtc encoding procedure.
2020-09-23 11:13:50 +02:00
Rémi Verschelde 26512dda93
Merge pull request #42170 from Razoric480/fix-vscript-value-by-type-32
Add a VScript func to sanitize variant values (3.2)
2020-09-23 09:35:22 +02:00
Francois Belair d35ced06a6 Add a VScript func to sanitize variant values
Backported to 3.2
2020-09-18 11:28:58 -04:00
Rémi Verschelde c8859f0463
Fix typos with codespell
Using codespell 1.17.1.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2020-09-18 14:09:51 +02:00
Marcel Admiraal fc72c3fdf5 Remove the unnecessary sync() and the restrictions it imposes on 3D Physics. 2020-09-18 10:42:59 +01:00
Fabio Alessandrelli f1b2a7d1b4
Fix certificate generation with mbedtls 2.16.8 .
When generating certificates with
`Crypto.generate_self_signed_certificate` we generate the PEM in a
buffer via `mbedtls_x509write_crt_pem`.

Since version 2.16.8, mbedtls adds spurious data at the end of the
buffer due to internal optimizations, this breaks our logic when we try
to immediately parse it and return a proper `X509Certificate` object.

This commit updates the code to find the actual PEM length to parse
using `strlen`, takes extra caution always adding the terminator to the
buffer, and slightly improve error messages.

(cherry picked from commit 60687ce778)
2020-09-15 19:27:48 +02:00
Danil Alexeev 06f3cd8bd8
Several documentation improvements
(cherry picked from commit a4c5790350)
2020-09-15 19:26:40 +02:00
Marcel Admiraal edc4820430 Fix RigidBodyBullet areasWhereIam element shift. 2020-09-14 18:26:19 +01:00
Tom Daffin 46b4e82f92
Add mono log message to error for fatal errors
(cherry picked from commit c15fb42d45)
2020-09-14 12:07:12 +02:00
Ignacio Etcheverry cdc9fe154f
C#: Fix csproj not synced on file move/removal from FS dock
When NormalizePath was called with an absolute
path (with drive letter) on Windows, it would
prepend a file path separator to the path, e.g.:
'\C:\Program Files\'.
Apparently this was still accepted as a valid
path by DotNetGlob and it stopped working when
we switched to MSBuildGlob.

(cherry picked from commit 1db0395950)
2020-09-13 12:35:34 +02:00
Rémi Verschelde 36fa6369fc
stb_vorbis: Increase max alloc buffer size for big Vorbis comments
The previous max worked OK for audio data, but stb_vorbis recently gained support
for Vorbis comments, which can embed up to 2^32-1 bytes of data (e.g. cover art
encoded as base64).

We use 2^30 as max which should be sufficient for most files.

Fixes #41913.

(cherry picked from commit d16f5a57c1)
2020-09-10 12:04:19 +02:00
Pedro J. Estébanez 8e64969184 Ensure cyclic dependencies between scripts are broken at exit 2020-09-09 14:57:34 +02:00
Pedro J. Estébanez a0969662cd Prevent cyclic reference between script and its members 2020-09-09 13:51:53 +02:00
Ignacio Etcheverry 8c5ed68847
C#: Use BOM when creating a solution
At least on Windows there seems to be issues if
the solution has no BOM and contains a project
with cyrillic chars.

(cherry picked from commit 1c74fa4242)
2020-09-08 22:02:24 +02:00
Ignacio Etcheverry e72ee23c43 [3.2] C#: Fix endless reload loop if project has unicode chars
The assembly modified time wasn't picked properly
as the path was treated as latin-1, so the file
watcher was constantly firing the event.
2020-09-08 19:47:47 +02:00
PouleyKetchoupp 43b49607bb
Fix TURN server example in WebRTC documentation
WebRTC GDNative plugin uses `credential` and not `credentials`.
74f2c78db5/src/WebRTCLibPeerConnection.cpp (L35-L37)

(cherry picked from commit 280496a2c3)
2020-09-08 13:39:18 +02:00
Pedro J. Estébanez 51844febee Avoid warning about harmless unfulfilled yields 2020-09-06 22:26:16 +02:00
Alex de la Mare 6474e036ac [3.2] Handle csproj "Remove" globs
MSBuild Item returns empty strings if an attribute isn't set (which
 caused an IndexOutOfRangeException in NormalizePath).

 We were treating Excludes incorrectly, Remove directives provide the
 intended behaviour in the auto-including csproj format.
2020-09-06 12:10:54 +10:00
Marcel Admiraal c6cccdf0c6 Ensure header guards enclose entire header.
(cherry picked from commit f6ad1954f7)
2020-09-04 08:48:35 +02:00
Ignacio Etcheverry 9699e83e1e Fix parsing of C# files with spaces in the path
(cherry picked from commit 9e8a5e4b5a)
2020-09-04 08:24:17 +02:00
Rémi Verschelde 9efd555c58
Merge pull request #41754 from neikeq/3.2-csharp-hide-build-button-if-no-proj
[3.2] C#: Hide Build button if there's no solution to build
2020-09-04 08:20:06 +02:00
Rémi Verschelde 93eb9b554e
Merge pull request #41752 from neikeq/fix-invalidopexception-csproj-migration
[3.2] Fix InvalidOperationException when migrating from 3.2.1 or older csproj
2020-09-04 08:19:18 +02:00
Rémi Verschelde 1edd6aa404
Merge pull request #41751 from neikeq/3.2-issue-41745
[3.2] C#: Fix Godot failing to find class namespace
2020-09-04 08:16:30 +02:00
Ignacio Etcheverry 2bb251f628 [3.2] C#: Hide Build button if there's no solution to build
Same as we do with the bottom panel. Mainly to
avoid bothering if the project is not using C#.
2020-09-04 02:18:42 +02:00
Ignacio Etcheverry f8e3a74f9e Fix InvalidOperationException when migrating from 3.2.1 or older csproj 2020-09-04 01:49:32 +02:00
Ignacio Etcheverry b3762622be [3.2] C#: Fix Godot failing to find class namespace
Also avoid searching C# files recursively twice.
2020-09-04 01:31:38 +02:00
Ignacio Etcheverry bd18b2ff6a [3.2] Fix 'Parameter "assembly" is null' error
This error was normally being printed when
trying to open the project assembly while
the project was not yet built.
The error should not be printed. It's the job
of this method's caller to decide whether to
print an error or not if loading failed.
2020-09-04 01:09:35 +02:00
Ignacio Etcheverry 939ed5dd5b C#: Fix Windows detection for copying MSBuild stub
Previous condition checked only the host
platform. This was a problem as our official
builds are from Linux.

(cherry picked from commit 206501a45e)
2020-09-03 09:35:41 +02:00
Hugo Locurcio cc3b69cf7b
Reference the online documentation in collision layer/mask properties
See https://github.com/godotengine/godot-docs/pull/3863.

(cherry picked from commit c73c327bab)
2020-08-31 15:55:11 +02:00
Hugo Locurcio afef89014b
Cross-reference GDScript built-in rounding methods to ease discovery
This closes #19315.

(cherry picked from commit 20d0f5bbd7)
2020-08-31 15:29:42 +02:00
Thaina Yu cadd39d415
Mono: Improve MSBuildFinder logic on Windows
Support detecting both 32-bit and 64-bit installations of `vswhere.exe`.

(cherry picked from commit 5dc3900727)
2020-08-31 15:29:41 +02:00
Ignacio Etcheverry 789d7fac8a C#: Fix crash on export when incorrectly freeing MonoAssemblyName 2020-08-30 02:01:38 +02:00
Ignacio Etcheverry a8e1a0f0bc
C#: Fix 'Parameter toolsPath cannot be null' error
(cherry picked from commit 2bd6252e92)
2020-08-25 14:36:40 +02:00
Thakee Nathees d04d329a1f autocompletion inside comments bug fixed
Fix: #41438
2020-08-23 23:01:54 +05:30
Ignacio Etcheverry f3ed06cfd7
Mono/C#: Fix editor using wrong project assembly path in rare cases
We were removing invalid path characters from the
name in C++ code, but the C# editor code wasn't.

(cherry picked from commit 8bb48ae57a)
2020-08-21 02:28:18 +02:00
Ignacio Etcheverry eb30c04c4d
C#: Save newly created csproj files without BOM
(cherry picked from commit b5f6285f34)
2020-08-21 02:28:18 +02:00
Ignacio Etcheverry a7bd28760e
C#: Fix null exception in our MSBuild logger
(cherry picked from commit 7eed8c5a0c)
2020-08-21 02:28:18 +02:00
Ignacio Etcheverry c8845291c3
C#: Fix editor unable to play game after IDE PlayRequest
The editor wasn't clearing the debugger agent
settings properly after a processing a play
request from an IDE. This caused consequent play
attempts to fail if not launched from the IDE,
as the game would still attempt and fail to
connect to the debugger.

The concrete cause: Forgetting to clear the
`GODOT_MONO_DEBUGGER_AGENT` environment variable.

(cherry picked from commit 6e7da72648)
2020-08-21 02:28:18 +02:00
Hugo Locurcio f90931c47a
Add more error explanations in the BMP image loader
This closes #32166 and closes #30629.

(cherry picked from commit 40485e2479)
2020-08-21 02:28:17 +02:00
Ignacio Etcheverry c3954441f3 3.2 New csproj style with backport of Godot.NET.Sdk
This is a cherry-pick of
ced77b1e9b
with several 3.2 specific alterations.

There are a lot of build issues coming from
old style projects. At this point fixing every
single one of those would require adding patch
after patch to the project file, which is a
considerable amount work and makes the csproj
even more bloated than it already is.

As such I decided this effort would be better
spent back-porting the Sdk style support that's
already available in 4.0-dev to the 3.2 branch.

This will prevent many issues, but it will also
introduce other benefits, among them:

- While target framework stays as .NET Framework
  v4.7.2, it can be changed to .NET Standard 2.0
  or greater if desired.
- It makes it much easier to add future patches.
  They are added to Godot.NET.Sdk and the only
  change required in Godot code is to update the
  Sdk version to use.
- Default Godot define constants are also
  backported, which fixes IDE issues with the
  preprocessor.

There are a few differences in the changes
applied during patching of the csproj compared
to 4.0 with the purpose of preventing breaking
builds:

- 'TargetFramework' stays net472 both for new
  projects and when importing old ones. It can
  be manually changed to netstandard 2.0+ if
  desired though.

The following features are enabled by default for
new projects. Enabling them in imported projects
may result in errors that must be fixed manually:

- 'EnableDefaultCompileItems' is disabled as it
  can result in undesired C# source files being
  included. Existing include items are kept.
  As long as 'EnableDefaultCompileItems' remains
  disabled, Godot will continue taking care of
  adding and removing C# files to the csproj.
- 'GenerateAssemblyInfo' is disabled as it
  guarantees a build error because of conflicts
  between the existing 'AssemblyInfo.cs' and the
  auto-generated one.
- 'Deterministic' is disabled because it doesn't
  like wildcards in the assembly version (1.0.*)
  that was in the old 'AssemblyInfo.cs'.

Of importance:

This is a breaking change. A great effort was
put in avoiding build errors after upgrading a
project, but there may still be exceptions.

This also breaks forward compatibility. Projects
opened with Godot 3.2.3 won't work out of the box
with older Godot versions. This was already the
case with changes introduced in 3.2.2.

Albeit C# support in 3.2.x was still labeled as
alpha, we've been trying to treat it as stable
for some time. Still the amount of problems this
change solves justifies it, but no more changes
that break project compatibility are to be
introduced from now on (at least for 3.x).
2020-08-20 21:48:59 +02:00
Ignacio Etcheverry 4d7b7d9b73 3.2 C#: Upgrade GodotTools to nuget Microsoft.Build
This upgrade is needed in order to support
reading and editing project files that use Sdks
as well as other new features. A common example
in 3.2 is having to specify a PackageReference
version with a child element rather than the
attribute. This is no longer the case now.

Partial cherry-pick of f3bcd5f8dd
Most of the other changes from that commit were already partially
cherry-picked in 3928fe200f.
2020-08-20 21:45:34 +02:00
Ignacio Etcheverry e1f17a0b35 3.2 C#/Mono: Check assembly version when loading
Not sure if we should check revision too, but this is good enough for what we want.
This will be needed to load the correct Microsoft.Build when we switch to the nuget version.

Manual cherry-pick of af4acb5b11 (relevant parts)
2020-08-20 21:38:33 +02:00
Thakee Nathees d53f5b55ec Auto completion enhanced for extends and class level identifier 2020-08-17 12:54:01 +05:30
Marcel Admiraal 557dce8e72 Mark the first shape as inside, not the second shape, when CSG shapes are
co-planer.
2020-08-12 07:28:33 +01:00
Rémi Verschelde efbeafd08c
Merge pull request #41041 from qarmin/leak_bullet_shape
[3.2] Fixes leak when creating bullet shape
2020-08-10 19:47:08 +02:00
Francois Belair e3f16a83dc Fix line num of enums reported as the line before 2020-08-08 11:52:25 -04:00
Rafał Mikrut 808615ec3e Fixes leak when creating bullet shape 2020-08-05 10:08:05 +02:00
Marcel Admiraal c1290280ac Reload Bullet space override modifier even when RigidBody is inactive. 2020-08-03 11:26:44 +01:00
Hugo Locurcio fc7451204e Improve JSON-related documentation
This closes https://github.com/godotengine/godot-docs/issues/3848.

(cherry picked from commit 930e10ffff)
2020-07-31 13:09:21 +02:00
Marcel Admiraal c8d8134288 Ensure CSG parent's _make_dirty() is called when entering a tree.
(cherry picked from commit 9be7b30f35)
2020-07-30 22:45:17 +02:00
Rémi Verschelde 6d2f8dd827 doc: Sync classref with current source 2020-07-30 16:26:45 +02:00
Fabio Alessandrelli e36c100365 Fix crash in ENet changing refuse_new_connections
When the host is not started.

(cherry picked from commit e5f3159a23)
2020-07-29 18:24:12 +02:00
Hugo Locurcio 4a0568b609 Document how to perform advanced string splitting using RegEx
This closes https://github.com/godotengine/godot-docs/issues/3607.

(cherry picked from commit 5f2b6bd476)
2020-07-29 18:24:00 +02:00