Commit graph

4924 commits

Author SHA1 Message Date
Kirill Diduk
52507443d3 Check duplicate keys in dictionary literals: enums and const variables
Check identifiers (const variables and unnamed enums) and named
enums when parsing dictionary literals whether the keys are not
duplicated.

In case of duplicate key is encountered, highlight the line with it
and print error message:
`Duplicate key "foo" found in Dictionary literal`

This commit is a logical continuation of the commit dab73c7 which
implemented such checks only for literal keys (which fixed #7034).

Apart from that, this commit also fixes the issue with the error
message itself, which was shown one line below the duplicated key
in case it was the last one in the dictionary literal and there
was no hanging comma.

Also, the format of the error message has been changed so that now
the error message also contains the value of the key which is duplicated.
Instead of `Duplicate key found in Dictionary literal`, it now prints
`Duplicate key "<value>" found in Dictionary literal`

Fixes #50971
2024-03-25 00:07:51 +01:00
lawnjelly
6e0468d452
Merge pull request #88367 from Faless/gdnative/arm_sysv_abi_warnings
[3.x] GDNative: Fix Linux arm32 warning about ignored sysv_abi attribute
2024-02-27 15:01:22 +00:00
Ansraer
1e7c60174e fix crash on mat creation after orm refactor 2024-02-16 20:51:27 +01:00
Fabio Alessandrelli
90b83e77a6 [3.x] GDNative: Fix Linux arm32 warning about ignored sysv_abi attribute 2024-02-15 14:30:03 +01:00
Ansraer
b9cbffd957 add ORMSpatialMaterial 2024-02-08 20:34:11 +01:00
Rémi Verschelde
e96ebf9218
Merge pull request #61568 from lawnjelly/merge_node
[3.x] Add MergeGroup node to simplify merging Meshes at runtime
2024-02-07 09:49:45 +01:00
Danil Alexeev
e922e49b13
[3.x] GDScript: Fix get_method_list for custom functions 2024-02-07 10:10:32 +03:00
lawnjelly
8b79135538 Add MergeGroup node to simplify merging Meshes at runtime 2024-01-31 08:28:51 +00:00
Rémi Verschelde
c6e4ee72df
Linux: Disable webm module on arm32, we can't build libvpx properly
libvpx arm32 build with NEON can be supported in theory (and it works
on Android armv7), but our SCons logic for it is super convoluted and
broken. It needs significant rework to be made less error prone, and
ensure we can compile `.s` files properly with cross-compilation
toolchains.

The demand to play WebM videos on older Pi3-style SoCs is likely low,
so for now this is a simple compromise.

Could be improved with some effort if someone is motivated.
2024-01-17 15:06:52 +01:00
Rémi Verschelde
dfb03a3956
Merge pull request #87272 from halotroop2288/patch-3
[3.x] Fix `#if *_ENABLED` inconsistencies, should check if defined
2024-01-17 13:47:09 +01:00
Rémi Verschelde
1eac1a2794
Merge pull request #87265 from AThousandShips/aabb_fix_cs_3_x
[3.x] [C#] Fix `Encloses` failing on shared upper bound for `AABB` and `Rect2`
2024-01-17 13:46:47 +01:00
Caroline Joy Bell
9c0bd332a5
Fix #if *_ENABLED inconsistencies, should check if defined
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-01-17 10:21:40 +01:00
A Thousand Ships
ee4396809c
[C#] Fix Encloses failing on shared upper bound for AABB and Rect2 2024-01-16 20:19:43 +01:00
Rémi Verschelde
ae34c85a87
Linux: Fix arm32 build for OIDN and Embree
Still paying the cost of not having refactored all architecture handling
in the 3.x branch so we have this broken hybrid of arch/bits which is
unreliable.
2024-01-16 18:17:05 +01:00
Rémi Verschelde
fd93036834
Merge pull request #86466 from andy-noisyduck/csharp-transform2d-operator-fix
[3.x] C#: Fix incorrect `Rect2` sizing when using the `Transform2D` `*` operator.
2024-01-05 11:07:19 +01:00
Rémi Verschelde
f37ff9e254
Merge pull request #79123 from dalexeev/3.x-gds-prevent-native-class-shadowing
[3.x] GDScript: Prevent native class shadowing
2024-01-05 11:06:31 +01:00
Andy Savage
05624ddbc8 Fix incorrect Rect2 size when Transform2D * operator. 2023-12-23 02:39:07 +00:00
Rémi Verschelde
1fe73d4feb
Merge pull request #85917 from akien-mga/3.x-fix-Wtype-limits-gcc-arm64
[3.x] Fix various GCC 13 warnings
2023-12-11 20:02:09 +01:00
Rémi Verschelde
51732690e6
Merge pull request #85916 from akien-mga/gdnative-fix-linux-arm64-sysv_abi-attribute-warning
[3.x] GDNative: Fix Linux arm64 warning about ignored `sysv_abi` attribute
2023-12-11 20:02:06 +01:00
Rémi Verschelde
4bb21d3d83
Merge pull request #85915 from akien-mga/3.x-fix-linux-arm64-theora-libvpx
[3.x] SCons: Fix Linux arm64 build for theora and libvpx
2023-12-11 20:02:03 +01:00
Rémi Verschelde
ee883cea40
Merge pull request #85521 from dsnopek/webxr-fix-ar-position-godot3
[3.x] Fix touch events in WebXR with an "immersive-ar" session
2023-12-08 15:42:53 +01:00
Rémi Verschelde
02e4e208ef
Fix various GCC 13 warnings
Fixes occurrences of `-Wtype-limits`, `-Wmaybe-uninitialized`,
`-Wduplicated-branches`.
2023-12-08 15:32:59 +01:00
Rémi Verschelde
52b32ed533
GDNative: Fix Linux arm64 warning about ignored sysv_abi attribute
Fixes #41160.
2023-12-08 13:16:03 +01:00
Rémi Verschelde
5b8a1314bd
SCons: Fix Linux arm64 build for theora and libvpx
The architecture handling in 3.x is all over the place, and I'm not
going to start a major refactor like I did for 4.0 so late in its life
cycle.

So let's add more hacks! ⚔️

This requires manually passing `arch=arm64` when compiling, but this is
already the case for other parts of the codebase.
2023-12-08 12:56:52 +01:00
Filipe Rinaldi
45c76995dd
Fix arm64 build when using Clang
The commit b5a8055b5c should target GCC builds only as
-flax-vector-conversions has different behaviour in Clang and is
currently making the build fail.

Signed-off-by: Filipe Rinaldi <filipe.rinaldi@gmail.com>
(cherry picked from commit 2841144096)
2023-12-08 12:32:51 +01:00
Rémi Verschelde
dede8d384f
embree: Fix Linux ARM64 build with -flax-vector-conversions
This is a change done upstream in the `devel3` branch for 3.13.6:
82ca6b5ccb

They also seem to define it for macOS, but for us it breaks the build...
¯\_(ツ)_/¯

Also change wrong use of CPPFLAGS (pre-processor) where CXXFLAGS (C++)
makes more sense.

(cherry picked from commit b5a8055b5c)
2023-12-08 12:32:14 +01:00
David Snopek
5ea11fb481 Fix touch events in WebXR with an "immersive-ar" session 2023-11-29 14:54:45 -06:00
Rémi Verschelde
e236747b31
Merge pull request #84475 from timothyqiu/3.x-image-links
[3.x] Fix image links to `godot-docs` repository
2023-11-14 11:37:42 +01:00
Rémi Verschelde
42dda76296
Merge pull request #83869 from rarysson/fix-3.x-build
[3.x] Add missing include header to FBXCommon.h
2023-11-14 11:37:30 +01:00
Rémi Verschelde
b5081afc55
Merge pull request #83064 from jasonwinterpixel/3.x-gdscript-parser-faster-autoload
[3.x] Optimize GDScript parser for checking if an identifier is an autoload
2023-11-14 11:37:20 +01:00
Rémi Verschelde
1ba1d46740
Merge pull request #81574 from BlueCube3310/3x-dds-grayscale-fix
[3.x] Fix grayscale DDS loading
2023-11-14 11:37:07 +01:00
Haoyu Qiu
5302868446 Fix image links to godot-docs repository 2023-11-05 16:53:53 +08:00
Rarysson Guilherme
db29b32cd6 Add missing include header to FBXCommon.h 2023-10-23 21:11:45 -03:00
Jason Knight
4285c44b47 Far faster and more efficient method of checking if an identifer refers an autoload. 2023-10-23 12:13:12 -06:00
ryanabx
22c9ac1540 [3.x] Add --lsp-port as a command line argument 2023-09-20 23:59:50 -05:00
BlueCube3310
7aa0ce5702
[3.x] Fix grayscale dds loading 2023-09-12 15:22:42 +02:00
Rémi Verschelde
54738d3195
Revert "Backport implement loading DDS textures at run-time"
This reverts commit 22468ea1d3.
See #81126 for rationale.
2023-09-01 08:47:25 +02:00
Rémi Verschelde
69a6d7f179
pcre2: Update to upstream version 10.42 (take two)
Changelog: https://github.com/PCRE2Project/pcre2/blob/pcre2-10.42/ChangeLog

This fixes support for RISC-V architectures in the sljit library, so we
enable the module's compilation for `rv64` too.

(cherry picked from commit e289cf7085)
2023-08-29 11:45:59 +02:00
DeeJayLSP
a9d19a97ec
libwebp: Sync with upstream 1.3.0
(cherry picked from commit d8e8517d11)
2023-08-28 17:27:17 +02:00
Hugo Locurcio
9cde5e2977
Document how to use logarithm of base 10 with log()
(cherry picked from commit 3c4f0ca9c6)
2023-08-28 17:27:13 +02:00
Rémi Verschelde
55550da68b
SCons: Disable C++ exception handling
Upon investigating the extremely slow MSVC build times in #80513, I noticed
that while Godot policy is to never use exceptions, we weren't enforcing it
with compiler flags, and thus still included exception handling code and
stack unwinding.

This is wasteful on multiple aspects:

- Binary size: Around 20% binary size reduction with exceptions disabled
  for both MSVC and GCC binaries.
- Compile time:
  * More than 50% build time reduction with MSVC.
  * 10% to 25% build time reduction with GCC + LTO.
- Performance: Possibly, needs to be benchmarked.

Since users may want to re-enable exceptions in their own thirdparty code
or the libraries they compile with Godot, this behavior can be toggled with
the `disable_exceptions` SCons option, which defaults to true.
2023-08-16 10:34:10 +02:00
Rémi Verschelde
fa04a839bb
Merge pull request #79433 from raulsntos/3x/dotnet/dont-ignore-call-error
[3.x] C#: Print error when MethodBind call fails
2023-08-02 17:27:12 +02:00
Rémi Verschelde
91e3a53518
Merge pull request #69101 from marcinn/3.x-backport-proposal-5748-loading-dds-at-runtime
[3.x] Backport implement loading DDS textures at run-time
2023-08-02 17:26:26 +02:00
Raul Santos
4ff8d92ee6
C#: Print error when MethodBind call fails 2023-07-13 19:43:20 +02:00
Danil Alexeev
3d98247678
[3.x] GDScript: Prevent native class shadowing 2023-07-06 20:32:30 +03:00
lawnjelly
43e181a00a Single Compilation Unit build.
Adds support for simple SCU build.
This speeds up compilation by compiling multiple cpp files within a single translation unit.
2023-07-02 20:13:16 +01:00
Raul Santos
06c0a1abc9
C#: Avoid GodotSharp as project assembly name
The name GodotSharp conflicts with the name of the Godot assembly,
this causes the project assembly to be ignored.
2023-06-15 11:45:18 +02:00
Rémi Verschelde
eeca70f843
Merge pull request #70502 from HolonProduction/svg_assets_3.x
[3.x] Add support for svg images in the asset lib.
2023-06-07 14:46:14 +02:00
Rémi Verschelde
1bc03d9d65
GDNative: Add Core API 1.4, move Transform2D::determinant there
It was added in #77283 but broke compatibility by being introduced in
an already released core API (1.0).

Fixes #77283.
2023-05-23 11:47:31 +02:00
lawnjelly
6f8e632848 Make acos and asin safe
A common bug with using acos and asin is that input outside -1 to 1 range will result in Nan output. This can occur due to floating point error in the input.

The standard solution is to provide safe_acos function with clamped input. For Godot it may make more sense to make the standard functions safe.
2023-05-11 09:51:44 +01:00