1
0
Fork 0
Commit Graph

1683 Commits

Author SHA1 Message Date
Lukas Tenbrink fbe64ffb45 Change `get_class_static` to return `StringName`.
Use that static `get_class_static` for `_get_class_namev` to avoid duplication.
2025-04-08 23:25:05 +02:00
Yufeng Ying f7e4987d0e Dictionary::get_key_list use LocalVector instead of List. 2025-04-09 02:46:24 +08:00
Lukas Tenbrink 68f4502a5b Fix `FileAccessCompressed` claiming one byte more than it actually has.
Add a unit test for fastlz compressed file access.
2025-04-08 15:19:58 +02:00
Thaddeus Crews 0fbb22c095
Merge pull request #104432 from YYF233333/dict_iter2
Do not iterate `Dictionary` with `Dictionary::keys()`
2025-04-07 08:43:33 -05:00
Thaddeus Crews 5edb235018
CI: Bump various pre-commit hooks 2025-04-07 08:23:35 -05:00
Yufeng Ying 8ae16699c5 Do not use Dictionary::keys() for Dictionary iteration. 2025-04-05 18:42:13 +08:00
Thaddeus Crews 207a2b6472
Core: Integrate warning suppression macro helpers 2025-04-03 10:13:46 -05:00
Yufeng Ying 4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
Thaddeus Crews abd565eb19
Merge pull request #104844 from Ivorforce/gdsoftclass
Add and require `GDSOFTCLASS` for `Object` subclasses that want to cast but do not use `GDCLASS`.
2025-03-31 19:02:03 -05:00
Lukas Tenbrink fa0a3c9c6e Add and require `GDSOFTCLASS` for `Object` subclasses that want to cast but do not use `GDCLASS`. 2025-03-31 20:49:50 +02:00
Thaddeus Crews 64f80ca0e9
Merge pull request #104810 from kiroxas/utf8_cleanup
Replace `append_utfx` with direct `String::utfx`
2025-03-31 12:03:44 -05:00
Kiro 23129a66ed Replace append_utfx with direct String::utfx 2025-03-30 19:56:38 +02:00
BlueCube3310 647b99c6d0 Image: Fix typo at `_set_color_at_ofs` with `FORMAT_RGB565` 2025-03-29 17:51:31 +01:00
Thaddeus Crews 152c14b053
Merge pull request #104597 from bruvzg/path_check
Implement `DirAccess.is_equivalent` method.
2025-03-29 10:16:34 -05:00
Thaddeus Crews 780cf03051
Merge pull request #104556 from Ivorforce/string-extend-instead-of-parse
Use `append_` instead of `parse_` for `String` methods.
2025-03-29 10:16:33 -05:00
BlueCube3310 dd47d9173e Image: Improve `is_invisible` function 2025-03-28 22:42:37 +01:00
Rémi Verschelde e3063f5675
Merge pull request #104590 from bruvzg/tex_decomp_load
Load decompressable texture format if no supported one is found.
2025-03-28 17:30:28 +01:00
Rémi Verschelde 3b90bb56ad
Merge pull request #89782 from KoBeWi/stdArrayList
Use initializer list in Arrays
2025-03-28 17:29:40 +01:00
Lukas Tenbrink ffa6ef220b Use `append_` instead of `parse_` for `String` methods. 2025-03-27 17:51:02 +01:00
BlueCube3310 649fa630a7 Image: Remove references to defunct `FORMAT_CUSTOM` 2025-03-26 21:37:26 +01:00
kobewi 75881f8322 Use initializer list in Arrays 2025-03-26 18:38:15 +01:00
Pāvels Nadtočajevs d5cea9bb2e
Implement `DirAccess.is_equivalent` method. 2025-03-25 17:52:15 +02:00
Pāvels Nadtočajevs b384de9013
Load decompressable texture format is no supported one found. 2025-03-25 09:46:19 +02:00
Thaddeus Crews 1cb3cfaa8e
Style: Convert namespaces to PascalCase 2025-03-23 19:10:24 -05:00
Thaddeus Crews 2eec0fc526
Merge pull request #94441 from Repiteo/core/math-namespace
Core: Convert `Math` class to namespace
2025-03-23 19:03:55 -05:00
Thaddeus Crews fd45f42464
Merge pull request #101361 from Repiteo/core/isolate-ref-logic
Core: Isolate `Ref` forward declare logic
2025-03-23 19:03:54 -05:00
Thaddeus Crews d9ef361d12
Core: Isolate `Ref` forward declare logic 2025-03-23 08:22:00 -05:00
Thaddeus Crews f09ee0171a
Style: Begin integrating simple `.clangd` fixes 2025-03-22 13:24:35 -05:00
Thaddeus Crews 581d675eeb
Core: Convert `Math` class to namespace 2025-03-21 10:29:18 -05:00
Pāvels Nadtočajevs abe413ff8c
Fix icons with non-ASCII file names in project manager. 2025-03-20 16:33:01 +02:00
kobewi 10f6c01b9c Remove ABS in favor of Math::abs 2025-03-19 13:52:40 +01:00
Rémi Verschelde 2fa721b1bc
Merge pull request #104127 from Ivorforce/360-noclip
Remove `String` clipping constructors.
2025-03-19 12:27:10 +01:00
Rémi Verschelde 65161977e9
Merge pull request #103415 from bruvzg/iv_pools
Use single RNG instance for `FileAccessEncrypted` IV generation.
2025-03-19 12:26:38 +01:00
Pablo Andres Fuente e2bef7041e Fix `StreamPeerGZIP::finish()` internal buffer size usage
Fixes #97201

