1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-06 17:25:19 +00:00
Commit Graph

92 Commits

Author SHA1 Message Date
Aaron Franke
cc13a376c5 Handle NaN and Infinity in JSON stringify function
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-10-29 12:06:40 -07:00
Thaddeus Crews
881058009f Merge pull request #111522 from Repiteo/core/to-from-native
Core: Support `INF`/`NAN` in JSON from/to native
2025-10-29 13:13:48 -05:00
Edward Moulsdale
b694fe661f Add unit tests for StreamPeerTCP 2025-10-23 19:57:19 +01:00
Thaddeus Crews
b802229423 Core: Support INF/NAN in JSON from/to native 2025-10-13 13:57:55 -05:00
Clay John
8b06cdf277 Revert "Handle NaN and Infinity in JSON stringify function" 2025-10-10 18:22:24 -07:00
Thaddeus Crews
21e5b41642 Merge pull request #108837 from aaronfranke/json-handle-nan-inf
Handle NaN and Infinity in JSON stringify function
2025-10-10 10:25:55 -05:00
Michael Alexsander
fdaf00af0e Fix compilation failure in resource test file 2025-10-07 10:45:00 -03:00
Thaddeus Crews
6b22951162 Merge pull request #107954 from stuartcarnie/unix_domain_socket_support
Add Core UNIX domain socket support
2025-09-30 18:35:08 -05:00
Thaddeus Crews
e256771e86 Merge pull request #108836 from aaronfranke/json-grisu
Use num_scientific (Grisu2) when stringifying JSON with full precision
2025-09-30 11:19:12 -05:00
Thaddeus Crews
f6fc2f4a08 Core: Remove skip_cr argument from String 2025-09-28 10:07:24 -05:00
Stuart Carnie
7227fdd805 Core: Add UNIX domain socket support
> [!NOTE]
>
> Later versions of Windows has support for `AF_UNIX`, so it could be
> added.
2025-09-26 05:46:19 +10:00
Aaron Franke
a238af4d20 Use num_scientific (Grisu2) when stringifying JSON with full precision 2025-09-24 08:21:37 -07:00
BlueCube3310
666ed1b51c Image: Make fill method also fill the mipmaps 2025-09-23 14:55:04 +02:00
Aaron Franke
e90cea9250 Handle NaN and Infinity in JSON stringify function 2025-08-24 10:09:43 -07:00
Aaron Franke
b626695f70 Fix internal JSON stringify not preserving p_full_precision 2025-07-21 08:36:29 -07:00
kit
477a37a594 Fix Resource Duplication test errors 2025-06-15 12:48:03 -04:00
Thaddeus Crews
0f67c3e992 Merge pull request #104522 from Ivorforce/localvector-force-trivial-resize
Core: Add `resize_initialized` and `resize_uninitialized` to `Vector` and `LocalVector`
2025-05-27 09:39:27 -05:00
Lukas Tenbrink
4cb8a0c77e Add resize_initialized and resize_uninitialized to Vector. These functions serve as replacements for resize, to make sure the caller understands whether elements need to be initialized 'by hand' after the call. 2025-05-26 18:35:41 +02:00
Pedro J. Estébanez
6841b45552 Add tests for resource duplication 2025-05-26 17:05:04 +02:00
aaronp64
f13b4b760a Improve JSON::stringify performance
- Changed stringify to call static function _stringify directly, instead of creating JSON object
- Changed colon and end_statement from String to const char * to avoid extra allocations in each _stringify call
- Pass result String reference to each _stringify call to append to instead of allocating new String in each call

