Commit: 55c2e8922226cdcfd485b3df10de4359c9c73b89
Author: Antonio Vazquez
Date:   Wed Apr 25 20:19:49 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rB55c2e8922226cdcfd485b3df10de4359c9c73b89

WIP: Mega Refactor to replace Palettes with Materials - 1

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

M       source/blender/blenkernel/BKE_gpencil.h
M       source/blender/blenkernel/BKE_paint.h
M       source/blender/blenkernel/intern/gpencil.c
M       source/blender/blenkernel/intern/library_query.c
M       source/blender/blenkernel/intern/paint.c
M       source/blender/blenloader/intern/readfile.c
M       source/blender/blenloader/intern/versioning_280.c
M       source/blender/blenloader/intern/writefile.c
M       source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
M       source/blender/draw/engines/gpencil/gpencil_engine.h
M       source/blender/draw/engines/gpencil/gpencil_geom.c
M       source/blender/editors/animation/anim_channels_defines.c
M       source/blender/editors/animation/anim_filter.c
M       source/blender/editors/animation/keyframes_draw.c
M       source/blender/editors/gpencil/drawgpencil.c
M       source/blender/editors/gpencil/gpencil_add_monkey.c
M       source/blender/editors/gpencil/gpencil_brush.c
M       source/blender/editors/gpencil/gpencil_colorpick.c
M       source/blender/editors/gpencil/gpencil_data.c
M       source/blender/editors/gpencil/gpencil_edit.c
M       source/blender/editors/gpencil/gpencil_fill.c
M       source/blender/editors/gpencil/gpencil_intern.h
M       source/blender/editors/gpencil/gpencil_interpolate.c
M       source/blender/editors/gpencil/gpencil_ops.c
M       source/blender/editors/gpencil/gpencil_paint.c
M       source/blender/editors/gpencil/gpencil_primitive.c
M       source/blender/editors/gpencil/gpencil_utils.c
M       source/blender/editors/include/ED_gpencil.h
M       source/blender/editors/screen/screen_context.c
M       source/blender/editors/screen/screen_ops.c
M       source/blender/editors/sculpt_paint/paint_ops.c
M       source/blender/editors/space_view3d/view3d_manipulator_ruler.c
M       source/blender/editors/space_view3d/view3d_ruler.c
M       source/blender/editors/transform/transform_conversions.c
M       source/blender/makesdna/DNA_brush_types.h
M       source/blender/makesdna/DNA_gpencil_types.h
M       source/blender/makesrna/intern/rna_brush.c
M       source/blender/makesrna/intern/rna_gpencil.c
M       source/blender/makesrna/intern/rna_palette.c
M       source/blender/modifiers/intern/MOD_gpencil_util.c
M       source/blender/modifiers/intern/MOD_gpencil_util.h
M       source/blender/modifiers/intern/MOD_gpencilarray.c
M       source/blender/modifiers/intern/MOD_gpencilcolor.c
M       source/blender/modifiers/intern/MOD_gpencilhook.c
M       source/blender/modifiers/intern/MOD_gpencillattice.c
M       source/blender/modifiers/intern/MOD_gpencilnoise.c
M       source/blender/modifiers/intern/MOD_gpenciloffset.c
M       source/blender/modifiers/intern/MOD_gpencilopacity.c
M       source/blender/modifiers/intern/MOD_gpencilsimplify.c
M       source/blender/modifiers/intern/MOD_gpencilsmooth.c
M       source/blender/modifiers/intern/MOD_gpencilsubdiv.c
M       source/blender/modifiers/intern/MOD_gpencilthick.c
M       source/blender/modifiers/intern/MOD_gpenciltint.c

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

diff --git a/source/blender/blenkernel/BKE_gpencil.h 
b/source/blender/blenkernel/BKE_gpencil.h
index 236adb3f1dc..3da8b67b2e0 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -41,11 +41,10 @@ struct bGPDlayer;
 struct bGPDframe;
 struct bGPDspoint;
 struct bGPDstroke;
-struct bGPDpaletteref;
+struct Material;
 struct bGPDpalette;
 struct bGPDpalettecolor;
 struct Main;
