Commit Graph

423 Commits

Author SHA1 Message Date
4b23c9c5c9 Renamed utf8_length() to utf8_byte_length(), and utf16_length() to utf16_byte_length() in String, as this might help to better explain why these differ from normal length(). 2023-03-20 22:34:21 +01:00
a0d33b5fcd Added utf8_length(), and utf16_length() helper methods to String. 2023-03-20 22:12:17 +01:00
26f77bbe2b Use set_length, instead of resize in String's operator +=. 2023-03-20 21:26:59 +01:00
67ebd5e52b Ported: Fix Standard Gamepad Mapping triggers.
- j8r and  akien-mga
669749fa39
2023-03-12 19:12:39 +01:00
2db3148b23 Ported: Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@436c7e3
- akien-mga
bab7f1c0a6
2023-03-12 19:02:32 +01:00
9c28f6fb7f Ported: Add PS3 controller guide button
- j8r and akien-mga
2c18066231
2023-03-12 16:59:28 +01:00
9118798036 Fix include. 2023-03-12 16:05:58 +01:00
Rémi Verschelde
f3e1aab267 Math: Prevent division by zero in posmod
Fixes #43932.

Co-authored-by: David Hoppenbrouwers <david@salt-inc.org>
(cherry picked from commit f011d8ca9ca25232fb335eead1c8eeaf5c7f2c54)
2023-03-12 15:43:52 +01:00
lawnjelly
4684c72b92 BVH - fix lockguards for multithread mode
Due to a lack of variable name, the BVH lock guards lifetimes previously did not cover the whole function call.
2023-03-12 14:20:02 +01:00
c356806ebf Ported: Extract Syntax highlighting from TextEdit and add EditorSyntaxHighlighter
- Extacted all syntax highlighting code from text edit
- Removed enable syntax highlighting from text edit
- Added line_edited_from signal to text_edit
- Renamed get/set_syntax_highlighting to get/set_syntax_highlighter
- Added EditorSyntaxHighligher
- Paulb23
bc4cee4458
2023-02-21 01:30:59 +01:00
79842beb9a Ported: Expose OS.read_string_from_stdin() to the scripting API
This can be used in scripts to read user input in a blocking manner.
This also removes the unused `block` argument, which is always `true`.
- Calinou
badcfa2523
2023-02-07 01:07:31 +01:00
d999f63cbd Cleanups and codestyle for the godot4 containers that I added in unmodified yesterday. 2023-01-16 22:09:32 +01:00
5579d563bd Ported: Fix for PoolArray comparison - AThousandShips
f26069e94d
2023-01-16 14:35:23 +01:00
heppocogne
7d4baaed2b Fix get_path() is not working when files are opend with open_compressed
And also fixed `get_absolute_path()` in the same way

(cherry picked from commit ea11ffc88c22dea2b71d7863808cd65f64f9eded)
2023-01-16 14:18:57 +01:00
b6f4b647d6 Added the rest of the new container classes from godot4. They will likely not work as-is, this will be fixed later. 2023-01-16 00:40:55 +01:00
3c461a4660 Added more getters to the new HshMap, for more backwards compatibility. 2023-01-15 23:46:53 +01:00
fd7c2153a6 Replaced the HashMap's implementation with the one Godot4. Refactored it to work as a drop in replacement. Renamed the old one to OGHashMap. 2023-01-15 22:57:13 +01:00
2cd4e4d828 Renamed Set to RBSet. 2023-01-15 19:42:08 +01:00
1b0aac6028 Renamed Map to RBMap. 2023-01-15 19:12:50 +01:00
389052c51a Small cleanups for PooledList and PagedAllocator. 2023-01-15 18:00:34 +01:00
698c2e01f0 Backported the tight version of godot4's LocalVector as the new TightLocalVector class. 2023-01-15 17:30:08 +01:00
5972b6cc43 Removed the deprecated clamped() method from vector2. (The new method is limit_length().) 2023-01-15 14:05:45 +01:00
b240df7df6 Updated more copyright headers for 2023. 2022-12-31 21:07:05 +01:00
f70e207741 Added support for specifying a COPYRIGHT.txt file for modules. 2022-12-31 18:12:06 +01:00
3bf2b79d88 Added set_length helper method to String. 2022-12-22 21:10:04 +01:00
e756718326 Add _FORCE_INLINE_ to String's resize(). 2022-12-22 20:04:50 +01:00
4fb7856b5a Remove now superfluos check from String's operator[]. 2022-12-22 20:03:28 +01:00
91c50d4bea Never print an error message in Object::get_meta(). 2022-12-22 19:58:58 +01:00
213f393293 Fix typos with codespell. 2022-12-22 19:51:25 +01:00
b8009c85f4 Ported: Add vector value linking - KoBeWi and timothyqiu
9499ebecee
2022-12-22 18:50:17 +01:00
51ed526179 Ported: Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@adf7ec1
- akien-mga
84d2f884f8
2022-12-22 17:50:20 +01:00
91e598aa7b Ported: SCons: Cleanup DEBUG, _DEBUG and NDEBUG defines
- `_DEBUG` is MSVC specific so it didn't make much sense to define for
  Android and iOS builds.
