[Bf-blender-cvs] [6bc0375d222] greasepencil-object: Opacity modifer affect strength

Antonio Vazquez noreply at git.blender.org
Mon Jul 24 12:42:28 CEST 2017


Commit: 6bc0375d222a5b1f5726a32616d7180e418e5971
Author: Antonio Vazquez
Date:   Mon Jul 24 12:42:10 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rB6bc0375d222a5b1f5726a32616d7180e418e5971

Opacity modifer affect strength

If the factor is > 1, the strength of the stroke is affected by modifier

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

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

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

diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index ce34e1e4f1d..7a135e17d50 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1919,6 +1919,8 @@ void ED_gpencil_tint_modifier(int UNUSED(id), GpencilTintModifierData *mmd, bGPD
 /* opacity strokes */
 void ED_gpencil_opacity_modifier(int UNUSED(id), GpencilOpacityModifierData *mmd, bGPDlayer *gpl, bGPDstroke *gps)
 {
+	bGPDspoint *pt;
+
 	if (!is_stroke_affected_by_modifier(mmd->layername, mmd->passindex, 3, gpl, gps,
 		(int)mmd->flag & GP_OPACITY_INVERSE_LAYER, (int)mmd->flag & GP_OPACITY_INVERSE_PASS)) {
 		return;
@@ -1929,6 +1931,15 @@ void ED_gpencil_opacity_modifier(int UNUSED(id), GpencilOpacityModifierData *mmd
 
 	CLAMP(gps->palcolor->rgb[3], 0.0f, 1.0f);
 	CLAMP(gps->palcolor->fill[3], 0.0f, 1.0f);
+
+	/* if opacity > 1.0, affect the strength of the stroke */
+	if (mmd->factor > 1.0f) {
+		for (int i = 0; i < gps->totpoints; ++i) {
+			bGPDspoint *pt = &gps->points[i];
+			pt->strength += (mmd->factor - 1.0f);
+			CLAMP(pt->strength, 0.0f, 1.0f);
+		}
+	}
 }
 
 /* helper function to sort strokes using qsort */
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index 8dabcf6480f..ed99a339783 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -314,6 +314,16 @@ EnumPropertyItem rna_enum_gpencil_lockshift_items[] = {
 #  include "ABC_alembic.h"
 #endif
 
+static void rna_GPencilOpacity_factor_range(PointerRNA *ptr, float *min, float *max,
+	float *softmin, float *softmax)
+{
+	*min = 0.0f;
+	*max = 2.0f;
+
+	*softmin = 0.0f;
+	*softmax = 1.0f;
+}
+
 static void rna_UVProject_projectors_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
 {
 	UVProjectModifierData *uvp = (UVProjectModifierData *)ptr->data;
@@ -5011,7 +5021,7 @@ static void rna_def_modifier_gpencilopacity(BlenderRNA *brna)
 
 	prop = RNA_def_property(srna, "factor", PROP_FLOAT, PROP_NONE);
 	RNA_def_property_float_sdna(prop, NULL, "factor");
-	RNA_def_property_range(prop, 0, 1.0);
+	RNA_def_property_float_funcs(prop, NULL, NULL, "rna_GPencilOpacity_factor_range");
 	RNA_def_property_ui_text(prop, "Factor", "Factor of opacity");
 	RNA_def_property_update(prop, 0, "rna_Modifier_update");




More information about the Bf-blender-cvs mailing list