Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge commit godotengine/godot@0b6a717 #955

Merged
merged 221 commits into from
Feb 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
221 commits
Select commit Hold shift + click to select a range
72f4394
avoid bubbling up changed notification when on new item/key of dictio…
ajreckof Sep 5, 2024
8e00035
Introduce `Viewport` functions for keeping the mouse over state consi…
Sauermann Nov 30, 2024
52ee437
try Fixing Variant workaround
kiroxas Dec 29, 2024
4cef91e
Editor: Fix `Ctrl+Click` on enum values ​​does nothing
dalexeev Jan 4, 2025
2a72f78
Fix `__focus_rect` meta access when resizing `Tree`
Sauermann Jan 8, 2025
791ad97
Respect order of externsions for ResourceFormatSavers with at_front
MrJoermungandr Jan 14, 2025
c91c604
Use AHashMap for RBMap nodes and HashMap input_activity
Nazarwadim Jan 14, 2025
8fd71e6
Fix default `AudioBusLayout` not loading correctly
larspet Dec 13, 2024
b761ff6
Rework script external modification tracking
KoBeWi Jan 15, 2025
b75acc3
Fix Follow Focus in a rotated `ScrollContainer`
Rindbee Jan 16, 2025
f355c9a
[iOS] Fix provisioning profile specifier / UUID validation.
bruvzg Jan 17, 2025
d98528c
Fix Label vertical line alignment.
bruvzg Jan 18, 2025
7f44812
[TextServer] Fix embedded object keys in substrings.
bruvzg Jan 19, 2025
0ceb992
Fix incomplete FPS spinbox display in sprite frames editor
Chaosus Jan 19, 2025
9e36c04
Fix resource details will unexpectedly expand
Giganzo Jan 19, 2025
409c9ad
Update SubViewport documentations to include a note about input behav…
Yelloween10 Jan 20, 2025
54bdc5f
Fix spinbox input events propagating during dragging, breaking focus
ryevdokimov Jan 20, 2025
9030f76
Fix Jolt note in WorldBoundaryShape3D documentation
Calinou Jan 20, 2025
a5e8c26
[RTL] Fix `ready` signal sent too early in single threaded RTL.
bruvzg Jan 21, 2025
aca5cfc
Rationalize parsing of file system cache
RandomShaper Jan 8, 2025
ce139f7
Fix editor parallax grid snap movement
markdibarry Jan 19, 2025
e9b164a
Fix ColorPicker hide save/load swatches for pressets_visible
Giganzo Jan 22, 2025
cdaeb31
Fix Make Sub-Resources Unique shortcut focus
Yelloween10 Jan 22, 2025
a36f064
Fix ColorPicker load/save swatches button interactions
Giganzo Jan 22, 2025
57700b0
Make EditorSpinSlider display a slider for floats with a step of 1.0
Calinou Aug 5, 2024
5a53ec5
[.NET] Add Obsolete attribute to signal trampolines and emitter funct…
raulsntos Jan 24, 2025
c808756
Wayland: Check custom cursor resource reference for cache invalidation
Riteo Jan 24, 2025
2c35077
Itemlist - fix `text_overrun_behavior`
havi05 Jan 5, 2025
2510fef
2D: Fix rendering artefacts when using `BackBufferCopy`.
stuartcarnie Jan 24, 2025
0e7de3a
Fix incorrect CPUParticles2D documentation
ProgrammerOnCoffee Jan 21, 2025
a30410b
Refactor post-step operations in Jolt module to be done as needed
mihe Jan 19, 2025
90208f7
SCons: Fix handling of platform-specific tools, notably `mingw`
akien-mga Jan 25, 2025
1823460
Add missing `cstdint` includes for GCC 15
akien-mga Jan 25, 2025
d5eab41
Add missing metadata saving for embed size mode
YeldhamDev Jan 25, 2025
f380b00
Override mass properties for `Area3D` when using Jolt Physics
mihe Jan 25, 2025
46fa858
Fix center viewport not working horizontally
kitbdev Jun 30, 2024
725dd49
Fix BadWindow error when stopping embedded game on Linux
Hilderin Jan 26, 2025
998e3df
Update the app bundle's creation time to match the build time on macOS
Meorge Jan 24, 2025
4c4f29a
Fix several i18n issues in editor
timothyqiu Jan 26, 2025
46434b0
Merge pull request #101726 from akien-mga/scons-platform-custom-tools-v2
Repiteo Jan 26, 2025
6fdf91c
Merge pull request #101616 from KoBeWi/how_was_it_even_functional
Repiteo Jan 26, 2025
e549802
Merge pull request #101815 from mihe/jolt/no-post-step
Repiteo Jan 26, 2025
b5622e9
Initialize pa_buffer_attr.maxlength to -1
goatchurchprime Jan 27, 2025
adceb32
Fix FILE_MODE_OPEN_ANY file dialog not selecting folders.
bruvzg Jan 27, 2025
7ce0828
Merge pull request #101883 from ProgrammerOnCoffee/cpuparticles-doc
Repiteo Jan 27, 2025
4129a09
Merge pull request #102080 from bruvzg/fd_open_any
Repiteo Jan 27, 2025
583b6ae
Merge pull request #101818 from Yelloween10/update-subviewport-doc
Repiteo Jan 27, 2025
07ceb0f
Merge pull request #102069 from goatchurchprime/gtch/pamaxlength
Repiteo Jan 27, 2025
ecbd90d
Merge pull request #101825 from ryevdokimov/spin-box-drag-accept-event
Repiteo Jan 27, 2025
7bf6caa
Merge pull request #101791 from bruvzg/ts_emb_keys
Repiteo Jan 27, 2025
69c5b03
Merge pull request #101625 from Rindbee/fix-follow-focus-in-rotated-S…
Repiteo Jan 27, 2025
c019f3d
Merge pull request #102049 from timothyqiu/editor-i18n
Repiteo Jan 27, 2025
4793965
Merge pull request #102045 from Hilderin/fix-bad-window-error-when-st…
Repiteo Jan 27, 2025
a366f23
Merge pull request #102027 from YeldhamDev/missing_game_view_metadata
Repiteo Jan 27, 2025
1c0bff5
Merge pull request #93792 from kitbdev/fix-center-viewport-horizontal
Repiteo Jan 27, 2025
7d18547
Merge pull request #96623 from ajreckof/avoid-bubbling-up-changed-not…
Repiteo Jan 27, 2025
1a2ad2f
Merge pull request #102022 from akien-mga/glslang-fix-gcc15
Repiteo Jan 27, 2025
82199a8
Merge pull request #101998 from stuartcarnie/2d_buffer_overwrite
Repiteo Jan 27, 2025
0dc6b7c
Merge pull request #101280 from Sauermann/fix-focus-rect-meta-access
Repiteo Jan 27, 2025
2776715
Merge pull request #101970 from raulsntos/dotnet/signal-obsolete-ever…
Repiteo Jan 27, 2025
6dc78c8
Merge pull request #101771 from bruvzg/lbl_line_valign
Repiteo Jan 27, 2025
9226424
Fix inspector jumping when gaining focus
KoBeWi Jan 18, 2025
6df21a8
Android: Keep swipe-to-dismiss disabled by default
syntaxerror247 Jan 24, 2025
cb70853
Add saving flag hack to Skeleton and revert reset timing of animation
TokageItLab Jan 25, 2025
fddf30d
Fix patch PCKs incorrectly marking imported resources for removal
mihe Jan 27, 2025
3580509
Fix flickering in embedded game when paused
Hilderin Jan 25, 2025
7a85b19
Fix ProgressDialog in single window mode
KoBeWi Jan 22, 2025
a525e30
Avoid flipping normal based on facing direction when calculation SDF.…
clayjohn Jan 28, 2025
6091317
Add check for float texture linear filtering support
adamscott Jan 27, 2025
c7fd0bb
Make save confirmation a child of last exclusive window of EditorNode…
ryevdokimov Jan 27, 2025
24b502b
Fix Y-sorted root item having modulation applied twice
kleonc Jan 28, 2025
655e98b
Fix default SDFGI variant not being compiled in time.
DarioSamo Jan 28, 2025
d0c29fa
Mark pipeline compilation of ubershaders as high priority.
DarioSamo Jan 28, 2025
108e662
Merge pull request #102006 from Hilderin/fix-embedded-game-paused
Repiteo Jan 28, 2025
b238fe2
Merge pull request #101996 from syntaxerror247/fix-swipe-to-dismiss
Repiteo Jan 28, 2025
ef4940c
Merge pull request #101918 from Yelloween10/fix-subresources-shortcut
Repiteo Jan 28, 2025
55c9dbc
Merge pull request #102003 from Meorge/app-bundle-date
Repiteo Jan 28, 2025
1aed2f5
Merge pull request #100904 from kiroxas/fixVariantMSVCWorkaround
Repiteo Jan 28, 2025
5ac6bce
Merge pull request #102105 from clayjohn/SDFGI-unflip-normal
Repiteo Jan 28, 2025
d421ccc
Merge pull request #102099 from mihe/pck-patch-bug
Repiteo Jan 28, 2025
1d11751
Merge pull request #101899 from havi05/itemlist-fix-textoverrun
Repiteo Jan 28, 2025
808c25f
Merge pull request #102089 from adamscott/fix-curve-texture-web
Repiteo Jan 28, 2025
b7deb85
Merge pull request #102029 from mihe/jolt/area-mass-properties
Repiteo Jan 28, 2025
d571eea
Merge pull request #101933 from KoBeWi/embedded_problems_require_embe…
Repiteo Jan 28, 2025
998a217
Merge pull request #101768 from KoBeWi/just_spread_the_code_with_anot…
Repiteo Jan 28, 2025
71d80b2
Merge pull request #100371 from larspet/audio-bus-uid
Repiteo Jan 28, 2025
a2f5eb9
[WS] Fix wslay multi-frame message parsing (again)
Faless Jan 28, 2025
47f553a
Delegate to the DisplayServer the task of handling mouse_mode
adamscott Jan 22, 2025
e904c0c
Fix memory leak when `ClassDB::bind_method_custom()` fails
dsnopek Jan 28, 2025
5c7fd16
Fix framebuffer clear for particle collider heightfield.
DarioSamo Jan 28, 2025
2710c35
Changed if false to if true "Emoji and Symbols" menu is enabled.
ChildLearningClub Jan 25, 2025
d9bba03
[Windows] Remove unused code from `godot_windows.cpp`.
bruvzg Jan 28, 2025
ab67fd7
Merge pull request #102042 from ChildLearningClub/master
Repiteo Jan 28, 2025
3c80c14
Merge pull request #101924 from adamscott/game-editor-non-cached-mous…
Repiteo Jan 28, 2025
3c3ff85
Merge pull request #101913 from Giganzo/color-hide-button
Repiteo Jan 28, 2025
a013481
Merge pull request #102133 from DarioSamo/particles-clear-color-fix
Repiteo Jan 28, 2025
964cd65
Fix: Mass property particle shader error
MathdudeMan Jan 29, 2025
318af42
Include more attributes in the global class names cache
RandomShaper Jan 8, 2025
a20934c
Optimize enumeration of global classes in create dialog and autocomplete
RandomShaper Jan 28, 2025
1048576
Update `ucaps.h` to contain proper case matchings
Chubercik Apr 15, 2024
03bfb46
Use `FlowContainer` for `Profiler` and `Visual Profiler` bars
arkology Jan 25, 2025
73d813a
Fix TextEdit mouse selection and scroll cancel
kitbdev May 9, 2024
0a9cd5e
2D: Fix clip children and rendering artefacts
stuartcarnie Jan 29, 2025
c558c8a
[Web] Fix audio issues with samples and GodotPositionReportingProcessor
adamscott Jan 27, 2025
d56cbd3
Fix `Basis::get_euler` incorrectly simplifying rotations in some cases.
Cwazywierdo Jan 29, 2025
c02b4e5
Merge pull request #102161 from stuartcarnie/2d_clip_children
Repiteo Jan 29, 2025
3ba6ac0
Merge pull request #102143 from MathdudeMan/shader-error
Repiteo Jan 29, 2025
4244878
Merge pull request #90726 from Chubercik/ucaps-exorcism
Repiteo Jan 29, 2025
f4c2fff
Merge pull request #102134 from bruvzg/win_main_cleanup
Repiteo Jan 29, 2025
7e97ada
Merge pull request #102125 from DarioSamo/ubershader-thread-priority
Repiteo Jan 29, 2025
4b9f882
Merge pull request #102122 from DarioSamo/default-sdfgi-fix
Repiteo Jan 29, 2025
5310426
Merge pull request #101868 from bruvzg/rtl_nt_ready
Repiteo Jan 29, 2025
dba3023
Merge pull request #101798 from Chaosus/fix_animation_editor_fps_spinbox
Repiteo Jan 29, 2025
ee4acfb
Merge pull request #95669 from kleonc/y_sort_fix_root_double_modulate
Repiteo Jan 29, 2025
d774f69
Fully enable HDR2D when the setting is changed. This allows toggling …
clayjohn Jan 30, 2025
9310d25
Disable Metal and Vulkan renderers in simulator builds. Remove simula…
bruvzg Jan 15, 2025
d73ebc5
EditorToaster::popup_str() must always defer to the main MessageQueue
kisg Jan 30, 2025
5c6d7bf
Change `VariantUtility` to prevent undef `print_verbose`
lawnjelly Jan 26, 2025
89ea646
Revert "EditorResourcePicker: Replace options to load file with butto…
akien-mga Jan 30, 2025
d034d12
Add UID upgrade tool
Meorge Jan 27, 2025
59406ce
Merge pull request #101706 from bruvzg/ios_exp_prov_validation
Repiteo Jan 30, 2025
002d90f
Merge pull request #102181 from kisg/editortoaster_popup_str_main_thread
Repiteo Jan 30, 2025
7902b6f
Merge pull request #102062 from lawnjelly/variant_util_print_verbose
Repiteo Jan 30, 2025
7bf2b45
Merge pull request #102177 from clayjohn/hdr2d-restart
Repiteo Jan 30, 2025
5f4a0be
Merge pull request #102071 from Meorge/feat/uid-upgrader
Repiteo Jan 30, 2025
97c472e
Merge pull request #102026 from TokageItLab/fix-save-reset
Repiteo Jan 30, 2025
699237d
Merge pull request #102131 from dsnopek/classdb-bind-method-custom-leak
Repiteo Jan 30, 2025
9ee1873
Merge pull request #102070 from ryevdokimov/reparent-save-confirmation
Repiteo Jan 30, 2025
caf2357
Ensure albedo texture size is available for Label3D and Sprite3D
clayjohn Jan 30, 2025
b38103e
Windows: Normalize slashes in return of `OS.get_temp_dir()`
Eddy-Rogers Jan 26, 2025
1c2e82e
Fix vertex indices showing as float
KoBeWi Jan 30, 2025
06b2c9f
Fix save path validation for imported scenes
KoBeWi Jan 30, 2025
570e59d
Fix shader uniforms has null as default value
Chaosus Aug 16, 2024
b3f7c8f
[Export] Respect icon/splash screen import settings.
bruvzg Jan 28, 2025
86f56ef
[FreeDesktop portal] Check for `FileChooser` and `Settings` interface…
bruvzg Jan 19, 2025
4462363
jpeg-compressor: Fix include when compiling with Clang and `FORTIFY_S…
StefanCristian Jan 31, 2025
e77a011
Fix a crash in Joypad initialization on iOS
jkirsteins Jan 31, 2025
15d0e56
Fix crash when ProgressDialog is outside tree
KoBeWi Jan 31, 2025
f601117
Fix Embed Game not available when multi window is disabled
Hilderin Jan 31, 2025
f213639
CI: Update `ruff` & `mypy` pre-commit hooks
Chubercik Jan 31, 2025
0056492
Merge pull request #101960 from Giganzo/colorpicker-swatches-menubutton
Repiteo Jan 31, 2025
1a71c5e
Merge pull request #102238 from Hilderin/fix-embed-game-multi-window-…
Repiteo Jan 31, 2025
c5d064e
Merge pull request #102220 from jkirsteins/janiskirsteins/fix-joypad-ios
Repiteo Jan 31, 2025
a96e195
Merge pull request #101927 from StefanCristian/master
Repiteo Jan 31, 2025
fe77e5e
Merge pull request #102212 from KoBeWi/half_of_a_point
Repiteo Jan 31, 2025
4f56d0d
Merge pull request #102213 from KoBeWi/ensure_path_ensures_less_bugs_…
Repiteo Jan 31, 2025
b1adcba
Merge pull request #102208 from clayjohn/msdf-3d
Repiteo Jan 31, 2025
81e17d8
Merge pull request #102109 from bruvzg/export_res
Repiteo Jan 31, 2025
3c3ceee
Merge pull request #102196 from akien-mga/revert-97860
Repiteo Jan 31, 2025
3d6821b
Merge pull request #101808 from markdibarry/parallax-remove-editor-of…
Repiteo Jan 31, 2025
a7e5469
Merge pull request #102163 from adamscott/fix-glitched-audio-web
Repiteo Jan 31, 2025
4a7ce60
Merge pull request #102128 from Faless/fix/ws_buffering_again
Repiteo Jan 31, 2025
295a1dd
Merge pull request #102067 from Eddy-Rogers/102008-TempDirSlashes
Repiteo Jan 31, 2025
4f3dddb
Merge pull request #101987 from Riteo/imagine-using-rids
Repiteo Jan 31, 2025
96a6dc2
Merge pull request #101548 from Nazarwadim/change_RBMap_and_input_act…
Repiteo Jan 31, 2025
4f827e6
Merge pull request #95169 from Calinou/editorspinslider-float-step-1-…
Repiteo Jan 31, 2025
1586c56
Merge pull request #95626 from Chaosus/shader_fix_default_params
Repiteo Jan 31, 2025
65e14fd
Fix slow resize Embedded Game Window
Hilderin Jan 31, 2025
baa33d4
[Windows] Fix build with MinGW 8.0.0-1.
bruvzg Jan 31, 2025
258d4d5
Track mesh dependencies in Dummy RenderingServer to properly resolve …
clayjohn Jan 31, 2025
49a004f
Spread direct lighting calculation for LightmapGI over several submis…
clayjohn Jan 31, 2025
6611c86
Use a smaller epsilon for omni and spot attenuation cutoff
clayjohn Feb 1, 2025
7cc0bf7
Fix mouse filter on visual shader node previews
Chaosus Feb 1, 2025
46d8231
Remove unnecessary rescan after copying file
KoBeWi Jan 31, 2025
0a19f89
Fix TextEdit visible line count when setting text
kitbdev Feb 1, 2025
a65fa94
Update modified time when reloading script
KoBeWi Feb 1, 2025
4b8cfc3
Fix native popup menus position in embedded windows.
bruvzg Jan 26, 2025
886e5d8
Don't return Tree items outside visible rect
KoBeWi Jan 31, 2025
3b3b666
Setup working directory when quitting to project manager
KoBeWi Feb 1, 2025
3387ee1
Fix Floating Window focus on run
Hilderin Feb 2, 2025
4c32d27
Fix runtime crash with 3D selection with no camera
YeldhamDev Feb 2, 2025
140a63b
Linux/BSD: Modify only keypad keys
Riteo Jan 29, 2025
f0ae69e
Fix 'Show in FileSystem' jumps to incorrect entry under certain condi…
Maran23 Feb 2, 2025
50740c4
Make `CharFXTransform.font` property read only, add some extra docume…
bruvzg Feb 2, 2025
5b57904
[RTL] Fix updating region without updating texture.
bruvzg Feb 2, 2025
e50f509
Fix ColorPicker RAW alpha slider theme
Giganzo Feb 2, 2025
4fcd959
Merge pull request #102144 from Cwazywierdo/get-euler-epsilon
Repiteo Feb 3, 2025
1bec1bf
Merge pull request #101543 from MrJoermungandr/desynced_extension_pre…
Repiteo Feb 3, 2025
03385f9
Merge pull request #101836 from Calinou/doc-worldboundaryshape3d-fix-…
Repiteo Feb 3, 2025
1d84cab
Merge pull request #102329 from YeldhamDev/fix_camera_debug_crash
Repiteo Feb 3, 2025
bbf29a5
Merge pull request #102312 from Hilderin/fix-focus-floating-window-on…
Repiteo Feb 3, 2025
3e34c4b
Merge pull request #102262 from KoBeWi/outer_tree_is_void
Repiteo Feb 3, 2025
5696316
Merge pull request #102307 from KoBeWi/so_that's_what_it_does
Repiteo Feb 3, 2025
021e07c
Merge pull request #102260 from KoBeWi/ProgressDialog_my_nemesis
Repiteo Feb 3, 2025
6c53ec1
Merge pull request #102297 from KoBeWi/lost_modified_time
Repiteo Feb 3, 2025
79d6cdf
Merge pull request #102237 from KoBeWi/outside_tree_no_one_can_see_yo…
Repiteo Feb 3, 2025
7c0ce4e
Merge pull request #102278 from Chaosus/vs_fix_preview_mouse_filter
Repiteo Feb 3, 2025
fbc584f
Merge pull request #102272 from clayjohn/omni-attenuation-epsilon
Repiteo Feb 3, 2025
d2995dc
Merge pull request #102169 from Riteo/what-is-even-a-keypad
Repiteo Feb 3, 2025
f230b9c
Merge pull request #102261 from clayjohn/dummyrs-mesh-dependency
Repiteo Feb 3, 2025
480843c
Merge pull request #101812 from bruvzg/portal_chk
Repiteo Feb 3, 2025
3d25533
Merge pull request #102257 from clayjohn/lightmapgi-crash
Repiteo Feb 3, 2025
95bd49d
Merge pull request #102255 from bruvzg/ub2204_mingw_fix
Repiteo Feb 3, 2025
a28316c
Merge pull request #102246 from Chubercik/ci/bump-ruff-mypy
Repiteo Feb 3, 2025
dfedfe7
Merge pull request #102179 from bruvzg/remove_sim
Repiteo Feb 3, 2025
f60f69a
Merge pull request #102024 from arkology/profiler-flow-container
Repiteo Feb 3, 2025
e6e108d
Implement `get_length()` for pipes.
bruvzg Feb 3, 2025
382c760
SCons: Apply new ruff/mypy fixes
Repiteo Feb 3, 2025
23c6292
Merge pull request #102371 from Repiteo/scons/ruff-mypy
Repiteo Feb 3, 2025
0f40078
Merge pull request #102349 from Giganzo/color-picker-raw-a-slider
Repiteo Feb 3, 2025
61808e9
Merge pull request #91778 from kitbdev/selection-cancel
Repiteo Feb 3, 2025
ccc306a
Merge pull request #102365 from bruvzg/pipe_buffer_chk
Repiteo Feb 3, 2025
2675997
Merge pull request #102251 from Hilderin/fix-slow-resize-embedded-game
Repiteo Feb 3, 2025
654b599
Merge pull request #99890 from Sauermann/fix-vp-mouse-notifications
Repiteo Feb 3, 2025
eee39f0
Merge pull request #101817 from Giganzo/resource-drag-open
Repiteo Feb 3, 2025
9002590
Fix wrong inspector offset on scene switch
YeldhamDev Feb 3, 2025
e7a3a27
Fix OpenXRAPIExtension casting errors
devloglogan Feb 3, 2025
b162c59
Fix GPUParticlesCollisionHeightField3D adding collisions excluded by …
Rudolph-B Jan 23, 2025
f2709c7
[TextServer] Fix line/word breaks not always updated when applying ov…
bruvzg Feb 4, 2025
af8a5fd
Merge pull request #102379 from YeldhamDev/fix_inspector_scroll_shena…
Repiteo Feb 4, 2025
c9887d2
Merge pull request #102342 from bruvzg/no_font_set
Repiteo Feb 4, 2025
acddf31
Merge pull request #101489 from RandomShaper/optimize_classnames_enum…
Repiteo Feb 4, 2025
e305f45
Merge pull request #102402 from bruvzg/tl_overrun
Repiteo Feb 4, 2025
e9af82f
Merge pull request #102384 from devloglogan/type-cast-fix
Repiteo Feb 4, 2025
4186f57
Merge pull request #102344 from bruvzg/rtl_reg
Repiteo Feb 4, 2025
d5eacef
Merge pull request #102336 from Maran23/show-in-filesystem-fix
Repiteo Feb 4, 2025
92ebcd2
Merge pull request #102079 from bruvzg/emb_nmenu
Repiteo Feb 4, 2025
0746447
Merge pull request #102296 from kitbdev/fix-te-remove-range-line-count
Repiteo Feb 4, 2025
ea2770e
Merge pull request #101947 from Rudolph-B/Issue-101750
Repiteo Feb 4, 2025
0b6a717
Merge pull request #101127 from dalexeev/gds-edit-fix-enum-value-ctrl…
Repiteo Feb 4, 2025
35e289f
Merge commit godotengine/godot@0b6a717ac17f1d6bd7963740cf2c2128b36ff7aa
Spartan322 Feb 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ repos:
stages: [manual] # Not automatically triggered, invoked via `pre-commit run --hook-stage manual clang-tidy`

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.8.4
rev: v0.9.4
hooks:
- id: ruff
args: [--fix]
Expand All @@ -48,7 +48,7 @@ repos:
types_or: [text]

- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.13.0
rev: v1.14.1
hooks:
- id: mypy
files: \.py$
Expand Down
60 changes: 27 additions & 33 deletions SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -107,22 +107,11 @@ for x in sorted(glob.glob("platform/*")):
sys.path.remove(tmppath)
sys.modules.pop("detect")

custom_tools = ["default"]

platform_arg = ARGUMENTS.get("platform", ARGUMENTS.get("p", False))

if platform_arg == "android":
custom_tools = ["clang", "clang++", "as", "ar", "link"]
elif platform_arg == "web":
# Use generic POSIX build toolchain for Emscripten.
custom_tools = ["cc", "c++", "ar", "link", "textfile", "zip"]
elif os.name == "nt" and methods.get_cmdline_bool("use_mingw", False):
custom_tools = ["mingw"]

# We let SCons build its default ENV as it includes OS-specific things which we don't
# want to have to pull in manually.
# want to have to pull in manually. However we enforce no "tools", which we register
# further down after parsing our platform-specific configuration.
# Then we prepend PATH to make it take precedence, while preserving SCons' own entries.
env = Environment(tools=custom_tools)
env = Environment(tools=[])
env.PrependENVPath("PATH", os.getenv("PATH"))
env.PrependENVPath("PKG_CONFIG_PATH", os.getenv("PKG_CONFIG_PATH"))
if "TERM" in os.environ: # Used for colored output.
Expand Down Expand Up @@ -168,11 +157,7 @@ if profile:
opts = Variables(customs, ARGUMENTS)

# Target build options
if env.scons_version >= (4, 3):
opts.Add(["platform", "p"], "Target platform (%s)" % "|".join(platform_list), "")
else:
opts.Add("platform", "Target platform (%s)" % "|".join(platform_list), "")
opts.Add("p", "Alias for 'platform'", "")
opts.Add((["platform", "p"], "Target platform (%s)" % "|".join(platform_list), ""))
opts.Add(EnumVariable("target", "Compilation target", "editor", ("editor", "template_release", "template_debug")))
opts.Add(EnumVariable("arch", "CPU architecture", "auto", ["auto"] + architectures, architecture_aliases))
opts.Add(BoolVariable("dev_build", "Developer build with dev-only debugging code (DEV_ENABLED)", False))
Expand Down Expand Up @@ -312,10 +297,7 @@ if env["import_env_vars"]:

# Platform selection: validate input, and add options.

if env.scons_version < (4, 3) and not env["platform"]:
env["platform"] = env["p"]

if env["platform"] == "":
if not env["platform"]:
# Missing `platform` argument, try to detect platform automatically
if (
sys.platform.startswith("linux")
Expand All @@ -330,8 +312,8 @@ if env["platform"] == "":
elif sys.platform == "win32":
env["platform"] = "windows"

if env["platform"] != "":
print(f'Automatically detected platform: {env["platform"]}')
if env["platform"]:
print(f"Automatically detected platform: {env['platform']}")

# Deprecated aliases kept for compatibility.
if env["platform"] in compatibility_platform_aliases:
Expand All @@ -352,7 +334,7 @@ if env["platform"] not in platform_list:

if env["platform"] == "list":
print(text)
elif env["platform"] == "":
elif not env["platform"]:
print_error("Could not detect platform automatically.\n" + text)
else:
print_error(f'Invalid target platform "{env["platform"]}".\n' + text)
Expand Down Expand Up @@ -434,6 +416,23 @@ env.modules_detected = modules_detected
opts.Update(env, {**ARGUMENTS, **env.Dictionary()})
Help(opts.GenerateHelpText(env))


# FIXME: Tool assignment happening at this stage is a direct consequence of getting the platform logic AFTER the SCons
# environment was already been constructed. Fixing this would require a broader refactor where all options are setup
# ahead of time with native validator/converter functions.
tmppath = "./platform/" + env["platform"]
sys.path.insert(0, tmppath)
import detect

custom_tools = ["default"]
try: # Platform custom tools are optional
custom_tools = detect.get_tools(env)
except AttributeError:
pass
for tool in custom_tools:
env.Tool(tool)


# add default include paths

env.Prepend(CPPPATH=["#"])
Expand Down Expand Up @@ -515,10 +514,6 @@ if not env["deprecated"]:
if env["precision"] == "double":
env.Append(CPPDEFINES=["REAL_T_IS_DOUBLE"])

tmppath = "./platform/" + env["platform"]
sys.path.insert(0, tmppath)
import detect

# Default num_jobs to local cpu count if not user specified.
# SCons has a peculiarity where user-specified options won't be overridden
# by SetOption, so we can rely on this to know if we should use our default.
Expand Down Expand Up @@ -587,7 +582,7 @@ if env["dev_mode"]:
if env["production"]:
env["use_static_cpp"] = methods.get_cmdline_bool("use_static_cpp", True)
env["debug_symbols"] = methods.get_cmdline_bool("debug_symbols", False)
if platform_arg == "android":
if env["platform"] == "android":
env["swappy"] = methods.get_cmdline_bool("swappy", True)
# LTO "auto" means we handle the preferred option in each platform detect.py.
env["lto"] = ARGUMENTS.get("lto", "auto")
Expand Down Expand Up @@ -1003,8 +998,7 @@ if env["disable_3d"]:
if env["disable_advanced_gui"]:
if env.editor_build:
print_error(
"Build option `disable_advanced_gui=yes` cannot be used for editor builds, "
"only for export template builds."
"Build option `disable_advanced_gui=yes` cannot be used for editor builds, only for export template builds."
)
Exit(255)
else:
Expand Down
4 changes: 2 additions & 2 deletions core/config/project_settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1265,10 +1265,10 @@ void ProjectSettings::refresh_global_class_list() {
Array script_classes = get_global_class_list();
for (int i = 0; i < script_classes.size(); i++) {
Dictionary c = script_classes[i];
if (!c.has("class") || !c.has("language") || !c.has("path") || !c.has("base")) {
if (!c.has("class") || !c.has("language") || !c.has("path") || !c.has("base") || !c.has("is_abstract") || !c.has("is_tool")) {
continue;
}
ScriptServer::add_global_class(c["class"], c["base"], c["language"], c["path"]);
ScriptServer::add_global_class(c["class"], c["base"], c["language"], c["path"], c["is_abstract"], c["is_tool"]);
}
}

Expand Down
53 changes: 18 additions & 35 deletions core/input/input.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@ Input *Input::singleton = nullptr;

void (*Input::set_mouse_mode_func)(Input::MouseMode) = nullptr;
Input::MouseMode (*Input::get_mouse_mode_func)() = nullptr;
void (*Input::set_mouse_mode_override_func)(Input::MouseMode) = nullptr;
Input::MouseMode (*Input::get_mouse_mode_override_func)() = nullptr;
void (*Input::set_mouse_mode_override_enabled_func)(bool) = nullptr;
bool (*Input::is_mouse_mode_override_enabled_func)() = nullptr;
void (*Input::warp_mouse_func)(const Vector2 &p_position) = nullptr;
Input::CursorShape (*Input::get_current_cursor_shape_func)() = nullptr;
void (*Input::set_custom_mouse_cursor_func)(const Ref<Resource> &, Input::CursorShape, const Vector2 &) = nullptr;
Expand All @@ -88,51 +92,29 @@ Input *Input::get_singleton() {
}

void Input::set_mouse_mode(MouseMode p_mode) {
ERR_FAIL_INDEX((int)p_mode, 5);

if (p_mode == mouse_mode) {
return;
}

// Allow to be set even if overridden, to see if the platform allows the mode.
ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX);
set_mouse_mode_func(p_mode);
mouse_mode = get_mouse_mode_func();

if (mouse_mode_override_enabled) {
set_mouse_mode_func(mouse_mode_override);
}
}

Input::MouseMode Input::get_mouse_mode() const {
return mouse_mode;
return get_mouse_mode_func();
}

void Input::set_mouse_mode_override_enabled(bool p_enabled) {
if (p_enabled == mouse_mode_override_enabled) {
return;
}

mouse_mode_override_enabled = p_enabled;

if (p_enabled) {
set_mouse_mode_func(mouse_mode_override);
mouse_mode_override = get_mouse_mode_func();
} else {
set_mouse_mode_func(mouse_mode);
}
void Input::set_mouse_mode_override(MouseMode p_mode) {
ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX);
set_mouse_mode_override_func(p_mode);
}

void Input::set_mouse_mode_override(MouseMode p_mode) {
ERR_FAIL_INDEX((int)p_mode, 5);
Input::MouseMode Input::get_mouse_mode_override() const {
return get_mouse_mode_override_func();
}

if (p_mode == mouse_mode_override) {
return;
}
void Input::set_mouse_mode_override_enabled(bool p_override_enabled) {
set_mouse_mode_override_enabled_func(p_override_enabled);
}

if (mouse_mode_override_enabled) {
set_mouse_mode_func(p_mode);
mouse_mode_override = get_mouse_mode_func();
}
bool Input::is_mouse_mode_override_enabled() {
return is_mouse_mode_override_enabled_func();
}

void Input::_bind_methods() {
Expand Down Expand Up @@ -201,6 +183,7 @@ void Input::_bind_methods() {
BIND_ENUM_CONSTANT(MOUSE_MODE_CAPTURED);
BIND_ENUM_CONSTANT(MOUSE_MODE_CONFINED);
BIND_ENUM_CONSTANT(MOUSE_MODE_CONFINED_HIDDEN);
BIND_ENUM_CONSTANT(MOUSE_MODE_MAX);

BIND_ENUM_CONSTANT(CURSOR_ARROW);
BIND_ENUM_CONSTANT(CURSOR_IBEAM);
Expand Down
14 changes: 9 additions & 5 deletions core/input/input.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,14 @@ class Input : public Object {
static constexpr uint64_t MAX_EVENT = 32;

public:
// Keep synced with "DisplayServer::MouseMode" enum.
enum MouseMode {
MOUSE_MODE_VISIBLE,
MOUSE_MODE_HIDDEN,
MOUSE_MODE_CAPTURED,
MOUSE_MODE_CONFINED,
MOUSE_MODE_CONFINED_HIDDEN,
MOUSE_MODE_MAX,
};

#undef CursorShape
Expand Down Expand Up @@ -107,10 +109,6 @@ class Input : public Object {
bool legacy_just_pressed_behavior = false;
bool disable_input = false;

MouseMode mouse_mode = MOUSE_MODE_VISIBLE;
bool mouse_mode_override_enabled = false;
MouseMode mouse_mode_override = MOUSE_MODE_VISIBLE;

struct ActionState {
uint64_t pressed_physics_frame = UINT64_MAX;
uint64_t pressed_process_frame = UINT64_MAX;
Expand Down Expand Up @@ -270,6 +268,10 @@ class Input : public Object {

static void (*set_mouse_mode_func)(MouseMode);
static MouseMode (*get_mouse_mode_func)();
static void (*set_mouse_mode_override_func)(MouseMode);
static MouseMode (*get_mouse_mode_override_func)();
static void (*set_mouse_mode_override_enabled_func)(bool);
static bool (*is_mouse_mode_override_enabled_func)();
static void (*warp_mouse_func)(const Vector2 &p_position);

static CursorShape (*get_current_cursor_shape_func)();
Expand All @@ -288,8 +290,10 @@ class Input : public Object {
public:
void set_mouse_mode(MouseMode p_mode);
MouseMode get_mouse_mode() const;
void set_mouse_mode_override_enabled(bool p_enabled);
void set_mouse_mode_override(MouseMode p_mode);
MouseMode get_mouse_mode_override() const;
void set_mouse_mode_override_enabled(bool p_override_enabled);
bool is_mouse_mode_override_enabled();

#ifdef TOOLS_ENABLED
void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const override;
Expand Down
2 changes: 1 addition & 1 deletion core/io/file_access.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,7 @@ String FileAccess::get_line() const {
uint8_t c = get_8();

while (!eof_reached()) {
if (c == '\n' || c == '\0') {
if (c == '\n' || c == '\0' || get_error() != OK) {
line.push_back(0);
return String::utf8(line.get_data());
} else if (c != '\r') {
Expand Down
29 changes: 17 additions & 12 deletions core/math/basis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,11 @@ void Basis::get_rotation_axis_angle_local(Vector3 &p_axis, real_t &p_angle) cons
}

Vector3 Basis::get_euler(EulerOrder p_order) const {
// This epsilon value results in angles within a +/- 0.04 degree range being simplified/truncated.
// Based on testing, this is the largest the epsilon can be without the angle truncation becoming
// visually noticeable.
const real_t epsilon = 0.00000025;

switch (p_order) {
case EulerOrder::XYZ: {
// Euler angles in XYZ convention.
Expand All @@ -468,8 +473,8 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {

Vector3 euler;
real_t sy = rows[0][2];
if (sy < (1.0f - (real_t)CMP_EPSILON)) {
if (sy > -(1.0f - (real_t)CMP_EPSILON)) {
if (sy < (1.0f - epsilon)) {
if (sy > -(1.0f - epsilon)) {
// is this a pure Y rotation?
if (rows[1][0] == 0 && rows[0][1] == 0 && rows[1][2] == 0 && rows[2][1] == 0 && rows[1][1] == 1) {
// return the simplest form (human friendlier in editor and scripts)
Expand Down Expand Up @@ -503,8 +508,8 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {

Vector3 euler;
real_t sz = rows[0][1];
if (sz < (1.0f - (real_t)CMP_EPSILON)) {
if (sz > -(1.0f - (real_t)CMP_EPSILON)) {
if (sz < (1.0f - epsilon)) {
if (sz > -(1.0f - epsilon)) {
euler.x = Math::atan2(rows[2][1], rows[1][1]);
euler.y = Math::atan2(rows[0][2], rows[0][0]);
euler.z = Math::asin(-sz);
Expand Down Expand Up @@ -534,8 +539,8 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {

real_t m12 = rows[1][2];

if (m12 < (1 - (real_t)CMP_EPSILON)) {
if (m12 > -(1 - (real_t)CMP_EPSILON)) {
if (m12 < (1 - epsilon)) {
if (m12 > -(1 - epsilon)) {
// is this a pure X rotation?
if (rows[1][0] == 0 && rows[0][1] == 0 && rows[0][2] == 0 && rows[2][0] == 0 && rows[0][0] == 1) {
// return the simplest form (human friendlier in editor and scripts)
Expand Down Expand Up @@ -570,8 +575,8 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {

Vector3 euler;
real_t sz = rows[1][0];
if (sz < (1.0f - (real_t)CMP_EPSILON)) {
if (sz > -(1.0f - (real_t)CMP_EPSILON)) {
if (sz < (1.0f - epsilon)) {
if (sz > -(1.0f - epsilon)) {
euler.x = Math::atan2(-rows[1][2], rows[1][1]);
euler.y = Math::atan2(-rows[2][0], rows[0][0]);
euler.z = Math::asin(sz);
Expand All @@ -598,8 +603,8 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {
// -cx*sy sx cx*cy
Vector3 euler;
real_t sx = rows[2][1];
if (sx < (1.0f - (real_t)CMP_EPSILON)) {
if (sx > -(1.0f - (real_t)CMP_EPSILON)) {
if (sx < (1.0f - epsilon)) {
if (sx > -(1.0f - epsilon)) {
euler.x = Math::asin(sx);
euler.y = Math::atan2(-rows[2][0], rows[2][2]);
euler.z = Math::atan2(-rows[0][1], rows[1][1]);
Expand All @@ -626,8 +631,8 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {
// -sy cy*sx cy*cx
Vector3 euler;
real_t sy = rows[2][0];
if (sy < (1.0f - (real_t)CMP_EPSILON)) {
if (sy > -(1.0f - (real_t)CMP_EPSILON)) {
if (sy < (1.0f - epsilon)) {
if (sy > -(1.0f - epsilon)) {
euler.x = Math::atan2(rows[2][1], rows[2][2]);
euler.y = Math::asin(-sy);
euler.z = Math::atan2(rows[1][0], rows[0][0]);
Expand Down
Loading