Revision: 50076
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50076
Author:   nazgul
Date:     2012-08-21 10:42:21 +0000 (Tue, 21 Aug 2012)
Log Message:
-----------
Sequencer: invalidate current frame cache on sequence transform

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_sequencer.h
    trunk/blender/source/blender/blenkernel/intern/seqcache.c
    trunk/blender/source/blender/editors/transform/transform_generics.c

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h     2012-08-21 
10:39:02 UTC (rev 50075)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h     2012-08-21 
10:42:21 UTC (rev 50076)
@@ -246,6 +246,7 @@
 
 struct ImBuf *BKE_sequencer_preprocessed_cache_get(SeqRenderData context, 
struct Sequence *seq, float cfra, seq_stripelem_ibuf_t type);
 void BKE_sequencer_preprocessed_cache_put(SeqRenderData context, struct 
Sequence *seq, float cfra, seq_stripelem_ibuf_t type, struct ImBuf *ibuf);
+void BKE_sequencer_preprocessed_cache_cleanup(void);
 void BKE_sequencer_preprocessed_cache_cleanup_sequence(struct Sequence *seq);
 
 /* **********************************************************************

Modified: trunk/blender/source/blender/blenkernel/intern/seqcache.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/seqcache.c   2012-08-21 
10:39:02 UTC (rev 50075)
+++ trunk/blender/source/blender/blenkernel/intern/seqcache.c   2012-08-21 
10:42:21 UTC (rev 50076)
@@ -68,7 +68,6 @@
 static struct SeqPreprocessCache *preprocess_cache = NULL;
 
 static void preprocessed_cache_destruct(void);
-static void preprocessed_cache_clean(void);
 
 static int seq_cmp_render_data(const SeqRenderData *a, const SeqRenderData *b)
 {
@@ -193,7 +192,7 @@
                moviecache = IMB_moviecache_create("seqcache", 
sizeof(SeqCacheKey), seqcache_hashhash, seqcache_hashcmp);
        }
 
-       preprocessed_cache_clean();
+       BKE_sequencer_preprocessed_cache_cleanup();
 }
 
 static int seqcache_key_check_seq(void *userkey, void *userdata)
@@ -246,7 +245,7 @@
        IMB_moviecache_put(moviecache, &key, i);
 }
 
-static void preprocessed_cache_clean(void)
+void BKE_sequencer_preprocessed_cache_cleanup(void)
 {
        SeqPreprocessCacheElem *elem;
 
@@ -266,7 +265,7 @@
        if (!preprocess_cache)
                return;
 
-       preprocessed_cache_clean();
+       BKE_sequencer_preprocessed_cache_cleanup();
 
        MEM_freeN(preprocess_cache);
        preprocess_cache = NULL;
@@ -308,7 +307,7 @@
        }
        else {
                if (preprocess_cache->cfra != cfra)
-                       preprocessed_cache_clean();
+                       BKE_sequencer_preprocessed_cache_cleanup();
        }
 
        elem = MEM_callocN(sizeof(SeqPreprocessCacheElem), "sequencer 
preprocessed cache element");

Modified: trunk/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_generics.c 
2012-08-21 10:39:02 UTC (rev 50075)
+++ trunk/blender/source/blender/editors/transform/transform_generics.c 
2012-08-21 10:42:21 UTC (rev 50076)
@@ -71,6 +71,7 @@
 #include "BKE_mesh.h"
 #include "BKE_nla.h"
 #include "BKE_context.h"
+#include "BKE_sequencer.h"
 #include "BKE_tessmesh.h"
 #include "BKE_tracking.h"
 #include "BKE_mask.h"
@@ -890,6 +891,14 @@
        }
 }
 
+/* helper for recalcData() - for sequencer transforms */
+static void recalcData_sequencer(TransInfo *t)
+{
+       BKE_sequencer_preprocessed_cache_cleanup();
+
+       flushTransSeq(t);
+}
+
 /* called for updating while transform acts, once per redraw */
 void recalcData(TransInfo *t)
 {
@@ -897,7 +906,7 @@
                flushTransNodes(t);
        }
        else if (t->spacetype == SPACE_SEQ) {
-               flushTransSeq(t);
+               recalcData_sequencer(t);
        }
        else if (t->spacetype == SPACE_ACTION) {
                recalcData_actedit(t);

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

Reply via email to