diff options
Diffstat (limited to 'source/blender/src/drawseq.c')
-rw-r--r-- | source/blender/src/drawseq.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/source/blender/src/drawseq.c b/source/blender/src/drawseq.c index c06108e1e16..153b304079e 100644 --- a/source/blender/src/drawseq.c +++ b/source/blender/src/drawseq.c @@ -825,16 +825,34 @@ void drawseqspace(ScrArea *sa, void *spacedata) if(ed) { seq= ed->seqbasep->first; - while(seq) { - if(seq->flag & SELECT); else drawseq(seq); + while(seq) { /* bound box test, dont draw outside the view */ + if (seq->flag & SELECT || + seq->start > G.v2d->cur.xmax || + seq->start+seq->len < G.v2d->cur.xmin || + seq->machine+1.0 < G.v2d->cur.ymin || + seq->machine > G.v2d->cur.ymax) + { + /* dont draw */ + } else { + drawseq(seq); + } seq= seq->next; } } ed= G.scene->ed; if(ed) { seq= ed->seqbasep->first; - while(seq) { - if(seq->flag & SELECT) drawseq(seq); + while(seq) { /* bound box test, dont draw outside the view */ + if (!(seq->flag & SELECT) || + seq->start > G.v2d->cur.xmax || + seq->start+seq->len < G.v2d->cur.xmin || + seq->machine+1.0 < G.v2d->cur.ymin || + seq->machine > G.v2d->cur.ymax) + { + /* dont draw */ + } else { + drawseq(seq); + } seq= seq->next; } } |