[Bf-blender-cvs] [634e2698870] greasepencil-object: Apply onion opacity factor when fade disabled

Antonio Vazquez noreply at git.blender.org
Fri Jan 26 18:20:03 CET 2018


Commit: 634e26988705ad2dc2d598850c4c94d448e772d8
Author: Antonio Vazquez
Date:   Fri Jan 26 18:19:34 2018 +0100
Branches: greasepencil-object
https://developer.blender.org/rB634e26988705ad2dc2d598850c4c94d448e772d8

Apply onion opacity factor when fade disabled

If the fade option is disabled, the opacity of the onion strokes is defined by opacity factor and not fixed as before.

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

M	source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.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 c3705c5e317..e0c403613b5 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
@@ -881,12 +881,39 @@ void DRW_gpencil_populate_buffer_strokes(GPENCIL_e_data *e_data, void *vedata, T
 	}
 }
 
+/* get alpha factor for onion strokes */
+static void gpencil_get_onion_alpha(float color[4], bGPdata *gpd, bGPDlayer *gpl)
+{
+	#define MIN_ALPHA_VALUE 0.01f
+
+	/* if fade is disabled, opacity is equal in all frames */
+	if (gpl->onion_flag & GP_LAYER_ONION_OVERRIDE) {
+		if ((gpl->onion_flag & GP_ONION_FADE) == 0) {
+			color[3] = gpl->onion_factor;
+		}
+		else {
+			/* add override opacity factor */
+			color[3] += gpl->onion_factor - 0.5f;
+		}
+	}
+	else {
+		if ((gpd->onion_flag & GP_ONION_FADE) == 0) {
+			color[3] = gpd->onion_factor;
+		}
+		else {
+			/* add override opacity factor */
+			color[3] += gpd->onion_factor - 0.5f;
+		}
+	}
+
+	CLAMP(color[3], MIN_ALPHA_VALUE, 1.0f);
+}
+
 /* draw onion-skinning for a layer */
 static void gpencil_draw_onionskins(
         GpencilBatchCache *cache, GPENCIL_e_data *e_data, void *vedata,
         Object *ob, bGPdata *gpd, bGPDlayer *gpl, bGPDframe *gpf)
 {
-	#define MIN_ALPHA_VALUE 0.01f
 
 	const float default_color[3] = { UNPACK3(U.gpencil_new_layer_col) };
 	const float alpha = 1.0f;
@@ -967,23 +994,8 @@ static void gpencil_draw_onionskins(
 			fac = alpha - ((1.1f - (1.0f / (float)idx)) * 0.66f);
 			color[3] = fac;
 		}
-		/* if fade is disabled, opacity is equal in all frames */
-		if (gpl->onion_flag & GP_LAYER_ONION_OVERRIDE) {
-			if ((gpl->onion_flag & GP_LAYER_ONION_FADE) == 0) {
-				color[3] = 0.66f;
-			}
-			/* add override opacity factor */
-			color[3] += gpl->onion_factor - 0.5f;
-		}
-		else {
-			if ((gpd->onion_flag & GP_ONION_FADE) == 0) {
-				color[3] = 0.66f;
-			}
-			/* add override opacity factor */
-			color[3] += gpd->onion_factor - 0.5f;
-		}
 
-		CLAMP(color[3], MIN_ALPHA_VALUE, 1.0f);
+		gpencil_get_onion_alpha(color, gpd, gpl);
 		gpencil_draw_onion_strokes(cache, e_data, vedata, ob, gpd, gpl, gf, color[3], color, colflag);
 	}
 	/* -------------------------------
@@ -1047,23 +1059,8 @@ static void gpencil_draw_onionskins(
 			fac = alpha - ((1.1f - (1.0f / (float)idx)) * 0.66f);
 			color[3] = fac;
 		}
-		/* if fade is disabled, opacity is equal in all frames */
-		if (gpl->onion_flag & GP_LAYER_ONION_OVERRIDE) {
-			if ((gpl->onion_flag & GP_ONION_FADE) == 0) {
-				color[3] = 0.66f;
-			}
-			/* add override opacity factor */
-			color[3] += gpl->onion_factor - 0.5f;
-		}
-		else {
-			if ((gpd->onion_flag & GP_ONION_FADE) == 0) {
-				color[3] = 0.66f;
-			}
-			/* add override opacity factor */
-			color[3] += gpd->onion_factor - 0.5f;
-		}
 
-		CLAMP(color[3], MIN_ALPHA_VALUE, 1.0f);
+		gpencil_get_onion_alpha(color, gpd, gpl);
 		gpencil_draw_onion_strokes(cache, e_data, vedata, ob, gpd, gpl, gf, color[3], color, colflag);
 	}
 }



More information about the Bf-blender-cvs mailing list