[Bf-blender-cvs] [b904210] master: Fix T49097: GP ruler data reinstances GP_Palette Color

Antonioya noreply at git.blender.org
Tue Aug 16 22:30:47 CEST 2016


Commit: b90421019b0257f52a6b75dcc57a0c96fa4159b6
Author: Antonioya
Date:   Tue Aug 16 22:28:34 2016 +0200
Branches: master
https://developer.blender.org/rBb90421019b0257f52a6b75dcc57a0c96fa4159b6

Fix T49097: GP ruler data reinstances GP_Palette Color

If the ruler is saved, a new color was created for each ruler. With the
change, a color is created for the first instance, and it reused in the
following instances. The default color is the current default color for
GP.

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

M	source/blender/editors/space_view3d/view3d_ruler.c

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

diff --git a/source/blender/editors/space_view3d/view3d_ruler.c b/source/blender/editors/space_view3d/view3d_ruler.c
index 37b068e..dda1a64 100644
--- a/source/blender/editors/space_view3d/view3d_ruler.c
+++ b/source/blender/editors/space_view3d/view3d_ruler.c
@@ -297,6 +297,8 @@ static bool view3d_ruler_to_gpencil(bContext *C, RulerInfo *ruler_info)
 	bGPDlayer *gpl;
 	bGPDframe *gpf;
 	bGPDstroke *gps;
+	bGPDpalette *palette;
+	bGPDpalettecolor *palcolor;
 	RulerItem *ruler_item;
 	const char *ruler_name = RULER_ID;
 	bool changed = false;
@@ -312,6 +314,17 @@ static bool view3d_ruler_to_gpencil(bContext *C, RulerInfo *ruler_info)
 		gpl->flag |= GP_LAYER_HIDE;
 	}
 
+	/* try to get active palette or create a new one */
+	palette = BKE_gpencil_palette_getactive(scene->gpd);
+	if (palette == NULL) {
+		palette = BKE_gpencil_palette_addnew(scene->gpd, DATA_("GP_Palette"), true);
+	}
+	/* try to get color with the ruler name or create a new one */
+	palcolor = BKE_gpencil_palettecolor_getbyname(palette, (char *)ruler_name);
+	if (palcolor == NULL) {
+		palcolor = BKE_gpencil_palettecolor_addnew(palette, (char *)ruler_name, true);
+	}
+	
 	gpf = BKE_gpencil_layer_getframe(gpl, CFRA, true);
 	BKE_gpencil_free_strokes(gpf);
 
@@ -342,6 +355,9 @@ static bool view3d_ruler_to_gpencil(bContext *C, RulerInfo *ruler_info)
 			}
 		}
 		gps->flag = GP_STROKE_3DSPACE;
+		/* assign color to stroke */
+		strcpy(gps->colorname, palcolor->info);
+		gps->palcolor = palcolor;
 		BLI_addtail(&gpf->strokes, gps);
 		changed = true;
 	}




More information about the Bf-blender-cvs mailing list