Commit: 657ffe9aa70fd35a2683eb3775ef5e558cc8a6bb
Author: Hans Goudey
Date: Sat Dec 10 14:06:32 2022 -0600
Branches: geometry-nodes-simulation
https://developer.blender.org/rB657ffe9aa70fd35a2683eb3775ef5e558cc8a6bb
Fix: Simulation resets when playback stops
===================================================================
M source/blender/blenkernel/BKE_compute_cache.hh
===================================================================
diff --git a/source/blender/blenkernel/BKE_compute_cache.hh
b/source/blender/blenkernel/BKE_compute_cache.hh
index 1b06bbfc676..5b3e99e3f01 100644
--- a/source/blender/blenkernel/BKE_compute_cache.hh
+++ b/source/blender/blenkernel/BKE_compute_cache.hh
@@ -79,13 +79,13 @@ class SimulationCache {
if (!values) {
return std::nullopt;
}
- if (last_run_time_->time < time.time) {
- if (values->non_persistent_value) {
+ if (values->non_persistent_value) {
+ if (last_run_time_->time < time.time) {
return std::move(values->non_persistent_value);
}
}
- /* TODO: Maybe separate retrieval of persistent and temprary cache values?
Though that doesn't
- * really provide a benefit right now. */
+ /* TODO: Maybe separate retrieval of persistent and temporary cache values?
+ * Though that doesn't really provide a benefit right now. */
if (values->persistent_cache.is_empty()) {
return std::nullopt;
}
@@ -109,6 +109,11 @@ class SimulationCache {
if (!values) {
return std::nullopt;
}
+ if (values->non_persistent_value) {
+ if (last_run_time_->frame == time.frame) {
+ return std::move(values->non_persistent_value);
+ }
+ }
const int index = time.frame - start_time_->frame;
if (!values->persistent_cache.index_range().contains(index)) {
return std::nullopt;
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs