As it turned out the issue wasn't that we were drawing only the active,
but that the "object mode" lattice drawing was drawing on top of the
drawing for all the edit mode lattice objects.
We are doing the same original behaviour for curves and even meshes. To be
investigated if it is ok for those other cases.
Committing this for the sake of completionism. I'm going to bring this
up for review, I think we may want to revert it.
Fundamentally I'm changing the behaviour of the operator both in object
mode (acting on all selected lattice objects), as well as the edit mode
(acting on all lattices in edit mode, regardless of them having any
selected vertice).
Adding a workaround in this case: we blit the depth buffer instead of the
stencil buffer and use the copy as the texture. This is slower but at
least it should work.
When calling glBlitFramebuffer on most (if not all) mac that have a GPU
from the Radeon Pro series, the data is not properly copied and only a
subset of the pixels are correctly copied.
This only happens when blitting the depth buffer if the depth buffer is
GL_DEPTH24_STENCIL8.
Changing the depth buffer format to GPU_DEPTH32F_STENCIL8 fixes the issue
but only works if blitting the depth componnent. The stencil componnent
still provoke issues when being copied.
- Use the original ID pointer for lookup in DEG_get_eval_flags_for_id.
- When the flags change after a DEG rebuild, tag the object for update.
- Instead of mixing int and short in different places, use uint32_t.
This fixes text not updating when a Follow Curve reference is set.
Also fixes T55769 Dimension Not properly work
and T56064 Blender crashes on selecting text-object
We decided to go to the easy way in the end, simply enforcing computing
BBox of all objects when using 'active' depsgraph, and copying back to
orig object (same as transform matrix, etc.).
BKE_scene_copy() & co. were pretty much doing nothing right...
Was a tough fight, but at least now they should behave a tad better (and
reported issue is fixed).
Proper fix is to fully rewrite that PoS, it was already a mess without
collections, now it's even hairier to handle properly, we need to use
modern new ID handling API for that (and maybe extend it a bit as
needed). But way too late to do that in 2.80.
Those were used for partial updates during edit mode, which will
not be possible anymore with OpenSubdiv.
Optimization for OpenSubdiv would be to re-use topology refiner
if topology does not change. But this is something to be done
for both edit and object modes, no need to have separate code
paths for those.
This commit makes OpenSubdiv to properly work in edit mode.
`mathutils_array_parse` is meant to parse 1d arrays of numbers.
Using matrices internal memory layout is confusing since
mathutils matrices are exposed as row major.
Also, the matrix shape wasn't checked for.
Callers that want to handle matrices should check for them explicitly.
Committed by accident (1076523b1b).
But now I need to fix building.
Note: The operator itself shouldn't have been committed because it
should operate in the world space (for the axis), not local.
I will tackle this later.