Texture paint code was retrieving the evaluated mesh from the
original object, which isn't supposed to happen, so the cached
mesh isn't properly cleaned up by Edit Mode toggle.
Note that am not sure that is actually needed, since switching to that
mode does not actually use any eval data, it's only needed during init
of first stroke... But in doubt, that won't hurt to have it here anyway.
This reverts commit 3f31c28a02.
Gives issues zooming, could be resolved but it mostly worked OK before,
and it's not a priority to spend time on, so leave as is for now.
Now used the original dist instead, since using the distance between
the camera and the views offset may seem random from the users POV.
This addresses strange behavior noticed in T56934.
Now when try to add annotation, if a grease pencil object is selected, first the object is unselected. This solution is not perfect but it's better than cancel the annotation.
Thanks Dalai for his help.
For most brushes, texture painting uses a special mask accumulation
table in order to ensure that the amount of added color only increases
when the same pixel is touched multiple times by the stroke.
Unfortunately, only the mask texture was added to the mask before
this check, while normal, stencil, texture alpha masks were applied
after this check. This means that the check can pass if e.g. the
pressure is increased, but the final mask value is actually lower.
One might think that the mask values are fixed per pixel, but with
symmetry that isn't true. The result is a nasty stripe artifact due
to the discrete cutoff nature of the accumulation test.
In order to fix this, apply all masks before accumulation.
This allows primatives to be drawn from the center using the ALT key.
Also fixes SHIFT constraint not working correctly in all directions.
Both options can be used together.
Differential Revision: https://developer.blender.org/D4009
Sculpt (and paint) modes rely on valid evaluated data at their initialization.
Added code to ensure that in `ED_object_mode_toggle()`, when relevant
toggle operator requires it (looks like sculpt/paint should be the only
ones affected, although particle edit may be too...).
Some space types are exposed as multiple space types,
previously the key binding to set the space type would use the last
used space-type.
Now pressing the key again cycles to the next space sub-type.
Without this, shortcut display is confusing since some space types share
a key. Keymap display will need to be updated to support this.
To make consistent with Left click select, now if click outside any point, all points are deselected.
Reduced the circle of selection to get more precission. The radius used before was too wide.
Note: There is a minimum distance to consider outside selection area.
The old onion skinning used in 2.7x has been ported and converted to 2.8. Only basic features have been included. For more advanced onion skin features, use grease pencil objects.
Onion Skin is supported in View 3D and Sequencer.
Not exactly sure why we did not have cached displist for bevel object
here... But anyway, that conversion operation should really happen
outside of depsgraph evaluation area, so makes sense to do it as when
generating geometry for rendering, imho. Also solves issues like loosing
hidden parts of the curve/surface, etc. Still using viewport resolution
for curves, though.
See T57857 for discussion. This reverts:
"Outliner: Do not gray out empty collections"
4521d3e707.
"Remove eye column from the outliner"
fd16b35997.
Fix/workaround issues in pose and edit mode"
6d2e2e30d5.
"Per view-layer collection visibility"
4de6a210c6.
Curve/surface/text final data may be an evaluated mesh instead of a
displist, when some modifiers (constructive ones in particular) are
applied to it.
Note that this is just getting feet wet, whole draw code suffers from
the same issue! :P
We still control this in the viewport collections visibility menu. But
now we are actually changing the visibility of the collections, not of
the objects.
If a collection is indirectly invisible (because one of its parents are
invisible) we gray it out.
Also if you click directly in the collection names, it "isolates" the
collection by hiding all collections, and showing the direct parents and
all the children of the selected collection.
Development Note:
Right now I'm excluding the hidden collections from the depsgraph.
Thus the need for tagging relations to update.
If this proves to be too slow, we can change.