-struct PaletteColor;
 struct BoundBox;
 struct Brush;
 struct Object;
@@ -53,7 +52,6 @@ struct bDeformGroup;
 struct GpencilSimplifyModifierData;
 struct GpencilArrayModifierData;
 struct GpencilLatticeModifierData;
-struct Palette;
 
 /* ------------ Grease-Pencil API ------------------ */
 
@@ -86,7 +84,6 @@ struct bGPDstroke *BKE_gpencil_stroke_duplicate(struct 
bGPDstroke *gps_src);
 void BKE_gpencil_copy_data(struct Main *bmain, struct bGPdata *gpd_dst, const 
struct bGPdata *gpd_src, const int flag);
 struct bGPdata   *BKE_gpencil_copy(struct Main *bmain, const struct bGPdata 
*gpd);
 struct bGPdata   *BKE_gpencil_data_duplicate(struct Main *bmain, const struct 
bGPdata *gpd, bool internal_copy);
-void BKE_gpencil_copy_palette_data(struct bGPdata *gpd_dst, const struct 
bGPdata *gpd_src);
 
 void BKE_gpencil_make_local(struct Main *bmain, struct bGPdata *gpd, const 
bool lib_local);
 
@@ -107,13 +104,7 @@ void BKE_gpencil_stroke_add_points(
         const float *array, const int totpoints,
         const float mat[4][4]);
 
-struct bGPDstroke *BKE_gpencil_add_stroke(
-        struct bGPDframe *gpf, struct Palette *palette, struct PaletteColor 
*palcolor, int totpoints,
-        const char *colorname, short thickness);
-
-
-/* conversion of animation data from bGPDpalette to Palette */
-void BKE_gpencil_move_animdata_to_palettes(struct bContext *C, struct bGPdata 
*gpd);
+struct bGPDstroke *BKE_gpencil_add_stroke(struct bGPDframe *gpf, int mat_idx, 
int totpoints, short thickness);
 
 /* Stroke and Fill - Alpha Visibility Threshold */
 #define GPENCIL_ALPHA_OPACITY_THRESH 0.001f
@@ -142,22 +133,8 @@ 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);
 
-/* Palette Slots */
-void BKE_gpencil_palette_slot_free(struct bGPdata *gpd, struct bGPDpaletteref 
*palslot);
-
-struct bGPDpaletteref *BKE_gpencil_paletteslot_find(struct bGPdata *gpd, const 
struct Palette *palette);
-bool BKE_gpencil_paletteslot_has_users(const struct bGPdata *gpd, const struct 
bGPDpaletteref *palslot);
-
-struct bGPDpaletteref *BKE_gpencil_paletteslot_get_active(const struct bGPdata 
*gpd);
-void BKE_gpencil_paletteslot_set_active(struct bGPdata *gpd, const struct 
bGPDpaletteref *palslot);
-void BKE_gpencil_paletteslot_set_active_palette(struct bGPdata *gpd, const 
struct Palette *palette);
-
-void BKE_gpencil_paletteslot_set_palette(struct bGPdata *gpd, struct 
bGPDpaletteref *palslot, struct Palette *palette);
-
-struct bGPDpaletteref *BKE_gpencil_paletteslot_add(struct bGPdata *gpd, struct 
Palette *palette);
-struct bGPDpaletteref *BKE_gpencil_paletteslot_addnew(struct Main *bmain, 
struct bGPdata *gpd, const char name[]);
-struct bGPDpaletteref *BKE_gpencil_paletteslot_validate(struct Main *bmain, 
struct bGPdata *gpd);
-struct PaletteColor *BKE_gpencil_get_color_from_brush(struct bGPdata *gpd, 
struct Brush *brush, bool add);
+struct Material *BKE_gpencil_get_color_from_brush(struct bGPdata *gpd, struct 
Brush *brush, bool add);
+struct Material *BKE_gpencil_color_ensure(struct Main *bmain, struct Object 
*ob);
 
 /* Palettes - Deprecated (2.78-2.79) */
 void BKE_gpencil_free_palettes(struct ListBase *list);
