[Bf-blender-cvs] [83a1498ceaa] greasepencil-object: Change Default Brush material after refactor

Antonio Vazquez noreply at git.blender.org
Thu Apr 26 12:36:04 CEST 2018


Commit: 83a1498ceaae92bd70c23166b670e1736e64a88b
Author: Antonio Vazquez
Date:   Thu Apr 26 12:35:28 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rB83a1498ceaae92bd70c23166b670e1736e64a88b

Change Default Brush material after refactor

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

M	source/blender/blenkernel/BKE_gpencil.h
M	source/blender/blenkernel/intern/gpencil.c
M	source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
M	source/blender/editors/gpencil/gpencil_edit.c
M	source/blender/editors/gpencil/gpencil_paint.c
M	source/blender/editors/gpencil/gpencil_utils.c

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

diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h
index 3da8b67b2e0..749b65cd82d 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -133,7 +133,7 @@ struct bGPDlayer *BKE_gpencil_layer_getactive(struct bGPdata *gpd);
 void BKE_gpencil_layer_setactive(struct bGPdata *gpd, struct bGPDlayer *active);
 void BKE_gpencil_layer_delete(struct bGPdata *gpd, struct bGPDlayer *gpl);
 
-struct Material *BKE_gpencil_get_color_from_brush(struct bGPdata *gpd, struct Brush *brush, bool add);
+struct Material *BKE_gpencil_get_color_from_brush(struct Brush *brush);
 struct Material *BKE_gpencil_color_ensure(struct Main *bmain, struct Object *ob);
 
 /* Palettes - Deprecated (2.78-2.79) */
