[Bf-blender-cvs] [ecba7db0105] greasepencil-object: Add diagonal line if fill color

Antonio Vazquez noreply at git.blender.org
Thu Jan 11 11:56:09 CET 2018


Commit: ecba7db01057f5560f8db1b31c1c31208344ebea
Author: Antonio Vazquez
Date:   Thu Jan 11 11:25:09 2018 +0100
Branches: greasepencil-object
https://developer.blender.org/rBecba7db01057f5560f8db1b31c1c31208344ebea

Add diagonal line if fill color

Add a line if the color box include stroke and fill color.

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

M	source/blender/editors/gpencil/gpencil_colorpick.c
M	source/blender/editors/include/ED_gpencil.h

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

diff --git a/source/blender/editors/gpencil/gpencil_colorpick.c b/source/blender/editors/gpencil/gpencil_colorpick.c
index fbf2eaeb3e8..0547b384d8f 100644
--- a/source/blender/editors/gpencil/gpencil_colorpick.c
+++ b/source/blender/editors/gpencil/gpencil_colorpick.c
@@ -78,7 +78,7 @@
 #define GP_BOX_GAP (6 * U.ui_scale)
 
  /* draw a box with lines */
-static void gp_draw_boxlines(rcti *box, float ink[4])
+static void gp_draw_boxlines(rcti *box, float ink[4], bool diagonal)
 {
 	Gwn_VertFormat *format = immVertexFormat();
 	unsigned pos = GWN_vertformat_attr_add(format, "pos", GWN_COMP_F32, 2, GWN_FETCH_FLOAT);
@@ -88,7 +88,7 @@ static void gp_draw_boxlines(rcti *box, float ink[4])
 
 	/* draw stroke curve */
 	glLineWidth(1.0f);
-	immBeginAtMost(GWN_PRIM_LINES, 8);
+	immBeginAtMost(GWN_PRIM_LINES, 10);
 
 	immAttrib4fv(color, ink);
 	immVertex2f(pos, box->xmin, box->ymax - 1);
@@ -114,6 +114,14 @@ static void gp_draw_boxlines(rcti *box, float ink[4])
 	immAttrib4fv(color, ink);
 	immVertex2f(pos, box->xmin, box->ymin);
 
+	if (diagonal == true) {
+		immAttrib4fv(color, ink);
+		immVertex2f(pos, box->xmin, box->ymin);
+
+		immAttrib4fv(color, ink);
+		immVertex2f(pos, box->xmax, box->ymax);
+	}
+
 	immEnd();
 	immUnbindProgram();
 }
@@ -192,7 +200,7 @@ static void gpencil_draw_color_table(const bContext *UNUSED(C), tGPDpick *tgpk)
 		}
 
 		gp_draw_fill_box(&col->rect, col->rgba, col->fill, 0);
-		gp_draw_boxlines(&col->rect, line);
+		gp_draw_boxlines(&col->rect, line, col->fillmode);
 	}
 }
 
@@ -287,9 +295,11 @@ static tGPDpick *gp_session_init_colorpick(bContext *C, wmOperator *op)
 		copy_v4_v4(tcolor->rgba, palcol->rgb);
 		if (palcol->fill[3] > 0.0f) {
 			copy_v4_v4(tcolor->fill, palcol->fill);
+			tcolor->fillmode = true;
 		}
 		else {
 			copy_v4_v4(tcolor->fill, palcol->rgb);
+			tcolor->fillmode = false;
 		}
 
 		/* box position */
diff --git a/source/blender/editors/include/ED_gpencil.h b/source/blender/editors/include/ED_gpencil.h
index 3ad894c06c9..793fa0c2d05 100644
--- a/source/blender/editors/include/ED_gpencil.h
+++ b/source/blender/editors/include/ED_gpencil.h
@@ -196,6 +196,7 @@ typedef struct tGPDpickColor {
 	int index;      /* index of color in palette */
 	float rgba[4];	/* color */
 	float fill[4];  /*fill color */
+	bool fillmode;   /* flag fill is not enabled */
 } tGPDpickColor;
 
 typedef struct tGPDpick {



More information about the Bf-blender-cvs mailing list