diff --git a/source/blender/blenkernel/BKE_paint.h 
b/source/blender/blenkernel/BKE_paint.h
index 6bdc05e76f3..534148b6c9b 100644
--- a/source/blender/blenkernel/BKE_paint.h
+++ b/source/blender/blenkernel/BKE_paint.h
@@ -108,21 +108,10 @@ void BKE_palette_copy_data(
         struct Main *bmain, struct Palette *palette_dst, const struct Palette 
*palette_src, const int flag);
 struct Palette      *BKE_palette_copy(struct Main *bmain, const struct Palette 
*palette);
 void                 BKE_palette_make_local(struct Main *bmain, struct Palette 
*palette, const bool lib_local);
-bool                 BKE_palette_is_empty(const struct Palette *palette);
-void                 BKE_palette_clear(struct Palette *palette);
-struct Palette      *BKE_palette_get_active_from_context(const struct bContext 
*C);
-void                 BKE_palette_set_active_byname(const struct bContext *C, 
char *palname);
-
 struct PaletteColor *BKE_palette_color_add(struct Palette *palette);
-struct PaletteColor *BKE_palette_color_add_name(struct Palette *palette, const 
char *name);
-struct PaletteColor *BKE_palette_color_getbyname(struct Palette *palette, 
const char *name);
-struct PaletteColor *BKE_gpencil_palettecolor_getbyrgb(struct Palette 
*palette, float rgb[3]);
-struct PaletteColor *BKE_gpencil_palettecolor_getbyrgba(struct Palette 
*palette, float rgba[4]);
+bool                 BKE_palette_is_empty(const struct Palette *palette);
 void                 BKE_palette_color_remove(struct Palette *palette, struct 
PaletteColor *color);
-struct PaletteColor *BKE_palette_color_get_active(struct Palette *palette);
-struct PaletteColor *BKE_palette_color_get_active_from_context(const struct 
bContext *C);
-void                 BKE_palette_color_add_default_set(struct Palette 
*palette);
-struct PaletteColor *BKE_palette_color_copy(struct Palette *palette, struct 
PaletteColor *palcolor);
+void                 BKE_palette_clear(struct Palette *palette);
 
 /* paint curves */
 struct PaintCurve *BKE_paint_curve_add(struct Main *bmain, const char *name);
diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index 1312bfae37a..f4d5fc05a08 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -47,6 +47,7 @@
 #include "BLT_translation.h"
 
 #include "DNA_anim_types.h"
+#include "DNA_material_types.h"
 #include "DNA_gpencil_types.h"
 #include "DNA_userdef_types.h"
 #include "DNA_scene_types.h"
@@ -61,7 +62,7 @@
 #include "BKE_library.h"
 #include "BKE_main.h"
 #include "BKE_object.h"
-#include "BKE_paint.h"
+#include "BKE_material.h"
 
 #include "DEG_depsgraph.h"
 
@@ -201,39 +202,6 @@ void BKE_gpencil_free_layers(ListBase *list)
        }
 }
 
-/* Free palette slot
- * NOTE: This doesn't unlink the palette from any strokes that may be using it
- */
-void BKE_gpencil_palette_slot_free(bGPdata *gpd, bGPDpaletteref *palslot)
-{
-       if (ELEM(NULL, gpd, palslot))
-               return;
-       
-       /* unlink palette */
-       if (palslot->palette) {
-               id_us_min(&palslot->palette->id);
-       }
-       
-       /* free slot */
-       BLI_freelinkN(&gpd->palette_slots, palslot);
-}
-
-/* Free palette slots */
-static void BKE_gpencil_free_paletteslots(bGPdata *gpd)
-{
-       bGPDpaletteref *palslot, *gpr_next;
-       
-       /* error checking */
-       if (gpd == NULL) return;
-       
-       /* delete palette slots */
-       for (palslot = gpd->palette_slots.first; palslot; palslot = gpr_next) {
-               gpr_next = palslot->next;
-               
-               BKE_gpencil_palette_slot_free(gpd, palslot);
-       }
-}
-
 /* clear all runtime derived data */
 static void BKE_gpencil_clear_derived(bGPDlayer *gpl)
 {
@@ -300,9 +268,6 @@ void BKE_gpencil_free(bGPdata *gpd, bool free_all)
        }
        BKE_gpencil_free_layers(&gpd->layers);
 
