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); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs