[Bf-blender-cvs] [4071460fe17] greasepencil-object: WIP: more work moving datablock

Antonio Vazquez noreply at git.blender.org
Mon Mar 12 09:59:57 CET 2018


Commit: 4071460fe17fe7330ae824ecd059ff6651709dc0
Author: Antonio Vazquez
Date:   Sun Mar 11 18:03:30 2018 +0100
Branches: greasepencil-object
https://developer.blender.org/rB4071460fe17fe7330ae824ecd059ff6651709dc0

WIP: more work moving datablock

All references to old bGPDbrush struct has been removed and basic functionality working again now.

Still the icons of the brushes are missing.

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

M	release/scripts/startup/bl_ui/space_view3d_toolbar.py
M	source/blender/blenkernel/BKE_brush.h
M	source/blender/blenkernel/BKE_context.h
M	source/blender/blenkernel/BKE_gpencil.h
M	source/blender/blenkernel/intern/brush.c
M	source/blender/blenkernel/intern/context.c
M	source/blender/blenkernel/intern/gpencil.c
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/versioning_270.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/editors/gpencil/drawgpencil.c
M	source/blender/editors/gpencil/gpencil_colorpick.c
M	source/blender/editors/gpencil/gpencil_data.c
M	source/blender/editors/gpencil/gpencil_fill.c
M	source/blender/editors/gpencil/gpencil_intern.h
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/interface/interface_icons.c
M	source/blender/editors/screen/screen_context.c
M	source/blender/makesdna/DNA_brush_types.h
M	source/blender/makesdna/DNA_gpencil_types.h
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesrna/RNA_access.h
M	source/blender/makesrna/RNA_enum_types.h
M	source/blender/makesrna/intern/rna_brush.c
M	source/blender/makesrna/intern/rna_scene.c
M	source/blender/windowmanager/intern/wm_operators.c

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

diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 4cc5fda4bb3..95a6561ec23 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -2077,32 +2077,13 @@ class VIEW3D_PT_tools_grease_pencil_brush(Panel):
         sub = col.column(align=True)
         sub.operator("gpencil.brush_presets_create", icon='HELP', text="")
 
-        # Old code
-        row = layout.row()
-        col = row.column()
-        col.template_icon_view(ts, "gpencil_brushes_enum", show_labels=True)
-        col = row.column()
-        sub = col.column(align=True)
-        sub.operator("gpencil.brush_add", icon='ZOOMIN', text="")
-        sub.operator("gpencil.brush_remove", icon='ZOOMOUT', text="")
-        sub.menu("GPENCIL_MT_brush_specials", icon='DOWNARROW_HLT', text="")
-        # end old code
-
         brush = context.active_gpencil_brush
-        if brush:
-            if len(ts.gpencil_brushes) > 1:
-                col.separator()
-                sub = col.column(align=True)
-                sub.operator("gpencil.brush_move", icon='TRIA_UP', text="").type = 'UP'
-                sub.operator("gpencil.brush_move", icon='TRIA_DOWN', text="").type = 'DOWN'
-
-        # Brush details
         if brush is not None:
-            row = layout.row()
-            row.prop(brush, "name", text="")
             if brush.gpencil_brush_type == 'ERASE':
-                row.prop(brush, "default_eraser", text="")
+                sub.prop(brush, "default_eraser", text="")
 
+        # Brush details
+        if brush is not None:
             if brush.gpencil_brush_type == 'DRAW':
                 row = layout.row(align=True)
                 row.prop(brush, "use_random_pressure", text="", icon='RNDCURVE')
@@ -2110,7 +2091,7 @@ class VIEW3D_PT_tools_grease_pencil_brush(Panel):
                 row.prop(brush, "use_pressure", text="", icon='STYLUS_PRESSURE')
                 row = layout.row(align=True)
                 row.prop(brush, "use_random_strength", text="", icon='RNDCURVE')
-                row.prop(brush, "strength", slider=True)
+                row.prop(brush, "pen_strength", slider=True)
                 row.prop(brush, "use_strength_pressure", text="", icon='STYLUS_PRESSURE')
 
             if brush.gpencil_brush_type == 'FILL':
@@ -2190,7 +2171,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_option(Panel):
                 col.prop(brush, "random_press", slider=True)
 
                 row = col.row(align=True)
