When the active collection is hidden or excluded, change the active
collection to the first visible parent collection. This behavior existed
previously for excluding collections, and is now expanded to also
switch the active collection when viewport hidden or restricted.
This does not prevent viewport hidden or restricted collections from
being reactivated later. This could be added as a separate commit.
Excluded collections cannot be activated, so it may make sense to
extend this behavior to hiding collections.
Adds a toggle to the filter menu for outliner synced selection. Enabled
by default, this ensures selection is synced between objects, bones, and
sequences. An active outliner element theme color is added to indicate
which element is active.
Synced selection is controlled on the operator level. Each operator
that modifies selection for objects, bones, sequences, or outliner
elements needs to call the respective ED_outliner_select_sync_from..
function to tag outliners to be synced.
Syncing is done lazily on outliner draw.
The Normal vector socket in the Normal node wasn't drawn properly and
couldn't be controlled. Additionally, the socket name was drawn over it.
This happened because the socket had a default value of a zero vector.
To fix this, we set the default value to the unit vector `(0, 0, 1)`.
Moreover, we don't draw the UI name if the subtype is `PROP_DIRECTION`.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D5503
The soc-2019-outliner branch relied on the previous behavior,
since this is going to be merged soon, postpone this change.
This reverts commit 9dab57a9f8.
We were storing the 'item' part in the RNA path of the override op
itself, which will not work with IDs because overriding local one might
not have the same name as the linked one (when some local ID with same
name already exists).
Now we are properly handling this using the expected actual override
operation, which stores necessary data (names or indices) from both
local and linked data.
This checkbox replaces the "Disabled" and "Enabled" entries in the
filter drop-down. As a result, it now takes a single click to limit the
shown entries to enabled add-ons only. This is also an actual flag in
the preferences, and thus its state is saved between runs on Blender (in
contrast to the filter, which is always reset to "All").
Reviewed by: brecht, billreynish
This fixes the glitching hairs described in T56408, T63534, and possibly
also T63534.
The fix consists of returning the original mesh (i.e. as visible in edit
mode) when constructing the ORCO mesh. This allows a static set of
coordinates to be used when computing the child hair positions.
The original mesh is only returned when it has the same topology (at
least same number of vertices, loops, and polys. It's up the author of
the Alembic file to ensure stable geometry when it's desired to be
compatible with Blender's hair system.
Reviewers: mont29, brecht
Differential Revision: https://developer.blender.org/D5492
The `BKE_material_pop_id()` and `BKE_material_clear_id()` functions had
a parameter `update_data` that, when `false`, would cause the mesh polys
to keep their material index, even when the indexed material slots were
removed. This behaviour was never used in the C code and not supported
by the drawing code, making polygons disappear and causing crashes. The
Python binding in RNA, however, defaulted to `update_data=False`.
This commit removes the `update_data` parameter altogether, and makes
the functions always fix up the material indices.
Reviewed by: mont29, brecht
Building OIDN still needs to be enabled explicitly with --with-oidn.
It will fail with older versions of CMake or TBB, so I can't make
any guarantees for various Linux distributions or versions.
This was a mistake in rB87629b2a7443
`BKE_object_shapekey_free` would never return `true`, so DEG updates
would not happen...
So `ob->shapenr` was not up-to-date etc., leading to crash in
`BKE_mesh_nomain_to_mesh` shapekey handling...
Reviewers: brecht
Maniphest Tasks: T68710
Differential Revision: https://developer.blender.org/D5501
This is 2.7x behavior, while there are plans to improve on this,
committing in case larger changes take longer.
Without this it's not easy to select object data without changing modes.
See D5493
The installer always upgraded the last version installed and did not allow for two versions to be installed side by side.
The reworked installer will allow side by side installs
install order:
```
2.81 -> 2.81a -> 2.82 : Allowed , will result in both 2.82 and 2.81a being installed
2.82 -> 2.81 -> 2.81a : Allowed , will result in both 2.82 and 2.81a being installed
2.82 -> 2.81a : Allowed , will result in both 2.82 and 2.81a being installed
2.82 -> 2.81a -> 2.81 : Not Allowed, 2.81 will only install if you manually remove 2.81a first.
```
Do note though that this will not apply to any previously issued installers and even for 2.80a this is not something we can fix.
This patch is for landing in 2.81 *only* and should be excluded from any possible 2.80a release.
Second change is a change to the compression level, building the MSI takes 30 minutes, which is crazy, perhaps worth it if the compression actually pays of.
```
MSI - none 1:35 247.0 MB (260,025,634 bytes)
MSI - mszip 2:02 89.6 MB ( 94,022,946 bytes)
MSI - low 2:35 81.6 MB ( 85,646,626 bytes)
MSI - medium 4:11 77.3 MB ( 81,136,930 bytes)
MSI - high 28:01 74.7 MB ( 78,384,418 bytes)
zip 1:32 93.2 MB ( 97,732,293 bytes)
7Z 2:22 65.0 MB ( 68,171,614 bytes)
```
It didn't, so I lowered it to medium, seemed reasonable.
Differential Revision: https://developer.blender.org/D5494
Reviewers: brecht, jesterking
But in the future the selection code may also be used in object mode (eg for snapping).
So to avoid using too much VRAM resources, it is good to avoid drawing all objects in the viewport.
The solution was to create an array with only objects that are detected within the selection area.
If the selection operator is modal, objects already detected are not removed from the array until view3d is moved or orbited.
To detect the object, its BoundBox is tested.
Since the Select Engine does not have a dedicated depth texture, whenever a new object is "found" the depth of the objects in the array already drawn is redrawn.
Reviewers: campbellbarton, fclem
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D5435
- When no change is performed on a float button, cancel the action.
- Move left/right clicks into the same block.
- Replace ambiguous names: temp, tempf.