Grease Pencil (parent task)
Open, LowPublic

Description

Parent task to keep track of all GP branch merge related tasks.

Differential (mega-patch) task, with more links: D2889

Blocking Subtasks / Changes required before merge

  • Migrate Palettes and Palette Colors to Materials. - Needs code review. Some UI design issues remain (T54896)
  • Solve Depsgraph issues adding multiple GP Objects.
  • Enable depsgraph relationships with Materials.
  • Rename Array modifier. - Is now known as the "Instance" modifier 7a5747d5596
  • Convert operators to COW. - In progress.
    • Set up API for accessing COW evaluated GP data 356ce71a5f2 [Joshua]
    • Tag GP datablocks as needing updates [Antonio]
    • Check operators to know that COW data in appropriate operators is configured [Joshua/Antonio]
  • Refactor of UI, using new toolbars. [Postponed till after after merge. See T54896 for design decisions]
  • Disable temporarily VFX modifiers. - These are now removed from the branch. A replacement design can be worked on after the merge (as a more general system)
  • Fix issues (naming, DNA/draw-api/ID-handling, etc.) identified during code review (T55002)
  • Fix vertex group data storage issues identified during code review (T55002)

Postponed Issues

  • Convert Modifiers to use COW. [Too complex to get working before during codequest / before 2.8 DNA lockdown/Spring deadline]
    • Recode evaluation internals to occur in DEG callback instead of in draw manager + Remove current ghash-cache [Joshua]
    • Update modifiers [Joshua/Antonio]
  • Annotations support - i.e. "basic" GP features - as in 2.75/6, for non-3D view, workflow non-art use cases (T55455)

Bugs

  • ASAN crash with "Fill Brush" in get_pixel() - No further information available at this time.

Other Todo's

  • Updated design docs (on wiki)
  • User documentation

Details

Differential Revisions
D2889: Grease Pencil Branch (greasepencil-object)
Type
To Do

Related Objects

StatusAssignedTask
OpenJoshua Leung (aligorith)
ResolvedJoshua Leung (aligorith)
ResolvedJoshua Leung (aligorith)
OpenWilliam Reynish (billreynish)
ResolvedJoshua Leung (aligorith)
OpenNone
ResolvedJoshua Leung (aligorith)
ResolvedAntonio Vazquez (antoniov)
ResolvedAntonio Vazquez (antoniov)
ResolvedAntonio Vazquez (antoniov)
ResolvedAntonio Vazquez (antoniov)
ResolvedAntonio Vazquez (antoniov)
ResolvedAntonio Vazquez (antoniov)
ArchivedAntonio Vazquez (antoniov)
ResolvedAntonio Vazquez (antoniov)
ResolvedAntonio Vazquez (antoniov)
ResolvedAntonio Vazquez (antoniov)
ResolvedJoshua Leung (aligorith)
OpenNone
ArchivedJoshua Leung (aligorith)
ResolvedAntonio Vazquez (antoniov)
ResolvedJoshua Leung (aligorith)
ResolvedWilliam Reynish (billreynish)
ResolvedAntonio Vazquez (antoniov)
ResolvedAntonio Vazquez (antoniov)
ResolvedAntonio Vazquez (antoniov)

We have the following subtask:

  • Migrate Palettes and Palette Colors to Materials.
  • Solve Depsgraph issues adding multiple GP Objects.
  • Enable depsgraph relationships with Materials.
  • Rename Array modifier.
  • Convert Modifiers to use COW. ->After merge
  • Convert operators to COW.
  • Refactor of UI, using new toolbars. ->After merge
  • Disable temporarily VFX modifiers.
  • Refactor weight data to use MDeformVert/MDeformWeight structs.

@Joshua Leung (aligorith) do you need add them in phabricator as subtask?

Regarding the UI (topbar/toolbar) changes:
After discussing with Campbell, it's probably better that we leave any changes here to after the merge. The toolbar stuff is still very much a moving target, so it's best to let that settle down for a week or so first. But, in the meantime, we can still continue any UI design work in preparation for that point.

I have completed the rename of Array modifier to Instance Modifier.

@Antonio Vazquez (antoniov):
If/while you're waiting for other cleanups to do, go through and replace all the BKE_gpencil_batch_cache_dirty(gpd); calls in the GP operator code with DEG_id_tag_update(id, OB_RECALC_OB | OB_RECALC_DATA);

@Joshua Leung (aligorith) Ok, I'm going to change BKE_gpencil_batch_cache_dirty(gpd).

@Joshua Leung (aligorith) I guess you mean:

DEG_id_tag_update(gpd->id, OB_RECALC_OB | OB_RECALC_DATA);

@Joshua Leung (aligorith) I think this is what you wanted: 8098dc3d108c

Let me know if I need change it (specially anim_channels_defines.c, I was not totally sure about this).

I've just done a merge of 2.8 into the branch. We should now be up to date again, to keep working in sync, until the upcoming collections changes break things again.

@Joshua Leung (aligorith) I have tested:

Depsgraph issues adding multiple GP Objects

With last 2.8 merge works, so we can set task as done.

After receive the feedback from @Campbell Barton (campbellbarton) and @Joshua Leung (aligorith) I have moved the weights data from the points from bGPDspoint struct to bGPDstroke and I have created a separated array of MDeformVert (and MDeformWeight). Now the weighst use the same logic used for Meshes and Lattice.

I had to make a lot of changes in memory allocation, so this big refactor could produce some bug. We will test during next days to fix any issue.

This change has broken a little more the compatibility with Hero open movie files, but as we had a lot of breaks already, this is only one more.

ToDo tasks:

· Review Keymaps conflicts ( see T55162)
· Review mode switching with new keymaps

There are conflicts with some keymaps, like brush change, with the new mode change keymaps. (Some were removed here aa722e8193a6)

We need adapt the shared modes (for example 5 key) to switch to GP draw mode for OB_GPENCIL Objects.

Brecht Van Lommel (brecht) renamed this task from Grease Pencil Branch Merge (Parent Task) to Grease Pencil Tasks.Aug 13 2018, 11:34 AM
Brecht Van Lommel (brecht) renamed this task from Grease Pencil Tasks to Grease Pencil (parent task).
Brecht Van Lommel (brecht) lowered the priority of this task from Normal to Low.