- iOS was the only platform to define `DEBUG`. We don't use it anywhere
  outside thirdparty code, which we usually don't intend to debug, so it
  seems better to be consistent with other platforms.
- Consistently define `NDEBUG` to disable assert behavior in both `release`
  and `release_debug` targets. This used to be set for `release` for all
  platforms, and `release_debug` for Android and iOS only.
- Due to the above, I removed the only use we made of `assert()` in Godot
  code, which was only implemented for Unix anyway, should have been
  `DEV_ENABLED`, and is in PoolAllocator which we don't actually use.
- The denoise and recast modules keep defining `NDEBUG` even for the `debug`
  target as we don't want OIDN and Embree asserting all over the place.
- akien-mga
b0b759e6da
2022-12-22 17:42:54 +01:00
f42e413a51 Ported: [Web] Add PS3 gamepad mapping for FF+Linux. - Faless
41b880582e
2022-12-22 16:59:06 +01:00
Hugo Locurcio
fe010a1efe 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.

(cherry picked from commit 4a991887bf3dd5fbb687fb379f06ac85aa4a6245)
2022-12-22 14:08:01 +01:00
lawnjelly
25c3232a77 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-22 13:52:51 +01:00
Emmanouil Papadeas
9524cb6a74 Fix InputEventAction's is_action method ignoring exact_match parameter
(cherry picked from commit 38b51942d6d346d19dd5d4cd1073389caf0152fc)
2022-12-12 12:12:30 +01:00
a7fb068ab4 Revert "Backported: RID: Change comparison operators to use RID_Data id instead of address. This should helps making sorting more deterministic in physics and rendering. The same change was done for 4.0 in 4f16397. - akien-mga - 797321fec4"
This reverts commit 185cfb3291.
2022-12-12 11:54:51 +01:00
lawnjelly
3d1640eb70 Add readahead to VariantParser
Adds a readahead buffer to VariantParser, to prevent large numbers of freads for single bytes, which is inefficient.
2022-12-11 19:17:15 +01:00
lawnjelly
60b6e83948 Fix array-bounds warning in BVH
Provides a workaround to prevent tripping a compiler warning.

(cherry picked from commit 91d252c69795cdfc53e71c553edcff665636ea16)
2022-12-11 19:15:04 +01:00
Rafał Mikrut
5d6b2de1f3 Fix exporting big templates
(cherry picked from commit 86fa3ba56015b0fb6f282277b37c211fe803c6f9)
2022-11-30 19:23:35 +01:00
dzil123
15f2a58915 Fix Image::bump_map_to_normal_map incorrectly keeping mipmap flag
(cherry picked from commit 1fa8b3dd420301dd5c2ad99b6bead6cffe1d4995)
2022-11-30 19:21:11 +01:00
3265fb9e1d Ported: Project Manager: Fix hacky code for project rename
Instantiating a new ProjectSettings is *not* the way to go.
ConfigFile works just fine to read/change a single value.
Fixes memory leaks as the instantiated ProjectSettings was never freed.
Forbid doing this to prevent such problems.
Fixes #25661.
- akien-mga
9a340a2868
2022-11-30 19:19:02 +01:00
voidshine
840c537d89 Fix MIDI note-on events being converted to note-off events
Update documentation with note about MIDI velocity interpretation

