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. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs