Commit Graph

6031 Commits

Author SHA1 Message Date
Dmitrii Maganov 8400308ab3 GDScript: Fix can_reference check for typed arrays 2023-02-06 22:00:16 +02:00
Rémi Verschelde 112f8faf5c
Merge pull request #72703 from lyuma/stringname_constructor_mistake
StringName: fix returning dangling data from char constructor.
2023-02-06 17:47:27 +01:00
Lyuma 82c52eab6c StringName: fix returning dangling data from char constructor.
Fixes a copy paste mistake in the `StringName(const char *,bool)` constructor,
to match the same form as the other two constrcutors.
This fixes a case where this constructor can return a dangling pointer and cause use-after-free.
2023-02-06 07:16:55 -08:00
Haoyu Qiu f4ffa87a35 Remove unnecessary stdio.h from gdextension interface 2023-02-06 16:11:50 +08:00
bitsawer d1521933bb Expose and document ProjectSettings.get_global_class_list() 2023-02-04 23:22:27 +02:00
Rémi Verschelde bbff9fd7a4
Merge pull request #71786 from raulsntos/dotnet/array
Sync C# Array with Core
2023-02-04 00:24:06 +01:00
Pedro J. Estébanez 0bcc7bb5c7 Avoid losing references to objects in the native-scripting boundary 2023-02-03 17:48:41 +01:00
Silc Renew 1459b9c24c Fix scaled_orthogonal() & subgizmo global scaling 2023-02-04 00:46:04 +09:00
kobewi c1cc8fd87f Remove unused has_global_classes() 2023-02-03 15:43:56 +01:00
George Marques 5fc7918594
GDScript: Improve usability of setter chains
- Consider PackedArrays non-shared since they are copied on C++/script
  boundaries.
- Add error messages in the analyzer when assigning to read-only
  properties.
- Add specific error message at runtime when assignment fails because
  the property is read-only.
2023-02-02 10:20:35 -03:00
VolTer 57e39d0ce9 Fix String.split() with empty string and delimeter 2023-02-02 01:34:11 +01:00
Aaron Franke 0fcdf48f83
Remove unused `has_slashes` from NodePath 2023-02-01 11:32:39 -06:00
Rémi Verschelde e52213e2fa
More codespell fixes, do more changes from previous ignore list 2023-02-01 12:11:36 +01:00
Rémi Verschelde 394bb0ee2b
Fix various typos with codespell
Finally do the childs -> children rename too.
2023-02-01 08:45:41 +01:00
Rémi Verschelde 68299e0f94
Merge pull request #72492 from maiself/fix-binary-res-typed-array
Fix loading of binary resources with typed arrays
2023-02-01 08:02:28 +01:00
Rémi Verschelde e8240031e7
Merge pull request #71479 from raulsntos/virtual-return-type
Use enum instead of int in virtual methods return type
2023-02-01 07:45:28 +01:00
Rémi Verschelde 27fdb06fed
Merge pull request #71322 from EricEzaM/55856-proj-settings-initial-array-dict-shared-instance
Fix Project Settings array/dicts initial value being shared instances of the current value.
2023-02-01 07:29:44 +01:00
Mai Lavelle 87e6885f5e Fix loading of binary resources with typed arrays 2023-02-01 01:22:43 -05:00
Raul Santos 9e9eac4676
Use enum instead of int in virtual methods return type 2023-01-31 19:06:49 +01:00
Rémi Verschelde 8612c12be6
Merge pull request #72452 from akien-mga/global_class_always_create
Always create global class list, even if empty
2023-01-31 16:00:12 +01:00
Rémi Verschelde 534369d267
Merge pull request #64423 from RandomShaper/safe_input_synth
Warn users about unsafe usage of `InputEvent`
2023-01-31 15:56:43 +01:00
Rémi Verschelde 38a806e13f
Always create global class list, even if empty
Fixes #72451.
2023-01-31 15:28:53 +01:00
Pedro J. Estébanez a2af839a59 Warn users about unsafe usage of InputEvent 2023-01-31 14:39:51 +01:00
Rémi Verschelde e1648b3327
Merge pull request #72445 from reduz/restore-script-class-cache-if-removed
Restore script class cache if removed
2023-01-31 13:20:04 +01:00
Juan Linietsky 79897dd5bc Restore script class cache if removed
I have no idea why anyone would do this, but this fixes it.

Fixes #72154. Depends on #72444 being merged to function properly.
2023-01-31 11:28:21 +01:00
Dmitrii Maganov 5909f9f075 GDScript: Fix issues with typed arrays 2023-01-31 11:54:41 +02:00
Juan Linietsky 28f51ba547 Refactor high quality texture import
* Only two texture import modes for low/high quality now:
  * S3TC/BPTC
  * ETC2/ASTC
* Makes sense given this is the general preferred and most compatible combination in most platforms.
* Removed lossy_quality from VRAM texture compression options. It was unused everywhere.
* Added a new "high_quality" option to texture import. When enabled, it uses BPTC/ASTC (BC7/ASTC4x4) instead of S3TC/ETC2 (DXT1-5/ETC2,ETCA).
* Changed MacOS export settings so required texture formats depend on the architecture selected.

This solves the following problems:

* Makes it simpler to import textures as high quality, without having to worry about the specific format used.
* As the editor can now run on platforms such as web, Mac OS with Apple Silicion and Android, it should no longer be assumed that S3TC/BPTC is available by default for it.
2023-01-30 15:53:23 +01:00
Rémi Verschelde 6d6d6592c9
Merge pull request #71989 from bruvzg/set_typed_move
Move Array:set_typed to internal GDExtension structure and unexposed it.
2023-01-30 13:28:40 +01:00
Rémi Verschelde bde3310f02
Merge pull request #71995 from Faless/net/4.x_tls_verify
[NET] Refactor TLS configuration.
2023-01-30 13:28:31 +01:00
bruvzg 5aa87ccc03
Move Array:set_typed to internal GDExtension structure and unexposed it. 2023-01-30 14:23:31 +02:00
Raul Santos 54f8fb010c
Sync C# Array with Core
- Add `AddRange` method.
- Add `Fill` method.
- Add `Max` and `Min` methods.
- Add `PickRandom` method.
- Add `Reverse` method.
- Add `RecursiveEqual` method.
- Add `Sort` method.
- Add `Slice` and `GetSliceRange` methods.
- Add `IndexOf` overload that takes an index parameter.
- Add `LastIndexOf` method.
- Add `BinarySearch` method.
- Add/update documentation.
2023-01-30 05:41:53 +01:00
Rémi Verschelde d01ac9c736
Merge pull request #72287 from aaronfranke/tr2d-interp
Add support for interpolating skewed Transform2Ds
2023-01-29 14:13:02 +01:00
Adam Scott bfffb8f254 Fix `Resource::duplicate()` missing packed arrays 2023-01-28 23:06:44 -05:00
Aaron Franke 5f3d3722b2
Add support for interpolating skewed transforms 2023-01-28 18:28:42 -06:00
Fabio Alessandrelli 7cd80e6a6d [Net] Remove StreamPeerTLS.blocking_handshake option.
Which was unused internally, and can be replaced by:

```
while tls.get_status() == tls.STATUS_HANDSHAKING:
  tls.poll()
```
2023-01-28 11:08:02 +01:00
Fabio Alessandrelli adba870534 [NET] Refactor TLS configuration.
Use a TLSOptions configuration object which is created via static
functions.

- "TLSOptions.client": uses the standard CA and common name verification.
- "TLSOptions.client_unsafe": uses optional CA verification (i.e. if specified)
- "TLSOptions.server": is the standard server configuration (chain + key)

This will allow us to expand the TLS configuration options to include
e.g. mutual authentication without bloating the classes that uses
StreamPeerTLS and PacketPeerDTLS as underlying peers.
2023-01-28 11:08:02 +01:00
Pedro J. Estébanez 1de616d8dc Fix code style and consistency of RWLock and Semaphore 2023-01-27 18:45:25 +01:00
Yuri Rubinsky 0f8f0ab126
Merge pull request #72170 from Chaosus/astar_fix 2023-01-27 18:52:22 +03:00
Rémi Verschelde 2b55ac445b
Merge pull request #72111 from raulsntos/method-info-metadata
Add `GodotTypeInfo::Metadata` to `MethodInfo`
2023-01-27 15:41:38 +01:00
Rémi Verschelde f0e3c3f4c3
Merge pull request #72168 from RandomShaper/sensible_lock_return
Booleanize various sync primitives' wait & locking methods
2023-01-27 15:40:43 +01:00
Yuri Rubinsky cc0a243ce0 Enchance the performance of AStar by using a LocalVector(2) 2023-01-27 16:28:11 +03:00
Rémi Verschelde 9d555f5c68
Merge pull request #62499 from fire/gltf-binary-img-compression
Handle gltf binary images
2023-01-27 11:35:55 +01:00
Pedro J. Estébanez f630940591 Booleanize various sync primitives' wait & locking methods 2023-01-27 11:15:30 +01:00
K. S. Ernest (iFire) Lee 39922d7167 Handle gltf binary
[ Ignore and Warn | Extract Textures (default) | Optimize Loading Embedded as Basisu ]

Enable compressed mip maps from Basis Universal for faster compressions.

Increase the quality of Basis to avoid corruption.

To keep compatibility use the first mip of the previous internal Godot format.

