Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorAntonio Vazquez <blendergit@gmail.com>2020-06-09 12:13:07 +0300
committerJeroen Bakker <jeroen@blender.org>2020-06-18 10:31:59 +0300
commit8e555bf4e30bed9d276de32cd0ae369095146e54 (patch)
tree6623c181afbe5e229790287213b3aa9af0cb6d24 /source
parent0178e7b3939879323fefba798b7aff8ef1ea1cca (diff)
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
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/gpencil.c8
1 files changed, 6 insertions, 2 deletions
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;
}
}