[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50076] trunk/blender/source/blender: Sequencer: invalidate current frame cache on sequence transform

Sergey Sharybin sergey.vfx at gmail.com
Tue Aug 21 12:42:21 CEST 2012


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);




More information about the Bf-blender-cvs mailing list