Fluid: Fix for Python pointer update (flickering in smoke/fire issue)

In f2b04302cd the pointer update was refactored. It was sufficient to update pointers just in replay mode at the end of a step since the 'ensure()' functions from manta_fluid_API.cpp had their own pointer update call. These were removed in 51f4bee5a5, however, and so in order to still have some sort of update, the given update call needs to be available to all cache types.
This commit is contained in:
Sebastián Barschkis 2020-07-31 17:42:00 +02:00
parent 83f8223543
commit 7e64f6cee4
1 changed files with 5 additions and 5 deletions

View File

@ -3619,17 +3619,17 @@ static int manta_step(
fds->time_total = time_total;
}
/* Replay mode does not lock the UI. Ensure that fluid data is always up to date. */
if (mode_replay) {
manta_update_pointers(fds->fluid, fmd);
}
/* Total time must not exceed framecount times framelength. Correct tiny errors here. */
CLAMP(fds->time_total, fds->time_total, time_total_old + fds->frame_length);
/* Compute shadow grid for gas simulations. Make sure to skip if bake job was canceled early. */
if (fds->type == FLUID_DOMAIN_TYPE_GAS && result) {
manta_smoke_calc_transparency(fds, DEG_get_evaluated_view_layer(depsgraph));
}
/* Ensure that fluid data is always up to date. */
manta_update_pointers(fds->fluid, fmd);
BLI_mutex_unlock(&object_update_lock);
return result;