From 0cc2666605d84cc43e8be5d4b3f65f903346f205 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Wed, 23 May 2018 16:36:44 +0200 Subject: Fix last usages of Scene.r.cfra in modifiers code. Note that some modifiers-related code in BKE still uses that... --- source/blender/modifiers/intern/MOD_fluidsim.c | 3 +-- source/blender/modifiers/intern/MOD_fluidsim_util.c | 20 ++++++++++++-------- source/blender/modifiers/intern/MOD_fluidsim_util.h | 5 +++-- source/blender/modifiers/intern/MOD_softbody.c | 3 ++- source/blender/modifiers/intern/MOD_surface.c | 8 ++++++-- 5 files changed, 24 insertions(+), 15 deletions(-) (limited to 'source/blender') diff --git a/source/blender/modifiers/intern/MOD_fluidsim.c b/source/blender/modifiers/intern/MOD_fluidsim.c index dc9f0ec11aa..e13594e46d9 100644 --- a/source/blender/modifiers/intern/MOD_fluidsim.c +++ b/source/blender/modifiers/intern/MOD_fluidsim.c @@ -101,8 +101,7 @@ static DerivedMesh *applyModifier( } } - result = fluidsimModifier_do(fluidmd, md->scene, ctx->object, dm, - ctx->flag & MOD_APPLY_RENDER, ctx->flag & MOD_APPLY_USECACHE); + result = fluidsimModifier_do(fluidmd, ctx, dm); return result ? result : dm; } diff --git a/source/blender/modifiers/intern/MOD_fluidsim_util.c b/source/blender/modifiers/intern/MOD_fluidsim_util.c index 1aed6309359..5f7cd1e0d60 100644 --- a/source/blender/modifiers/intern/MOD_fluidsim_util.c +++ b/source/blender/modifiers/intern/MOD_fluidsim_util.c @@ -52,6 +52,9 @@ # include "BKE_global.h" #endif +#include "DEG_depsgraph.h" +#include "DEG_depsgraph_query.h" + #include "MOD_fluidsim_util.h" #include "MOD_modifiertypes.h" @@ -512,17 +515,20 @@ static DerivedMesh *fluidsim_read_cache( #endif // WITH_MOD_FLUID DerivedMesh *fluidsimModifier_do( - FluidsimModifierData *fluidmd, Scene *scene, - Object *ob, - DerivedMesh *dm, - int useRenderParams, int UNUSED(isFinalCalc)) + FluidsimModifierData *fluidmd, + const ModifierEvalContext *ctx, + DerivedMesh *dm) { #ifdef WITH_MOD_FLUID + Object *ob = ctx->object; + Depsgraph *depsgraph = ctx->depsgraph; + const bool useRenderParams = (ctx->flag & MOD_APPLY_RENDER) != 0; +// const bool isFinalCalc = (ctx->flag & MOD_APPLY_USECACHE) != 0; DerivedMesh *result = NULL; int framenr; FluidsimSettings *fss = NULL; - framenr = (int)scene->r.cfra; + framenr = (int)DEG_get_ctime(depsgraph); /* only handle fluidsim domains */ if (fluidmd && fluidmd->fss && (fluidmd->fss->type != OB_FLUIDSIM_DOMAIN)) @@ -552,10 +558,8 @@ DerivedMesh *fluidsimModifier_do( #else /* unused */ (void)fluidmd; - (void)scene; - (void)ob; + (void)ctx; (void)dm; - (void)useRenderParams; return NULL; #endif } diff --git a/source/blender/modifiers/intern/MOD_fluidsim_util.h b/source/blender/modifiers/intern/MOD_fluidsim_util.h index 61ad270f6c8..3329e6dbebe 100644 --- a/source/blender/modifiers/intern/MOD_fluidsim_util.h +++ b/source/blender/modifiers/intern/MOD_fluidsim_util.h @@ -37,6 +37,7 @@ struct Object; struct Scene; struct FluidsimModifierData; struct DerivedMesh; +struct ModifierEvalContext; /* new fluid-modifier interface */ void fluidsim_init(struct FluidsimModifierData *fluidmd); @@ -44,8 +45,8 @@ void fluidsim_free(struct FluidsimModifierData *fluidmd); struct DerivedMesh *fluidsimModifier_do( struct FluidsimModifierData *fluidmd, - struct Scene *scene, struct Object *ob, struct DerivedMesh *dm, - int useRenderParams, int isFinalCalc); + const struct ModifierEvalContext *ctx, + struct DerivedMesh *dm); #endif diff --git a/source/blender/modifiers/intern/MOD_softbody.c b/source/blender/modifiers/intern/MOD_softbody.c index a62b21df231..c16a56ee3d1 100644 --- a/source/blender/modifiers/intern/MOD_softbody.c +++ b/source/blender/modifiers/intern/MOD_softbody.c @@ -46,6 +46,7 @@ #include "DEG_depsgraph.h" #include "DEG_depsgraph_build.h" +#include "DEG_depsgraph_query.h".h" #include "MOD_modifiertypes.h" @@ -55,7 +56,7 @@ static void deformVerts( float (*vertexCos)[3], int numVerts) { - sbObjectStep(ctx->depsgraph, md->scene, ctx->object, (float)md->scene->r.cfra, vertexCos, numVerts); + sbObjectStep(ctx->depsgraph, md->scene, ctx->object, DEG_get_ctime(ctx->depsgraph), vertexCos, numVerts); } static bool dependsOnTime(ModifierData *UNUSED(md)) diff --git a/source/blender/modifiers/intern/MOD_surface.c b/source/blender/modifiers/intern/MOD_surface.c index 7f3fa125cd9..46fd3198699 100644 --- a/source/blender/modifiers/intern/MOD_surface.c +++ b/source/blender/modifiers/intern/MOD_surface.c @@ -42,6 +42,9 @@ #include "BKE_library.h" #include "BKE_mesh.h" +#include "DEG_depsgraph.h" +#include "DEG_depsgraph_query.h" + #include "BLI_math.h" #include "BLI_utildefines.h" @@ -91,6 +94,7 @@ static void deformVerts( int UNUSED(numVerts)) { SurfaceModifierData *surmd = (SurfaceModifierData *) md; + const int cfra = (int)DEG_get_ctime(ctx->depsgraph); if (surmd->mesh) { BKE_id_free(NULL, surmd->mesh); @@ -128,7 +132,7 @@ static void deformVerts( if (numverts != surmd->numverts || surmd->x == NULL || surmd->v == NULL || - md->scene->r.cfra != surmd->cfra + 1) + cfra != surmd->cfra + 1) { if (surmd->x) { MEM_freeN(surmd->x); @@ -160,7 +164,7 @@ static void deformVerts( copy_v3_v3(x->co, vec); } - surmd->cfra = md->scene->r.cfra; + surmd->cfra = cfra; if (surmd->bvhtree) free_bvhtree_from_mesh(surmd->bvhtree); -- cgit v1.2.3