[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49878] trunk/blender/source/blender: draw ugly red bands on a sequence strip when its data cant be found (mask, clip, scene, sound)
Campbell Barton
ideasman42 at gmail.com
Mon Aug 13 19:36:29 CEST 2012
Revision: 49878
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49878
Author: campbellbarton
Date: 2012-08-13 17:36:29 +0000 (Mon, 13 Aug 2012)
Log Message:
-----------
draw ugly red bands on a sequence strip when its data cant be found (mask, clip, scene, sound)
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_sequencer.h
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2012-08-13 17:25:03 UTC (rev 49877)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2012-08-13 17:36:29 UTC (rev 49878)
@@ -297,6 +297,7 @@
void BKE_seqence_base_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq);
void BKE_sequence_base_dupli_recursive(struct Scene *scene, struct Scene *scene_to, ListBase *nseqbase, ListBase *seqbase, int dupe_flag);
+int BKE_seqence_is_valid_check(struct Sequence *seq);
void BKE_sequencer_clear_scene_in_allseqs(struct Main *bmain, struct Scene *sce);
Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c 2012-08-13 17:25:03 UTC (rev 49877)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c 2012-08-13 17:36:29 UTC (rev 49878)
@@ -4042,3 +4042,21 @@
}
}
}
+
+/* called on draw, needs to be fast,
+ * we could cache and use a flag if we want to make checks for file paths resolving for eg. */
+int BKE_seqence_is_valid_check(Sequence *seq)
+{
+ switch (seq->type) {
+ case SEQ_TYPE_MASK:
+ return (seq->mask != NULL);
+ case SEQ_TYPE_MOVIECLIP:
+ return (seq->clip != NULL);
+ case SEQ_TYPE_SCENE:
+ return (seq->scene != NULL);
+ case SEQ_TYPE_SOUND_RAM:
+ return (seq->sound != NULL);
+ }
+
+ return TRUE;
+}
Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c 2012-08-13 17:25:03 UTC (rev 49877)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c 2012-08-13 17:36:29 UTC (rev 49878)
@@ -700,7 +700,9 @@
/* draw the main strip body */
if (is_single_image) { /* single image */
- draw_shadedstrip(seq, background_col, BKE_sequence_tx_get_final_left(seq, 0), y1, BKE_sequence_tx_get_final_right(seq, 0), y2);
+ draw_shadedstrip(seq, background_col,
+ BKE_sequence_tx_get_final_left(seq, 0), y1,
+ BKE_sequence_tx_get_final_right(seq, 0), y2);
}
else { /* normal operation */
draw_shadedstrip(seq, background_col, x1, y1, x2, y2);
@@ -741,6 +743,17 @@
glDisable(GL_BLEND);
}
+ if (!BKE_seqence_is_valid_check(seq)) {
+ glEnable(GL_POLYGON_STIPPLE);
+
+ /* panic! */
+ glColor4ub(255, 0, 0, 255);
+ glPolygonStipple(stipple_diag_stripes_pos);
+ glRectf(x1, y1, x2, y2);
+
+ glDisable(GL_POLYGON_STIPPLE);
+ }
+
get_seq_color3ubv(scene, seq, col);
if (G.moving && (seq->flag & SELECT)) {
if (seq->flag & SEQ_OVERLAP) {
More information about the Bf-blender-cvs
mailing list