Because texture names may have invalid filename characters, adds String::validate_filename to sanitize filenames for import pipeline use.
2023-01-27 02:02:02 -08:00
Rémi Verschelde e92393d295
Merge pull request #67783 from EricEzaM/67715-input-event-action-as-text
Make InputEventAction as_text() return the text of the first valid event for the action.
2023-01-27 10:30:00 +01:00
Dmitrii Maganov abe6d67232 GDScript: Fix test for read-only state of constants 2023-01-27 05:28:08 +02:00
Raul Santos cac7a784d6
Add `GodotTypeInfo::Metadata` to `MethodInfo` 2023-01-26 15:51:34 +01:00
Rémi Verschelde 31496c296a
Merge pull request #72078 from bitsawer/fix_optimize_vertices
Fix range loop iteration regressions
2023-01-26 01:11:25 +01:00
Rémi Verschelde 42424d3b8e
Merge pull request #71758 from adamscott/is_equal_ref
Add `@GlobalScope` `is_same(a, b)` and `Variant::identity_compare()`
2023-01-26 01:07:24 +01:00
bitsawer 8c25bcdb84 Fix range loop iteration regressions 2023-01-26 00:14:39 +02:00
Adam Scott 37248d7c87 Add `@GlobalScope` `is_same(a, b)` and `Variant::identity_compare()` 2023-01-25 10:46:21 -05:00
bruvzg 6def1dfdd5
Remove unused SUPER_L/R constants. 2023-01-25 14:22:28 +02:00
Rémi Verschelde b9bf12e99a
Merge pull request #71142 from aaronfranke/never-duplicate-script
Add `PROPERTY_USAGE_NEVER_DUPLICATE` flag and use for script
2023-01-25 09:18:18 +01:00
Rémi Verschelde 93c650c10d
Merge pull request #69028 from YeldhamDev/its_raw_you_donkey
Make `Input.get_vector()` check for plain `strength` instead of the raw one
2023-01-25 09:15:45 +01:00
Rémi Verschelde 5df9a84128
Merge pull request #71968 from bruvzg/def_keys_no_label
[Input] Do not add key labels to the default actions, to display it correctly in the UI.
2023-01-25 09:15:13 +01:00
Aaron Franke 2a65f6812b
Add PROPERTY_USAGE_NEVER_DUPLICATE flag and use for script
Co-authored-by: Yakov Borevich <j.borevich@gmail.com>
2023-01-24 16:37:50 -06:00
Aaron Franke 2bc0bcbd26
PropertyUsage: Rename "DO_NOT_SHARE_ON_DUPLICATE" to "ALWAYS_DUPLICATE" 2023-01-24 16:05:07 -06:00
Yuri Sizov fab9926a95
Merge pull request #65137 from dalexeev/editor-naming
Rearrange `editor/naming/*` project settings
2023-01-24 22:26:03 +03:00
bruvzg 57b5d112f7
[Input] Do not add key labels to the default actions, to display it correctly in the UI. 2023-01-24 14:49:11 +02:00
Jan Haller 15686ca786 Fix bind " convergence_dist" containing space 2023-01-23 20:07:59 +01:00
bruvzg daad4aed62
Cleanup and unify keyboard input.
- Unify keycode values (secondary label printed on a key), remove unused hardcoded Latin-1 codes.
- Unify IME behaviour, add inline composition string display on Windows and X11.
- Add key_label (localized label printed on a key) value to the key events, and allow mapping actions to the unshifted Unicode events.
- Add support for physical keyboard (Bluetooth or Sidecar) handling on iOS.
- Add support for media key handling on macOS.

Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-01-23 15:08:12 +02:00
Rémi Verschelde 5b1df48c6c
Convert en_GB spelling to en_US with codespell 2023-01-23 11:02:20 +01:00
Rémi Verschelde 5726bf578d
Merge pull request #71676 from vnen/gdscript-unicode-identifiers
Add support for Unicode identifiers in GDScript and Expression
2023-01-23 10:24:33 +01:00
Rémi Verschelde 56fdef281e
Merge pull request #71851 from mihe/error-macros
Fix incorrect index error macros
2023-01-22 16:08:34 +01:00
Rémi Verschelde c9243c37dc
Merge pull request #71846 from Chaosus/astar_local_vector
Enchance the performance of `AStar` by using a `LocalVector`
2023-01-22 16:06:45 +01:00
Mikael Hermansson 22c1785826 Fix incorrect index error macros 2023-01-22 12:23:56 +01:00
Rémi Verschelde cd031fd31a
Merge pull request #71663 from bruvzg/init_pos_x
Reorganize main and sub-window initial position properties.
2023-01-22 11:25:58 +01:00
Yuri Rubinsky 078600a3c4 Enchance the performance of `AStar` by using a `LocalVector` 2023-01-22 12:04:41 +03:00
kobewi 615c517034 Use range iterators in LocalVector loops 2023-01-21 18:44:42 +01:00
kobewi 277d5361df Add range iterator to LocalVector 2023-01-21 18:42:04 +01:00
George Marques 86ee5f39c4
Add support for Unicode identifiers in Expression class 2023-01-21 13:39:42 -03:00
Rémi Verschelde ebd0b40f6e
Merge pull request #71687 from reduz/support-script-class-name-in-efs
Support script global resource name in EditorFileSystem
2023-01-21 16:54:23 +01:00
Juan Linietsky dddd8d43f6 Support script global resource name in EditorFileSystem
* Works for binary and text files.
* Makes EditorQuickOpen work with custom resources again.
* Information is cached and easily accessible.

Properly fixes #66179. Supersedes #66215 and supersedes #62417