Instead of using and arbitrary fixed size for the internal buffer,
the remaining available bytes of the internal `RingBuffer` is used.

Also add unit tests for `StreamPeerGZIP`.
2025-03-19 09:56:32 +01:00
Thaddeus Crews f98cddfc71
Merge pull request #101994 from fire/vsk-save-dds-4.4
Add DDS image load and save functionality
2025-03-17 16:03:26 -05:00
Thaddeus Crews 4320800621
Core: Expand `is_zero_constructible` coverage 2025-03-17 11:45:26 -05:00
Thaddeus Crews 82f284d9fe
Merge pull request #104187 from Ivorforce/file-access-compressed-memcpy
Optimize `FileAccessCompressed::get_buffer` by using `memcpy`.
2025-03-17 10:52:16 -05:00
Lukas Tenbrink b67e213b16 Optimize `FileAccessCompressed::get_buffer` by using `memcpy`. 2025-03-16 12:22:06 +01:00
Lukas Tenbrink b4f6663afa Recycle `zstd` decompression context if possible, avoiding repeated allocations. 2025-03-15 15:39:18 +01:00
Lukas Tenbrink a23f630781 Remove `String` clipping constructors.
Callers should instead call constructors with explicit encoding names, with known length `Span`.
2025-03-15 12:34:44 +01:00
K. S. Ernest (iFire) Lee 69b281295c Add DDS image load and save functionality
Save and load DDS from Image class.

Co-authored-by: BlueCube3310 <53150244+BlueCube3310@users.noreply.github.com>
2025-03-14 19:31:43 -07:00
Lukas Tenbrink f4de2cd22a Use `resize_zeroed` instead of `resize` then `fill(0)` in several places. 2025-03-14 12:09:39 +01:00
Rémi Verschelde 6ed10dee37
Merge pull request #104060 from bruvzg/resloader_ids
Fix `Invalid Task ID` errors in `ResourceLoader`.
2025-03-14 00:08:59 +01:00
Rémi Verschelde d912dcc26c
Merge pull request #104013 from bruvzg/rload_nowait
[ResourceLoader] Do not wait for the main thread during initial reimport.
2025-03-14 00:08:53 +01:00
Rémi Verschelde e281a9ace2
Merge pull request #102650 from bruvzg/emit_changed_spam
Prevent `changed` signal spam on resource reload.
2025-03-14 00:07:59 +01:00
Thaddeus Crews c1b7865ae9
Merge pull request #103557 from aaronfranke/godot-version-defines
Rename version defines to `GODOT_VERSION_*` to match GDExtension godot-cpp
2025-03-13 08:57:42 -05:00
Pāvels Nadtočajevs d1b63ae16c
Fix `Invalid Task ID` errors in `ResourceLoader`. 2025-03-13 08:41:53 +02:00
Aaron Franke 97ee05e9b7
Rename version defines to GODOT_VERSION_* to match GDExtension godot-cpp 2025-03-12 11:11:38 -07:00
Yufeng Ying bebe037abf Add ConstIterator to Dictionary. 2025-03-13 01:28:46 +08:00
Pāvels Nadtočajevs 16865b6917
[ResourceLoader] Do not wait for the main thread during initial reimport. 2025-03-12 09:18:39 +02:00
Thaddeus Crews e9e4760335
Merge pull request #83538 from bruvzg/size_and_at
[FileAccess] Implement `get_size` and `get_access_time` methods.
2025-03-11 14:00:58 -05:00
A Thousand Ships 331a43a9d8
Add `String::remove_char(s)` methods for performance and convenience 2025-03-10 13:19:28 +01:00
bruvzg 85d3be8070
[FileAccess] Implement `get_size` and `get_access_time` methods. 2025-03-09 16:07:00 +02:00
Thaddeus Crews 3a0b8da168
Merge pull request #101304 from Ivorforce/string-parse-ascii
Add `String::ascii` creator functions, to parse a char buffer as ASCII.
2025-03-09 09:05:28 -05:00
Thaddeus Crews 324512e11c
Style: Replace header guards with `#pragma once` 2025-03-07 17:33:47 -06:00
Lukas Tenbrink b6cfcdeab5 Add `String::ascii` creator functions, to parse a char buffer as ASCII.
The function will log errors if any characters above value 127 are found.
2025-03-08 00:01:27 +01:00
Thaddeus Crews 3c43508ed7
Merge pull request #102427 from AThousandShips/fix_substr
Clean up some uses of `String::substr`
2025-03-07 15:12:33 -06:00
Thaddeus Crews c937b6d180
Merge pull request #102419 from Ivorforce/std-size
Use `std::size` instead of `sizeof(a) / sizeof(a[0])` pattern throughout the codebase.
2025-03-07 15:12:25 -06:00
Thaddeus Crews d9125ebebe
Merge pull request #101293 from Ivorforce/string-to-pointer-conversion
Remove implicit conversions from `String`, `Char16String` and `CharString` to data pointers.
2025-03-07 15:12:12 -06:00
A Thousand Ships 5113022dfe
Clean up some uses of `String::substr`
Cases where the end position is either equvalent to the default or past
the end of the string.
2025-03-07 14:50:38 +01:00
Pāvels Nadtočajevs cf18cf1630 Use single RNG instance for `FileAccessEncrypted` IV generation. 2025-03-01 00:02:42 +02:00
erodozer e48fea73e6 Support multi part extensions in import plugins 2025-02-18 13:19:05 -05:00
Pāvels Nadtočajevs da767ebfa2 Prevent `changed` signal spam on resource reload. 2025-02-11 15:22:49 +02:00
Rémi Verschelde 62d22ffa6b Merge pull request #98216 from pafuent/fixing_log_rotation
Fix file logging log rotation
2025-02-11 10:54:01 +01:00
Pablo Andres Fuente d1338528f9 Fix file loggin log rotation
Fixes #97066