-       /* free palette slots */
-       BKE_gpencil_free_paletteslots(gpd);
-
        /* free all data */
        if (free_all) {
                /* clear cache */
@@ -531,9 +496,7 @@ void BKE_gpencil_stroke_add_points(bGPDstroke *gps, const 
float *array, const in
 }
 
 /* Create a new stroke, with pre-allocated data buffers */
-bGPDstroke *BKE_gpencil_add_stroke(
-        bGPDframe *gpf, Palette *palette, PaletteColor *palcolor, int 
totpoints,
-        const char *colorname, short thickness)
+bGPDstroke *BKE_gpencil_add_stroke(bGPDframe *gpf, int mat_idx, int totpoints, 
short thickness)
 {
        /* allocate memory for a new stroke */
        bGPDstroke *gps = MEM_callocN(sizeof(bGPDstroke), "gp_stroke");
@@ -552,8 +515,7 @@ bGPDstroke *BKE_gpencil_add_stroke(
        gps->flag |= GP_STROKE_RECALC_CACHES;
        gps->tot_triangles = 0;
        
-       gps->palette = palette;
-       BLI_strncpy(gps->colorname, colorname, sizeof(gps->colorname));
+       gps->mat_nr = mat_idx;
        
        /* add to frame */
        BLI_addtail(&gpf->strokes, gps);
@@ -642,33 +604,6 @@ void BKE_gpencil_frame_copy_strokes(bGPDframe *gpf_src, 
struct bGPDframe *gpf_ds
        }
 }
 
-/* fix any null value in palettes (this must be removed in the future) */
-static void gpencil_fix_null_palette(const bContext *C, bGPdata *gpd, 
bGPDstroke *gps_src)
-{
-       Palette *tmp_palette = NULL;
-       PaletteColor *palcolor = NULL;
-
-       printf("Fixing wrong color pointer:%s\n", gps_src->colorname);
-       tmp_palette = BKE_palette_get_active_from_context(C);
-       if (!tmp_palette) {
-               bGPDpaletteref *palslot;
-
-               if (BLI_listbase_count(&gpd->palette_slots) > 0) {
-                       palslot = BLI_findlink(&gpd->palette_slots, 0);
-               }
-               else {
-                       palslot = 
BKE_gpencil_paletteslot_addnew(CTX_data_main(C), gpd,
-                               "Auto-Generated Palette");
-               }               tmp_palette = palslot->palette;
-       }
-
-       gps_src->palette = tmp_palette;
-       if (BKE_palette_is_empty(tmp_palette)) {
-               palcolor = BKE_palette_color_add_name(tmp_palette, 
gps_src->colorname);
-       }
-
-}
-
 /* make a copy of a given gpencil frame and copy colors too */
 bGPDframe *BKE_gpencil_frame_color_duplicate(const bContext *C, bGPdata *gpd, 
const bGPDframe *gpf_src)
 {
@@ -686,11 +621,6 @@ bGPDframe *BKE_gpencil_frame_color_duplicate(const 
bContext *C, bGPdata *gpd, co
        /* copy strokes */
        BLI_listbase_clear(&gpf_dst->strokes);
        for (bGPDstroke *gps_src = gpf_src->strokes.first; gps_src; gps_src = 
gps_src->next) {
-               /* antoniov XXX: The palette never must be null, but this avoid 
crash after open if NULL */
-               if (gps_src->palette == NULL) {
-                       gpencil_fix_null_palette(C, gpd, gps_src);
-               }
-
                /* make copy of source stroke */
                gps_dst = MEM_dupallocN(gps_src);
                gps_dst->points = MEM_dupallocN(gps_src->points);
@@ -737,39 +667,6 @@ bGPDlayer *BKE_gpencil_layer_duplicate(const bGPDlayer 
*gpl_src)
        return gpl_dst;
 }
 
-/**
-* Only copy internal d

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to