Commit Graph

5626 Commits

Author SHA1 Message Date
Leonardo Christino 8b91828e4f Separate underscore from grapheme punctuation to enable doubleclick and caret jump over snakecase variables in editor 2021-07-13 10:03:26 -03:00
reduz 5ad4f26659 Implement the ability to disable classes
* This PR adds the ability to disable classes when building.
* For now it's only possible to do this via command like:
  `scons disable_classes=RayCast2D,Area3D`
* Eventually, a proper UI will be implemented to create a build config file to do this at large scale, as well as detect what is used in the project.
2021-07-13 09:25:14 -03:00
Rémi Verschelde aab6dc301c
Merge pull request #50086 from Geometror/label-improve-layout-options
Improvements to Label's layout options
2021-07-13 13:10:42 +02:00
Rémi Verschelde fc00a83901
Merge pull request #50262 from nekomatata/convex-hull-simplification
Options to clean/simplify convex hull generated from mesh
2021-07-12 22:15:40 +02:00
Fabio Alessandrelli 97e763dddf [Net] Rename WebRTCMultiplayer to WebRTCMultiplayerPeer. 2021-07-12 16:36:34 +02:00
Fabio Alessandrelli b31e8530b2 [Net] Rename NetworkedMultiplayerENet to ENetMultiplayerPeer. 2021-07-12 16:36:34 +02:00
Fabio Alessandrelli 88d68346ee [Net] Rename NetworkedMultiplayerPeer to MultiplayerPeer. 2021-07-12 16:36:34 +02:00
Fabio Alessandrelli 31142ac3ee [Net] Remove most multiplayer hooks from SceneTree.
Use `multiplayer` or `get_multiplayer()` instead of `get_tree()`.
2021-07-12 15:28:01 +02:00
Yuri Roubinsky f9ab70eb60 Fix creating a new function in visual scripts 2021-07-10 14:45:53 +03:00
Rémi Verschelde ca2fda629f
Merge pull request #50290 from reduz/redo-instance-bindings
Redo how instance bindings work
2021-07-09 23:25:33 +02:00
reduz 4469144891 Redo how instance bindings work
* The harcoded 8 slots are no more and impose limits in the new extension system.
* New system is limitless, although it will impose small performance hit with a mutex.
* Use a token to request the instance binding.

**Warning**: Mono will most likely break as a result of this, will need to be modified to use the new system.
2021-07-08 17:08:12 -03:00
Francois Belair 10429019ad Implement didClose notification in LSP 2021-07-08 11:40:15 -04:00
PouleyKetchoupp 1de995ae99 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.
2021-07-07 12:14:12 -07:00
Rémi Verschelde fa90b6e285
Merge pull request #50162 from Calinou/inspector-hint-allow-ormmaterial3d
Allow using ORMMaterial3D by using BaseMaterial3D as a resource hint
2021-07-06 22:56:06 +02:00
Rémi Verschelde 8771e910e1
Merge pull request #49964 from Calinou/websocketserver-improve-error-reporting
Improve error reporting in WebSocketServer
2021-07-06 13:38:43 +02:00
Rémi Verschelde 5ade46199f
Merge pull request #35847 from raniejade/ranie/fix-api-generator
Fix gdnative api generation for methods that return enums
2021-07-06 13:35:23 +02:00
Hugo Locurcio 58455b18b5
Improve error reporting in WebSocketServer
This should make troubleshooting easier.
2021-07-05 16:35:21 +02:00
Rémi Verschelde ffab3949e3
Merge pull request #50048 from Calinou/remove-travis-code
Remove unused code related to Travis CI
2021-07-05 14:15:24 +02:00
Hugo Locurcio 8f7e1b53ff
Allow using ORMMaterial3D by using BaseMaterial3D as a resource hint
Previously, only StandardMaterial3D could be defined as an alternative
to ShaderMaterial.

This also reorders the CanvasItemMaterial property hints to follow
alphabetical order (which is enforced by the inspector).
2021-07-04 17:49:36 +02:00
Hendrik Brucker 56a8d3f30c Improvements to Label's layout options
- Added options to trim the text in case it overruns
- Added more autowrap modes
- Improved line breaking, which ignores trailing spaces
2021-07-04 16:43:55 +02:00
Fabio Alessandrelli a28d25c441 [Crypto] Delete mbedtls ctx in deconstructor.
Would cause memory leak when the context was `start`ed but not
`finish`ed.
2021-07-03 16:12:55 +02:00
Aaron Franke 2508fd0533
Use PROPERTY_USAGE_NONE instead of 0 for no property usage
Also use const more often.
2021-07-01 14:13:27 -04:00
Pitanov V.V 4da4514b71
Fix GridMap erase Octans 2021-07-02 03:26:26 +10:00
Hugo Locurcio 257a8a337e
Remove unused code related to Travis CI 2021-07-01 18:02:00 +02:00
reduz 37776b2867 Clean up RenderingServer and its bindings
* Rewrote bindings for RenderingServer.
* They are now all up to date.
* Several unused methods and deprecated features were cleaned up.
2021-07-01 09:07:36 -03:00
Rémi Verschelde a02620f3a5
Merge pull request #50009 from reduz/fix-suffixes-and-degrees
Fix editor suffixes and degrees conversion
2021-06-30 18:47:40 +02:00
reduz 75688772b3 Fix editor suffixes and degrees conversion
* Functions to convert to/from degrees are all gone. Conversion is done by the editor.
* Use PROPERTY_HINT_ANGLE instead of PROPERTY_HINT_RANGE to edit radian angles in degrees.
* Added possibility to add suffixes to range properties, use "min,max[,step][,suffix:<something>]" example "0,100,1,suffix:m"
* In general, can add suffixes for EditorSpinSlider
Not covered by this PR, will have to be addressed by future ones:

* Ability to switch radians/degrees in the inspector for angle properties (if actually wanted).
* Animations previously made will most likely break, need to add a way to make old ones compatible.
* Only added a "px" suffix to 2D position and a "m" one to 3D position, someone needs to go through the rest of the engine and add all remaining suffixes.
* Likely also need to track down usage of EditorSpinSlider outside properties to add suffixes to it too.
2021-06-30 12:38:25 -03:00
K. S. Ernest (iFire) Lee 364416ecd8 Remove singleton variable shadowing. 2021-06-30 02:37:20 -07:00
K. S. Ernest (iFire) Lee 90bb560984 Protocol shadows a variable. 2021-06-30 01:25:27 -07:00
Rémi Verschelde 74dc5e27c8
Rename `GdNavigationServer` to `GodotNavigationServer`
And rename `gdnavigation` module to simply `navigation`.
2021-06-30 00:35:18 +02:00
reduz 64c925cca6 Improve RID_Owner memory usage
* Ability to allocate empty objects in RID_Owner, so RID_PtrOwner is not needed in most cases.
* Improves cache usage, as objects are now allocated together
* Should improve performance in 2D rendering
2021-06-29 12:28:08 -03:00
Rémi Verschelde 05336adb86
Merge pull request #49905 from pfertyk/issue-46480-image-compress-crashes-godot
Validate image formats, check if resize_to_po2 failed
2021-06-29 12:44:20 +02:00
Rémi Verschelde a24f494861
Merge pull request #49944 from MisoMosiSpy/visual-script-logic-oper-mismatch
Fixes Visual Script node operator mismatch
2021-06-29 11:58:23 +02:00
Dipal M Zambare a0b0f7c4ee Fixes Visual script nodes operator mismatch issue #49943 2021-06-29 15:01:34 +05:30
Rémi Verschelde eb318d3e04
Merge pull request #49966 from Faless/net/4.x_ws_timeout
[Net] Add WebSocketServer handshake_timeout property.
2021-06-29 02:00:00 +02:00
Paweł Fertyk 3dae9993ac Validate image formats, check if resize_to_po2 failed 2021-06-28 21:17:06 +02:00
Rémi Verschelde 89f270f4c5
Merge pull request #49917 from groud/tree_disable_scroll
Allow disabling scrolling in Tree and implement horizontal scrolling
2021-06-28 18:41:23 +02:00
Rémi Verschelde 51350a951c
Merge pull request #49965 from Faless/net/4.x_fix_request
[Net] Fix WebSocketClient path parsing.
2021-06-28 18:38:51 +02:00
Gilles Roudière d7d32ced5b Implement Tree's internal minimum width calculation 2021-06-28 15:54:31 +02:00
Fabio Alessandrelli 458437edef [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.
2021-06-28 15:53:25 +02:00
Fabio Alessandrelli d244dda597 [Net] Fix WebSocketClient path parsing.
Recent changes to parse_url caused the client to make invalid HTTP
requests if no path was specified.
2021-06-28 15:09:58 +02:00
K. S. Ernest (iFire) Lee d67c5afa95 Make curve interpolate crash less. 2021-06-27 22:07:50 -07:00
reduz b1d15c51bc Implement native extension system
* Deprecates GDNative in favor of a simpler, lower level interface.
* New extension system allows registering core engine classes.
* Simple header interface in gdnative_interace.h
2021-06-25 17:32:45 -03:00
K. S. Ernest (iFire) Lee d8f284532a
Merge pull request #49854 from kleonc/visual_script_editor-fix-position-when-zooming-master
VisualScriptEditor Fix in graph position calculation (do not skip zoom)
2021-06-24 10:38:20 -07:00
Rémi Verschelde f1bcc641dd
Merge pull request #49583 from timothyqiu/texture-crash
Fix crash when freeing GradientTexture and NoiseTexture
2021-06-24 09:40:42 +02:00
kleonc 921e6efe0d VisualScriptEditor Fix in graph position calculation (do not skip zoom) 2021-06-23 22:01:15 +02:00
Grzegorz Puławski fa82727f5b Fixing mono build after instance() -> instanciate() name change 2021-06-23 16:07:23 +02:00
Martin 2e217a724e Fix logic operators mislabeled #49412 2021-06-23 12:04:55 +02:00
Aaron Franke 0ce49800ac
Use mouse and joypad enums instead of plain integers
Also MIDIMessage
2021-06-20 11:54:24 -04:00
Rémi Verschelde 671bd64e4a
Merge pull request #49754 from aaronfranke/is-eq-approx-sub-opt
Fix sub-optimal uses of is_equal_approx
2021-06-20 11:44:56 +02:00
Aaron Franke 45c24fd039
Fix sub-optimal uses of is_equal_approx 2021-06-20 03:03:06 -04:00
Lightning_A e28fd07b2b Rename `instance()`->`instantiate()` when it's a verb 2021-06-19 20:49:18 -06:00
Rémi Verschelde 9b7c963d19
Merge pull request #48804 from EricEzaM/scripting-multi-error-support
Added support for scripts reporting multiple errors to ScriptTextEditor
2021-06-20 00:38:49 +02:00
Rémi Verschelde d88be9b70c
Merge pull request #44806 from madmiraal/consolidate_json
Consolidate JSON, JSONParseResults and JSONParser into JSON
2021-06-19 21:45:34 +02:00
Eric M d0e78c86d7 Added support for scripts reporting multiple errors to ScriptTextEditor
Scripts can now report multiple errors to the scripting editors in the engine. UI elements were added to support multiple errors.
2021-06-19 22:20:30 +10:00
Marcel Admiraal 2bafcd3422 Consolidate JSON, JSONParseResults and JSONParser into JSON
Renames JSON.parse_string() to parse()
Renames JSON.decode_data() to stringify()
2021-06-19 08:01:40 +01:00
Rémi Verschelde a9c53fa599
Merge pull request #49287 from reduz/expose-variant-internal-binders
Make some Variant internal functions public.
2021-06-19 01:11:03 +02:00
George Marques c4fcc678df
Merge pull request #49449 from SpectralDragon/fix-enum-equal-operation
Fix equal operation for typed enums
2021-06-18 17:18:44 -03:00
George Marques b5f1e88b2e
GDScript: Fix setting type of operator return value
Also write type adjust when needed for binary operators.
2021-06-18 13:09:35 -03:00
Rémi Verschelde 7aebb8f81c
Merge pull request #44156 from aaronfranke/quat-angle-to
Add Quaternion angle_to method
2021-06-18 12:35:58 +02:00
Rémi Verschelde 3fc39954ec
Merge pull request #49638 from aaronfranke/multiply-transforms
Allow multiplying Transforms and Basis by numbers
2021-06-18 12:35:14 +02:00
Rémi Verschelde f6756e2bf5
Merge pull request #49698 from aaronfranke/prop-no-usage
Add PROPERTY_USAGE_NONE and use it
2021-06-18 12:28:05 +02:00
Rémi Verschelde 86aff37722
Merge pull request #32313 from YeldhamDev/format_args_values
Better format arguments in variant parser
2021-06-18 12:27:14 +02:00
Aaron Franke e6c7567da7
Fix a typo in C# bindings generator for default value types 2021-06-18 01:13:00 -04:00
Aaron Franke 93b494d4ae
Add Quaternion angle_to method 2021-06-17 23:57:00 -04:00
Michael Alexsander Silva Dias 0ff4095b36 Better format arguments in variant parser 2021-06-18 00:06:40 -03:00
Aaron Franke 8b692e8872
Add PROPERTY_USAGE_NONE and use it 2021-06-17 19:10:26 -04:00
Rémi Verschelde b02f42def7
Merge pull request #49043 from theoway/missing_description_vs_search_window_fixed
Fixes missing descriptions in Visual Script search window when adding nodes
2021-06-17 23:04:07 +02:00
Francois Belair a56c2e459b Translate file path to URI on LSP symbol requests 2021-06-17 10:36:41 -04:00
Rémi Verschelde bcd21b2957
Merge pull request #48070 from KoBeWi/greedmap
Fix GridMap still drawing when Alt+Tabbing
2021-06-17 12:29:13 +02:00
Rémi Verschelde b3e333bcf2
Merge pull request #48331 from Faless/net/4.x_enet_relay_lax
[Net] ENet non-relaying server now process broadcasts.
2021-06-17 12:26:54 +02:00
Rémi Verschelde 272a16d8ce
Merge pull request #49667 from Riteo/remove-grid-map-lock-view
Remove GridMap's "Lock View" option and a related method.
2021-06-17 01:03:17 +02:00
K. S. Ernest (iFire) Lee 479737538b
Merge pull request #49401 from fire/8-weights
Fix 8 bone weights in glTF2
2021-06-16 07:43:42 -07:00
Aaron Franke bd6ed3fb09
Allow multiplying Transforms and Basis by numbers 2021-06-15 22:26:29 -04:00
Riteo Siuga 7cb3476a1c
Remove GridMap's "Lock View" option and a related method.
Apparently this feature utilized a completely commented out 7+ years old
method, effectively doing nothing. Since it was designed with a completely
different editor design in mind it is pretty much incompatible and as such
it's best to remove it for now.
2021-06-16 04:14:37 +02:00
Umang Kalra 5e8d31ef0e Fixes missing descriptions in search window of visualscript 2021-06-15 20:30:54 +05:30
Rémi Verschelde fed31b1827
Merge pull request #49616 from BastiaanOlij/more_rename_transform
Adding some more missing renames for Transform3D and Quaternion
2021-06-15 16:50:52 +02:00
Bastiaan Olij 2161fd117b
Adding some more missing renames for Transform3D and Quaternion 2021-06-15 16:01:50 +02:00
Rémi Verschelde cbcdda60c0
Merge pull request #49570 from RandomShaper/fix_slow_scene_io 2021-06-15 14:51:24 +02:00
Rémi Verschelde 72f39e31b1
Merge pull request #49593 from bruvzg/tga_loader_fixes
Fix loading RLE compressed TGAs and invalid memory reads.
2021-06-15 00:08:35 +02:00
Rémi Verschelde f7fa5a0e3a
Merge pull request #49600 from vnen/gdnative-api-generator-var-writer
GDNative: Use VariantWriter for the API JSON generator
2021-06-14 18:43:54 +02:00
George Marques 49ce5e69ee
Fix default value binding in VisualScriptFunctionState 2021-06-14 12:26:05 -03:00
George Marques ad7141703e
GDNative: Use VariantWriter for the API JSON generator
Instead of the String representation, which can be finicky to work with.
VariantWriter is more robust since changes to it affects the whole
system thus it's changed less often and it's never ambiguous.
2021-06-14 10:30:58 -03:00
bruvzg 25cd29ae66 Fix loading RLE compressed TGA files.
Fix memory reads outside of input buffer when loading invalid TGA files.
2021-06-14 13:55:39 +03:00
Haoyu Qiu 37db8d6184 Fix crash when freeing GradientTexture and NoiseTexture 2021-06-14 12:32:19 +08:00
Julien Nguyen d6ae7edd80 Fix "super" call when having at least one argument 2021-06-13 17:46:03 +02:00
Bastiaan Olij 15c1a76361 Add stereoscopic rendering through multiview 2021-06-13 22:52:20 +10:00
Pedro J. Estébanez 2ca6b9c610 Fix slow load/save of scenes with many instances of the same script 2021-06-13 13:32:44 +02:00
Rémi Verschelde 600b4c9c7b
Merge pull request #34668 from aaronfranke/to-string
[Core] Reformat structure string operators
2021-06-13 11:58:24 +02:00
Pedro J. Estébanez f59488e94e Improve & fix Mono build
- Fix C++ compile errors about pending variable renames after the `Reference` to `RefCount` change.
- Fix C# compile errors due to the recent rename of `EnablePlugin()` and `Build()`, which are now underscore-prefixed in bindings.
- Additional rename: `godot_icall_Reference_Dtor` to  `godot_icall_RefCounted_Dtor`.
2021-06-13 11:21:14 +02:00
Rémi Verschelde 6d98f84abb
Merge pull request #48746 from KoBeWi/bane_of_all_virtual_compatibility
Consistently prefix bound virtual methods with _
2021-06-12 23:00:40 +02:00
Rémi Verschelde ac73059b56
Merge pull request #49123 from aaronfranke/it-is-time
Add a Time singleton
2021-06-12 22:55:25 +02:00
kobewi 7ff135b015 Consistently prefix bound virtual methods with _ 2021-06-12 00:55:52 +02:00
Rémi Verschelde 530e069bc3
Merge pull request #49312 from RandomShaper/reference_to_ref_count
Rename `Reference` to `RefCounted`
2021-06-11 19:46:25 +02:00
Rémi Verschelde 50d1e0ea99
Merge pull request #47835 from mortarroad/master-lossless-webp
Implement lossless WebP encoding
2021-06-11 19:34:36 +02:00
Pedro J. Estébanez 04688b92ff Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
Morris Tabor 1bc1e94208 Implement lossless WebP encoding 2021-06-11 18:46:04 +02:00
Aaron Franke 554c776e08
Reformat structure string operators
The order of numbers is not changed except for Transform2D. All logic is done inside of their structures (and not in Variant).

For the number of decimals printed, they now use String::num_real which works best with real_t, except for Color which is fixed at 4 decimals (this is a reliable number of float digits when converting from 16-bpc so it seems like a good choice)
2021-06-11 10:53:20 -04:00
Rémi Verschelde 8d4046929c
Merge pull request #49511 from akien-mga/core-diraccess-fileaccess-io
Core: Move DirAccess and FileAccess to `core/io`
2021-06-11 16:51:10 +02:00
Rémi Verschelde 6b0183ec89
Merge pull request #49279 from Calinou/rename-string-is-abs-path-method
Rename `String.is_abs_path()` to `String.is_absolute_path()`
2021-06-11 15:58:16 +02:00
Rémi Verschelde 6107d9e180
Merge pull request #34566 from Heikki00/34541_to_json_precision
Increased String::num default decimal precision
2021-06-11 15:56:59 +02:00
Aaron Franke f64fea1b23
Add Time singleton 2021-06-11 09:32:39 -04:00
Rémi Verschelde 9e328bb5b7
Core: Move DirAccess and FileAccess to `core/io`
File handling APIs are typically considered part of I/O, and we did have most
`FileAccess` implementations in `core/io` already.
2021-06-11 14:52:39 +02:00
Rémi Verschelde 1f69213175
Merge pull request #48253 from lyuma/fix_gdscript_export
Fix @export and prevent non-exportable References from being exported.
2021-06-11 14:24:31 +02:00
Rémi Verschelde 80e5997154
Merge pull request #49499 from cptchuckles/fix-var2str-sigil
Let var2str display StringName with correct sigil
2021-06-11 12:45:54 +02:00
Lyuma 771190a9db Fix regression from 160c260 causing export of non-@export properties. 2021-06-10 20:35:58 -07:00
Jonathan Gollnick 6710ad1737
Let var2str display StringName with correct sigil 2021-06-10 16:30:28 -05:00
bruvzg e624e570bc [CTL] Improve font fallback order selection. 2021-06-10 22:25:32 +03:00
Rémi Verschelde 58c1235111
Merge pull request #49265 from KoBeWi/keepfreplace_2_keepers_of_replace
Move FindReplaceBar out of CodeTextEditor
2021-06-09 21:07:27 +02:00
Rémi Verschelde 0818a466c0
Merge pull request #49462 from TokageItLab/update-property-selector-icon-list
update property selector's icon list
2021-06-09 17:54:59 +02:00
Silc 'Tokage' Renew 67689dac7b update property selector's icon list and rename Quat.svg to Quaternion.svg 2021-06-09 23:50:29 +09:00
Владислав Прусаков 6449c5f246 Fix equal operation for typed enums 2021-06-09 02:52:21 +03:00
kobewi da6aebeb4c Move FindReplaceBar out of CodeTextEditor 2021-06-08 23:23:07 +02:00
Jonas Bernemann 3b18aa4910 Rename missing shortcut names in visual script editor
With the change of the shortcuts for common actions like delete, copy
and paste the delete menu items in the visual script editor for members
where missing because of a missing shortcut.
2021-06-08 20:03:19 +02:00
K. S. Ernest (iFire) Lee 291e735972 Fix 8 bone weights in glTF2
Don't spam in glTF2 import either.

Clear() in SurfaceTool does not keep 8 weights.
2021-06-07 14:33:44 -07:00
Rémi Verschelde 69e6d65295
Merge pull request #49367 from Calinou/gdscript-highligher-add-annotations
Highlight annotations in the GDScript syntax highlighter
2021-06-07 17:20:11 +02:00
Rémi Verschelde 896aa94283
Merge pull request #49221 from Faless/mp/4.x_rpc_refactor
[Net] Refactor RPCs, remove RSETs
2021-06-07 17:00:08 +02:00
Rémi Verschelde c1c76850cb
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.
2021-06-07 11:03:08 +02:00
Hugo Locurcio 32e97cb805
Highlight annotations in the GDScript syntax highlighter
By default, a orange color is used to highlight annotations in the
script editor.
2021-06-06 21:33:23 +02:00
Yuri Roubinsky e02e50505c Fixed color for node headers in visual scripts 2021-06-06 21:20:05 +03:00
Rémi Verschelde 6f7d45d210
Merge pull request #45364 from madmiraal/rename-quat
Rename Quat to Quaternion
2021-06-05 13:32:08 +02:00
Rémi Verschelde 537d8899e9
Merge pull request #49319 from madmiraal/add-missing-mono-overrides
Add missing override keyword to CSharpLanguage::is_control_flow_keyword()
2021-06-05 13:30:29 +02:00
PouleyKetchoupp ee4b756a51 More explanatory names for RigidBody modes
MODE_DYNAMIC instead of MODE_RIGID
MODE_DYNAMIC_LOCKED instead of MODE_CHARACTER

No more special case for sleeping behavior for MODE_DYNAMIC_LOCKED
(MODE_CHARACTER was forcing the body not to sleep, which is redundant
with can_sleep and wasn't done in Bullet).
2021-06-04 11:40:36 -07:00
Marcel Admiraal beae6527e0 Add missing override keyword to CSharpLanguage::is_control_flow_keyword() 2021-06-04 18:39:30 +01:00
Marcel Admiraal 8acd13a456 Rename Quat to Quaternion 2021-06-04 18:14:32 +01:00
Rémi Verschelde 5dc923d386
Merge pull request #49297 from aaronfranke/anim-type-tr3d
Rename Animation TYPE_TRANSFORM to TYPE_TRANSFORM3D
2021-06-04 14:11:03 +02:00
Bastiaan Olij 3ead536e26 Rename GODOT_VARIANT_TYPE_TRANSFORM to GODOT_VARIANT_TYPE_TRANSFORM3D 2021-06-04 21:24:15 +10:00
Aaron Franke 125d1a7cd3
Rename Animation TYPE_TRANSFORM to TYPE_TRANSFORM3D 2021-06-03 21:11:54 -04:00
Aaron Franke acd695060b
Disable 3D-only modules when 3D is disabled 2021-06-03 17:45:28 -04:00
Rémi Verschelde 5d9cab3aeb
Merge pull request #38430 from aaronfranke/transform3d 2021-06-03 23:07:21 +02:00
Aaron Franke 2e13e3ed4a
Allow clamping vectors and colors 2021-06-03 12:05:20 -04:00
Aaron Franke 94bc0bd919
Rename Vector2 clamped to limit_length and add limit_length to Vector3 2021-06-03 12:04:57 -04:00
Hugo Locurcio 5ea1c75d63
Rename `String.is_abs_path()` to `String.is_absolute_path()`
This is more consistent with `NodePath.is_absolute()`.
2021-06-03 16:00:06 +02:00
Aaron Franke 0ac4051c00
Update documentation for Transform3D 2021-06-03 07:30:01 -04:00
Aaron Franke 39e28c49ed
Rename Transform to Transform3D in GDNative 2021-06-03 07:30:01 -04:00
Aaron Franke a3c29ed899
Rename files and the exposed name for Transform3D 2021-06-03 07:30:01 -04:00
Aaron Franke 08a85352fb
Rename Variant TRANSFORM to TRANSFORM3D
Also _transform to _transform3d
2021-06-03 07:30:01 -04:00
Aaron Franke de3f6699a5
Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
Fabio Alessandrelli d779b5aa3e [Net] Refactor RPCs, remove RSETs
In this PR:
- Removed rset
- rpc_config can now optionally configure transfer mode
  (reliable/unreliable/ordered) and channel (channels are not actually
  implemented yet.)
- Refactor how the RPC id is computed to minimize the logic in Node and
  scripts that now only needs a single `get_rpc_methods` function.
2021-06-01 17:24:21 +02:00
Fabio Alessandrelli ae04dac2db Remove server platform 2021-06-01 16:27:54 +02:00
Rémi Verschelde 59b524ae4c
Merge pull request #49067 from JFonS/fix_gcc_warnings
Fix some warnings raised by GCC-11.1
2021-06-01 10:47:37 +02:00
Rémi Verschelde e615060cd6
Merge pull request #49132 from Calinou/editor-syntax-themes-rename-default
Rename the bundled text editor themes for consistency with themes
2021-05-31 14:47:49 +02:00
Hugo Locurcio 1704be0a44
Rename the bundled text editor themes for consistency with themes
The Adaptive text editor theme is the default, and has therefore
been renamed Default for consistency with the Default theme preset.
It keeps its automatic dark/light switch status.

The Default text editor theme was actually a legacy Godot 2-style theme,
so it has been renamed to Godot 2 to match the theme preset.
Its background color has been changed to be a constant opaque color,
since the new editor theme made the theme look less good on a translucent
background. The previous background color on light theme also lacked
contrast.
2021-05-31 14:02:13 +02:00
Rémi Verschelde 3c7f09bfeb
Merge pull request #49194 from madmiraal/fix-43544
Fix UV mapping on CSGSphere
2021-05-31 13:05:48 +02:00
Rémi Verschelde 652a9debad
Merge pull request #49191 from pfertyk/issue-46020-pluginscript-instance-has-crashes-godot
Check for _language in PluginScript.instance_has
2021-05-31 12:46:07 +02:00
reduz 0d2e02945b Implement shader caching
* Shader compilation is now cached. Subsequent loads take less than a millisecond.
* Improved game, editor and project manager startup time.
* Editor uses .godot/shader_cache to store shaders.
* Game uses user://shader_cache
* Project manager uses $config_dir/shader_cache
* Options to tweak shader caching in project settings.
* Editor path configuration moved from EditorSettings to new class, EditorPaths, so it can be available early on (before shaders are compiled).
* Reworked ShaderCompilerRD to ensure deterministic shader code creation (else shader may change and cache will be invalidated).
* Added shader compression with SMOLV: https://github.com/aras-p/smol-v
2021-05-31 10:13:09 +02:00
Rémi Verschelde 39df47b88f
Merge pull request #48915 from lyuma/gltf_mesh_nodes_bones
gltf: Fix mesh nodes which are also bones.
2021-05-31 09:55:05 +02:00
Paweł Fertyk 4b25892501 Check for _language in PluginScript.instance_has 2021-05-30 22:21:26 +02:00
Marcel Admiraal 3dc1a2951b Fix UV mapping on CSGSphere 2021-05-29 19:14:52 +01:00
Heikki Simojoki 09a905ca80
Increase String::num default decimal precision
Fixes #34541

Renamed MAX_DIGITS to MAX_DECIMALS, since it only changes the
amount of digits after the decimal point.

Increased MAX_DECIMALS to 32, and made String::num use
MAX_DECIMALS consistently. If -1 is passed as
decimal precision to String::num, it now gets changed to
the correct precision based on the number's magnitude,
instead of using printf default(which is 6)

String::num_real also calculates the correct precision now.

Also made the types used in floating-point math more
consistent in a few places.
2021-05-29 11:24:57 -04:00
Yuri Roubinsky b63f9b5961
Merge pull request #48964 from DavidCambre/VisualScript_Missing_SequencePort_Seed 2021-05-29 07:27:38 +03:00
Lyuma e839a3291b 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-27 19:33:01 -07:00
Rémi Verschelde 364ea7f280
Merge pull request #49114 from vnen/gdscript-fix-self-function-type-check
GDScript: Fix function signature check for self calls
2021-05-26 20:59:17 +02:00
Rémi Verschelde 78bbb2cae1
Merge pull request #49112 from vnen/gdscript-assign-type-check
GDScript: Use analyzer data to decide assignment conversion
2021-05-26 20:34:43 +02:00
George Marques a23fc45727
GDScript: Fix function signature check for self calls 2021-05-26 15:33:18 -03:00
George Marques c7459e3855
GDScript: Use analyzer data to decide assignment conversion
Since there might be tricky cases in the analyzer (in the case of unsafe
lines) which would need to be properly checked again. Instead, this
splits the code generator in two functions and use information set by
the analyzer to tell which function to use, without a need to re-check.
2021-05-26 14:09:00 -03:00
jfons f8e34209af Fix some warnings raised by GCC-11.1 2021-05-25 17:23:53 +02:00
Marcel Admiraal da5d7db610 Rename File::get_len() get_length() 2021-05-25 11:54:28 +01:00
Rémi Verschelde 215e43242c
Merge pull request #49037 from vnen/fix-callable-freed-crash 2021-05-24 19:52:32 +02:00
George Marques ea44744e2d
Make Callable not crash on call when the object has been freed
Also add a GDScript test for this case.
2021-05-24 14:23:02 -03:00
Rémi Verschelde c321f6ff47
Merge pull request #48644 from Calinou/editor-increase-icon-saturation
Increase icon saturation by 30% for all editor icons
2021-05-24 19:20:09 +02:00
George Marques ffdb3cccd2
GDScript: Fix error handler for tests
This changes the error message to be more clear on the output files and
also fixes an issue with the relative path of the offending file that
was not trimmed correctly.
2021-05-24 14:17:20 -03:00
Rémi Verschelde 65eff1cfdd
Merge pull request #46866 from bruvzg/symlinks_and_macos_gdn_framework_export_4 2021-05-24 15:14:02 +02:00
bruvzg a1cb6f07a1
Add GDNative Framework loading and export support. 2021-05-24 12:49:05 +03:00
Rémi Verschelde de4c17f716
Merge pull request #48916 from mortarroad/master-convex-hull-ported
Replace QuickHull with Bullet's convex hull computer.
2021-05-22 23:22:48 +02:00
Morris Tabor d1bc88d426 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:
- extended PagedAllocator to allow leaked objects
- applied patch from https://github.com/bulletphysics/bullet3/pull/3037
2021-05-22 22:35:42 +02:00
K. S. Ernest (iFire) Lee fc8ea1d828 Update with experimental mesh optimizer.
Normals being optimized has better quality now.

Test simplify once and then use a slightly less tolerant 
error for the target error.
2021-05-22 08:58:50 -07:00
David Cambré d7205ef1d0 The built in function math/seed was missing the sequenceport. 2021-05-22 14:01:35 +02:00
Aaron Franke aa65c91618
Rename Vector2 Perpendicular to Orthogonal in C# 2021-05-21 21:02:38 -04:00
Rémi Verschelde 3ee034451a
Merge pull request #48885 from JFonS/upgrade_embree
Upgrade Embree to the latest official release (3.13.0).
2021-05-21 18:30:02 +02:00
jfons 767e374dce 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.
2021-05-21 17:00:24 +02:00
Rémi Verschelde 82f688ce9b
Merge pull request #48913 from lyuma/gltf_named_binds_dedup
Fix incorrect skin deduplication when using named binds
2021-05-21 11:19:11 +02:00
Lyuma 5a9eee6b1a gltf: Fail gracefully when a mesh instance fails. 2021-05-20 20:28:32 -07:00
Lyuma 60f620411e Fix incorrect skin deduplication when using named binds 2021-05-20 20:26:11 -07:00
Rémi Verschelde 37a417e838
Merge pull request #48904 from fire/gltf-img-failure
When one invalid image fails, it should only fail that single image.
2021-05-21 00:32:48 +02:00
K. S. Ernest (iFire) Lee a81f4dd5a7 When one invalid image fails, it should only fail that single image.
Move to a more graceful degradation 3d asset import model.
2021-05-20 14:30:19 -07:00
Tomasz Chabora b1859510ab Change behavior of String.right 2021-05-20 23:07:57 +02:00
Rémi Verschelde 78d85de13b
Merge pull request #48805 from radishes/noise-image-offset
Add support for generating noise images with an offset
2021-05-20 21:00:38 +02:00
Casey Foote 97c8d9f348 Add support for generating noise images with an offset. 2021-05-20 08:20:23 -07:00
Rémi Verschelde 4219a4cb6f
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:38:56 +02:00
Rémi Verschelde 169268ae20
Merge pull request #48657 from Calinou/test-add-gdscript
Add a unit test suite for GDScript
2021-05-19 20:49:03 +02:00
Yuri Roubinsky 7b261d1cb7 Show colored rects for autocompletion of Color constants in functions 2021-05-19 14:40:03 +03:00
Rémi Verschelde 95bb7207f3
Merge pull request #46773 from trollodel/TreeItem+
Improve TreeItem API and allow to move nodes
2021-05-18 10:49:45 +02:00
George Marques cdb3726fe6
Merge pull request #48347 from Blackiris/fix-temporary-key-not-released
GDScript: Fix temporary value not released when used as a dictionary key
2021-05-17 18:50:25 -03:00
trollodel bca0d36fe6 Improve TreeItem API and allow to move nodes 2021-05-17 22:06:46 +02:00
Rémi Verschelde 6c367f8e0d
Merge pull request #48168 from LightningAA/control-to-ctrl-4.0 2021-05-17 17:38:02 +02:00
Rémi Verschelde 2fcfc83da9
Merge pull request #48793 from vnen/gdscript-fix-temp-type-adjust
GDScript: Fix crash caused by uninitialized temp stack slots
2021-05-17 17:34:19 +02:00
George Marques 10a1f64968
GDScript: Fix crash caused by uninitialized temp stack slots
This adds initialization to every typed temporary stack slot at the
beginning of the function call instead of emitting instructions, since
those might be in a conditional branch and not be called.
2021-05-17 10:59:43 -03:00
Pedro J. Estébanez 469fa47e06
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-17 15:06:19 +02:00
Rémi Verschelde 37c3b33253
Merge pull request #48605 from sent44/scripteditor_get_codeedit
Add `get_base_editor` to `ScriptEditorBase`
2021-05-16 23:06:01 +02:00
Rémi Verschelde a7421612d0
Merge pull request #48767 from vnen/gdscript-builtin-static-methods
GDScript: Add support for builtin static method calls
2021-05-16 22:29:32 +02:00
George Marques ec783dd885
GDScript: Add support for builtin static method calls 2021-05-16 11:54:33 -03:00
sent44 2b30728ebf Add get_base_editor to ScriptEditorBase 2021-05-15 18:47:00 +07:00
Rémi Verschelde a40a08827c
Merge pull request #46568 from akien-mga/basisu_20210130
basis_universal: Update to upstream commit from Apr 16, 2021
2021-05-13 14:55:49 +02:00
Hugo Locurcio 6c528e4fae
Add a unit test suite for GDScript
This tests run-time script loading.
2021-05-12 16:20:57 +02:00
Rémi Verschelde ed11756d26
GDNative: Fix size mismatch on 32-bit platforms for Signal and Callable
Fixes #48645.
2021-05-11 20:25:01 +02:00
Hugo Locurcio 7375a02015
Increase icon saturation by 30% for all editor icons
More saturated icons go better with the new editor theme.

These color changes only apply when using a dark theme.

The editor icon saturation can still be adjusted in the Editor Settings.
Setting the editor icon saturation setting to 0.77 should roughly match
the old icon saturation.
2021-05-11 18:15:31 +02:00
JFonS 1cab622e94
Add checks for __SSE2__ in the lightmap raycaster
(cherry picked from commit 20717990fd)
2021-05-11 14:09:44 +02:00
Rémi Verschelde 31a9afb135
SCons: Disable embree-based modules on x86 (32-bit)
Fixes #48482.

(cherry picked from commit e53422c8f9)
2021-05-11 14:09:44 +02:00
Morris Tabor 89a8bbda0a fix misaligned loads in bmp loader 2021-05-08 17:07:44 +02:00
Lightning_A 97fecd1b69 Rename "Control" key to "Ctrl" and add "_pressed" suffix to all InputEventWithModifiers properties/methods 2021-05-07 14:00:50 -06:00
Rémi Verschelde 2d133177e9
basis_universal: Update to upstream commit from Apr 16, 2021
BinomialLLC/basis_universal@ba1c3e40f1.
2021-05-07 17:26:11 +02:00
Rémi Verschelde bcbd480c32
Merge pull request #45144 from dalexeev/color-consts
Rename color constants (alternative)
2021-05-07 12:22:49 +02:00
Rémi Verschelde 8962d36bb1
Merge pull request #33577 from Calinou/highlight-control-flow-keywords
Highlight control flow keywords with a different color
2021-05-07 00:52:50 +02:00
Julien Nguyen 82522662f8 Fix temporary value not released when used as a dictionary key 2021-05-06 22:13:05 +02:00
Rémi Verschelde ae2359fc1f
Merge pull request #47776 from Razoric480/foreport
Implement LSP didDeleteFiles & make parser aware of sub-nodes
2021-05-06 20:46:18 +02:00
Rémi Verschelde ee4ef9709d
Merge pull request #46714 from HaSa1002/fix-gdscript-underscore-strict
Fix GDScript Tokenizer being very strict about the number of underscores
2021-05-06 20:19:45 +02:00
Rémi Verschelde 6e621441ca
Merge pull request #45607 from Calinou/improve-editor-theme
Improve the editor theme
2021-05-06 16:45:07 +02:00
Hugo Locurcio 3f078c99f6
Rename `IP_Unix`, `IP_Address` and `TCP_Server` to remove underscores 2021-05-06 02:52:01 +02:00
Hugo Locurcio e905e8f145
Highlight control flow keywords with a different color
This makes them easier to distinguish from other keywords.
2021-05-05 22:38:12 +02:00
Rémi Verschelde 11931d06ae
Merge pull request #48476 from AndreaCatania/AndreaCatania-patch-4
Add env.Depends to modules_enabled.gen.h generator
2021-05-05 13:19:45 +02:00
Andrea Catania b667e72adf 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.
2021-05-05 11:44:29 +02:00
Rémi Verschelde dfbabcdaeb
Merge pull request #48453 from JFonS/improve_raycast_module_scsub
Port changes to the "raycast" module build files from 3.x
2021-05-04 17:55:25 +02:00
jfons 575543ce53 Port changes to the "raycast" module build files from 3.x 2021-05-04 17:21:41 +02:00
Rémi Verschelde e196733e88
Re-bind posmod, use int64_t instead of int
Fixes #48420, fixes #48421.
The binding was missed when moving GDScript built-in to Global Scope it seems.

Co-authored-by: kleonc <9283098+kleonc@users.noreply.github.com>
2021-05-04 13:25:08 +02:00
Aaron Franke 0de9a7d803
Rename `doubleclick` to `double_click` 2021-05-04 04:38:08 -04:00
Rémi Verschelde 302b6ef576
Merge pull request #47798 from ray90514/bug#47620
Fix constants at function scope are not defined as constants for completion
2021-05-04 08:20:03 +02:00
jfons 6995b0429c Assorted fixes to UV unwrapping and GPU lightmapper
Various fixes to UV2 unwrapping and the GPU lightmapper. Listed here for
context in case of git blame/bisect:

* Fix UV2 unwrapping on import, also cleaned up the unwrap cache code.
* Fix saving of RGBA images in EXR format.
* Fixes to the GPU lightmapper:
	- Added padding between atlas elements, avoids bleeding.
	- Remove old SDF generation code.
	- Fix baked attenuation for Omni/Spot lights.
	- Fix baking of material properties onto UV2 (wireframe was
	  wrongly used before).
	- Disable statically baked lights for objects that have a
	  lightmap texture to avoid applying the same light twice.
	- Fix lightmap pairing in RendererSceneCull.
	- Fix UV2 array generated from `RenderingServer::mesh_surface_get_arrays()`.
	- Port autoexposure fix for OIDN from 3.x.
	- Save debug textures as EXR when using floating point format.
2021-05-03 18:10:34 +02:00
Rémi Verschelde 4e06731346
Merge pull request #47958 from Xrayez/gdscript-rename-test-scripts
Rename GDScript test script filenames to use `snake_case`
2021-05-03 15:44:46 +02:00
Fabio Alessandrelli 015fc2ad4f
Merge pull request #48205 from Faless/net/4.x_url_parsing
[Net] Implement String::parse_url for parsing URLs.
2021-05-03 13:55:57 +02:00
Rémi Verschelde 8abd50359b
Merge pull request #48363 from aaronfranke/tan
Fix some tangent Color typos in GLTF
2021-05-02 10:08:22 +02:00
rafallus abf6872c38 Change Path to Path3D in CSGPolygon3D 2021-05-01 22:43:36 -05:00
Aaron Franke b06cbd9f51
Fix some tangent Color typos in GLTF 2021-05-01 18:49:23 -04:00
Rémi Verschelde 0ad03ba052
Merge pull request #48333 from MaxStgs/master
Add WebSocketMultiplayerPeer _incoming_packets check bound
2021-04-30 20:12:35 +02:00
MaxStgs 05ad08941b Add WebSocketMultiplayerPeer _incoming_packets check bound 2021-04-30 21:00:52 +05:00
Rafał Mikrut efcb097674 Prevent setting too big or too small Collision Mask and Layer 2021-04-30 17:19:04 +02:00
Fabio Alessandrelli fc255bde29 [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.
2021-04-30 16:29:56 +02:00
Rémi Verschelde cab5064f20
doc: Sync classref with current source
And typo fix from https://github.com/godotengine/godot-docs/pull/4882.
2021-04-29 12:11:40 +02:00
Rémi Verschelde 5b16020846
Replace remaining uses of `NULL` with `nullptr`
Follow-up to #38736 (these uses were likely added after this PR was merged).
2021-04-29 11:53:27 +02:00
Rémi Verschelde 690c00d522
Merge pull request #48235 from Faless/feature/network-local-port-enet-salvaged
[Net] Implement NetworkedMultiplayerENet.get_local_port
2021-04-28 19:04:09 +02:00
Fabio Alessandrelli cd22a2be2f Implement NetworkedMultiplayerENet.get_local_port
Allows retrieving the local port to which the peer is bound.
2021-04-28 16:53:13 +02:00
Rémi Verschelde f505a26798
Merge pull request #47454 from vnen/gdscript-lambda 2021-04-28 16:44:59 +02:00
George Marques 9ed0f0384c
GDScript: Fix crash when base of an attribute is invalid
In attribute expressions (`a.b`) it's possible that the base has an
incorrect syntax and thus become a nullptr expression in the tree. This
commit add the check for this case to fail gracefully instead of
crashing.
2021-04-28 11:09:40 -03:00
George Marques c201b212c7
GDScript: Implement lambdas compilation and runtime 2021-04-28 11:09:38 -03:00
George Marques 3155368093
GDScript: Add lambdas to the type analyzer
- Lambdas are always callables (no specific signature match).
- Captures from the current context are evaluated.
2021-04-28 10:56:16 -03:00
George Marques c6e66a43b0
GDScript: Add lambda syntax parsing
Lambda syntax is the same as a the function syntax (using the same
`func` keyword) except that the name is optional and it can be embedded
anywhere an expression is expected. E.g.:

    func _ready():
        var my_lambda = func(x):
            print(x)
        my_lambda.call("hello")
2021-04-28 10:56:16 -03:00
David Snopek b77925d246 Fixes #48178: WebXR broken when built with Emscripten 2.0.13 or later 2021-04-28 08:27:51 -05:00
Rémi Verschelde 35a8693e6a
Raycast: Fix use of removed copymem after #48239 2021-04-28 11:09:20 +02:00
Rémi Verschelde 305b2a15bf
Merge pull request #48239 from akien-mga/goodbye-copymem
Core: Drop custom `copymem`/`zeromem` defines
2021-04-28 11:04:05 +02:00
Rémi Verschelde 1c2766e240
Merge pull request #48245 from madmiraal/fix-24111
Update CSGMesh3D's documentation to explain how vertex normals are used
2021-04-27 23:04:59 +02:00
Hugo Locurcio 60b70c77e0
Improve the editor theme
The editor theme now makes use of rounded corners and less borders
to follow modern visual trends.

The default theme's colors were also tweaked to make the blue hue
more subtle (similar to the Arc theme, which was removed as a
consequence). The Alien theme was replaced by a Breeze Dark theme,
which should blend in well with the KDE theme.
2021-04-27 22:38:26 +02:00
Marcel Admiraal c2f6a73e4e Update CSGMesh3D's documentation to explain how vertex normals are used 2021-04-27 18:32:25 +01:00
Rémi Verschelde 95cfce661b
Merge pull request #48050 from JFonS/occlusion_culling 2021-04-27 19:07:12 +02:00
Rémi Verschelde 8247667a3e
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.
2021-04-27 16:26:27 +02:00
Johannes Witt bab36f1273
Fix CSG Path Polygon cache being removed after connect
fixes #30229
2021-04-27 13:58:01 +02:00
Rémi Verschelde 83cc6bcf55
Merge pull request #48187 from brakhane/remove-dupe-comments
Remove duplicate comments
2021-04-27 09:42:09 +02:00
Rémi Verschelde 639b02f454
Merge pull request #48185 from Calinou/codestyle-no-auto
Remove uses of `auto` for better readability and online code reviews
2021-04-26 22:32:50 +02:00
Hugo Locurcio 5d124c4a8f
Remove uses of `auto` for better readability and online code reviews
The current code style guidelines forbid the use of `auto`.

Some uses of `auto` are still present, such as in UWP code (which
can't be currently tested) and macros (where removing `auto` isn't
easy).
2021-04-26 14:59:28 +02:00
Rémi Verschelde f6e5ea774b
Merge pull request #48172 from madmiraal/fix-empty-csgshape-error
Fix new `CSGMesh` errors
2021-04-26 12:19:48 +02:00
Fabio Alessandrelli 3bb40669d5 [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.
2021-04-26 09:55:24 +02:00
Dennis Brakhane 31d41d83c3 Remove duplicate comments
A few single line comments were duplicated, probably due to bad merges.

This commit removes the obviously duplicate ones.
2021-04-25 20:03:52 +02:00
Marcel Admiraal 4311c2f66e Fix CSGMesh undo not refreshing gizmo 2021-04-25 09:07:26 +01:00
Marcel Admiraal 48d3269aa4 Fix empty CSGShape error 2021-04-25 08:08:14 +01:00
Rémi Verschelde d1dc28e46c
Merge pull request #48139 from vnen/gdscript-dict-keys
Fix mismatch between String and StringName in dictionary keys
2021-04-24 19:46:59 +02:00
Rémi Verschelde db90ab86b9
Merge pull request #47891 from Razoric480/lsp-update-filesystem
Make LSP update the filesystem for changed scripts
2021-04-24 13:17:31 +02:00
jfons 4d9d99bb82 Implement occlusion culling
Added an occlusion culling system with support for static occluder meshes.
It can be enabled via `Project Settings > Rendering > Occlusion Culling > Use Occlusion Culling`.

Occluders are defined via the new `Occluder3D` resource and instanced using the new
`OccluderInstance3D` node. The occluders can also be automatically baked from a
scene using the built-in editor plugin.
2021-04-23 21:45:23 +02:00
George Marques 1e4ff2ede6
GDScript: Make sure Lua-style dicts use StringName as keys 2021-04-23 16:00:23 -03:00
George Marques c7511de02e
GDScript: Fix resolution of dictionary keys
There was a mixup between String and StringName keys. Now they're
clearly separated. This also means you have to consider which type
you're using for the dictionary keys and how you are accessing them.
2021-04-23 15:42:33 -03:00
rafallus cfa06f0f76 Unexpose _direct_state_changed in PhysicsBody
Removed _direct_state_changed bindings
Affects 2D and 3D nodes
Callbacks now use Callable
Tests were changed accordingly
2021-04-22 23:20:58 -05:00
Rémi Verschelde 4753b309a8
Merge pull request #48074 from akien-mga/fbx-fix-zlib-unbundling
fbx: Fix include for zlib that broke unbundling
2021-04-22 16:53:06 +02:00
bruvzg b56241f22f
ICU: Update to version 69.1, improve ICU data export process. 2021-04-22 16:56:53 +03:00
bruvzg a4423c82f8
Fix crash on GDNative API json generator exit. 2021-04-22 10:24:13 +03:00
Rémi Verschelde 93b7406138
fbx: Fix include for zlib that broke unbundling
It's possible to link against system zlib on Linux, so we should use system paths.
2021-04-22 02:18:44 +02:00
kobewi 9fbef6f7db Fix GridMap still drawing when Alt+Tabbing 2021-04-22 01:18:30 +02:00
Rémi Verschelde 8a8dd9cef4
Merge pull request #47896 from Calinou/videoplayer-stream-position-warning
Print a warning when trying to seek in VideoPlayer
2021-04-20 20:07:13 +02:00
Rémi Verschelde fdf041a466
Merge pull request #47347 from nekomatata/heightmap-support
Heightmap collision shape support in Godot Physics
2021-04-20 17:40:28 +02:00
Rémi Verschelde a9ecf66342
Merge pull request #47956 from vnen/gdscript-double-stack
GDScript: Use special stack space for temporaries to reduce type changes
2021-04-20 17:39:09 +02:00
Rémi Verschelde 8ba06e3161
Merge pull request #47448 from madmiraal/rename-lineedit-cursor
Rename LineEdit getters and setters to match property names
2021-04-19 10:40:29 +02:00
Rémi Verschelde dfe4feb188
Merge pull request #47917 from akien-mga/squish-decompress-only
Import: Cleanup and optimize etcpak compression method
2021-04-18 17:00:21 +02:00
Marcel Admiraal 86822b187e Rename LineEdit caret_* properties getters and setters to match property 2021-04-17 12:41:23 +01:00
Ignacio Roldán Etcheverry 27a66ee528 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:45:52 +02:00
Andrii Doroshenko (Xrayez) 1e26bf23c2 Rename GDScript test script filenames to use `snake_case` 2021-04-16 22:16:19 +03:00
Rémi Verschelde 0ab928e060
Import: Cleanup and optimize etcpak compression method
Avoid unnecessary allocation of temporary buffers for each mip, and creates
only one Image with the compressed data.
Also renames variable and reorders code for clarity.

Clarify that squish is now only used for decompression.

Documented which formats can be decompressed in Image.
2021-04-16 17:08:36 +02:00
George Marques 9411bf05a4
GDScript: Adjust type of temporaries when needed 2021-04-16 12:04:08 -03:00
Rémi Verschelde 200d9a734c
Merge pull request #47701 from vnen/gdscript-test-runner 2021-04-16 10:34:39 +02:00
Rémi Verschelde 88015f4e72
Merge pull request #47880 from RevoluPowered/fix-fbx-parser
FBX Improve Parser and File Compatibility
2021-04-16 08:41:46 +02:00
Rémi Verschelde c7a4e2196e
Merge pull request #47878 from clayjohn/rename-get_surface_material
Rename get_surface_material to get_surface_override_material
2021-04-15 07:57:15 +02:00
Gordon MacPherson 061b77e5e6 This stops using FBXPropertyTable as a pointer.
The base object will inherit the property table, for every FBX object, if it doesn't exist it will be ignored.

The previous code was dangerous and not simple to understand, this makes the code simpler and should result in no leaks with PropertyTable.

Features/Fixes:

Adds ability for multiple millions of polygons to be loaded.
Fixes memory leaks with tokens
Fixes memory leaks with property table
Fixes loading some corrupt files
Fixes meshes not having a unique name to the mesh node.
Opens up loading for two more versions: 7100 and 7200, up to 2020.
Preliminary support for Cinema4D files in parser now, before this was not possible it would cause memory corruption, which is gone now.

FBXProperties not being pointers presented simpler challenges in the long run also, fixed a bunch of bugs.
2021-04-15 05:54:50 +01:00
clayjohn 92731d292c Rename get_surface_material to get_surface_override_material 2021-04-14 20:24:03 -07:00
Hugo Locurcio ea46639e22
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.
2021-04-14 20:39:13 +02:00
George Marques 40502a1689
GDScript: Pool temporary values by type on the stack
So the stack slots perform less type changes, which is useful for
future optimizations.
2021-04-14 14:35:51 -03:00
Francois Belair b16bb33a5b Make LSP update the filesystem of changed scripts
This updates global classes and exposes base member variables.
Fixes #39713
2021-04-14 13:12:39 -04:00
Rémi Verschelde b6a31d0bf6
Merge pull request #47890 from akien-mga/etcpak-compress-only
etcpak: We only need the compression code, remove rest of etcpak app
2021-04-14 17:44:20 +02:00
Rémi Verschelde 638cfec853
etcpak: We only need the compression code, remove rest of etcpak app
We do our own image loading, threading, and memory management in Godot already,
so the only components we need from etcpak (at least as of now) are the
`Compress*` methods defined in `ProcessDxtc.cpp` and `ProcessRGB.cpp`.

So we don't need to compile or vendor the rest.
2021-04-14 16:50:02 +02:00
reduz d3b49c416a Refactor GLSL shader compilation
-Used a more consistent set of keywords for the shader
-Remove all harcoded entry points
-Re-wrote the GLSL shader parser, new system is more flexible. Allows any entry point organization.
-Entry point for sky shaders is now sky().
-Entry point for particle shaders is now process().
2021-04-14 11:37:52 -03:00
George Marques 8fc4a732de
Merge pull request #47330 from Blackiris/fix-corrupt-scene-when-export-has-setter
Fix corrupt scene when export var has setter
2021-04-14 10:00:57 -03:00
Rémi Verschelde 3d1d3ab3db
Merge pull request #47807 from Blackiris/fix-is-type-treated-as-address
Fix type argument in is_builtin which was treated as an address
2021-04-14 14:50:02 +02:00
Julien Nguyen 79a16b8a44 Fix corrupt scene when export var has setter 2021-04-14 09:14:50 +02:00
K. S. Ernest (iFire) Lee 3cae9a802b Export gltf2 normal textures correctly. 2021-04-13 13:28:26 -07:00
K. S. Ernest (iFire) Lee d840165a32
Add `etcpak` library for faster ETC/ETC2/S3TC imports.
- `etc` module was renamed to `etcpak` and modified to use the new library.
- PKM importer is removed in the process, it's obsolete.
- Old library `etc2comp` is removed.
- S3TC compression no longer done via `squish` (but decompression still is).
- Slight modifications to etcpak sources for MinGW compatibility,
  to fix LLVM `-Wc++11-narrowing` errors, and to allow using vendored or
  system libpng.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-04-13 00:12:12 +02:00
Julien Nguyen 9936abb3d5 Fix type argument in is_builtin which was treated as an address 2021-04-11 20:34:48 +02:00
ray90514 1f9524bf57 Fix Constants at function scope are not defined as constants for autocompletion 2021-04-11 22:41:04 +08:00
Francois Belair 39f7408ccb Implement LSP didDeleteFiles & make parser aware of sub-nodes 2021-04-10 15:21:59 -04:00
George Marques cf4079cb5f
Reduce number of addressing modes in GDScript VM
There's now only 3 addressing modes: stack, constant, and member.

Self, class, and nil are now present respectively in the first 3 stack
slots. Global and class constants are moved to local constants when
compiling. Named globals is only present on editor to use on tool
singletons, so its use now emits a new instruction to copy the global to
the stack.

This allow us to further optimize the VM later by embedding the
addressing modes in the instructions themselves, which is better done
with less permutations.
2021-04-08 14:29:55 -03:00
George Marques 5f77f38573
Add runner for GDScript testing
This is meant for testing the GDScript implementation, not for testing
user scripts nor testing the engine using scripts.

Tests consists in a GDScript file and a .out file with the expected
output. The .out file format is: expected status (based on the enum
GDScriptTest::TestStatus) on the first line, followed by either an error
message or the resulting output. Warnings are added after the first
line, before the output (or compiler errors) if the parser pass without
any error.

The test script must have a function called `test()` which takes no
argument. Such function will be called by the test runner. The test
should not have any dependency unless it's part of the test too. Global
classes (using `class_name`) are registered before the runner starts, so
those should work if needed.

Use the command `godot --gdscript-generate-tests
godot-source/modules/gdscript/tests/scripts` to update the .out files
with the current output (make sure the output are the expected values
before committing).

The tests themselves are part of the doctest suite so those can be
executed with `godot --test`.

Co-authored-by: Andrii Doroshenko (Xrayez) <xrayez@gmail.com>
2021-04-08 09:34:59 -03:00
Lyuma 7d8e981262 Fix crash on importing empty .fbx file 2021-04-08 02:50:01 -07:00
Fabio Alessandrelli f7ae5442a6
Merge pull request #47708 from Calinou/doc-websocketclient-secure
Document secure wss:// caveats for WebSocketClient
2021-04-08 00:47:04 +02:00
Rémi Verschelde 40dff7117a
Merge pull request #47648 from Blackiris/fix-gdscript-editor-hangs
Fix infinite loop when guessing argument type from parent class
2021-04-07 23:19:29 +02:00
Rémi Verschelde 73a1253095
Merge pull request #47672 from Blackiris/fix-setter-stackoverflow
Fix stack overflow in setter
2021-04-07 23:17:30 +02:00
Hugo Locurcio a56e37545b
Document secure wss:// caveats for WebSocketClient
See https://github.com/godotengine/godot/issues/37739.
2021-04-07 21:32:17 +02:00