Age | Commit message (Collapse) | Author |
|
Implement Resource UIDs
|
|
* Most resource types now have unique identifiers.
* Applies to text, binary and imported resources.
* File formats reference both by text and UID (when available). UID always has priority.
* Resource UIDs are 64 bits for better compatibility with the engine.
* Can be represented and used textually, example `uuid://dapwmgsmnl28u`.
* A special binary cache file is used and exported, containing the mappings.
Example of how it looks:
```GDScript
[gd_scene load_steps=2 format=3 uid="uid://dw86wq31afig2"]
[ext_resource type="PackedScene" uid="uid://bt36ojelx8q6c" path="res://subscene.scn" id="1_t56hs"]
```
GDScript, shaders and other special resource files can't currently provide UIDs, but this should be doable with special keywords on the files.
This will be reserved for future PRs.
|
|
|
|
Fix Popup submenu in single-window mode
|
|
Node3D gizmo improvements
|
|
* Clean-up of node_3d_editor_plugin.{h,cpp}: removed unused code, fixed some bugs.
* Moved node_3d_editor_gizmos.{h,cpp} to editor/plugins.
* Added support for multiple gizmos per node. This means custom gizmos will no longer override the built-in ones and that multiple gizmos can be used in more complex nodes.
* Added support for handle IDs. When adding handles to a gizmo, an ID can be specified for each one, making it easier to work with gizmos that have a variable number of handles.
* Added support for subgizmos, selectable elements that can be transformed without needing a node of their own. By overriding _subgizmo_intersect_frustum() and/or _subgizmo_intersect_ray() gizmos can define which subgizmos should be selected on a region or click selection. Subgizmo transformations are applied using get/set/commit virtual methods, similar to how handles work.
|
|
The internal processing code only works for OS windows, since it takes
the mouse position relative to the window and not the viewport. Now we
make sure it's not called in single-window mode.
|
|
|
|
|
|
* Friendlier with version control.
* Generates pseudo unique IDs, to minimize conflicts when merging, but still
user readable (so, not UUID).
* Eventually will also allow to have more precisely named sub-resources in
imported files.
* This will allow better reloading on changes (including resources already
loaded) as well as better keeping track of changes on the DCC.
* Keeps backward compatibility with the old formats.
* Binary and text format version incremented to mark breakage in forward
compatibility.
|
|
|
|
Fix logic for Popup closing when parent is focused
|
|
The member popped_up is used to avoid closing a Popup before it had a
chance to be focused. It wasn't reset properly when the popup is hidden,
causing the Popup to close right after showing in some random cases
(spotted on X11, might not happen on Windows).
|
|
|
|
Ring emitter for 4.0
|
|
|
|
* Create the shader on demand.
* Makes sure compilation happens only once, then shader is cached.
* Speeds up scene loading times.
* Speeds up editor initialization.
|
|
Fix function code generation for uniform triplanar node in visual shader
|
|
|
|
|
|
|
|
Use the standard C `INFINITY` and `NAN` constants directly
|
|
The `Math_INF` and `Math_NAN` defines were just aliases for those
constants, so we might as well use them directly.
Some portions of the code were already using `INFINITY` directly.
|
|
|
|
add viewport.get_camera_2d()
|
|
Editor StringName and Viewport optimizations
|
|
* Added explicit return type to the SNAME macro.
* Add some extra SNAME usages.
* Change some ClassDB methods to use const StringName & arguments.
* Cache the Window parent in Control because it's used in
is_layout_rtl(), which is called often.
* Only enable internal processing for viewports that need it.
* Change CanvasItem::group to be a StringName because it's only used as
that.
|
|
Use C++11 raw literals for shader code to improve readability
|
|
Increase the number of arguments accepted by UndoRedo methods
|
|
Optimize LineEdit and TextEdit menu item generation.
|
|
Explicitly cast real_t to float when creating a float array
|
|
Fixed typos in `TextEdit::GutterType` enum
|
|
Optimize StringName usage
|
|
|
|
Made default tooltips (non-custom ones) disappear on mouse enter.
|
|
In files that have lots of branching, `\t` was replaced with a
tab character instead.
|
|
|
|
|
|
* Added a new macro SNAME() that constructs and caches a local stringname.
* Subsequent usages use the cached version.
* Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time.
* Replaced all theme usages by this new macro.
* Replace all signal emission usages by this new macro.
* Replace all call_deferred usages by this new macro.
This is part of ongoing work to optimize GUI and the editor.
|
|
|
|
* LineEdit popups created on demand.
* TextEdit popups created on demand.
* SpinSlider popups created on demand.
* ResourcePicker popups created on demand.
Improves editor responsiveness.
|
|
Add shape_idx to CollisionObject2D mouse_entered signal
|
|
Support for 3D sync to physics
|
|
Same implementation as in 2D.
|
|
Now static body is used for moving platforms through kinematic motion
property, so sync to physics needs to be in StaticBody2D instead of
CharacterBody2D.
Constant kinematic motion is also supported in combination with sync to
physics for smoother movements.
|
|
Added Node name to print() of all Nodes by making to_string() in Object virtual, so it can be overriden in C++.
|
|
|
|
Fixing by applying the movement in two steps, first the platform
movement, and then the body movement. Plus, add the platform movement
when we are on_wall.
|
|
Add set_pressed_no_signal method to BaseButton
|
|
Fix color properties of particle nodes/material
|