This prevents visual discrepancies between desktop and mobile platforms
after switching rendering methods using this dropdown.
The restart dialog now displays which rendering methods will be used,
and the dropdown tooltip also lists caveats related to specific platforms.
(cherry picked from commit 57f3bdb1e5)
It only introduced a difference in a .glsl file, which I've worked
around by removing an empty line. This keeps formatting consistent
between clang-format 15 and 16.
Also added a change in the 3-to-4 project converter to fix bogus
formatting in clang-format < 17.
(cherry picked from commit 49f4860ce3)
This rename breaks `SpriteFrames` and also isn't valid as the new method
takes an `AnimationLibrary`, not an `Animation`
(cherry picked from commit 4b7ea9fe47)
Zip files may contain directory entries, they always end with a path
separator and zip entries always use forward slashes for path separators.
There's no need to create the directories included in the zip file,
since they'll already be created when creating the individual files.
(cherry picked from commit 59a5a1eb70)
1. Extracted texture paths in `GLTFDocument::_parse_image_save_image` at the project root started with res:/// which broke cache invalidation
2. md5 hashes were not being written to generator_parameters for new imports, which led Godot to think the file was manually created.
3. `EditorFileSystem::reimport_append` must emit the `resources_reimported` signal in order for the resource cache to be updated.
(cherry picked from commit fea4165ca8)
Fix polygon not showing correctly if UVs have been moved around. Show the actual contents of the polygon instead.
(cherry picked from commit a45db4d616)
When non-ASCII filenames are used, this indicates that the encoding is
UTF-8. Programs like ZIPReader can then parse the filename correctly.
(cherry picked from commit 08b1354b36)
- Enabling newly created addons can show a warning dialog, doing so before hiding the `ProjectSettingsEditor` dialog causes rendering glitches.
- Remove unused `PuginConfigDialog` in `EditorNode`. The one actually being used is an instance in `EditorPluginSettings`.
(cherry picked from commit 7b34fa8dd2)
issue reference [https://github.com/godotengine/godot/issues/81769]
- adding a nullptr check on a Node pointer obtained from get_node(NodePath) in case it is null now we wont execute the next instruction
> ClassDB::get_property_info(nd->get_class(), prop, &prop_info);
Which then prevents the crash
(cherry picked from commit e7a35d1521)
When the name suffix grows, the old name is used if it is obtained first.
Fix the case where the following error message would appear when renaming
an animation.
```
ERROR: Animation '' doesn't exist.
at: get_frame_count (scene/resources/sprite_frames.cpp:71)
```
(cherry picked from commit e9cd29cf22)
The UI was extending past the screen width when loading a page diplaying
a plugin with an especially long title in the asset store plugin.
I implemented a new `EditorAssetLibraryItem::clamp_width` method that
checks that the title text is not longer than the column width minus
some padding and truncates it if it is.
I also noticed that the nav buttons for paginated results were causing the UI to extend past
the screen width on higher editor scales since they were hardcoded to
show ten page buttons if there were enough results. I modified the
pagination slightly to display a dynamic number of nav buttons based on
the editor scale in order to fix this other cause of the same problem.
I had to use the font of the `title`, which is a `LinkButton` in order
to determine the text width, so I added a public getter `get_button_font` to the `LinkButton` class.
(cherry picked from commit d63a88bef1)
PCK files (like other build products) should be deterministic based on their inputs. Removed calls to Math::rand() that are being used to generate padding.
Looks like these were introduced as part of adding encryption support, but the padding being random does not have any cryptographic significance. This can be trivially inferred since file blocks that happen to be aligned don't get padding anyway.
If there's a desire to indroduce something that functions as a nonce it should probably be added explicitly and only if encryption is enabled.
remove Math::rand() calls in editor_export_platform.cpp
follow up to make consistent with pck_packer
(cherry picked from commit 067807c1cb)
This prevents the estimation from being extremely high (close to 100,000 FPS)
until enough time has passed to display an accurate estimation.
(cherry picked from commit 15b31f0891)
This commit fixes#78140
When the scene was re-imported with non-default values of some settings, re-importing it again using default values for those settings didn't have the effect.
The problem was that when handling the reimport, a wrong dictionary of the settings was used.
(cherry picked from commit 8b729e5b7e)
This is useful when animating pixel art sprites in the 2D editor,
as a value of `1` is often too large when zoomed in.
(cherry picked from commit a39190a18f)