[Bf-blender-cvs] [8e555bf4e30] blender-v2.83-release: GPencil: Improve viewlayer masking check

Antonio Vazquez noreply at git.blender.org
Thu Jun 18 10:15:25 CEST 2020


Commit: 8e555bf4e30bed9d276de32cd0ae369095146e54
Author: Antonio Vazquez
Date:   Tue Jun 9 11:13:07 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rB8e555bf4e30bed9d276de32cd0ae369095146e54

GPencil: Improve viewlayer masking check

Check if the mask layer is used in a layer that is going to be used in the current viewlayer.

Related to T77667

===================================================================

M	source/blender/blenkernel/intern/gpencil.c

===================================================================

diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index f543e95f835..e8b55748bbd 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1833,9 +1833,13 @@ bool BKE_gpencil_from_image(SpaceImage *sima, bGPDframe *gpf, const float size,
  * \param gpl_mask Actual Layer
  * \return True if the layer is a mask
  */
-static bool gpencil_is_layer_mask(bGPdata *gpd, bGPDlayer *gpl_mask)
+static bool gpencil_is_layer_mask(ViewLayer *view_layer, bGPdata *gpd, bGPDlayer *gpl_mask)
 {
   LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) {
+    if ((gpl->viewlayername[0] != '\0') && (!STREQ(view_layer->name, gpl->viewlayername))) {
+      continue;
+    }
+
     LISTBASE_FOREACH (bGPDlayer_Mask *, mask, &gpl->mask_layers) {
       if (STREQ(gpl_mask->info, mask->name)) {
         return true;
@@ -1889,7 +1893,7 @@ void BKE_gpencil_visible_stroke_iter(ViewLayer *view_layer,
         (!STREQ(view_layer->name, gpl->viewlayername))) {
       /* If the layer is used as mask, cannot be filtered or the masking system
        * will crash because needs the mask layer in the draw pipeline. */
-      if (!gpencil_is_layer_mask(gpd, gpl)) {
+      if (!gpencil_is_layer_mask(view_layer, gpd, gpl)) {
         continue;
       }
     }



More information about the Bf-blender-cvs mailing list