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

Reply via email to