From 345c6298e995ea618c34282ba6d7ab5af032f191 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 8 Feb 2018 21:14:26 +1100 Subject: Object Mode: move to workspace struct - Read-only access can often use EvaluationContext.object_mode - Write access to go to WorkSpace.object_mode. - Some TODO's remain (marked as "TODO/OBMODE") - Add-ons will need updating (context.active_object.mode -> context.workspace.object_mode) - There will be small/medium issues that still need resolving this does work on a basic level though. See D3037 --- source/blender/blenkernel/BKE_multires.h | 33 +++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'source/blender/blenkernel/BKE_multires.h') diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h index 761bb7e8acb..22933a093ed 100644 --- a/source/blender/blenkernel/BKE_multires.h +++ b/source/blender/blenkernel/BKE_multires.h @@ -48,20 +48,21 @@ struct MVert; struct MPoly; struct MLoopTri; +#include "DNA_object_enums.h" + /* Delete mesh mdisps and grid paint masks */ void multires_customdata_delete(struct Mesh *me); -void multires_set_tot_level(struct Object *ob, - struct MultiresModifierData *mmd, int lvl); +void multires_set_tot_level(struct MultiresModifierData *mmd, int lvl, eObjectMode object_mode); void multires_mark_as_modified(struct Object *ob, enum MultiresModifiedFlags flags); void multires_force_update(struct Object *ob); -void multires_force_render_update(struct Object *ob); +void multires_force_render_update(struct Object *ob, eObjectMode object_mode); void multires_force_external_reload(struct Object *ob); /* internal, only called in subsurf_ccg.c */ -void multires_modifier_update_mdisps(struct DerivedMesh *dm); +void multires_modifier_update_mdisps(struct DerivedMesh *dm, eObjectMode object_mode); void multires_modifier_update_hidden(struct DerivedMesh *dm); void multiresModifier_set_levels_from_disps(struct MultiresModifierData *mmd, struct Object *ob); @@ -73,21 +74,27 @@ typedef enum { MULTIRES_IGNORE_SIMPLIFY = 8 } MultiresFlags; -struct DerivedMesh *multires_make_derived_from_derived(struct DerivedMesh *dm, - struct MultiresModifierData *mmd, - struct Object *ob, - MultiresFlags flags); +struct DerivedMesh *multires_make_derived_from_derived( + struct DerivedMesh *dm, + struct MultiresModifierData *mmd, + struct Object *ob, + MultiresFlags flags, + eObjectMode object_mode); struct MultiresModifierData *find_multires_modifier_before(struct Scene *scene, struct ModifierData *lastmd); struct MultiresModifierData *get_multires_modifier(struct Scene *scene, struct Object *ob, bool use_first); struct DerivedMesh *get_multires_dm(const struct EvaluationContext *eval_ctx, struct Scene *scene, struct MultiresModifierData *mmd, struct Object *ob); -void multiresModifier_del_levels(struct MultiresModifierData *, struct Object *, int direction); -void multiresModifier_base_apply(struct MultiresModifierData *mmd, struct Object *ob); -void multiresModifier_subdivide(struct MultiresModifierData *mmd, struct Object *ob, int updateblock, int simple); +void multiresModifier_del_levels( + struct MultiresModifierData *, struct Object *, int direction, eObjectMode object_mode); +void multiresModifier_base_apply( + struct MultiresModifierData *mmd, struct Object *ob, eObjectMode object_mode); +void multiresModifier_subdivide( + struct MultiresModifierData *mmd, struct Object *ob, int updateblock, int simple, eObjectMode object_mode); void multiresModifier_sync_levels_ex( - struct Object *ob_dst, struct MultiresModifierData *mmd_src, struct MultiresModifierData *mmd_dst); + struct Object *ob_dst, struct MultiresModifierData *mmd_src, struct MultiresModifierData *mmd_dst, + eObjectMode object_mode); int multiresModifier_reshape(const struct EvaluationContext *eval_ctx, struct Scene *scene, struct MultiresModifierData *mmd, struct Object *dst, struct Object *src); int multiresModifier_reshapeFromDM(const struct EvaluationContext *eval_ctx, struct Scene *scene, struct MultiresModifierData *mmd, @@ -103,7 +110,7 @@ enum { MULTIRES_SPACE_OBJECT, MULTIRES_SPACE_ABSOLUTE }; -void multires_set_space(struct DerivedMesh *dm, struct Object *ob, int from, int to); +void multires_set_space(struct DerivedMesh *dm, struct Object *ob, int from, int to, eObjectMode object_mode); /* Related to the old multires */ void multires_free(struct Multires *mr); -- cgit v1.2.3