@@ -153,7 +153,6 @@ void BKE_gpencil_palettecolor_setactive(struct bGPDpalette *palette, struct bGPD
 void BKE_gpencil_palettecolor_delete(struct bGPDpalette *palette, struct bGPDpalettecolor *palcolor);
 struct bGPDpalettecolor *BKE_gpencil_palettecolor_getbyname(struct bGPDpalette *palette, char *name);
 void BKE_gpencil_palettecolor_allnames(struct PaletteColor *palcolor, const char *oldname, const char *newname);
-void BKE_gpencil_palettecolor_delete_allstrokes(struct Main *bmain, struct PaletteColor *palcolor);
 
 /* object boundbox */
 bool BKE_gpencil_stroke_minmax(
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index dd9b83c3640..b011bbbbc91 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1036,12 +1036,11 @@ void BKE_gpencil_layer_delete(bGPdata *gpd, bGPDlayer *gpl)
 	BLI_freelinkN(&gpd->layers, gpl);
 }
 
-Material *BKE_gpencil_get_color_from_brush(bGPdata *gpd, Brush *brush, bool add)
+Material *BKE_gpencil_get_color_from_brush(Brush *brush)
 {
-	/* GPXX */
-	Material *gpcolor = NULL;
+	Material *mat = brush->material;
 
-	return gpcolor;
+	return mat;
 }
 
 /* Get active color, and add all default settings if we don't find anything */
@@ -1304,40 +1303,6 @@ bGPDpalettecolor *BKE_gpencil_palettecolor_getbyname(bGPDpalette *palette, char
 	return BLI_findstring(&palette->colors, name, offsetof(bGPDpalettecolor, info));
 }
 
-/* Delete all strokes of the color for all gpd datablocks */
-void BKE_gpencil_palettecolor_delete_allstrokes(Main *bmain, PaletteColor *palcolor)
-{
-	/* GPXX */
-	bGPdata *gpd;
-	bGPDlayer *gpl;
-	bGPDframe *gpf;
-	bGPDstroke *gps, *gpsn;
-	PaletteColor *gps_palcolor = NULL;
-
-#if 0
-	/* TODO: Optimise this by only checking GP datablocks that reference the palette this comes from */
-	for (gpd = bmain->gpencil.first; gpd; gpd = gpd->id.next) {
-		for (gpl = gpd->layers.first; gpl; gpl = gpl->next) {
-			for (gpf = gpl->frames.first; gpf; gpf = gpf->next) {
-				for (gps = gpf->strokes.first; gps; gps = gpsn) {
-					gpsn = gps->next;
-					gps_palcolor = BKE_palette_color_getbyname(gps->palette, gps->colorname);
-					if (gps_palcolor == palcolor) {
-						if (gps->points) {
-							BKE_gpencil_free_stroke_weights(gps);
-							MEM_freeN(gps->points);
-						}
-						if (gps->triangles) MEM_freeN(gps->triangles);
-						BLI_freelinkN(&gpf->strokes, gps);
-					}
-				}
-			}
-		}
-		BKE_gpencil_batch_cache_dirty(gpd);
-	}
-#endif
-}
-
 /* set the active gp-palettecolor */
 void BKE_gpencil_palettecolor_setactive(bGPDpalette *palette, bGPDpalettecolor *active)
 {
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 35682d54936..4d59ab7547b 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
@@ -635,7 +635,10 @@ void DRW_gpencil_populate_buffer_strokes(GPENCIL_e_data *e_data, void *vedata, T
 	float obscale = (ob->size[0] + ob->size[1] + ob->size[2]) / 3.0f;
 
 	/* if the brush has a palette and color defined, use these and not current defaults */
-	//TODO: BKE_gpencil_get_color_from_brush(gpd, brush, false);
+	Material *mat = BKE_gpencil_get_color_from_brush(brush);
+	if (mat != NULL) {
+		gpcolor = mat->gpcolor;
+	}
 	if (gpcolor == NULL) {
 		gpcolor = BKE_material_gpencil_settings_get(ob, ob->actcol);
 	}
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index 0117d6aa039..a1035bc2a04 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -2422,7 +2422,6 @@ static int gp_stroke_join_exec(bContext *C, wmOperator *op)
 	bGPDlayer *activegpl = BKE_gpencil_layer_getactive(gpd);
 	bGPDstroke *gps, *gpsn;
 	Object *ob = CTX_data_active_object(C);
-	GpencilColorData *gpcolor = BKE_material_gpencil_settings_get(ob, gps->mat_nr + 1);
 
 	bGPDframe *gpf_a = NULL;
 	bGPDstroke *stroke_a = NULL;
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 54b2cdf02d8..bb588853967 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -1564,12 +1564,12 @@ static void gp_init_colors(tGPsdata *p)
 	GpencilColorData *gpcolor = NULL;
 	
 	/* if the brush has a palette and color defined, use these and not current defaults */
-	//mat = BKE_gpencil_get_color_from_brush(gpd, brush, true);
+	mat = BKE_gpencil_get_color_from_brush(brush);
 
 	/* if no brush defaults, get color info
 	 * NOTE: _validate() ensures that everything we need will exist...
 	 */
-	if (mat == NULL) {
+	if ((mat == NULL) || (mat->gpcolor == NULL)){
 		p->material = BKE_gpencil_color_ensure(p->bmain, p->ob);
 	}
 	else {
diff --git a/source/blender/editors/gpencil/gpencil_utils.c b/source/blender/editors/gpencil/gpencil_utils.c
index 33055c39042..080a6e86584 100644
--- a/source/blender/editors/gpencil/gpencil_utils.c
+++ b/source/blender/editors/gpencil/gpencil_utils.c
@@ -1354,7 +1354,7 @@ static void gp_brush_drawcursor(bContext *C, int x, int y, void *customdata)
 	int *last_mouse_position = customdata;
 
 	/* get current color */
-	Material *mat = BKE_gpencil_get_color_from_brush(gpd, CTX_data_active_gpencil_brush(C), false);
+	Material *mat = BKE_gpencil_get_color_from_brush(CTX_data_active_gpencil_brush(C));
 	GpencilColorData *gpcolor = NULL;
 	if (mat == NULL) {
 		mat = BKE_gpencil_color_ensure(bmain, ob);



More information about the Bf-blender-cvs mailing list