(cherry picked from commit f0f72b313236b3cd8793e6fe7487094d9a04694a)
2022-11-30 19:11:21 +01:00
91c53c41c2 Ported: Fix String::word_wrap() for long words
- timothyqiu
51fd1c27aa
2022-11-30 14:57:35 +01:00
dzil123
37c50b6f21 PCKPacker Fix error spam 2022-11-30 14:33:46 +01:00
5aa98e8955 Added Brenzenham's line algorithm found in the TileMapEditorPlugin to Geometry, and it's binder class. 2022-11-20 02:33:40 +01:00
b7d93e4525 Added clear() helper method to Image. 2022-11-19 19:25:04 +01:00
a3f2631d59 Ported: Add double_tap attribute to InputEventScreenTouch
This provides parity with the `InputEventMouseButton` allowing for proper conversion between the two events.
- m4gr3d
be4b07c3e4
2022-11-13 01:29:17 +01:00
9e43e62e3b Ported: [iOS] Fix build with warnings=extra. - bruvzg
987723b386
2022-11-13 00:39:09 +01:00
Jordan Schidlowsky
91624a7561 expose additional global enums in 3.x which are available in master 2022-11-13 00:32:18 +01:00
Micky
6ca2dc959b Rename set_indexed & get_child's params to be clearer
3.x backport of #67300 and #64463.
2022-11-13 00:27:45 +01:00
fbc6f9cf22 Added missing semicolons. 2022-10-09 10:17:16 +02:00
6f35d04ef3 Use FALLTHROUGH macro instead on [[fallthrough]]; 2022-10-09 10:14:12 +02:00
c43fda9fc8 Ported: Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@81ddc73
- akien-mga
7104647c65
2022-10-08 19:05:11 +02:00
42ff9cf8bc Ported: Improve %f formatting for inf and nan.
- MarcusElg
e9cbe9517b
2022-10-08 17:53:43 +02:00
Rémi Verschelde
43de2b9ecc Style: Ensure consistent formatting with clang-format 15 2022-10-08 16:48:59 +02:00
lawnjelly
98c32bb3e7 Improve signal already connected error message
The signal already connected message is improved to provide the names of the objects involved.
2022-10-08 16:34:51 +02:00
Hugo Locurcio
e315a93f87 Expose the "restart on exit" OS functionality
This can be used to restart a project with specific command line arguments
applied. This can work in tandem with `OS.get_cmdline_args()` to restart
with the same command line arguments as used to originally run the project.

Example use cases:

- Restart to apply an user setting change that requires a restart to work.
- Restart with a Godot command line argument to change the video driver,
  audio driver, etc.