**WARNING**: This required breaking backwards binary compatibility (.res and .scn files). Files saved after this PR is merged will no longer open in any earlier versions of Godot.
2023-01-21 14:19:27 +01:00
Rémi Verschelde c02572d3d0
Merge pull request #71683 from reduz/fast-script-class-inheritance-check
Implement a quick script inheritance check
2023-01-21 11:31:05 +01:00
Rémi Verschelde a3c8ba6cd5
Merge pull request #71396 from reduz/fix-broken-userdir
Fix cases of broken user:// paths.
2023-01-21 11:30:37 +01:00
Rémi Verschelde 2435eef617
Merge pull request #71390 from reduz/fix-json-as-resource
Fixes to JSON as resource
2023-01-21 11:30:08 +01:00
Jan Haller b8c4ae28b7 Fix use of `bool` in extension header 2023-01-19 22:21:19 +01:00
Rémi Verschelde ab5c75b9ad
Merge pull request #71649 from raulsntos/array-indexer
Add property usage to array indexer
2023-01-19 19:33:05 +01:00
Rémi Verschelde 4ca6a9809d
Merge pull request #44596 from KoBeWi/🧹🧹🧹
Cleanup unused engine code v2
2023-01-19 19:32:51 +01:00
Juan Linietsky 3dcf380161 Implement a quick script inheritance check
Optimizes, simplifies and fixes EditorResourcePicker (was not refreshing custom clases).
2023-01-19 16:47:01 +01:00
Raul Santos 97610c8bfc
Add property usage to array indexer
This makes the `Array` indexer show as returning `Variant` instead of `void` in the documentation.
2023-01-19 14:22:11 +01:00
kobewi c0083e431b Cleanup unused engine code v2 2023-01-19 13:02:18 +01:00
bruvzg aade5abd4f
Reorganize main and sub-window initial position properties. 2023-01-19 13:44:06 +02:00
bruvzg db7d8c2d87
[GDExtension] Expose some low level functions and String operators. 2023-01-19 12:50:49 +02:00
Rémi Verschelde 4679f8724a
Merge pull request #71628 from reduz/fixup-editor-file-system-script-parsing
Clean up EditorFileSystem script parsing
2023-01-19 10:09:55 +01:00
Juan Linietsky 5bdc0d97d3 Clean up EditorFileSystem script parsing
* Optimize only update modified/added/removed files.
* Clean up documentation parsing.
2023-01-18 20:56:45 +01:00
Pedro J. Estébanez 6616b0619d Revert "Make MessageQueue::push_callable(p) work with bound arguments"
This reverts commit 81b1ebddef.
2023-01-18 19:20:40 +01:00
Rémi Verschelde b5f3ac522e
Merge pull request #71400 from touilleMan/gdextension-dump-global_enum-is_bitfield-field
Add missing is_bitfield field for global enum in extension_api_dump
2023-01-18 17:47:58 +01:00
Rémi Verschelde b516d05245
Merge pull request #71622 from RandomShaper/mq_bound
Make MessageQueue::push_callable(p) work with bound arguments
2023-01-18 17:33:34 +01:00
Pedro J. Estébanez 81b1ebddef Make MessageQueue::push_callable(p) work with bound arguments 2023-01-18 14:54:17 +01:00
Rémi Verschelde 6da836bbb4
Merge pull request #71514 from akien-mga/os-unset_environment
OS: Add `unset_environment`, better validate input
2023-01-18 08:35:43 +01:00
Rémi Verschelde 4005fc4b8d
Merge pull request #71279 from vonagam/fix-iterator-number-type
GDScript: Fix typing of iterator in for loop
2023-01-16 22:21:26 +01:00
Rémi Verschelde 91a54cdbc1
Linux/BSD: Add LINUXBSD_ENABLED define for non X11-related checks 2023-01-16 17:01:35 +01:00
Rémi Verschelde 818a9e99a4
OS: Add `unset_environment`, better validate input
Instead of returning an undocumented boolean error code, we do the
validation checks that should ensure a successful result.

Based on:
- https://linux.die.net/man/3/setenv
- https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setenvironmentvariable
2023-01-16 16:39:44 +01:00
Rémi Verschelde 5ca6c1f9db
Merge pull request #70557 from KoBeWi/class_yeet
Move global script class cache to separate file
2023-01-16 12:49:08 +01:00
Rémi Verschelde d94a46ab95
Merge pull request #64021 from ajreckof/change-shortcut-for-rect-tool-tilemap
Add `Key::CTRL_OR_CMD` and use it to fix shortcut for tilemap painting tools on macOS
2023-01-16 12:47:07 +01:00
kobewi 6444c7d127 Move global script class cache to separate file 2023-01-16 10:16:30 +01:00
Juan Linietsky 3a93efefee Fix cases of broken user:// paths.
* Properly validate paths when supplying the project name.
* Ensures that the user data dir will always be valid.

Fixes 69366.
2023-01-15 19:05:00 +01:00
ajreckof 4309dffc6a add CMD_OR_CTRL as a Key and not just a key modifier 2023-01-15 18:49:20 +01:00
Raul Santos 7560340ef6
Rename `center` method to `get_center` in Plane. 2023-01-15 17:18:50 +01:00
Emmanuel Leblond 38d9e8b366
Add missing is_bitfield field for global enum in extension_api_dump 2023-01-14 16:08:41 +01:00
Juan Linietsky 1aaff63b8f Fixes to JSON as resource
* It was not a resource, hence it was not working to load it as such.
* Changed so, when opened in editor, a parse error will not fail load and the text will be kept.
* This should allow proper editing from within the code editor, including syntax checking and saving files as-is in text.

Partially addresses #66820.

The code editor still needs to be changed for this to work.
2023-01-14 14:41:51 +01:00
Juan Linietsky 6f0e210093 Refactor ProjectSetting overrides
* Overrides no longer happen for set/get.
* They must be checked with a new function: `ProjectSettings::get_setting_with_override()`.
* GLOBAL_DEF/GLOBAL_GET updated to use this

This change solves many problems:
* General confusion about getting the actual or overriden setting.
* Feature tags available after settings are loaded were being ignored, they are now considered.
* Hacks required for the Project Settings editor to work.

