[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