2022-10-08 16:34:07 +02:00
808f157b26 Added nissing projection * projection Variant operator. 2022-10-07 03:09:38 +02:00
89cba992ba Now the target fps is customizable for ThreadPool when threading is not enabled. 2022-09-17 23:25:47 +02:00
099b05380e Fix race condition. 2022-09-17 22:35:42 +02:00
48d26e9400 Fix setter parameter types for ThreadPool. 2022-09-17 22:23:29 +02:00
Micky
d31fc4c13a Prevent HTTPRequest from polling invalid client
(cherry picked from commit 9e284f68ec79be745c2cb3d3a4eead3dfcca7cca)
2022-09-17 00:04:38 +02:00
dae3e671fb Ported: Updated gamecontrollerdb.txt to latest to include new mappings for various controllers, including Xbox One, Nintendo Switch, Steam Deck, and 8BitDo
- cybereality
477c7f9b74
2022-09-16 23:59:11 +02:00
Haoyu Qiu
f5fab30297 Fix parsing of XML CDATA and add test cases 2022-09-16 23:50:19 +02:00
lawnjelly
2b70218bd1 Fix uninitialized data reads in Input
Found by Valgrind.
2022-09-16 23:35:56 +02:00
kobewi
e133069bda Add Dictionary.find_key() 2022-09-16 23:20:06 +02:00
Marcel Admiraal
226e29cfca Fix Geometry::get_closest_points_between_segments() returns NaN
Also fix Geometry::get_closest_distance_between_segments() returning
incorrect values.
2022-09-16 22:48:50 +02:00
Fredia Huya-Kouadio
a6a5b60235 Additional fixes to the Android get_current_dir() implementation. 2022-09-16 22:45:21 +02:00
Pedro J. Estébanez
c91198b335 Add FileAccess::get_access_type()
(cherry picked from commit 8c6b2fbb908261d29a6692dd7a816464c28520d2)
2022-09-16 22:13:21 +02:00
dbcca5d26d Ported: Optimize String.repeat()
This backports the optimization done in `master`.
- Calinou, MewPurPur
3b31ff9008
2022-09-16 22:08:51 +02:00
92bc8ed3be Ported: Fix header guard in error_macros.h - madmiraal
e2dac6ecd9
2022-09-16 22:01:08 +02:00
Pedro J. Estébanez
d4555e520f Determine ProjectSettings' resource path early 2022-09-16 21:53:28 +02:00
bruvzg
b7d732b782 Add arch flag to assembler to fix build on ARM64 macOS / iOS.
(cherry picked from commit b767d2e0fdf835dc181bb21c8be69a35671b60b8)
2022-09-16 21:41:56 +02:00
a9eb3a52a3 Ported: zstd: Update to upstream version 1.5.2
Release notes:
- https://github.com/facebook/zstd/releases/tag/v1.5.1
- https://github.com/facebook/zstd/releases/tag/v1.5.2
-akien-mga
bda382684f
2022-09-16 21:31:55 +02:00
Marcin Nowak
a697c239b8 Backport panning strength parameters from 4.0 2022-09-16 19:44:55 +02:00
7dd2bce61b Now ThreadPool should properly handle when use_threads changes. 2022-09-10 04:34:36 +02:00
27316923d3 Moved ThreadPool to core. Also it can change it's thread count now when it has time for it. 2022-09-10 04:16:50 +02:00
0f841bac29 Now String and CharString Types properly move the null terminator on resize and remove. 2022-08-26 15:10:56 +02:00
f9de65e101 Now get_global in Engine won't print an error if the global isn't exists, instead it will just return null. 2022-08-25 11:25:12 +02:00
4f9dd569b8 Now the Engine has methods to store globals (custom singletons). They are mostly meant for classes like EditorInterface, SpatialEditor, and plugin scripts that need a singleton for in-editor use. In essence it provides easy and side effect less access for classes that might not be present on every run. (For example gdscript recognizes normal singletons as keywords, but not these.) 2022-08-23 13:13:39 +02:00
94dfea6391 Put variables at the bottom of the Engine singleton. 2022-08-23 11:55:54 +02:00
45bec656d5 Small cleanups and fixes to StringName. Also increased it's internal table's size. 2022-08-22 01:44:53 +02:00
e2d42db711 Also renamed the files. 2022-08-19 21:24:36 +02:00
58da70524b Ported: Add support for multiple virtual keyboard types - brianwinterpixel
ce24b48e50
2022-08-19 16:18:53 +02:00
59f4eb55d9 Ported: Fix mouse speed not changing fast enough
- Uses all accumulated movements when calculating speed
- Discards old accumulated movements
- Sets last mouse speed to zero when there is no movement
- madmiraal
3d96d7d9fb
2022-08-19 02:46:03 +02:00
88d6ef51eb Removed additional direct script rpc mode query when sending rpcs, in order to simplify that codepath as much as possible. Also removed the remote, remotesync etc. keywords from gdscript, as now they won't work anymore. Node's rpc_config() method should be used instead of marking methods with keywords in scripts. 2022-08-19 01:19:33 +02:00
8809f2b963 Removed deprecated enum values from multiplayerPeer. 2022-08-19 00:39:05 +02:00
44948a6f7a Removed rsets. 2022-08-18 23:04:57 +02:00
6be9bf5dfe Cleaned up and added the skeleton modification stack implementations to the build. Also smaller fixes. 2022-08-18 15:41:28 +02:00
4c4e19223e Added _theme_ infix to the theme helper methods in Control. 2022-08-17 20:57:16 +02:00
9757c39f05 Moved a few more core classes. 2022-08-17 17:43:49 +02:00
99e94b08c4 Moved base input related classes to core/input. 2022-08-17 17:02:24 +02:00
686663d3e4 Moved around more classes in core. 2022-08-17 16:01:01 +02:00
04feb63860 Moved Engine and projectSettings. 2022-08-17 15:35:28 +02:00
be16fe23ad Moved the error macros. 2022-08-17 15:14:19 +02:00
220b2db443 Moved String and related classes under a string folder in core. 2022-08-17 14:19:55 +02:00
dc9cc716c7 Moved Object related classes under core/object. 2022-08-17 13:45:14 +02:00
9555ee56b9 Moved Variant related classes under a variant folder in core. 2022-08-17 13:17:12 +02:00
388b88678e Moved container related classes in core under a new containers directory. 2022-08-17 12:53:49 +02:00
0d2fc2e9f2 Moved color to core/math. 2022-08-17 11:38:15 +02:00
73709fa1ae Backported from Godot4: Clean up Hash Functions
Clean up and do fixes to hash functions and newly introduced murmur3 hashes in #61934
* Clean up usage of murmur3
* Fixed usages of binary murmur3 on floats (this is invalid)
* Changed DJB2 to use xor (which seems to be better)
- reduz
141c375581
2022-08-17 10:42:50 +02:00
d9669b0ed0 Ported form godot4: 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).
-aaronfranke
554c776e08
2022-08-16 22:46:24 +02:00
3b4b25b5f8 Add working bindings for Projection's get_projection_plane. 2022-08-16 22:33:56 +02:00
9e1588160f Now all Variant math types are structs. 2022-08-16 22:09:26 +02:00
e71e3ed897 Now Vector4, Vector4i, Projection, PoolVector4Array, PoolVector4iArray, are built in variant types. Also reordered the Variant's Type enum, renamed _RID in it to RID, fixed a few smaller issues and removed some very old compat code. 2022-08-16 21:55:56 +02:00
8c2e76840c Removed CameraMatrix, and switched to Projection. 2022-08-16 10:26:35 +02:00
904c88c403 Actually fix sign compare warning. 2022-08-16 01:44:25 +02:00
7e5896d81b Bind everything in String. 2022-08-16 01:41:51 +02:00
eb43e1dfc9 Fixed an another sign compare warning. 2022-08-16 01:23:54 +02:00
b796390962 And an another one. 2022-08-16 00:14:59 +02:00
5f6c223dc4 Fix typo. 2022-08-16 00:14:08 +02:00
c5670d501f Fix an another sign compare warning. 2022-08-16 00:13:07 +02:00
220954cf08 Backported most of the improvements to String from Godot4. 2022-08-15 22:54:03 +02:00
d08526393e Bind everything in Vector3i. 2022-08-15 18:31:59 +02:00
feb5c025cf Bind everything in Vector3. 2022-08-15 18:22:55 +02:00
e4aebe1783 Bind everything in Vector2i. 2022-08-15 17:40:36 +02:00
88fbeb4fe4 Bind everything in Vector2. 2022-08-15 17:20:15 +02:00
608ba7826a Ported improvements to Vector2, Vector2i, Vector3, Vector3i, Vector4, and Vector4i from Godot4. 2022-08-15 16:13:21 +02:00
4cc1e75f69 Backported improvements to Quaternion from Godot4. Also bound all eligible methods. 2022-08-15 13:00:32 +02:00
f73af59416 Bound more methods. 2022-08-15 09:34:29 +02:00
007f728438 Bound all eligible transform methods. 2022-08-15 09:20:47 +02:00
5cd44e02d0 Backported the improvements to Transform from Godot4. 2022-08-14 20:35:11 +02:00
e9bb723975 Backported some improvements to Transform2D from Godot4. Also bound all eligible methods. 2022-08-14 19:19:51 +02:00
e4cad690a3 Renamed elements in Transform2D to columns. 2022-08-14 15:37:05 +02:00
d9a8497546 Renamed translate in Transform2D to translate_local. 2022-08-14 14:59:46 +02:00
662c3a7e88 Also did Rect2i. 2022-08-14 14:00:32 +02:00
899ac5cbd8 Backported some improvements to Rect2 from Godot4. Also bound all eligible methods. 2022-08-14 13:15:22 +02:00
7650103ce7 Backported some improvements to Plane from Godot4. Also bound all eligible methods. 2022-08-14 10:52:57 +02:00
c7d2307bd5 Backported some of the improvements to Color from Godot4. Also bound all eligible methods. 2022-08-14 01:08:59 +02:00
170a41ca82 Backported improvements to Basis from Godot4. Also bound all eligible methods. 2022-08-14 00:18:21 +02:00
d9e094ab9a Renamed elements in Basis to rows. 2022-08-13 19:07:59 +02:00
c991043c95 Backported improvements to AABB from Godot 4. Also made sure all eligible methods are bound. 2022-08-13 18:21:54 +02:00
6523457c0f Backported the improvements to the Math class from Godot4. 2022-08-13 16:49:47 +02:00
730bce8587 Renamed Quat to Quaternion for consistency with the other engine math classes. 2022-08-13 15:22:33 +02:00
ec9eb18aaf Backported from Godot4: Make blend animation to use ResetTrack as default value - TokageItLab
860fac4e6f
2022-08-12 17:16:52 +02:00
d1fe0ae433 Backported from Godot4: Fix blend animation to solve TRS track bug & blend order inconsistency - TokageItLab
b06d253920
2022-08-12 16:48:31 +02:00
9d9271b518 Removed the SNAME macro, I'll probably keep static counting support for StringNames though. 2022-08-11 20:22:51 +02:00
22ce231a4e Backported from Godot 4: New and improved IK system for Skeleton3D
This PR and commit adds a new IK system for 3D with the Skeleton3D node
that adds several new IK solvers, as well as additional changes and functionality
for making bone manipulation in Godot easier.
This work was sponsored by GSoC 2020 and TwistedTwigleg
Full list of changes:
* Adds a SkeletonModification3D resource
  * This resource is the base where all IK code is written and executed
