Blender Git Commits

Blender Git "tmp-COW_InsertKeyframe_Fix" branch commits.

May 19, 2018, 17:42 (GMT)
Add back temporary exception for pose bones in DEG_get_evaluated_rna_pointer()

Without the exception, adding new poses to pose libraries took several seconds
with only <= 4 bones selected. While we may still need this for other cases too,
since bones are such a common use case, it makes sense to provide some level
of optimisation for them.
May 19, 2018, 17:27 (GMT)
Cleanup: Remove temporary debugging code
May 19, 2018, 17:12 (GMT)
WIP: Improved implementation of DEG_get_evaluated_rna_pointer()

This now works by getting the RNA Path from the given PointerRNA to go from the
ID block to the data it points to, then uses this path to find the new data
relative to the COW ID.

Note: This currently still has all the debug prints left in - As can be seen,
I was testing this against the earlier PoseBone hack/special case. We may still
need to bring such special cases back in future, since looking up RNA Paths
like this can be slow.
May 18, 2018, 18:36 (GMT)
WIP COW Fix: Insert keyframe operators/api now queries depsgraph for evaluated data

When using copy on write, insert keyframe operators were reading from old
bmain data instead of COW data. This meant that inserting keyframes would
often read old/stale data, resulting in invalid keyframes getting created
(e.g. from last transform operation, instead of actual current state).

This commit makes it so that keyframing operators will ask depsgraph for
the evaluated copy of the data, so that it can read values from that. It
introduces a new function - `DEG_get_evaluated_rna_pointer()`, which when
working correctly/fully, should work just like the other `DEG_get_evaluated_*()`
functions, except it lets you pass in an RNA Pointer.

However, currently, this is only done for Pose Bones (as a dirty hack, since this
is an important/pivotal requirement for production) and/or datablock
properties directly (since we can just use the DEG_get_evaluated_id() directly).
on the datablock.

Committing to a branch for now as this all needs more testing. More work to come
later at a more sane time of day!
By: Miika HämäläinenLast update: Nov-07-2014 14:18 MiikaHweb | 2003-2019