-                row.prop(brush, "jitter", slider=True)
+                row.prop(brush, "pen_jitter", slider=True)
                 row.prop(brush, "use_jitter_pressure", text="", icon='STYLUS_PRESSURE')
 
                 row = col.row(align=True)
@@ -2544,6 +2525,13 @@ class VIEW3D_PT_tools_grease_pencil_appearance(Panel):
             row = col.row(align=True)
             row.prop(drawingbrush, "cursor_color", text="Color")
 
+            col.separator()
+            col = col.column(align=True)
+            col.prop(drawingbrush, "use_custom_icon")
+            sub = col.column()
+            sub.active = drawingbrush.use_custom_icon
+            sub.prop(drawingbrush, "icon_filepath", text="")
+
         if workspace.object_mode in ('GPENCIL_SCULPT', 'GPENCIL_WEIGHT'):
             col.prop(brush, "use_cursor", text="Show Brush")
             row = col.row(align=True)
diff --git a/source/blender/blenkernel/BKE_brush.h b/source/blender/blenkernel/BKE_brush.h
index 104d0b28067..ca864479585 100644
--- a/source/blender/blenkernel/BKE_brush.h
+++ b/source/blender/blenkernel/BKE_brush.h
@@ -56,6 +56,7 @@ void BKE_brush_free(struct Brush *brush);
 
 void BKE_brush_sculpt_reset(struct Brush *brush);
 void BKE_brush_gpencil_presets(struct bContext *C);
+struct Brush *BKE_brush_getactive_gpencil(struct ToolSettings *ts);
 
 /* image icon function */
 struct ImBuf *get_brush_icon(struct Brush *brush);
diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h
index a7be06738c9..22a33d4216e 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -65,7 +65,7 @@ struct bPoseChannel;
 struct bGPdata;
 struct bGPDlayer;
 struct bGPDframe;
-struct bGPDbrush;
+struct Brush;
 struct wmWindow;
 struct wmWindowManager;
 struct RenderEngineType;
@@ -312,7 +312,7 @@ struct bGPDlayer *CTX_data_active_gpencil_layer(const bContext *C);
 struct bGPDframe *CTX_data_active_gpencil_frame(const bContext *C);
 struct Palette *CTX_data_active_gpencil_palette(const bContext *C);
 struct PaletteColor *CTX_data_active_gpencil_palettecolor(const bContext *C);
-struct bGPDbrush *CTX_data_active_gpencil_brush(const bContext *C);
+struct Brush *CTX_data_active_gpencil_brush(const bContext *C);
 int CTX_data_visible_gpencil_layers(const bContext *C, ListBase *list);
 int CTX_data_editable_gpencil_layers(const bContext *C, ListBase *list);
 int CTX_data_editable_gpencil_strokes(const bContext *C, ListBase *list);
diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h
index a3dee3aa646..5e3a9865824 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -63,7 +63,6 @@ bool BKE_gpencil_free_layer_temp_data(struct bGPDlayer *gpl, struct bGPDframe *d
 void BKE_gpencil_free_frames(struct bGPDlayer *gpl);
 void BKE_gpencil_free_layers(struct ListBase *list);
 void BKE_gpencil_free_derived_frames(struct bGPdata *gpd);
-void BKE_gpencil_free_brushes(struct ListBase *list);
 void BKE_gpencil_free(struct bGPdata *gpd, bool free_all);
 
 void BKE_gpencil_batch_cache_dirty(struct bGPdata *gpd);
@@ -92,11 +91,6 @@ void BKE_gpencil_make_local(struct Main *bmain, struct bGPdata *gpd, const bool
 
 void BKE_gpencil_frame_delete_laststroke(struct bGPDlayer *gpl, struct bGPDframe *gpf);
 
-struct bGPDbrush *BKE_gpencil_brush_addnew(struct ToolSettings *ts, const char *name, bool setactive);
-struct bGPDbrush *BKE_gpencil_brush_duplicate(const struct bGPDbrush *brush_src);
-void BKE_gpencil_brush_init_presets(struct ToolSettings *ts);
-
-
 /* Utilities for creating and populating GP strokes */
 /* - Number of values defining each point in the built-in data 
  *   buffers for primitives (e.g. 2D Monkey) 
@@ -140,10 +134,6 @@ 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 bGPDbrush *BKE_gpencil_brush_getactive(struct ToolSettings *ts);
-void BKE_gpencil_brush_setactive(struct ToolSettings *ts, struct bGPDbrush *active);
-void BKE_gpencil_brush_delete(struct ToolSettings *ts, struct bGPDbrush *brush);
-
 /* Palette Slots */
 void BKE_gpencil_palette_slot_free(struct bGPdata *gpd, struct bGPDpaletteref *palslot);
 
diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index e5cb3d28f5e..d1b88c95b6c 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -131,6 +131,23 @@ static void brush_defaults(Brush *brush)
 
 	brush->stencil_dimension[0] = 256;
 	brush->stencil_dimension[1] = 256;
+
+	/* grease pencil basic settings */
+	brush->thickness = 3;
+	brush->draw_smoothlvl = 1;
+	brush->gp_flag = 0;
+	brush->gp_flag |= GP_BRUSH_USE_PRESSURE;
+	brush->draw_sensitivity = 1.0f;
+	brush->draw_strength = 1.0f;
+	brush->draw_jitter = 0.0f;
+	brush->gp_flag |= GP_BRUSH_USE_JITTER_PRESSURE;
+	brush->gp_icon_id = GPBRUSH_CUSTOM;
+	brush->id.icon_id = 0;
+
+	/* curves */
+	brush->cur_sensitivity = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
+	brush->cur_strength = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
+	brush->cur_jitter = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
 }
 
 /* Datablock add/copy/free/make_local */
@@ -180,22 +197,6 @@ Brush *BKE_brush_add_gpencil(Main *bmain, ToolSettings *ts, const char *name)
 
 	brush = BKE_brush_add(bmain, name, OB_MODE_GPENCIL_PAINT);
 
-	/* set basic settings */
-	brush->thickness = 3;
-	brush->draw_smoothlvl = 1;
-	brush->gp_flag = 0;
-	brush->gp_flag |= GP_BRUSH_USE_PRESSURE;
-	brush->draw_sensitivity = 1.0f;
-	brush->draw_strength = 1.0f;
-	brush->draw_jitter = 0.0f;
-	brush->gp_flag |= GP_BRUSH_USE_JITTER_PRESSURE;
-	brush->gp_icon_id = GPBRUSH_CUSTOM;
-
-	/* curves */
-	brush->cur_sensitivity = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
-	brush->cur_strength = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
-	brush->cur_jitter = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
-
 	BKE_paint_brush_set(paint, brush);
 
 	/* return brush */
@@ -295,7 +296,6 @@ void BKE_brush_gpencil_presets(bContext *C)
 	brush->draw_random_sub = 0.0f;
 	copy_v3_v3(brush->curcolor, curcolor);
 	brush->gp_icon_id = GPBRUSH_PENCIL;
-	brush->id.icon_id = 846;
 	brush->gp_brush_type = GP_BRUSH_TYPE_DRAW;
 
 	brush->gp_lazy_radius = LAZY_RADIUS;
@@ -468,7 +468,7 @@ void BKE_brush_gpencil_presets(bContext *C)
 	brush->gp_lazy_factor = LAZY_FACTOR;
 
 	/* Fill brush */
-	brush = brush = BKE_brush_add_gpencil(bmain, ts, "Fill");
+	brush = brush = BKE_brush_add_gpencil(bmain, ts, "Fill Area");
 	brush->thickness = 1.0f;
 	brush->gp_flag |= GP_BRUSH_ENABLE_CURSOR;
 	brush->draw_sensitivity = 1.0f;
@@ -522,6 +522,18 @@ void BKE_brush_gpencil_presets(bContext *C)
 
 }
 
+/* get the active gp-brush for editing */
+Brush *BKE_brush_getactive_gpencil(ToolSettings *ts)
+{
+	/* error checking */
+	if (ELEM(NULL, ts, ts->gp_paint)) {
+		return NULL;
+	}
+	Paint *paint = &ts->gp_paint->paint;
+
+	return paint->brush;
+}
+
 struct Brush *BKE_brush_first_search(struct Main *bmain, const eObjectMode ob_mode)
 {
 	Brush *brush;
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index bdaf1274dc8..e98ad8810c9 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -1236,7 +1236,7 @@ PaletteColor *CTX_data_active_gpencil_palettecolor(const bContext *C)
 	return ctx_data_pointer_get(C, "active_gpencil_palettecolor");
 }
 
-bGPDbrush *CTX_d

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list