Same fix as for smoke (and is what caching proposal is AFAIK):
share cache between copied and original objects.
One thing which is still missing to be fixed is to make auto-cache
more reliable. It was already kind of broken, so don't think it
should be a stopping factor for this fix.
That was caused by a thread safety issue on gpu_batch_presets_unregister()
which was not designed to be used for this kind of situation (managing 3D
meshes batches).
It was supposed to be a feature for substituting RNA paths on the
fly, but has never been implemented, apart from a couple of structure
definitions and passing around some always-NULL pointers. Now it gets
in the way of refactoring NLA evaluation to use GHash for efficiency.
The ruler tool is using a hard coded background color. Invert it if the
text color is bright. In the future we should maybe use a theme color
instead of guessing as it does not work well with middle gray colors.
It was using UI_draw_roundbox_aa which is not available when drawing with
the view3d opengl context (because of VAO not being shared). Replace with
simpler rect box. Of course it's a bit more ugly but at least it's working.
Generating the keymap for the tooltip stopped shortcuts from running.
While this could be supported - the shortcuts show in the button,
so remove shortcuts from these tips.
- Replace BKE_brush_getactive_gpencil -> BKE_paint_brush
(no need for per-paint-type brush access).
- Rename TOT_GP_EDITBRUSH_TYPES -> GP_EDITBRUSH_TYPE_MAX
(avoid sharing prefix w/ unrelated constants).
- Rename instances of `GP_EditBrush_Data` to 'gp_brush'
(`Brush` is typically called 'brush').
The insert_keyframe function already applies NLA strip to action
time remapping, so doing it in insert_graph_keys/insert_action_keys
is redundant outside the code path that inserts directly into fcurve.