Merge branch 'master' into blender2.8
[blender.git] / source / blender / blenkernel / BKE_paint.h
index 253a615..2ba6446 100644 (file)
@@ -40,6 +40,7 @@ struct CurveMapping;
 struct MeshElemMap;
 struct GridPaintMask;
 struct Main;
+struct Mesh;
 struct MLoop;
 struct MLoopTri;
 struct MFace;
@@ -52,11 +53,13 @@ struct PaletteColor;
 struct PBVH;
 struct ReportList;
 struct Scene;
+struct ViewLayer;
 struct Sculpt;
 struct StrokeCache;
 struct Tex;
 struct ImagePool;
 struct UnifiedPaintSettings;
+struct Depsgraph;
 
 enum eOverlayFlags;
 
@@ -91,8 +94,8 @@ 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);
@@ -126,7 +129,7 @@ void BKE_paint_cavity_curve_preset(struct Paint *p, int preset);
 
 eObjectMode BKE_paint_object_mode_from_paint_mode(ePaintMode mode);
 struct Paint *BKE_paint_get_active_from_paintmode(struct Scene *sce, ePaintMode mode);
-struct Paint *BKE_paint_get_active(struct Scene *sce);
+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);
 struct Brush *BKE_paint_brush(struct Paint *paint);
@@ -183,7 +186,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;
@@ -248,13 +252,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 Object *ob, struct Mesh *me_eval_deform);
+
 enum {
        SCULPT_MASK_LAYER_CALC_VERT = (1 << 0),
        SCULPT_MASK_LAYER_CALC_LOOP = (1 << 1)