Fixes #64100. Fixes #64014. Fixes #61908.
2023-01-13 15:13:56 +01:00
Dmitrii Maganov 40613ebd21 GDScript: Fix typing of iterator in for loop 2023-01-13 15:36:11 +02:00
Eric M 7c73b6c71c Fix Project Settings array/dicts initial value being shared instances of the current value. 2023-01-13 21:48:43 +10:00
Rémi Verschelde c2790ec2b9
Merge pull request #68450 from KoBeWi/bracket_escapist
Allow to escape closing brackets in CFG tags
2023-01-12 21:53:15 +01:00
Danil Alexeev 8f706be6fa
Rearrange `editor/naming/*` project settings 2023-01-12 11:41:13 +03:00
Rémi Verschelde 0e4e782ada
Merge pull request #70714 from Calinou/doc-os-stdin
Improve documentation for `OS.read_string_from_stdin()`
2023-01-12 09:24:47 +01:00
Hugo Locurcio 86b8176864
Improve documentation for `OS.read_string_from_stdin()`
This makes it clearer that calls to this method are blocking.

The unused method parameter was also removed.
2023-01-11 19:57:25 +01:00
Eric M 7b66806dd3 Make InputEventAction as_text() return the text of the first valid event for the action. 2023-01-12 00:10:44 +10:00
Juan Linietsky 33d3b7eea7 Fix Callable call error reporting.
* Fix potential crash when using bind in `Variant::get_callable_error_text()`
* Properly compute bound arguments so they can be properly shown.
* Add a function to obtain the actual bound arguments.
2023-01-10 13:56:27 +01:00
Rémi Verschelde 0231b4a0e8
Merge pull request #70726 from heppocogne/Fix-open_compressed-get_path
Fix `get_path()` is not working when files are opend with `open_compressed`
2023-01-10 10:48:15 +01:00
Rémi Verschelde d3fc9d9e41
Merge pull request #71051 from vonagam/consts-are-deep-start
GDScript: Begin making constants deep, not shallow or flat
2023-01-09 23:22:59 +01:00
Rémi Verschelde be4e9dfeab
Merge pull request #69616 from reduz/change-uuid
Ability to change a resource UID from API
2023-01-09 23:08:18 +01:00
Juan Linietsky 07a964fce3 Ability to change a resource UID from API
* Works for text, binary and imported resources
* Allows better clean up of duplicate files.

TODO (future PRs):

* Use this API for assigning new UIDs to copied files.
* Use this API for UID conflict on FS scanning (if more than one file has the same UID, the newer one(s) should get assigned a different UID).
2023-01-09 18:52:00 +01:00
Juan Linietsky 0e0a6bb39b
Removed unused property hints and `Object::get_translatable_strings()`
* Remove unused `EditorPropertyMember` and related hints, previouly used by
  VisualScript. Such logic should be implemented in the VS module itself.
* As the above broke compatibility with the VS module, clean up the other
  hacks that were still in core in support of VisualScript.
* `PROPERTY_USAGE_INTERNATIONALIZED` was only used in Object's
  `get_translatable_strings()`, which is a legacy function not used anywhere.
  So both are removed.
* Reordered some usage flags after the above removal to minimize the diff.
* General clean up.

Fixes #30203.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2023-01-09 16:56:01 +01:00
Rémi Verschelde 88940571f2
Merge pull request #71082 from AThousandShips/array_find_fix
Fix for comparisons with PackedArrays
2023-01-09 14:19:09 +01:00
Rémi Verschelde d46568205d
Merge pull request #64795 from RandomShaper/fix_saferefcount
Prevent misuse of SafeRefCount
2023-01-09 14:18:53 +01:00
Pedro J. Estébanez b1c7665866 Prevent misuse of SafeRefCount 2023-01-09 10:17:55 +01:00
Rémi Verschelde 31f94574d4
Merge pull request #70996 from reduz/properly-report-callable-bound-arguments
Properly report Callable bound arguments
2023-01-09 08:34:28 +01:00
Rémi Verschelde e7905f4f48
Merge pull request #71045 from reduz/use-bitfield-in-core-types
Use BitField<> in core type masks
2023-01-09 08:33:26 +01:00
Juan Linietsky 0e0ca01bce Properly report Callable bound arguments
Fixes #63213
Adds a function: Callable::get_amount_of_arguments_bound() to query this in callables. Exposed to the engine API.
2023-01-08 23:35:11 +01:00
Rémi Verschelde eff2739cf7
Merge pull request #71052 from Chaosus/fix_astargrid2d
Fix error in `AstarGrid2D::get_id_path`
2023-01-08 22:40:41 +01:00
Rémi Verschelde 0081c59198
Merge pull request #71013 from voidedWarranties/fix_ext_property_default_value
Fix `ScriptInstanceExtension::get_property_default_value` return value
2023-01-08 22:36:10 +01:00
Juan Linietsky 2b815df3c1 Use BitField<> in core type masks
* All core types masks are now correctly marked as bitfields.
* The enum hacks in MouseButtonMask and many other types are gone. This ensures that binders to other languages non C++ can actually implement type safe bitmasks.
* Most bitmask operations replaced by functions in BitField<>
* Key is still a problem because its enum and mask at the same time. While it kind of works in C++, this most likely can't be implemented safely in other languages and will have to be changed at some point. Mostly left as-is.
* Documentation and API dump updated to reflect bitfields in core types.
2023-01-08 22:17:40 +01:00
Ninni Pipping 86240d97e1 Fix for PackedArray comparison 2023-01-08 21:22:28 +01:00
Yuri Rubinsky 6640eb8065 Fix error in `AstarGrid2D::get_id_path` 2023-01-08 10:34:33 +03:00
Dmitrii Maganov 5e2ac1a31e GDScript: Begin making constants deep, not shallow or flat 2023-01-08 07:29:10 +02:00
Rémi Verschelde d642274f75
Merge pull request #70939 from bruvzg/win_screen_2
Add support for the custom initial screen for the main window, fix primary screen detection.
2023-01-07 13:21:36 +01:00
Rémi Verschelde 41b74c675f
Merge pull request #71000 from reduz/callable-bind-from-array
Allow binding Callable arguments from an array
2023-01-07 13:18:53 +01:00
bruvzg 2718a7b7d3
Add support for the custom initial screen for the main window, fix primary screen detection. 2023-01-07 11:14:35 +02:00
voidedWarranties 411719a399 Fix `ScriptInstanceExtension::get_property_default_value` return value 2023-01-06 19:55:02 -08:00
Rémi Verschelde 163f6f5fe8
Merge pull request #68429 from KoBeWi/PropertySettings
Add PropertyInfo overload for GLOBAL_DEF
2023-01-06 22:59:29 +01:00
Rémi Verschelde a12b326fab
Merge pull request #70995 from reduz/do-not-bind-variant-immutable
Unbind Variant methods that change immutable types.
2023-01-06 22:56:20 +01:00
Juan Linietsky d762a0395a Allow binding Callable arguments from an array
Restores 3.x functionality that was removed in the Signal/Callable refactor of 4.0.

