[Bf-blender-cvs] [2ee74e94aaf] greasepencil-object: Fix error for ghost icon in palette

Antonio Vazquez noreply at git.blender.org
Thu Jun 1 15:46:54 CEST 2017


Commit: 2ee74e94aaf24489cee77f151931398e85976d2f
Author: Antonio Vazquez
Date:   Thu Jun 1 15:46:40 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rB2ee74e94aaf24489cee77f151931398e85976d2f

Fix error for ghost icon in palette

THe ghost icon was not working with new draw manager because the check was not migrated.

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

M	source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
M	source/blender/draw/engines/gpencil/gpencil_engine.h
M	source/blender/draw/engines/gpencil/gpencil_geom.c

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

diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
index f3a07f6bcf8..8c7e9bcf26b 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
@@ -455,7 +455,7 @@ static void gpencil_draw_strokes(GpencilBatchCache *cache, GPENCIL_e_data *e_dat
 
 	for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) {
 		/* check if stroke can be drawn */
-		if (gpencil_can_draw_stroke(rv3d, gpf, gps) == false) {
+		if (gpencil_can_draw_stroke(rv3d, gpf, gps, onion) == false) {
 			continue;
 		}
 		/* limit the number of shading groups */
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h
index cd173262ff8..09b56ddbe53 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.h
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.h
@@ -147,7 +147,7 @@ struct Batch *DRW_gpencil_get_buffer_point_geom(struct bGPdata *gpd, short thick
 
 void gpencil_batch_cache_clear(struct bGPdata *gpd);
 
-bool gpencil_can_draw_stroke(struct RegionView3D *rv3d, const struct bGPDframe *gpf, const struct bGPDstroke *gps);
+bool gpencil_can_draw_stroke(struct RegionView3D *rv3d, const struct bGPDframe *gpf, const struct bGPDstroke *gps, const bool onion);
 
 struct tGPencilObjectCache *gpencil_object_cache_allocate(struct tGPencilObjectCache *cache, int *gp_cache_size, int *gp_cache_used);
 void gpencil_object_cache_add(struct tGPencilObjectCache *cache, struct RegionView3D *rv3d, struct Object *ob, int *gp_cache_used);
diff --git a/source/blender/draw/engines/gpencil/gpencil_geom.c b/source/blender/draw/engines/gpencil/gpencil_geom.c
index 2ea30e3d77d..0c90d6f9569 100644
--- a/source/blender/draw/engines/gpencil/gpencil_geom.c
+++ b/source/blender/draw/engines/gpencil/gpencil_geom.c
@@ -364,7 +364,7 @@ Batch *DRW_gpencil_get_buffer_fill_geom(const tGPspoint *points, int totpoints,
 
 
 /* Helper for doing all the checks on whether a stroke can be drawn */
-bool gpencil_can_draw_stroke(RegionView3D *UNUSED(rv3d), const bGPDframe *UNUSED(gpf), const bGPDstroke *gps)
+bool gpencil_can_draw_stroke(RegionView3D *UNUSED(rv3d), const bGPDframe *UNUSED(gpf), const bGPDstroke *gps, const bool onion)
 {
 	/* skip stroke if it doesn't have any valid data */
 	if ((gps->points == NULL) || (gps->totpoints < 1))
@@ -373,7 +373,8 @@ bool gpencil_can_draw_stroke(RegionView3D *UNUSED(rv3d), const bGPDframe *UNUSED
 	/* check if the color is visible */
 	PaletteColor *palcolor = gps->palcolor;
 	if ((palcolor == NULL) ||
-		(palcolor->flag & PC_COLOR_HIDE))
+		(palcolor->flag & PC_COLOR_HIDE) ||
+		(onion && (palcolor->flag & PC_COLOR_ONIONSKIN)))
 	{
 		return false;
 	}




More information about the Bf-blender-cvs mailing list