`RBSet` were used on `RotatedFileLogger` because it guarantees that
iterating it is done via `operator<`. This is important because
`RotatedFileLogger` depends on this behavior to delete the oldest log file.
On #61194 `HashSet` was added and all `RBSet` uses were replaced by
`HashSet`.
When that happened, the iteration in order is guaranteed to be the insertion
order, wich made that `RotatedFileLogger` delete the newest log file.
As a bonus, I added unit test for `RotatedFileLogger` and `CompositeLogger`.
2025-02-10 21:57:07 +01:00
Hilderin 9457666bba Fix accessing UID before first scan 2025-02-08 20:04:32 -05:00
Lukas Tenbrink e34f1f504c Use `std::size` instead of `sizeof(a) / sizeof(a[0])` pattern throughout the codebase. 2025-02-07 14:57:48 +01:00
kobewi 65509ae4ff Improve UID file creation condition 2025-02-06 17:08:00 +01:00
Pāvels Nadtočajevs e6e108d091 Implement `get_length()` for pipes. 2025-02-03 16:50:00 +02:00
Tareq Anuar 9014cdb596
Fix ResourceLoader.has_cached() and ResourceLoader.get_cached_ref() not handling UIDs. 2025-01-20 20:36:23 +08:00
Lukas Tenbrink 512abc38b2 Remove implicit conversions from String, Char16String and CharString to data pointers. Make conversions to StrRange implicit to aid transition. 2025-01-17 17:31:58 +01:00
Thaddeus Crews 0c0c45d695
Merge pull request #99494 from RandomShaper/rerefix_res_unrecog
ResourceLoader: Report appropriate error code when no suitable loader is found
2025-01-16 17:18:03 -06:00
Thaddeus Crews ec85334a84
Merge pull request #90425 from tracefree/load-pack-fix
Fix "res://" being replaced by resource packs in the editor and on Android
2025-01-16 17:18:02 -06:00
BlueCube3310 271067eb2b Fix certain channel masks for Texture previewer 2025-01-15 18:40:53 +01:00
Rie d17ce4c37e Fix "res://" being replaced by resource packs in the editor and on Android 2025-01-15 11:20:46 +01:00
Rémi Verschelde f07e3ed551 Merge pull request #100157 from Zylann/texture_preview_channel_selector
Add color channel filter to editor texture previews
2025-01-14 12:08:54 +01:00
Marc Gilleron c7a9d64eaf Add color channel filter to editor texture previews 2025-01-11 23:27:48 +00:00
David Snopek 696285f23a Use `MethodInfo::get_compatibility_hash()` to generate the hash for `MethodBind::get_hash()` and other GDExtension hash clean up 2025-01-11 15:57:42 -06:00
Rémi Verschelde 5b52b4b5c4 Merge pull request #101446 from KoBeWi/path_ensuring_never_ends
Fix UID path remap
2025-01-11 22:30:25 +01:00
kobewi 9ad34ecc3e Fix UID path remap 2025-01-11 22:15:59 +01:00
kobewi d3d874e0d1 Improve missing UID errors 2025-01-11 21:30:25 +01:00
Yufeng Ying 34d8255947 Force build editor with regex module, remove checking code.
Fix include.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-07 19:43:23 +08:00
Rémi Verschelde 653f5a9613
Merge pull request #100976 from AThousandShips/uid_fixes
[Core] Fix UID encoding
2025-01-06 22:48:13 +01:00
Rémi Verschelde e06cac212b
Merge pull request #99893 from kiroxas/avoidUTF8ParsingWhenNotNecessary
Avoid duplicated `utf8()` calls
2025-01-06 22:47:12 +01:00
Rémi Verschelde c049d07121
VariantParser: Ensure all parse errors have an explanation
Likewise in ResourceFormatText and JSON.
2025-01-03 17:17:37 +01:00
Rémi Verschelde a17a0bc808
Merge pull request #100717 from KoBeWi/icon_uncache
Fix icon UIDs in Project Manager
2025-01-03 02:01:24 +01:00
Thaddeus Crews e06d83860d
Style: Enforce `AllowShortFunctionsOnASingleLine` 2025-01-02 10:09:41 -06:00
AThousandShips 25ecf5ec83
[Core] Fix UID encoding
Fixes edge case where `0` encoded as `uid://` instead of `uid://a`, and
fixes the size of the temporary buffer storing encoded UID strings.
2024-12-31 15:20:09 +01:00
kobewi 81b1138a7f Fix icon UIDs in Project Manager 2024-12-26 14:54:09 +01:00
Thaddeus Crews 3c304ab7cc
Merge pull request #96076 from AThousandShips/improve_null_check_core_drivers
[Core,Drivers] Improve use of `Ref.is_null/valid`
2024-12-23 11:14:58 -06:00
Thaddeus Crews bf9ef5f8a5
Merge pull request #100564 from YYF233333/iwyu
Remove unused headers in core
2024-12-19 19:59:55 -06:00
Kiro 06efe84bca Remove duplicate `utf8()` calls 2024-12-19 10:15:46 +01:00
Yufeng Ying be86ce3103 Apply iwyu suggestion in core. 2024-12-19 00:43:47 +08:00
Rémi Verschelde 851d8e49e8
Merge pull request #100386 from hpvb/core-ubsan
Core: Fix UBSAN reports
2024-12-18 17:23:32 +01:00
HP van Braam 240f510fa7 Core ubsan fixes
This fixes UBSAN errors reported by running our testsuite, importing the
TPS demo, and running the TPS demo. I have tried, wherever possible, to
fix issues related to reported issues but not directly reported by UBSAN
because thse code paths just happened to not have been exercised in
these cases.