Fixes #64668.
Implements https://github.com/godotengine/godot-proposals/issues/6034

Usage:

```GDScript

callable.bindv([arg1,arg2,arg3])

```
2023-01-06 22:37:25 +01:00
Juan Linietsky 576ae694e0 Unbind Variant methods that change immutable types.
Fixes #62706.
Code is commented instead of removed to clarify why they should not be re-added.
2023-01-06 17:17:43 +01:00
Yuri Rubinsky 4a45c76737 Fix jumping in `AStarGrid2D` when `DIAGONAL_MODE_NEVER` is enabled 2023-01-06 13:40:24 +03:00
Rémi Verschelde 1816f49886
Merge pull request #64253 from heppocogne/Fix-native-enum-release-1
Register enum type names in release build
2023-01-06 00:10:31 +01:00
Rémi Verschelde e5f6e03490
Merge pull request #70547 from TokageItLab/pingpong-wrap
Fix pingpong-loop with `loop_wrap` is not working & clean-up cubic interpolation key retrieve process
2023-01-06 00:10:18 +01:00
Rémi Verschelde d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Rémi Verschelde 565ae3b767
Merge pull request #67694 from aaronfranke/its-time
Remove duplicate Month and Weekday enums
2023-01-03 23:21:19 +01:00
Rémi Verschelde f0893890e1
Merge pull request #70482 from bruvzg/ios_pencil
[iOS] Add Apple Pencil pressure and tilt support.
2023-01-03 15:51:39 +01:00
Rémi Verschelde 4e360ac612
Merge pull request #70702 from vnen/gdscript-error-on-assign-void
GDScript: Error when assigning return value of void function
2023-01-03 12:23:00 +01:00
Clay John 61c7b7fb13
Merge pull request #67853 from Zylann/fix_lods_with_doubles
Fix usages of mesh simplification functions in float=64 builds
2023-01-02 12:33:44 -07:00
Yuri Rubinsky b28571ca3e Optimize `wrapf` function a bit 2023-01-01 23:17:29 +03:00
George Marques 0c15844551
GDScript: Error when assigning return value of void function
This also makes built-in method calls empty the return value when the
method is void, to avoid keeping returning a garbage value in such case.
2022-12-30 12:08:58 -03:00
heppocogne ea11ffc88c Fix `get_path()` is not working when files are opend with `open_compressed`
And also fixed `get_absolute_path()` in the same way
2022-12-30 10:31:12 +09:00
heppocogne 6f31f7b0bc Register native base class name of enum types when release build 2022-12-30 00:30:18 +09:00
Aaron Franke 8d7d1b0bb2
Remove duplicate Month and Weekday enums
Well, they were duplicately-exposed, but triplicately-defined.
2022-12-26 15:16:25 -06:00
Silc Renew 8745c206c4 Fix pingpong with loop wrap is not working 2022-12-25 18:16:38 +09:00
Yuri Rubinsky 16efd0b0fc Divide `AStarGrid2D::default_heuristic` into two different heuristics 2022-12-24 09:31:02 +03:00
bruvzg 223a612c0c
[iOS] Add Apple Pencil pressure and tilt support. 2022-12-23 23:44:10 +02:00
Rémi Verschelde f5a6c9cf50
Merge pull request #62029 from Maran23/optional-default-value-project-settings
Allow to specify a default value in `ProjectSettings.get_setting()`
2022-12-21 22:23:43 +01:00
Marius Hanl 5aa243f9da Added the possibility to define a default value in ProjectSettings.get_setting(), which is used when no setting is set.
Also added tests for the project settings.

Co-authored-by: Yuri Sizov <11782833+YuriSizov@users.noreply.github.com>
2022-12-21 19:49:57 +01:00
Rémi Verschelde 186f6f0d87
Merge pull request #70403 from rburing/fix_edge_map_capacity
Fix edge map capacity in convex hull computer
2022-12-21 18:29:38 +01:00
Rémi Verschelde 1df71f89a8
Merge pull request #70355 from Chaosus/gds_fix_loops
Fix empty zero assigners for the variant types
2022-12-21 18:25:28 +01:00
Ricardo Buring e0e45e013e Fix edge map capacity in convex hull computer
The desired capacity could be less than the default, so reserve would
error.
2022-12-21 17:12:36 +01:00
stmSi 96b0fbb756 Fix crashed when compressing empty image data. 2022-12-21 16:39:35 +06:30
Rémi Verschelde 4f3ec4121a
Merge pull request #70350 from Chaosus/stringname_operator
Add missing != operator to `StringName`
2022-12-21 09:21:32 +01:00
Yuri Rubinsky 0bcbf8e00d Add `get_point_position` method to `AStarGrid2D` 2022-12-20 23:21:38 +03:00
Yuri Rubinsky fff3d812a5 Fix empty zero assigners for the variant types 2022-12-20 19:02:44 +03:00
Yuri Rubinsky 522d4243bf Add missing != operator to `StringName` 2022-12-20 17:25:54 +03:00
Rémi Verschelde 2a04b18d37
Merge pull request #70339 from Chaosus/astargrid2d_weight_scale
Restore weight scale for `AStarGrid2D` (partially)
2022-12-20 13:30:37 +01:00
Rémi Verschelde f318d60e06
Merge pull request #65376 from reduz/astc-support
Implement basic ASTC support
2022-12-20 12:44:30 +01:00
Juan Linietsky 71d21c7ccb Implement basic ASTC support
Implements basic ASTC support:
* Only 4x4 and 8x8 block sizes.
* Other block sizes are too complex to handle for Godot image compression handling. May be implemented sometime in the future.

The need for ASTC is mostly for the following use cases:
* Implement a high quality compression option for textures on mobile and M1 Apple hardware.
* For this, the 4x4 is sufficient, since it uses the same size as BPTC.

ASTC supports a lot of block sizes, but the benefit of supporting most of them is slim, while the implementation complexity in Godot is very high.
Supporting only 4x4 (and 8x8) solves the real problem, which is lack of a BPTC alternative on hardware where it's missing.

Note: This does not yet support encoding on import, an ASTC encoder will need to be added.
2022-12-20 11:26:30 +01:00
Yuri Rubinsky 8c478dcec9 Restore weight scale for `AStarGrid2D` (partially) 2022-12-20 12:22:32 +03:00
Rémi Verschelde 418ec03a40
Merge pull request #65990 from touilleMan/gdextension-expose-builtins-members-real-types
Expose in builtins' members internal type & size (on top of offset) in extension_api.json
2022-12-19 16:26:05 +01:00
Hugo Locurcio 70f6d42c92
Remove Disable Touch debug project setting
This project setting was only implemented and iOS and likely served
no purpose outside of debugging during development of engine features.

It was also located in a confusing location in the project settings
editor, as it was located below a root category (which appears in bold
and is normally not seen as clickable by users).
2022-12-17 18:47:29 +01:00
Rémi Verschelde ffed638cbc
Merge pull request #70116 from Calinou/vibrate-handheld-silence-warning
Silence `Input.vibrate_handheld()` warning as it's already documented
2022-12-16 13:47:11 +01:00
Haoyu Qiu 207e52c161 Fix String::word_wrap() for long words
- Changes `TextServer.string_get_word_breaks()`
  - Returns pairs of boundary start and end offsets
  - Accepts `chars_per_line` to return line breaks
- Removes `String::word_wrap()`

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2022-12-16 13:18:57 +08:00
Hugo Locurcio 4a991887bf
Silence `Input.vibrate_handheld()` warning as it's already documented
The warning causes messages to be spammed if you are calling this
method in a game that runs on both desktop and mobile platforms,
unless you guard all calls to `Input.vibrate_handheld()` with
`OS.has_feature("mobile") or OS.has_feature("web")`.