* Adds a SkeletonModificationStack3D resource
  * This node oversees the execution of the modifications and acts as a bridge of sorts for the modifications to the Skeleton3D node
* Adds SkeletonModification3D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK
  * Each modification is in it's own file
* Several changes to Skeletons, listed below:
  * Added local_pose_override, which acts just like global_pose_override but keeps bone-child relationships intract
    * So if you move a bone using local_pose_override, all of the bones that are children will also be moved. This is different than global_pose_override, which only affects the individual bone
  * Internally bones keep track of their children. This removes the need of a processing list, makes it possible to update just a few select bones at a time, and makes it easier to traverse down the bone chain
  * Additional functions added for converting from world transform to global poses, global poses to local poses, and all the same changes but backwards (local to global, global to world). This makes it much easier to work with bone transforms without needing to think too much about how to convert them.
  * New signal added, bone_pose_changed, that can be used to tell if a specific bone changed its transform. Needed for BoneAttachment3D
  * Added functions for getting the forward position of a bone
* BoneAttachment3D node refactored heavily
  * BoneAttachment3D node is now completely standalone in its functionality.
    * This makes the code easier and less interconnected, as well as allowing them to function properly without being direct children of Skeleton3D nodes
  * BoneAttachment3D now can be set either using the index or the bone name.
  * BoneAttachment3D nodes can now set the bone transform instead of just following it. This is disabled by default for compatibility
  * BoneAttachment3D now shows a warning when not configured correctly
