I wanted to add this tool for years and always forget. This command line option:
```
$ godot.exe -e --debug-canvas-item-redraw
```
Allows to see when a canvas item is redrawn. This helps find out if something
in the UI is refreshing in a way it should not. Examples as such:
* Signals causing more of the UI to redraw.
* Container resizing causes more UI elements to redraw.
* Something using a timer is redrawing all time time, which can go unnoticed.
To my surprise, the editor UI is redrawing very efficiently. There is some
weird stuff with the scene tabs, redrawing when the inspector changes but most
things for the most part are fine.
- Correctly display atlas textures when used by other objects.
- Make region handles easier to hit in ninepatchable objects.
- Correctly initialize and restore various visual properties.
- Improve code quality.
Added checks to remove meta arrays when creating and undoing guides
Update editor/plugins/canvas_item_editor_plugin.cpp
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Update editor/plugins/canvas_item_editor_plugin.cpp
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
This should result in some noticeable performance improvements,
aside from fixing bugs due to conflicts in logic.
This also simplifies some related code identified while debugging.
This allows the user to input numbers during an "instant" (blender
style) transform operation to specify exactly how far to transform the
object. For example:
g2.5xx: Translate 2.5 units along the local x-axis
ry-45: Rotate -45 degrees around the y-axis
s.25Z: Scale by a factor of .25 on the xy plane
Some shared code between the traslate/rotate/scale branches of update_transform
was refactored into apply_transform so numeric transforms could reuse it.
This removes any "{X,Y,Z}-Axis Transform" messages. These prevented the
"Transforming: (x,y,z)" messages from showing, and the latter are more
useful, as they tell you the actual units.
This also rearranges finish_transform to clear _edit before updating
the axis rendering, so an axis doesn't remain highlighted.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
The lack of icon gizmo made it no longer possible to select Camera3D
nodes in the 3D viewport by clicking on them.
A new Camera3D icon gizmo was designed to be direction-neutral.
This avoids the issue that the previous icon gizmo had, since it was
always facing right.
This also adds icons for CameraAttributesPractical and CameraAttributesPhysical.
This is needed to allow 2D to fully make use of 3D effects (e.g. glow), and can be used to substantially improve quality of 2D rendering at the cost of performance
Additionally, the 2D rendering pipeline is done in linear space (we skip linear_to_srgb conversion in 3D tonemapping) so the entire Viewport can be kept linear.
This is necessary for proper HDR screen support in the future.
This should allow users to edit points in a less constrained space,
which feels like a UX improvement.
That said, changing minimum size according to current size might be a
hack that causes issues in certain situations.