Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2006-06-04 20:26:02 +0400
committerTon Roosendaal <ton@blender.org>2006-06-04 20:26:02 +0400
commite9fb9f2c33eb8238d6483d8adddd3ad030335e54 (patch)
treea85702aa181eadadfa60cbbda094058a045de4de /source/blender/src/drawseq.c
parente7a85df91e80bd7e66c36603f4e8fe5c0609c879 (diff)
Bugfix #4223
Sequencer: A call to view2d_do_locks() got accidentally added in main drawing loop, causing an infinite loop of redraws when this option was used with more sequence windows open. Added missing view2d_do_locks() to zooming in Sequence window. Also cleaned this call a bit.
Diffstat (limited to 'source/blender/src/drawseq.c')
-rw-r--r--source/blender/src/drawseq.c83
1 files changed, 41 insertions, 42 deletions
diff --git a/source/blender/src/drawseq.c b/source/blender/src/drawseq.c
index cc38efe17bf..353ef78cebc 100644
--- a/source/blender/src/drawseq.c
+++ b/source/blender/src/drawseq.c
@@ -923,7 +923,8 @@ static void seq_blockhandlers(ScrArea *sa)
void drawseqspace(ScrArea *sa, void *spacedata)
{
- SpaceSeq *sseq;
+ SpaceSeq *sseq= sa->spacedata.first;
+ View2D *v2d= &sseq->v2d;
Editing *ed;
Sequence *seq;
float col[3];
@@ -931,9 +932,8 @@ void drawseqspace(ScrArea *sa, void *spacedata)
ed= G.scene->ed;
- sseq= curarea->spacedata.first;
if(sseq->mainb) {
- draw_image_seq(curarea);
+ draw_image_seq(sa);
return;
}
@@ -946,22 +946,22 @@ void drawseqspace(ScrArea *sa, void *spacedata)
glClear(GL_COLOR_BUFFER_BIT);
- calc_scrollrcts(sa, G.v2d, curarea->winx, curarea->winy);
+ calc_scrollrcts(sa, v2d, sa->winx, sa->winy);
- if(curarea->winx>SCROLLB+10 && curarea->winy>SCROLLH+10) {
- if(G.v2d->scroll) {
- ofsx= curarea->winrct.xmin; /* because of mywin */
- ofsy= curarea->winrct.ymin;
- glViewport(ofsx+G.v2d->mask.xmin, ofsy+G.v2d->mask.ymin, ( ofsx+G.v2d->mask.xmax-1)-(ofsx+G.v2d->mask.xmin)+1, ( ofsy+G.v2d->mask.ymax-1)-( ofsy+G.v2d->mask.ymin)+1);
- glScissor(ofsx+G.v2d->mask.xmin, ofsy+G.v2d->mask.ymin, ( ofsx+G.v2d->mask.xmax-1)-(ofsx+G.v2d->mask.xmin)+1, ( ofsy+G.v2d->mask.ymax-1)-( ofsy+G.v2d->mask.ymin)+1);
+ if(sa->winx>SCROLLB+10 && sa->winy>SCROLLH+10) {
+ if(v2d->scroll) {
+ ofsx= sa->winrct.xmin; /* because of mywin */
+ ofsy= sa->winrct.ymin;
+ glViewport(ofsx+v2d->mask.xmin, ofsy+v2d->mask.ymin, ( ofsx+v2d->mask.xmax-1)-(ofsx+v2d->mask.xmin)+1, ( ofsy+v2d->mask.ymax-1)-( ofsy+v2d->mask.ymin)+1);
+ glScissor(ofsx+v2d->mask.xmin, ofsy+v2d->mask.ymin, ( ofsx+v2d->mask.xmax-1)-(ofsx+v2d->mask.xmin)+1, ( ofsy+v2d->mask.ymax-1)-( ofsy+v2d->mask.ymin)+1);
}
}
- myortho2(G.v2d->cur.xmin, G.v2d->cur.xmax, G.v2d->cur.ymin, G.v2d->cur.ymax);
+ myortho2(v2d->cur.xmin, v2d->cur.xmax, v2d->cur.ymin, v2d->cur.ymax);
BIF_ThemeColorShade(TH_BACK, -20);
- glRectf(G.v2d->cur.xmin, 0.0, G.v2d->cur.xmax, 1.0);
+ glRectf(v2d->cur.xmin, 0.0, v2d->cur.xmax, 1.0);
boundbox_seq();
@@ -971,16 +971,16 @@ void drawseqspace(ScrArea *sa, void *spacedata)
/*Draw Track Gradients Comment out for now do somthing more subtle
start drawing gradients at the bottom of the screen.*/
/*
- i= MAX2(1, ((int)G.v2d->cur.ymin)-1);
+ i= MAX2(1, ((int)v2d->cur.ymin)-1);
glShadeModel(GL_SMOOTH);
glBegin(GL_QUADS);
- while (i<G.v2d->cur.ymax) {
+ while (i<v2d->cur.ymax) {
BIF_ThemeColorShade(TH_BACK, 0);
- glVertex2f(G.v2d->cur.xmax, i);
- glVertex2f(G.v2d->cur.xmin, i);
+ glVertex2f(v2d->cur.xmax, i);
+ glVertex2f(v2d->cur.xmin, i);
BIF_ThemeColorShade(TH_BACK, 30);
- glVertex2f(G.v2d->cur.xmin, i+1);
- glVertex2f(G.v2d->cur.xmax, i+1);
+ glVertex2f(v2d->cur.xmin, i+1);
+ glVertex2f(v2d->cur.xmax, i+1);
i+=1.0;
}
glEnd();
@@ -989,18 +989,18 @@ void drawseqspace(ScrArea *sa, void *spacedata)
/* Quad Stripes ?*/
- /*i= MAX2(1, ((int)G.v2d->cur.ymin)-1);
+ /*i= MAX2(1, ((int)v2d->cur.ymin)-1);
glBegin(GL_QUADS);
- while (i<G.v2d->cur.ymax) {
+ while (i<v2d->cur.ymax) {
if (((int)i) & 1)
BIF_ThemeColorShade(TH_BACK, -15);
else
BIF_ThemeColorShade(TH_BACK, -25);
- glVertex2f(G.v2d->cur.xmax, i);
- glVertex2f(G.v2d->cur.xmin, i);
- glVertex2f(G.v2d->cur.xmin, i+1);
- glVertex2f(G.v2d->cur.xmax, i+1);
+ glVertex2f(v2d->cur.xmax, i);
+ glVertex2f(v2d->cur.xmin, i);
+ glVertex2f(v2d->cur.xmin, i+1);
+ glVertex2f(v2d->cur.xmax, i+1);
i+=1.0;
}
glEnd();*/
@@ -1008,10 +1008,10 @@ void drawseqspace(ScrArea *sa, void *spacedata)
/* Force grid lines instead - Hangs on andys pc... will look at later */
/*
glBegin(GL_LINES);
- while (i<G.v2d->cur.ymax) {
+ while (i<v2d->cur.ymax) {
BIF_ThemeColorShade(TH_BACK, -40);
- glVertex2f(G.v2d->cur.xmax, i);
- glVertex2f(G.v2d->cur.xmin, i);
+ glVertex2f(v2d->cur.xmax, i);
+ glVertex2f(v2d->cur.xmin, i);
i+=1.0;
}
glEnd();
@@ -1026,10 +1026,10 @@ void drawseqspace(ScrArea *sa, void *spacedata)
seq= ed->seqbasep->first;
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)
+ seq->start > v2d->cur.xmax ||
+ seq->start+seq->len < v2d->cur.xmin ||
+ seq->machine+1.0 < v2d->cur.ymin ||
+ seq->machine > v2d->cur.ymax)
{
/* dont draw */
} else {
@@ -1043,10 +1043,10 @@ void drawseqspace(ScrArea *sa, void *spacedata)
seq= ed->seqbasep->first;
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)
+ seq->start > v2d->cur.xmax ||
+ seq->start+seq->len < v2d->cur.xmin ||
+ seq->machine+1.0 < v2d->cur.ymin ||
+ seq->machine > v2d->cur.ymax)
{
/* dont draw */
} else {
@@ -1059,13 +1059,13 @@ void drawseqspace(ScrArea *sa, void *spacedata)
draw_extra_seqinfo();
/* restore viewport */
- mywinset(curarea->win);
+ mywinset(sa->win);
- /* ortho at pixel level curarea */
- myortho2(-0.375, curarea->winx-0.375, -0.375, curarea->winy-0.375);
+ /* ortho at pixel level sa */
+ myortho2(-0.375, sa->winx-0.375, -0.375, sa->winy-0.375);
- if(curarea->winx>SCROLLB+10 && curarea->winy>SCROLLH+10) {
- if(G.v2d->scroll) {
+ if(sa->winx>SCROLLB+10 && sa->winy>SCROLLH+10) {
+ if(v2d->scroll) {
drawscroll(0);
}
}
@@ -1078,8 +1078,7 @@ void drawseqspace(ScrArea *sa, void *spacedata)
seq_blockhandlers(sa);
}
- view2d_do_locks(curarea, V2D_LOCK_COPY);
- curarea->win_swap= WIN_BACK_OK;
+ sa->win_swap= WIN_BACK_OK;
}