[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