These fixes apply only to errors reported, and caused by, core/

The following things have been changed:

* Make sure there are no implicit sign changing casts in core.
* Explicitly type enums that are part of a public API such that users of
  the API cannot pass in wrongly-sized values leading to potential stack
  corruption.
* Ensure that memcpy is never called with invalid or null pointers as
  this is undefined behavior, and when the engine is built with
  optimizations turned on leads to memory corruption and hard to debug
  crashes.
* Replace enum values only used as static values with constexpr static
  const values instead. This has no runtime overhead. This makes it so
  that the size of the enums is explicit.
* Make sure that nan and inf is handled consistently in String.
* Implement a _to_int template to ensure that all of the paths use the
  same algorhithm, and correct the negative integer case.
* Changed the way the json serializer precision work, and added tests to
  verify the new behavior. The behavior doesn't quite match master in
  particulary for negative doubles as the original code tried to cast -inf
  to an int. This then led to negative doubles losing all but one of
  their decimal points when serializing. Behavior in GDScript remains
  unchanged.
2024-12-18 14:31:12 +01:00
Rémi Verschelde d328c00ad3
Merge pull request #99667 from RandomShaper/res_load_verb
ResourceLoader: Print load message only when actually loading
2024-12-18 09:53:06 +01:00
Pedro J. Estébanez 6740823e40 ResourceLoader: Print load message only when actually loading 2024-12-18 09:36:16 +01:00
Thaddeus Crews 24a8c05cbd
Merge pull request #100335 from kiroxas/Improve`ResourceUID--id_to_text`Performance
Improve `ResourceUID::id_to_text` performance
2024-12-16 12:10:05 -06:00
Kiro 5f401e63b5 Improve `ResourceUID::id_to_text` performance 2024-12-15 10:41:13 +01:00
David Snopek 8c01fc2274 Fix `StreamPeerExtension::put_partial_data()` to call `_put_partial_data()` 2024-12-12 08:31:12 -06:00