diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_paint.h')
-rw-r--r-- | source/blender/blenkernel/BKE_paint.h | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h index eedf5f7985e..e09aed4b372 100644 --- a/source/blender/blenkernel/BKE_paint.h +++ b/source/blender/blenkernel/BKE_paint.h @@ -33,13 +33,16 @@ */ struct bContext; +struct bToolRef; struct BMesh; struct BMFace; struct Brush; struct CurveMapping; +struct EnumPropertyItem; struct MeshElemMap; struct GridPaintMask; struct Main; +struct Mesh; struct MLoop; struct MLoopTri; struct MFace; @@ -52,11 +55,15 @@ struct PaletteColor; struct PBVH; struct ReportList; struct Scene; +struct ViewLayer; struct Sculpt; struct StrokeCache; +struct SubdivCCG; struct Tex; struct ImagePool; struct UnifiedPaintSettings; +struct Depsgraph; +struct ToolSettings; enum eOverlayFlags; @@ -77,9 +84,10 @@ typedef enum ePaintMode { /** Image space (2D painting). */ PAINT_MODE_TEXTURE_2D = 4, PAINT_MODE_SCULPT_UV = 5, + PAINT_MODE_GPENCIL = 6, /** Keep last. */ - PAINT_MODE_INVALID = 6 + PAINT_MODE_INVALID = 7, } ePaintMode; /* overlay invalidation */ @@ -97,14 +105,15 @@ typedef enum eOverlayControlFlags { PAINT_OVERLAY_OVERRIDE_PRIMARY | \ PAINT_OVERLAY_OVERRIDE_CURSOR) -void BKE_paint_invalidate_overlay_tex(struct Scene *scene, const struct Tex *tex); -void BKE_paint_invalidate_cursor_overlay(struct Scene *scene, struct CurveMapping *curve); +void BKE_paint_invalidate_overlay_tex(struct Scene *scene, struct ViewLayer *view_layer, const struct Tex *tex); +void BKE_paint_invalidate_cursor_overlay(struct Scene *scene, struct ViewLayer *view_layer, struct CurveMapping *curve); void BKE_paint_invalidate_overlay_all(void); eOverlayControlFlags BKE_paint_get_overlay_flags(void); void BKE_paint_reset_overlay_invalid(eOverlayControlFlags flag); void BKE_paint_set_overlay_override(enum eOverlayFlags flag); /* palettes */ +void BKE_palette_init(struct Palette *palette); void BKE_palette_free(struct Palette *palette); struct Palette *BKE_palette_add(struct Main *bmain, const char *name); void BKE_palette_copy_data( @@ -124,17 +133,24 @@ void BKE_paint_curve_copy_data( struct PaintCurve *BKE_paint_curve_copy(struct Main *bmain, const struct PaintCurve *pc); void BKE_paint_curve_make_local(struct Main *bmain, struct PaintCurve *pc, const bool lib_local); +bool BKE_paint_ensure(const struct ToolSettings *ts, struct Paint **r_paint); void BKE_paint_init(struct Main *bmain, struct Scene *sce, ePaintMode mode, const char col[3]); void BKE_paint_free(struct Paint *p); void BKE_paint_copy(struct Paint *src, struct Paint *tar, const int flag); +void BKE_paint_runtime_init(const struct ToolSettings *ts, struct Paint *paint); + void BKE_paint_cavity_curve_preset(struct Paint *p, int preset); -eObjectMode BKE_paint_object_mode_from_paint_mode(ePaintMode mode); +eObjectMode BKE_paint_object_mode_from_paintmode(ePaintMode mode); struct Paint *BKE_paint_get_active_from_paintmode(struct Scene *sce, ePaintMode mode); -struct Paint *BKE_paint_get_active(struct Scene *sce); +const struct EnumPropertyItem *BKE_paint_get_tool_enum_from_paintmode(ePaintMode mode); +const char *BKE_paint_get_tool_prop_id_from_paintmode(ePaintMode mode); +uint BKE_paint_get_brush_tool_offset_from_paintmode(const ePaintMode mode); +struct Paint *BKE_paint_get_active(struct Scene *sce, struct ViewLayer *view_layer); struct Paint *BKE_paint_get_active_from_context(const struct bContext *C); ePaintMode BKE_paintmode_get_active_from_context(const struct bContext *C); +ePaintMode BKE_paintmode_get_from_tool(const struct bToolRef *tref); struct Brush *BKE_paint_brush(struct Paint *paint); void BKE_paint_brush_set(struct Paint *paint, struct Brush *br); struct Palette *BKE_paint_palette(struct Paint *paint); @@ -168,6 +184,15 @@ void paint_update_brush_rake_rotation(struct UnifiedPaintSettings *ups, struct B void BKE_paint_stroke_get_average(struct Scene *scene, struct Object *ob, float stroke[3]); + +/* Tool slot API. */ +void BKE_paint_toolslots_init_from_main(struct Main *bmain); +void BKE_paint_toolslots_len_ensure(struct Paint *paint, int len); +void BKE_paint_toolslots_brush_update_ex(struct Paint *paint, struct Brush *brush); +void BKE_paint_toolslots_brush_update(struct Paint *paint); +void BKE_paint_toolslots_brush_validate(struct Main *bmain, struct Paint *paint); +struct Brush *BKE_paint_toolslots_brush_get(struct Paint *paint, int slot_index); + /* Used for both vertex color and weight paint */ struct SculptVertexPaintGeomMap { int *vert_map_mem; @@ -189,7 +214,8 @@ typedef struct SculptSession { float *vmask; /* Mesh connectivity */ - const struct MeshElemMap *pmap; + struct MeshElemMap *pmap; + int *pmap_mem; /* BMesh for dynamic topology sculpting */ struct BMesh *bm; @@ -199,6 +225,9 @@ typedef struct SculptSession { /* Undo/redo log for dynamic topology sculpting */ struct BMLog *bm_log; + /* Limit surface/grids. */ + struct SubdivCCG *subdiv_ccg; + /* PBVH acceleration structure */ struct PBVH *pbvh; bool show_diffuse_color; @@ -254,13 +283,16 @@ void BKE_sculptsession_free_deformMats(struct SculptSession *ss); void BKE_sculptsession_free_vwpaint_data(struct SculptSession *ss); void BKE_sculptsession_bm_to_me(struct Object *ob, bool reorder); void BKE_sculptsession_bm_to_me_for_render(struct Object *object); -void BKE_sculpt_update_mesh_elements(struct Scene *scene, struct Sculpt *sd, struct Object *ob, - bool need_pmap, bool need_mask); +void BKE_sculpt_update_mesh_elements( + struct Depsgraph *depsgraph, struct Scene *scene, struct Sculpt *sd, struct Object *ob, + bool need_pmap, bool need_mask); struct MultiresModifierData *BKE_sculpt_multires_active(struct Scene *scene, struct Object *ob); int BKE_sculpt_mask_layers_ensure(struct Object *ob, struct MultiresModifierData *mmd); void BKE_sculpt_toolsettings_data_ensure(struct Scene *scene); +struct PBVH *BKE_sculpt_object_pbvh_ensure(struct Depsgraph *depsgraph, struct Object *ob); + enum { SCULPT_MASK_LAYER_CALC_VERT = (1 << 0), SCULPT_MASK_LAYER_CALC_LOOP = (1 << 1) |