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