Commit: 00b691d36711ff6827c0ca90faeec160131961e1
Author: Kévin Dietrich
Date:   Thu Jun 30 03:07:28 2016 +0200
Branches: alembic_basic_io
https://developer.blender.org/rB00b691d36711ff6827c0ca90faeec160131961e1

Drivers added to a cachefile are now evaluated during scene update.

===================================================================

M       source/blender/blenkernel/BKE_cachefile.h
M       source/blender/blenkernel/intern/cachefile.c
M       source/blender/blenkernel/intern/scene.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_cachefile.h 
b/source/blender/blenkernel/BKE_cachefile.h
index c4c131f..4d553a5 100644
--- a/source/blender/blenkernel/BKE_cachefile.h
+++ b/source/blender/blenkernel/BKE_cachefile.h
@@ -36,6 +36,7 @@ extern "C" {
 
 struct CacheFile;
 struct Main;
+struct Scene;
 
 void *BKE_cachefile_add(struct Main *bmain, const char *name);
 
@@ -45,7 +46,7 @@ struct CacheFile *BKE_cachefile_copy(struct Main *bmain, 
struct CacheFile *cache
 
 void BKE_cachefile_load(struct CacheFile *cache_file, const char *relabase);
 
-void BKE_cachefile_update_frame(struct Main *bmain, float ctime, const float 
fps);
+void BKE_cachefile_update_frame(struct Main *bmain, struct Scene *scene, float 
ctime, const float fps);
 
 bool BKE_cachefile_filepath_get(struct CacheFile *cache_file, float frame,
                                 char *r_filename);
diff --git a/source/blender/blenkernel/intern/cachefile.c 
b/source/blender/blenkernel/intern/cachefile.c
index 78a4f64..d5d4eb7 100644
--- a/source/blender/blenkernel/intern/cachefile.c
+++ b/source/blender/blenkernel/intern/cachefile.c
@@ -27,6 +27,7 @@
  *  \ingroup bke
  */
 
+#include "DNA_anim_types.h"
 #include "DNA_cachefile_types.h"
 #include "DNA_scene_types.h"
 
@@ -115,12 +116,15 @@ void BKE_cachefile_load(CacheFile *cache_file, const char 
*relabase)
 #endif
 }
 
-void BKE_cachefile_update_frame(Main *bmain, const float ctime, const float 
fps)
+void BKE_cachefile_update_frame(Main *bmain, Scene *scene, const float ctime, 
const float fps)
 {
        CacheFile *cache_file;
        char filename[FILE_MAX];
 
        for (cache_file = bmain->cachefiles.first; cache_file; cache_file = 
cache_file->id.next) {
+               /* Execute drivers only, as animation has already been done. */
+               BKE_animsys_evaluate_animdata(scene, &cache_file->id, 
cache_file->adt, ctime, ADT_RECALC_DRIVERS);
+
                if (!cache_file->is_sequence) {
                        continue;
                }
diff --git a/source/blender/blenkernel/intern/scene.c 
b/source/blender/blenkernel/intern/scene.c
index 5b1d56f..17f5812 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1906,7 +1906,7 @@ void BKE_scene_update_for_newframe_ex(EvaluationContext 
*eval_ctx, Main *bmain,
        BKE_mask_evaluate_all_masks(bmain, ctime, true);
 
        /* Update animated cache files for modifiers. */
-       BKE_cachefile_update_frame(bmain, ctime, (((double)sce->r.frs_sec) / 
(double)sce->r.frs_sec_base));
+       BKE_cachefile_update_frame(bmain, sce, ctime, (((double)sce->r.frs_sec) 
/ (double)sce->r.frs_sec_base));
 
 #ifdef POSE_ANIMATION_WORKAROUND
        scene_armature_depsgraph_workaround(bmain);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to