[Bf-blender-cvs] [c248778601c] greasepencil-object: Show only lines for MultiEdit strokes

Antonio Vazquez noreply at git.blender.org
Wed Aug 30 16:41:55 CEST 2017


Commit: c248778601c337353272dac7da58deac78e70b45
Author: Antonio Vazquez
Date:   Wed Aug 30 16:41:28 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rBc248778601c337353272dac7da58deac78e70b45

Show only lines for MultiEdit strokes

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

M	source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
M	source/blender/makesrna/intern/rna_gpencil.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 3ab62fd5be8..507548a7d13 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
@@ -732,35 +732,37 @@ static void gpencil_draw_strokes(GpencilBatchCache *cache, GPENCIL_e_data *e_dat
 			stl->shgroups = p;
 		}
 #endif
-		int id = stl->storage->shgroup_id;
-		if ((gps->totpoints > 1) && ((gps->palcolor->flag & PAC_COLOR_DOT) == 0)) {
-			if (gps->totpoints > 2) {
-				stl->shgroups[id].shgrps_fill = DRW_gpencil_shgroup_fill_create(e_data, vedata, psl->stroke_pass, e_data->gpencil_fill_sh, gpd, gps->palcolor, id);
+		if ((gpl->actframe->framenum == derived_gpf->framenum) || (!is_multiedit) || ((gpd->flag & GP_DATA_STROKE_MULTIEDIT_LINES) == 0)) {
+			int id = stl->storage->shgroup_id;
+			if ((gps->totpoints > 1) && ((gps->palcolor->flag & PAC_COLOR_DOT) == 0)) {
+				if (gps->totpoints > 2) {
+					stl->shgroups[id].shgrps_fill = DRW_gpencil_shgroup_fill_create(e_data, vedata, psl->stroke_pass, e_data->gpencil_fill_sh, gpd, gps->palcolor, id);
+				}
+				else {
+					stl->shgroups[id].shgrps_fill = NULL;
+				}
+				stl->shgroups[id].shgrps_stroke = DRW_gpencil_shgroup_stroke_create(e_data, vedata, psl->stroke_pass, e_data->gpencil_stroke_sh, ob, gpd, gps->palcolor, id);
 			}
 			else {
 				stl->shgroups[id].shgrps_fill = NULL;
+				stl->shgroups[id].shgrps_stroke = DRW_gpencil_shgroup_point_create(e_data, vedata, psl->stroke_pass, e_data->gpencil_point_sh, ob, gpd, gps->palcolor, id);
 			}
-			stl->shgroups[id].shgrps_stroke = DRW_gpencil_shgroup_stroke_create(e_data, vedata, psl->stroke_pass, e_data->gpencil_stroke_sh, ob, gpd, gps->palcolor, id);
-		}
-		else {
-			stl->shgroups[id].shgrps_fill = NULL;
-			stl->shgroups[id].shgrps_stroke = DRW_gpencil_shgroup_point_create(e_data, vedata, psl->stroke_pass, e_data->gpencil_point_sh, ob, gpd, gps->palcolor, id);
-		}
-		++stl->storage->shgroup_id;
+			++stl->storage->shgroup_id;
 
-		fillgrp = stl->shgroups[id].shgrps_fill;
-		strokegrp = stl->shgroups[id].shgrps_stroke;
+			fillgrp = stl->shgroups[id].shgrps_fill;
+			strokegrp = stl->shgroups[id].shgrps_stroke;
 
-		/* apply modifiers (only modify geometry, but not create ) */
-		if ((cache->is_dirty) && (ob->modifiers.first) && (!is_multiedit)) {
-			BKE_gpencil_stroke_modifiers(ob, gpl, derived_gpf, gps);
-		}
-		/* fill */
-		if (fillgrp) {
-			gpencil_add_fill_shgroup(cache, fillgrp, ob, gpd, gpl, derived_gpf, gps, tintcolor, false, custonion);
+			/* apply modifiers (only modify geometry, but not create ) */
+			if ((cache->is_dirty) && (ob->modifiers.first) && (!is_multiedit)) {
+				BKE_gpencil_stroke_modifiers(ob, gpl, derived_gpf, gps);
+			}
+			/* fill */
+			if (fillgrp) {
+				gpencil_add_fill_shgroup(cache, fillgrp, ob, gpd, gpl, derived_gpf, gps, tintcolor, false, custonion);
+			}
+			/* stroke */
+			gpencil_add_stroke_shgroup(cache, strokegrp, ob, gpd, gpl, derived_gpf, gps, opacity, tintcolor, false, custonion);
 		}
-		/* stroke */
-		gpencil_add_stroke_shgroup(cache, strokegrp, ob, gpd, gpl, derived_gpf, gps, opacity, tintcolor, false, custonion);
 
 		/* edit points (only in edit mode) */
 		if (src_gps) {
diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c
index 29e44af982f..b4041f1b9b5 100644
--- a/source/blender/makesrna/intern/rna_gpencil.c
+++ b/source/blender/makesrna/intern/rna_gpencil.c
@@ -1202,6 +1202,8 @@ static void rna_def_gpencil_data(BlenderRNA *brna)
 	PropertyRNA *prop;
 	FunctionRNA *func;
 
+	static float default_1[4] = { 0.6f, 0.6f, 0.6f, 0.3f };
+
 	srna = RNA_def_struct(brna, "GreasePencil", "ID");
 	RNA_def_struct_sdna(srna, "bGPdata");
 	RNA_def_struct_ui_text(srna, "Grease Pencil", "Freehand annotation sketchbook");
@@ -1282,6 +1284,7 @@ static void rna_def_gpencil_data(BlenderRNA *brna)
 	RNA_def_property_float_sdna(prop, NULL, "line_color");
 	RNA_def_property_array(prop, 4);
 	RNA_def_property_range(prop, 0.0f, 1.0f);
+	RNA_def_property_float_array_default(prop, default_1);
 	RNA_def_property_ui_text(prop, "Edit Line Color", "Color for editing line");
 	RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");



More information about the Bf-blender-cvs mailing list