Page MenuHome

Grease pencil layers are not scene-specific for "full-copy scenes
Closed, ResolvedPublic

Description

System Information
Arch Linux

Blender Version
Broken: GPencil_EditStrokes branch (as of 4c54390), self-built

Short description of error
If you have a grease pencil layer and you create a new scene using Full Copy, the second scene doesn't use a new copy of that layer. Instead it points to the original grease pencil layer. The effect of this is that any edits to that grease pencil layer, including animation, shows up in both scenes. There doesn't seem to be a way to make the grease pencil layer single user for that scene (the button is there, it just doesn't work).

Exact steps for others to reproduce the error

  1. Create grease pencil layer in default scene.
  2. Draw grease pencil strokes
  3. Create a new scene with Full Copy
  4. Edit/delete grease pencil strokes
  5. Switch back to the first scene and notice that your edits are there, too.

Event Timeline

Joshua Leung (aligorith) lowered the priority of this task from Needs Triage by Developer to Normal.Nov 9 2014, 1:43 PM
NOTE: Will be fixed in Strokes Editing branch

Todos:

  1. Fix up BKE_scene_copy() to make changes to GP Datablocks
    • Increment ref count if not copying
    • Hook up to a new datablock if copying
  1. Fix up the GP datablock copying code in gpencil.c - This is actually dangerous code, since it doesn't work well if there are multiple users of a GP datablock, OR if the datablock has ID props
Campbell Barton (campbellbarton) triaged this task as Confirmed, Medium priority.Nov 10 2014, 10:52 AM
Campbell Barton (campbellbarton) changed Type from Bug to To Do.

Oops - As a little dev note for future reference, I just found out that the datablock duplicate code is now used for undo too, which puts a bit of a spanner into the works for the above plan!