Since the limitation is already documented (and is obvious enough
given the method's name), the warning message is redundant.
2022-12-16 01:12:20 +01:00
bruvzg 53c76fa5d1
[RTL/TextServer] Add baseline inline alignment mode for objects and RTL tables. 2022-12-15 23:16:02 +02:00
Hei cc245ff8a6
Fix "p_zfar" to "p_znear" in Projection.create_orthogonal
Was confused why it always gave inf:s.
2022-12-15 19:03:33 +02:00
Emmanuel Leblond 2c2fd0820a
Expose in builtins' members internal type & size (on top of offset) in extension_api.json 2022-12-15 12:43:42 +01:00
Rémi Verschelde 762c6d4b36
Merge pull request #69709 from RandomShaper/refactor_spirv_reflection
Refactor SPIR-V reflection into a generic RenderingDevice feature
2022-12-15 09:21:35 +01:00
Jan Haller ebb3306da3 Extension header: amend const correctness of `p_args` parameters
A while ago, argument arrays were passed as const GDNativeTypePtr* (void* const*)
This was changed to GDNativeConstTypePtr* (void const**), adding const on the value but removing it on the pointer level.
This commit changes argument types to const GDExtensionConstTypePtr* (void const* const*).

Besides object pointers, the same change is applied to variant pointers.
2022-12-14 18:25:30 +01:00
Bastiaan Olij 7502e1dc0d Improve logic around using Ref<T> with GDExtension virtual functions 2022-12-13 10:54:29 +11:00
lawnjelly 491594ef0f VariantParser make readahead optional
It turns out some areas are independently moving / reading filepointers outside of the VariantParser, which can cause the readahead caching to get out of sync.

This PR makes the VariantParser readahead to be optional to allow for these use cases.
2022-12-12 15:14:39 +00:00
Rémi Verschelde 5f35b1d516
Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@adf7ec1edf
2022-12-12 13:43:15 +01:00
Pedro J. Estébanez 2095ca26d0 Add default, zeroing constructor to BitField 2022-12-12 12:12:26 +01:00
Rémi Verschelde f1edd03d4c
Merge pull request #69718 from groud/finally_rename_gdnative_to_gdextension
Rename all gdnative occurences to gdextension
2022-12-12 11:43:59 +01:00
Gilles Roudière be1c9d677d Rename all gdnative occurences to gdextension
Non-exhaustive list of case-sensitive renames:

GDExtension -> GDNative
GDNATIVE -> GDEXTENSION
gdextension -> gdnative
ExtensionExtension ->Extension (for where there was GDNativeExtension)
EXTENSION_EXTENSION ->EXTENSION (for where there was GDNATIVE_EXTENSION)
gdnlib -> gdextension
gdn_interface -> gde_interface
gdni -> gde_interface
2022-12-12 11:04:57 +01:00
kobewi 7c6b659bd7 Add PropertyInfo overload for GLOBAL_DEF 2022-12-11 21:36:48 +01:00
Rémi Verschelde e7d892159c
Merge pull request #69538 from mihe/feature-tag-double
Add feature tags to signify engine float precision
2022-12-11 11:51:59 +01:00
Rémi Verschelde 907298d673
Merge pull request #68747 from rune-scape/rune-stringname-unification
GDScript: Unify StringName and String
2022-12-09 18:06:48 +01:00
Rémi Verschelde 2d02cb67ee
Merge pull request #69661 from Mickeon/fix-editor-cannot-disconnect-signal
Fix unable to disconnect signal in Editor once created
2022-12-09 07:34:29 +01:00
Micky 885f2a4eca Fix unable to disconnect signal in Editor once created
Adds a CONNECT_INHERITED flag to connections, only available in editor builds. This flag denotes that the signal has been inherited from a previous Scene in the instancing hierarchy.
2022-12-08 13:36:48 +01:00
Adam Scott 4a16b8630e Fix `ResourceLoader::thread_load_tasks` crash 2022-12-07 16:59:10 -05:00
Mikael Hermansson 8c108177d7 Add feature tags to signify engine float precision 2022-12-07 16:13:17 +01:00
Aaron Franke d543ddf1c9
Fix Variant StringName `is_zero` being inverted 2022-12-06 21:49:43 -06:00
Rémi Verschelde 83b426bca5
Merge pull request #67906 from groud/simpler_gdextension_config
Remove unnecessary checks when exporting gdextension binaries and allow using a prefix to auto-detect files
2022-12-06 11:01:09 +01:00
rune-scape e79be6ce07 Unify String and StringName 2022-12-05 21:46:47 -05:00
Rémi Verschelde 1cf1d00bc9
Merge pull request #69602 from Rindbee/fix-string-mod
Fix suppressed error message on error when using % format string
2022-12-05 18:06:31 +01:00
Rémi Verschelde a50e4fed18
Merge pull request #69343 from YuriSizov/core-missing-property-revert-getters
Add missing public `property_*_revert` getters
2022-12-05 18:05:59 +01:00
Rindbee 694ee1bf52 Fix suppressed error message on error when using % format string
Before, the valid flag would always be true. On formatting errors,
an error message is returned as the result. (No error prompts.)
2022-12-05 22:09:10 +08:00
Rémi Verschelde a738f50886
Merge pull request #69357 from TokageItLab/byebye-trigger
Remove `UPDATE_TRIGGER` mode from `ValueTrack::UpdateMode` & Match behaviors between `AnimationTree` and `AnimationPlayer`
2022-12-05 00:06:23 +01:00
Rémi Verschelde f4bccf90a3
Merge pull request #69119 from lawnjelly/faster_variant_parser_master
Add readahead to VariantParser [4.x]
2022-12-05 00:06:14 +01:00
bruvzg ecec415988
Use system fonts as fallback and improve system font handling.
Add support for font weight and stretch selection when using system fonts.
Add function to get system fallback font from a font name, style, text, and language code.
Implement system font support for Android.
Use system fonts as a last resort fallback.
2022-12-04 18:44:20 +02:00
Emmanuel Leblond 61c900ac6f
Fix const qualifier for parameters in GDExtension api functions 2022-12-02 23:00:01 +01:00
Silc Renew 83135aa122 Remove UPDATE_TRIGGER & Match behaviors between AnimationTree/Player
#69357
2022-12-02 20:28:10 +09:00