* Added rotate_to_align function in Basis
* Added class reference documentation for all changes
- TwistedTwigleg
5ffed49907
Note: It still needs some work.
2022-08-10 01:01:38 +02:00
5cd0ea7e60 Fix serializing variants into binary files. 2022-08-09 15:50:30 +02:00
6decccc54f Now Color::clamp() actually has an implementation. 2022-08-08 18:00:42 +02:00
0517f3e462 Fix _scs_create's implementation. 2022-08-08 17:58:43 +02:00
a23d917937 use the proper _NO_DISCARD_ macro. 2022-08-08 17:36:15 +02:00
0b1ae86963 Backported the improvements to StringName from Godot4. 2022-08-08 17:26:23 +02:00
89b1ed9263 Ported contains for String from Godot4. 2022-08-08 16:06:34 +02:00
ffd29397f8 Added clamp() to color from Godot4. 2022-08-08 02:52:30 +02:00
eff5153375 Backported convert_rg_to_ra_rgba8 and convert_ra_rgba8_to_rg from Godot4's Image. 2022-08-08 02:39:21 +02:00
2e30e9f2d6 Ported uri_encode and uri_decode to String from Godot4. 2022-08-08 01:28:25 +02:00
ba00b5bf91 Added char utils header from godot4. 2022-08-08 01:27:57 +02:00
ae7d514cf3 Added set_column to Basis. 2022-08-08 01:18:58 +02:00
4090cb34d7 Backported helper classes to pair.h from Godot4. 2022-08-08 00:05:12 +02:00
37eb131c50 Uncommented hashing methods for the new types. 2022-08-07 23:31:58 +02:00
31603bec29 Added Vector4, Vector4i, and projection classes from Godot4. They are not yet handled via Variants. 2022-08-07 23:30:31 +02:00
705643310e Ported the improvements to the hash funcs from Godot4. 2022-08-07 23:22:21 +02:00
ef5f5f6da4 Fix more includes. 2022-08-07 22:45:50 +02:00
b31e09f884 Added RBMap and EBSet from godot4. 2022-08-07 21:38:22 +02:00
e15630d7f2 Added more helper methods to DirAccessRef and FileAccessRef. Also smaller cleanups. 2022-08-07 21:16:11 +02:00
10e87baee9 Added hash_set from godot4. 2022-08-07 21:08:37 +02:00
9e4ac41f4a Added a new templated WeakRef (WRef) class. 2022-08-04 14:31:00 +02:00
Rémi Verschelde
2ca1470010 File: Re-add support to skip CR (\r) in File::get_as_text
This was removed in #63481, and we confirmed that it's better like this,
but we add back the possibility to strip CR as an option, to optionally
restore the previous behavior.

For performance this is done directly in `String::parse_utf8`.

Also fixes Android `FileAccess::get_line()` as this one _should_ strip CR.

Supersedes #63717.

(cherry picked from commit 1418f97c70a5551bdbfeea853cbc479b32ea9e08)
2022-08-02 17:58:32 +02:00
0095078e25 Fixed an another warning on the pi. 2022-08-02 00:22:41 +02:00
c4e7bc1c45 Reused the old unused PROPERTY_HINT_SPRITE_FRAMES as PROPERTY_HINT_BUTTON. It allows you to add buttons to the inspectors. 2022-07-31 00:01:58 +02:00
9f5fb428ab Ported: Add error messages and docs to explain restrictions when calling NetworkedMultiplayerCustom.initialize()
- dsnopek
5eaf83f2d7
2022-07-30 00:49:12 +02:00
641c15f906 Ported: [3.x] HTML5: Add support for Input.vibrate_handheld() - pattlebass
fb7ecc748f
2022-07-30 00:29:14 +02:00
a917d1bed4 Ported: Address remaining scoped storage regressions
- Accelerate common path used to check the storage scope for a given path
- Update the logic for the `get_as_text()` method - previous logic loads the content of a text file one byte at a time
- m4gr3d
fc2c202312
2022-07-29 23:48:31 +02:00
Ricardo Buring
899a41e0d7 Fixup BVH debugging statements 2022-07-29 23:20:04 +02:00
Fredia Huya-Kouadio
361b5b23f7 Address slow copy performance when using the FileAccessFilesystemJAndroid implementation.
Read/write ops for this implementation are done through the java layer via jni, and so for good performance, it's key to avoid numerous repeated small read/write ops due the jni overhead.

The alternative is to allocate a (conversatively-sized) large buffer to reduce the number of read/write ops over the jni boundary.
2022-07-29 22:35:08 +02:00
7161d7bc29 Ported: Add NetworkedMultiplayerCustom so high-level multiplayer backends can be added from GDScript. - dsnopek
8ad5889c1a
2022-07-29 22:19:12 +02:00
fabriceci
dfd8e09953 Fix the calculation of the angular velocity when the rotation speed is not high.
(cherry picked from commit db7c91e0ada0c91ba48269cf3cc217631ca33bba)
2022-07-29 22:00:03 +02:00
Pedro J. Estébanez
a58186c82a Use the right memory ordering in SafeNumeric operations
(cherry picked from commit 02a584d8e68fad988fbbe43e05f8437284c00733)
2022-07-29 21:58:53 +02:00
9af3a7a709 Ported sort() for poolVectors from 7b8b91f505 . 2022-07-29 21:18:44 +02:00
88fe196e79 Ported: [3.x, macOS, Windows, X11] Add stylus inverted/eraser support to InputEventMouseMotion event.
- hansemro
193d5c11f3
2022-07-29 20:31:16 +02:00
Wilson E. Alvarez
756795a486 Add error messages to String::bin_to_int64, and accept capital B in prefix
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-07-29 19:56:15 +02:00
Wilson E. Alvarez
71fe78538f Add error messages String::hex_to_int functions, and accept capital X in prefix
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-07-29 19:55:58 +02:00
9d76074b58 Ported: Add full support for Android scoped storage.
This was done by refactoring directory and file access handling for the Android platform so that any general filesystem access type go through the Android layer.
This allows us to validate whether the access is unrestricted, or whether it falls under scoped storage and thus act appropriately.
- m4gr3d
24e3b3b88d
2022-07-29 19:24:07 +02:00
Haoyu Qiu
1d2b59b941 Check thread func in base scripts for argument info 2022-07-29 17:59:32 +02:00
Estelle Linkpy Reid
6c65c86669 Corrected InputEventKey::as_text to return a non-empty string for physical keys. 2022-07-29 16:42:10 +02:00
Rémi Verschelde
c2d36b2c34 Errors: Fallback to fprintf if OS singleton doesn't exist
Otherwise we would crash if something prints an error before init or
after destruction of the `OS` singleton which handles printing/logging.

(cherry picked from commit c83084fccb4cdc42d2ca324c974ace0cf974630d)
2022-07-29 16:31:28 +02:00
Marcel Admiraal
24d15ae3f7 Ensure AudioFrame variables l and r are always initialised
(cherry picked from commit d3f099457226ab833127ca66f5876855a9f2da0f)
2022-07-29 11:02:34 +02:00
8ca3043a28 Ported: ProjectSettings: Ensure 'editor/' settings aren't nested
Having a mix of settings with and without subcategory makes the 'Editor'
section stand out with a weird UX, as instead of simply being a foldable
section like the others, it also holds its own top-level settings and is
therefore selectable.
This wasn't the case in 3.4, and is fixed in 4.0 by refactoring, so for
3.5 we should preserve the 3.4 UX, even if it's not the best.
- akien-mga
acd4a01b8c
2022-07-29 10:45:12 +02:00
Theraot
375670222d Added missing p_bidirectional to AStar2D methods
The methods disconnect_points and are_points_connected  now have an optional p_bidirectional parameter matching AStar.