These changes make JSON::stringify around 2-3x faster in most cases
2025-05-06 18:27:32 -04:00
Daniel Kinsman
a0cc41b5ed Use libjpeg-turbo for improved jpg compatibility and speed
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-05-02 11:47:56 +02:00
Thaddeus Crews
ad40939b6f Core: Replace C math headers with C++ equivalents
- Minor restructuring to ensure `math_funcs.h` is the central point for math functions
2025-04-16 15:49:02 -05: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
kobewi
75881f8322 Use initializer list in Arrays 2025-03-26 18:38:15 +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
A Thousand Ships
466590d0ec Use get_slicec instead of get_slice for single character splitters 2025-03-08 20:36:37 +01:00
Thaddeus Crews
324512e11c Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06: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
Thaddeus Crews
f0f5319b0b Merge pull request #100107 from Faless/fix/net_tests
[Net] Fix TCP/UDP server network tests
2025-02-05 18:50:44 -06:00
Rémi Verschelde
35080c6df3 Merge pull request #100970 from anknetau/ank/godot-add-test-cases-for-uid-strings
Add some tests for `uid://` encoding and decoding
2025-01-10 23:05:59 +01:00
Andres Kievsky
2b5dd99d72 Add some tests for uid:// encoding and decoding 2025-01-10 23:41:12 +11: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
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
A Thousand Ships
a1846b27ea Improve use of Ref.is_null/valid
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05: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
Thaddeus Crews
8f16f864a6 Merge pull request #99765 from dalexeev/core-fix-json-from-to-native
Core: Fix `JSON.{from,to}_native()` issues
2024-12-10 14:15:53 -06:00
Fabio Alessandrelli
e5807b2adf [Net] Fix TCP/UDP server network tests
Some tests have been removed since there's no way to guarantee they will
pass.

Other tests have been refactored to ensure proper waiting, and taking
into account potential out-of-order delivery (which is unlikely in test
scenarios but expecting a specific order on a UDP socket is wrong and
OSes makes no promises of ordered delivery on localhost).
2024-12-06 18:00:49 +01:00
Pablo Andres Fuente
df2c2ca3c3 Fix TCPServer "Should disconnect client" test
"Should disconnect client" test was failing randomly on Mac CI tests, so
this PR is making it more reliable reading on the closed client instead of
writing to it
2024-12-03 09:46:37 -03:00
Pablo Andres Fuente
0c03db09f8 Add unit tests for TCPServer
This PR aims to help "fix" #43440
2024-11-29 12:55:49 +01:00
Danil Alexeev
bd1a35ce9e Core: Fix JSON.{from,to}_native() issues 2024-11-29 12:43:06 +03:00
Pablo Andres Fuente
2c9de1d9d2 Add unit tests for UDPServer
This PR aims to help "fix" #43440
2024-11-22 23:08:05 -03:00
Thaddeus Crews
c35e4c41d2 Merge pull request #97716 from pafuent/add_half_precision_floating_point_to_stream_peer
Add half precision floating point support to `StreamPeer` and `FileAccess`
2024-11-22 14:54:19 -06:00
Pablo Andres Fuente
eb86670f94 Add half precision floating point support to StreamPeer
Closes godotengine/godot-proposals#5983

Adds put/get methods to `StreamPeer` that handles half precision
floating point values.
Adds endode/decode half precision floating point to `marshalls`.
Adds `get_half` and `store_half` to `FileAccess`

Co-Authored-By: "Alfonso J. Ramos" <theraot@gmail.com>
2024-11-12 08:46:52 -03:00
Danil Alexeev
9ba098b670 Core: Add typed dictionary support for binary serialization 2024-11-12 10:18:56 +03:00
Rémi Verschelde
a7d0464e9e Merge pull request #95931 from pafuent/adding_packet_peer_tests
Add unit tests for `PacketPeer`
2024-10-01 17:30:36 +02:00
Pablo Andres Fuente
ff10dee946 Add unit tests for StreamPeer and StreamPeerBuffer
Partially fixes #43440
2024-10-01 12:25:11 -03:00
Pablo Andres Fuente
0a41a715da Add unit tests for PacketPeer
Partially fixes #43440
2024-10-01 12:19:41 -03:00
A Thousand Ships
194bdde947 Cleanup of raw nullptr checks with Ref
Using `is_valid/null` over checks with `nullptr` or `ERR_FAIL_NULL` etc.
2024-08-31 15:01:09 +02:00
K. S. Ernest (iFire) Lee
71bdbcdfb1 Ability to convert native engine types to JSON and back.
Implements support for all engine types in JSON encoding/decoding

Co-Authored-By: Juan <reduzio@gmail.com>
Co-Authored-By: Rémi Verschelde <rverschelde@gmail.com>
2024-08-29 10:57:15 -07:00
Hugo Locurcio
0445ccf428 Fix Image CowData crash when baking large lightmaps
This switches to 64-bit integers in select locations of the Image
class, so that image resolutions of 16384×16384 (used by
lightmap texture arrays) can be used properly. Values that are larger
should also work.

VRAM compression is also supported, although most VRAM-compressed
formats are limited to individual slices of 16384×16384. WebP
is limited to 16383×16383 due to format limitations.
2024-07-19 16:04:30 +02:00