This could occur when attempting to save project settings when
no scenes or scripts are open (which is common in a brand new project).
(cherry picked from commit 16876bec76)
- Tweak the dialog messages to be more informative.
- The "Saved N modified resources" dialog is not a warning per se,
so make it more explicit.
(cherry picked from commit 39f9b92f54)
This makes it possible for external editors to pick up the changes.
Most modern editors should reload the file automatically,
but some older/lightweight editors may ask the user instead
(or only warn after trying to save in the external editor).
This closes#41283.
(cherry picked from commit 0ade686601)
- Make the timeline indicator thicker and with an indicator triangle,
similar to the animation editor timeline.
- Add Space bar shortcut to play/pause the audio preview.
- Only seek when clicking or dragging with the left mouse button,
not other mouse buttons.
(cherry picked from commit a50a81b703)
As a bonus, to have consistency between use Beziers and create insert tracks, use Beziers also gets a default via editor settings that is used when the confirmation dialog is disabled, instead of just falling back to creating non-Bezier tracks.
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f6639.
There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.
Backport of #48239.
When there is no selection, the camera will center around the
world origin.
This helps people get back to the world center if they haven't added
any nodes yet.
(cherry picked from commit fc055e1993)
When ctrl-clicking in the code editor, the view will now be centered on the function result.
Also replaces a circumstance where goto_line_centered should be used.
(cherry picked from commit 2b775bd698)
The changes made in this commit refresh the URL OptionButton when editor settings are modified.
No need to restart any more for the changes to appear in the Asset Library.
Fix#46977
(cherry picked from commit 6525d74623)
ALT key modifier was hardcoded is node_3d_editor_plugin.cpp and didn't take editor settings into account.
Fix#46973
(cherry picked from commit 31077d875e)
- Based on C++11's `atomic`
- Reworked `SafeRefCount` (based on the rewrite by @hpvb)
- Replaced free atomic functions by the new `SafeNumeric<T>`
- Replaced wrong cases of `volatile` by the new `SafeFlag`
- Platform-specific implementations no longer needed
Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
This commit adds a view-dependant fade to the 3D viewport grid. It fades out
at steep view angles to hide the solid regions that appear far from the camera.
I also included a fade to hide the grid borders.
I added some improvements to the dynamic grid when the camera is in orthogonal mode.
It properly handles zoom now, and the grid center is now set to the intersection point
between the grid plane and the camera forward ray, keeping the grid
always visible.
(cherry picked from commit 73e62dffb9)
Cinematic preview enables the Camera3D preview automatically.
When previewing a Camera3D, the rotation gizmo isn't displayed as
it can't be used.
(cherry picked from commit fa1d853eeb)
Completely re-write the lightmap generation code:
- Follow the general lightmapper code structure from 4.0.
- Use proper path tracing to compute the global illumination.
- Use atlassing to merge all lightmaps into a single texture (done by @RandomShaper)
- Use OpenImageDenoiser to improve the generated lightmaps.
- Take into account alpha transparency in material textures.
- Allow baking environment lighting.
- Add bicubic lightmap filtering.
There is some minor compatibility breakage in some properties and methods
in BakedLightmap, but lightmaps generated in previous engine versions
should work fine out of the box.
The scene importer has been changed to generate `.unwrap_cache` files
next to the imported scene files. These files *SHOULD* be added to any
version control system as they guarantee there won't be differences when
re-importing the scene from other OSes or engine versions.
This work started as a Google Summer of Code project; Was later funded by IMVU for a good amount of progress;
Was then finished and polished by me on my free time.
Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
fix for issue #44282
AABB for collision geometry was being calculated based on parent nodes transform without consideration for collision geometries translation.
Also hopefully clarified logic for selecting starting point for ray cast
(cherry picked from commit 4f171afecc)
Happy new year to the wonderful Godot community!
2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.
We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)
Here's to a great year 2021 for all Godot users 🎆
(cherry picked from commit b5334d14f7)
- Brighten gizmos when highlighted to make the difference between a
non-highlighted and a highlighted gizmo more visible.
- Tweak the manipulator gizmo size property hint.
(cherry picked from commit 8522ac7711)
fix for issue #44231: snap_selected_nodes_to_floor() results in an editor
crash when a child collisionshape has invalid shape object
(cherry picked from commit 52f6e0b5ad)
- The grid is now infinite, it follows the camera.
- The grid is now dynamic, if you zoom in and out, the grid subdivides,
expands, and fades.
- You can now enable grid planes for the XY and YZ planes. Only the flat
XZ plane is enabled by default. Each plane is independently dynamic
of the others.
- The default grid size has been increased to 200, and the maximum
has been increased to 2000. At 1000, the grid mostly looks edgeless.
- If you set the division level max and min to the same value then
the grid does not expand or subdivide, but instead stays the same size
and just follows the camera. Also, if these values are the same,
the bias value does nothing.
- If you want to have Blender-like behavior, set max to 1, min to 0,
and set the bias to a really low value. You may also wish to increase
the grid size if you have a small bias.
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
- Draw two boxes slightly offset from each other to give the illustion
of a thicker outline.
- Decrease the offset compared to the 3D node's AABB to give a more
accurate representation of its size.
- Make the box fully visible instead of only displaying the corners.
- Draw a x-ray version of the box that's more translucent, but visible
through walls. This helps make the box more visible while still
having a sense of depth.
- Use an orange color similar to the 2D editor.
Undo/redo log messages will now specify the modified node's
name (or number of modified nodes if several were modified).
On top of that, the new position/rotation/scale/pivot offset
will also be mentioned in the message.
(cherry picked from commit 996740de43)
Hide the back sides of the rotation gizmo circles and add a white
outline for better visualization of the rotation "sphere".
This is a 3.2 backport of @JFons work on the master branch; all credit
goes to him.
It can be enabled in the Project Settings
(`rendering/quality/filters/use_debanding`). It's disabled
by default as it has a small performance impact and can make
PNG screenshots much larger (due to how dithering works).
As a result, it should be enabled only when banding is noticeable enough.
Since debanding requires a HDR viewport to work, it's only supported
in the GLES3 backend.
Treats application unfocus as a mouse release for
TOOL_PAINTING, by finishing the undo state and
resetting the tool. Also sets a flag to prevent extra
lines from being drawn when the application is refocused.
fixes#42398, fixes#24970
(cherry picked from commit 70a4cd1afe)
Batching is mostly separated into a common template which can be used with multiple backends (GLES2 and GLES3 here). Only necessary specifics are in the backend files.
Batching is extended to cover more primitives.
Entering text will now start searching automatically after 0.25 seconds
have passed (debounce delay).
This removes the need for a separate Search button.
(cherry picked from commit 6055db2a72)
Fixed issue where using arrows to change the selected tile would not reach all subtiles in an autotile, only going up to the second to last row and column.
Patch for #21755. Node scaling arrows pointed the wrong way when nodes were rotated. Ammend: made math cleaner.
Simplified expression
Changes suggested by Aaron Franke
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
(cherry picked from commit 603febdbfe)
When changing the texture region for a StyleBox, the regions was not updating automatically in the Texture editor.
(cherry picked from commit 7d7727bade)
Fixes#34509 where the theme editor would push away the inspector
if something like "hseperation" is really high.
Now `set_enable_h_scroll` is true which fixes this.
(cherry picked from commit d602be077d)
Ensures that the editor preview when placing a tile on a TileMap takes
into account the transformation of the TileMap. Previously, only the
origin of the Tile was transformed, but not its orientation or
scaling.
(cherry picked from commit cf04aabef1)