(cherry picked from commit 3590cdfd34eea8dda746d7db1c7e5a79af389026)
2022-07-29 09:13:46 +02:00
Yuri Rubinsky
1a68039fcf Fix wrapf to correct wrap values with 0.1 stepping
(cherry picked from commit 09418afbc0b5a5642448786751b590352ee6cf97)
2022-07-29 09:08:06 +02:00
bb5acfd745 Ported: [3.5] Update NavigationServer backport
Backports features and bugfixes from current Godot 4.0 to 3.5 and brings functions and codebase of both version largely in sync to make tutorials more compatible and future backports easier.
- smix8
8bd7c6188b
2022-07-28 22:34:28 +02:00
802779db24 Ported: Use ThreadWorkPool instead of thread_process_array in NavMap - adamscott
7749346f48
2022-07-28 22:33:00 +02:00
152f9728b0 Ported: [Windows, 3.x] Add support for handling network share paths. - bruvzg
11a7997a67
2022-07-28 19:33:43 +02:00
942b6d9938 Ported: Make Input mouse_mode and use_accumulated_input properties - fire-forge, timothyqiu
53c01540d9
2022-07-28 18:54:48 +02:00
kobewi
202fb33685 Add Dictionary.merge()
(cherry picked from commit a0915e6dee4e54563a98ca6adb8968dbdcea1af1)
2022-07-28 14:59:15 +02:00
sps1112
8e229841be Bind vararg method flag in core constants
(cherry picked from commit 1f361b03678893cd6328702383fce6dc062e7e57)
2022-07-28 14:56:33 +02:00
lawnjelly
693c503213 Optimized Mesh Merging
Changes from PoolVector to LocalVector and pre-reserving vectors rather than push_back.
2022-07-28 13:46:56 +02:00
lawnjelly
c0c72eed7b Force unsigned behaviour for bitfield enums
Some compilers (notably MSVC) were using signed values for bitfield enums. This was causing problems where 2 bits were used to store 4 or less enum values, where they were being treated as negative numbers.

This PR explicitly requests these enums to be treated as unsigned values.
2022-07-28 13:45:51 +02:00
Aaron Franke
9a35bce6cb Improve architectures in OS::has_feature and make it work on MSVC 2022-07-28 13:43:46 +02:00
Haoyu Qiu
98eb7db8b1 Fix String.http_escape on Windows 2022-07-28 13:36:49 +02:00
Univeous
e943c7c81c fix get_meta() with defalt value 2022-07-28 10:19:20 +02:00
Hugo Locurcio
0b8e21cf74 Tweak 64-bit integer overflow message to mention that it's a signed type
(cherry picked from commit 7b5bf3af192be83afab19bbfcd029d97af0da8cd)
2022-07-27 23:11:15 +02:00
e060783202 Fix mistake. 2022-07-27 19:35:50 +02:00
Hugo Locurcio
3395a3a727 Improve error messages when creating Images from code
The rationale behind the expected number of bytes is now displayed
in clear (width, height, format, number of mipmaps expected if any).

(cherry picked from commit 18e9e6a81a0aef27bbb78d3e52d52a4b009457bf)
2022-07-27 19:11:16 +02:00
kobewi
e4133904a2 Move Display settings higher in the list
(cherry picked from commit 739242dd04d16f85d542bcf9a29aa44402410481)
2022-07-27 18:44:38 +02:00
Haoyu Qiu
3886161d4e Fix invalid memory usage when using Image.convert
(cherry picked from commit 34c1a2beaa8ae92a445b85458d3681f60cd5216f)
2022-07-27 18:42:27 +02:00
24eccc4281 Ported: Fix warnings found by Emscripten 3.1.10
Fix `-Wunused-but-set-variable`, `-Wunqualified-std-cast-call`, and
`-Wliteral-range` warnings.
- akien-mga
5e693b6d84
2022-07-27 18:39:35 +02:00
Nicholas Huelin
c1010f7d1b Fix inconsistent naming in Time
(cherry picked from commit 8409d92282e71f8ad479f48d6b1f6d52eb73ae39)
2022-07-27 18:28:47 +02:00