diff options
author | Ton Roosendaal <ton@blender.org> | 2004-11-07 21:20:44 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2004-11-07 21:20:44 +0300 |
commit | ac0bb78a2029b40e9e85697d4b822197b9906bd5 (patch) | |
tree | 5d139a9344c22f5cc03cdde804d0d7caf43ce861 /source | |
parent | 16951736882773a383f04eb2809fa9b341bef9c2 (diff) |
Tweaked the force_draw() calls, to allow headerprint() to work while
doing a transform. Solves bug reported by Brecht about this.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/BKE_bad_level_calls.h | 2 | ||||
-rw-r--r-- | source/blender/include/BIF_space.h | 6 | ||||
-rw-r--r-- | source/blender/src/editaction.c | 19 | ||||
-rw-r--r-- | source/blender/src/editarmature.c | 8 | ||||
-rw-r--r-- | source/blender/src/editika.c | 2 | ||||
-rw-r--r-- | source/blender/src/editipo.c | 14 | ||||
-rw-r--r-- | source/blender/src/editkey.c | 2 | ||||
-rw-r--r-- | source/blender/src/editnla.c | 8 | ||||
-rw-r--r-- | source/blender/src/editobject.c | 10 | ||||
-rw-r--r-- | source/blender/src/editoops.c | 4 | ||||
-rw-r--r-- | source/blender/src/editseq.c | 4 | ||||
-rw-r--r-- | source/blender/src/editsima.c | 8 | ||||
-rw-r--r-- | source/blender/src/editsound.c | 2 | ||||
-rw-r--r-- | source/blender/src/editview.c | 6 | ||||
-rw-r--r-- | source/blender/src/space.c | 39 |
15 files changed, 63 insertions, 71 deletions
diff --git a/source/blender/blenkernel/BKE_bad_level_calls.h b/source/blender/blenkernel/BKE_bad_level_calls.h index 40d14fa09d6..8a875916a26 100644 --- a/source/blender/blenkernel/BKE_bad_level_calls.h +++ b/source/blender/blenkernel/BKE_bad_level_calls.h @@ -50,7 +50,7 @@ void unlink_screen(struct bScreen *sc); void freeAllRad(void); void free_editText(void); void setscreen(struct bScreen *sc); -void force_draw_all(void); +void force_draw_all(int); /* otherwise the WHILE_SEQ doesn't work */ struct Sequence; struct ListBase; diff --git a/source/blender/include/BIF_space.h b/source/blender/include/BIF_space.h index 952f382fa72..c86a95f91a5 100644 --- a/source/blender/include/BIF_space.h +++ b/source/blender/include/BIF_space.h @@ -91,9 +91,9 @@ extern void drawemptyspace(struct ScrArea *sa, void *spacedata); extern void drawinfospace(struct ScrArea *sa, void *spacedata); extern void duplicatespacelist(struct ScrArea *area, struct ListBase *lb1, struct ListBase *lb2); extern void extern_set_butspace(int fkey); -extern void force_draw(void); -extern void force_draw_all(void); -extern void force_draw_plus(int type); +extern void force_draw(int header); +extern void force_draw_all(int header); +extern void force_draw_plus(int type, int header); extern void freespacelist(struct ListBase *lb); extern void handle_view3d_around(void); extern void handle_view3d_lock(void); diff --git a/source/blender/src/editaction.c b/source/blender/src/editaction.c index d01528cc04c..1363a302ca6 100644 --- a/source/blender/src/editaction.c +++ b/source/blender/src/editaction.c @@ -1255,15 +1255,10 @@ void transform_actionchannel_keys(char mode) if (G.saction->lock){ do_all_actions(); - allqueue (REDRAWVIEW3D, 0); - allqueue (REDRAWACTION, 0); - allqueue (REDRAWIPO, 0); - allqueue(REDRAWNLA, 0); - force_draw_all(); + force_draw_all(0); } else { - addqueue (curarea->win, REDRAWALL, 0); - force_draw (); + force_draw(0); } } @@ -1445,11 +1440,11 @@ void transform_meshchannel_keys(char mode, Key *key) allqueue (REDRAWACTION, 0); allqueue (REDRAWIPO, 0); allqueue(REDRAWNLA, 0); - force_draw_all(); + force_draw_all(0); } else { addqueue (curarea->win, REDRAWALL, 0); - force_draw (); + force_draw(0); } } @@ -2454,9 +2449,9 @@ void winqreadactionspace(ScrArea *sa, void *spacedata, BWinEvent *evt) if( cfra!=CFRA ) { CFRA= cfra; update_for_newframe(); - force_draw_plus(SPACE_VIEW3D); - force_draw_plus(SPACE_IPO); - force_draw_plus(SPACE_BUTS); + force_draw_plus(SPACE_VIEW3D, 1); + force_draw_plus(SPACE_IPO, 1); + force_draw_plus(SPACE_BUTS, 1); } } while(get_mbut() & mousebut); diff --git a/source/blender/src/editarmature.c b/source/blender/src/editarmature.c index 6448e9642f1..4f6c0d51897 100644 --- a/source/blender/src/editarmature.c +++ b/source/blender/src/editarmature.c @@ -1687,7 +1687,7 @@ static void add_bone_input (Object *ob) Mat4One (bone->obmat); bone->size[0]=bone->size[1]=bone->size[2]=1.0F; - force_draw_plus(SPACE_BUTS); + force_draw_plus(SPACE_BUTS, 1); while(qtest()) { event= extern_qread(&val); @@ -2892,7 +2892,7 @@ void hide_selected_pose_bones(void) { bone_looper(G.obpose, arm->bonebase.first, NULL, hide_selected_pose_bone); - force_draw(); + force_draw(1); } int hide_unselected_pose_bone(Object *ob, Bone *bone, void *ptr) { @@ -2913,7 +2913,7 @@ void hide_unselected_pose_bones(void) { bone_looper(G.obpose, arm->bonebase.first, NULL, hide_unselected_pose_bone); - force_draw(); + force_draw(1); } int show_pose_bone(Object *ob, Bone *bone, void *ptr) { @@ -2936,7 +2936,7 @@ void show_all_pose_bones(void) { bone_looper(G.obpose, arm->bonebase.first, NULL, show_pose_bone); - force_draw(); + force_draw(1); } int is_delay_deform(void) diff --git a/source/blender/src/editika.c b/source/blender/src/editika.c index 9c090f7eae1..e7a283a84dc 100644 --- a/source/blender/src/editika.c +++ b/source/blender/src/editika.c @@ -267,7 +267,7 @@ int extrude_ika(Object *ob, int add) xo= mval[0]; yo= mval[1]; - force_draw(); + force_draw(1); } while(qtest()) { diff --git a/source/blender/src/editipo.c b/source/blender/src/editipo.c index f87cd54fe09..297681a7421 100644 --- a/source/blender/src/editipo.c +++ b/source/blender/src/editipo.c @@ -2605,7 +2605,7 @@ void mouse_select_ipo() update_editipo_flags(); - force_draw(); + force_draw(0); BIF_undo_push("Select Ipo"); if(G.sipo->showkey && G.sipo->blocktype==ID_OB) { @@ -4813,16 +4813,16 @@ void transform_ipo(int mode) /* update realtime */ if(G.sipo->lock) { if(G.sipo->blocktype==ID_MA) { - force_draw_plus(SPACE_BUTS); + force_draw_plus(SPACE_BUTS, 0); } else if(G.sipo->blocktype==ID_KE) { do_ob_key(OBACT); makeDispList(OBACT); - force_draw_plus(SPACE_VIEW3D); + force_draw_plus(SPACE_VIEW3D, 0); } else if(G.sipo->blocktype==ID_AC) { do_all_actions(); - force_draw_all(); + force_draw_all(0); } else if(G.sipo->blocktype==ID_OB) { Base *base= FIRSTBASE; @@ -4831,12 +4831,12 @@ void transform_ipo(int mode) if(base->object->ipo==G.sipo->ipo) do_ob_ipo(base->object); base= base->next; } - force_draw_plus(SPACE_VIEW3D); + force_draw_plus(SPACE_VIEW3D, 0); } - else force_draw(); + else force_draw(0); } else { - force_draw(); + force_draw(0); } firsttime= 0; } diff --git a/source/blender/src/editkey.c b/source/blender/src/editkey.c index 8bd59134206..babf1106287 100644 --- a/source/blender/src/editkey.c +++ b/source/blender/src/editkey.c @@ -836,7 +836,7 @@ void move_keys(void) xo= mval[0]; yo= mval[1]; - force_draw(); + force_draw(0); } else BIF_wait_for_statechange(); diff --git a/source/blender/src/editnla.c b/source/blender/src/editnla.c index 1a4c776f5f7..02c0698b5d5 100644 --- a/source/blender/src/editnla.c +++ b/source/blender/src/editnla.c @@ -306,8 +306,8 @@ void winqreadnlaspace(ScrArea *sa, void *spacedata, BWinEvent *evt) if( cfra!=CFRA ) { CFRA= cfra; update_for_newframe(); - force_draw_plus(SPACE_VIEW3D); - force_draw_plus(SPACE_IPO); + force_draw_plus(SPACE_VIEW3D, 1); + force_draw_plus(SPACE_IPO, 1); } } while(get_mbut() & mousebut); @@ -1013,11 +1013,11 @@ void transform_nlachannel_keys(char mode) allqueue (REDRAWVIEW3D, 0); allqueue (REDRAWNLA, 0); allqueue (REDRAWIPO, 0); - force_draw_all(); + force_draw_all(0); } else { addqueue (curarea->win, REDRAWALL, 0); - force_draw (); + force_draw(0); } } diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c index f87e0b6b08b..c45c0d97a9c 100644 --- a/source/blender/src/editobject.c +++ b/source/blender/src/editobject.c @@ -5397,7 +5397,7 @@ void transform(int mode) set_constline_callback(mode, axismode, midtog, centre, imat, vx, vy, vz); if(fast==0) { - force_draw(); + force_draw(0); time= my_clock()-time; if(time>50) fast= 1; } @@ -5717,7 +5717,7 @@ void transform(int mode) set_constline_callback(mode, axismode, midtog, centre, imat, vx, vy, vz); if(fast==0) { - force_draw(); + force_draw(0); time= my_clock()-time; if(time>50) fast= 1; } @@ -5979,7 +5979,7 @@ void transform(int mode) set_constline_callback(mode, axismode, midtog, centre, imat, vx, vy, vz); if(fast==0) { - force_draw(); + force_draw(0); time= my_clock()-time; if(time>50) fast= 1; } @@ -6059,7 +6059,7 @@ void transform(int mode) if(fast==0) { time= my_clock(); - force_draw(); + force_draw(0); time= my_clock()-time; if(time>50) fast= 1; } @@ -6127,7 +6127,7 @@ void transform(int mode) if(fast==0) { time= my_clock(); - force_draw(); + force_draw(0); time= my_clock()-time; if(time>50) fast= 1; } diff --git a/source/blender/src/editoops.c b/source/blender/src/editoops.c index d306236d319..f6a26279c90 100644 --- a/source/blender/src/editoops.c +++ b/source/blender/src/editoops.c @@ -322,7 +322,7 @@ void transform_oops(int mode) xo= mval[0]; yo= mval[1]; - force_draw(); + force_draw(0); firsttime= 0; @@ -468,7 +468,7 @@ void mouse_select_oops(void) oops_to_select_objects(); /* also redraw */ scrarea_queue_headredraw(curarea); - force_draw(); + force_draw(1); std_rmouse_transform(transform_oops); } diff --git a/source/blender/src/editseq.c b/source/blender/src/editseq.c index 60857aaa024..7b4c22a688b 100644 --- a/source/blender/src/editseq.c +++ b/source/blender/src/editseq.c @@ -411,7 +411,7 @@ void mouse_select_seq(void) recurs_sel_seq(seq); } - force_draw(); + force_draw(0); if(last_seq) allqueue(REDRAWIPO, 0); @@ -1874,7 +1874,7 @@ void transform_seq(int mode) } END_SEQ; - force_draw(); + force_draw(0); } else BIF_wait_for_statechange(); diff --git a/source/blender/src/editsima.c b/source/blender/src/editsima.c index c3624852201..b3436b70ba7 100644 --- a/source/blender/src/editsima.c +++ b/source/blender/src/editsima.c @@ -689,8 +689,8 @@ void transform_tface_uv(int mode) xo= mval[0]; yo= mval[1]; - if(G.sima->lock || mode=='w') force_draw_plus(SPACE_VIEW3D); - else force_draw(); + if(G.sima->lock || mode=='w') force_draw_plus(SPACE_VIEW3D, 0); + else force_draw(0); firsttime= 0; @@ -1148,7 +1148,7 @@ void mouse_select_sima(void) *flagpoin |= val; } - force_draw(); + force_draw(1); BIF_undo_push("Select UV"); std_rmouse_transform(transform_tface_uv); @@ -1290,7 +1290,7 @@ void uvedit_selectionCB(short selecting, Object *editobj, short *mval, float rad if(G.f & G_DRAWFACES) { /* full redraw only if necessary */ draw_sel_circle(0, 0, 0, 0, 0); /* signal */ - force_draw(); + force_draw(0); } else { /* force_draw() is no good here... */ glDrawBuffer(GL_FRONT); diff --git a/source/blender/src/editsound.c b/source/blender/src/editsound.c index b409804a9f8..6b821772de8 100644 --- a/source/blender/src/editsound.c +++ b/source/blender/src/editsound.c @@ -143,7 +143,7 @@ void winqreadsoundspace(ScrArea *sa, void *spacedata, BWinEvent *evt) first= 0; CFRA= cfra; update_for_newframe(); - force_draw_plus(SPACE_VIEW3D); + force_draw_plus(SPACE_VIEW3D, 1); } } while(get_mbut() & mousebut); diff --git a/source/blender/src/editview.c b/source/blender/src/editview.c index 838ddde1771..d1891cde9d0 100644 --- a/source/blender/src/editview.c +++ b/source/blender/src/editview.c @@ -1444,7 +1444,7 @@ void mesh_selectionCB(int selecting, Object *editobj, short *mval, float rad) EM_selectmode_flush(); draw_sel_circle(0, 0, 0, 0, 0); /* signal */ - force_draw(); + force_draw(0); } @@ -1510,7 +1510,7 @@ void nurbscurve_selectionCB(int selecting, Object *editobj, short *mval, float r nu= nu->next; } draw_sel_circle(0, 0, 0, 0, 0); /* signal */ - force_draw(); + force_draw(0); } @@ -1539,7 +1539,7 @@ void lattice_selectionCB(int selecting, Object *editobj, short *mval, float rad) bp++; } draw_sel_circle(0, 0, 0, 0, 0); /* signal */ - force_draw(); + force_draw(0); } /** Callbacks for selection in Editmode */ diff --git a/source/blender/src/space.c b/source/blender/src/space.c index cb716db99a3..a8b2a072067 100644 --- a/source/blender/src/space.c +++ b/source/blender/src/space.c @@ -1809,7 +1809,7 @@ static void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt) if( cfra!=CFRA ) { CFRA= cfra; update_for_newframe(); - force_draw_all();/* To make constraint sliders redraw */ + force_draw_all(0); /* To make constraint sliders redraw */ } } while(get_mbut() & mousebut); @@ -3131,7 +3131,7 @@ static void winqreadseqspace(ScrArea *sa, void *spacedata, BWinEvent *evt) first= 0; CFRA= cfra; - force_draw(); + force_draw(0); update_for_newframe(); /* for audio scrubbing */ } @@ -3589,11 +3589,11 @@ static void winqreadimagespace(ScrArea *sa, void *spacedata, BWinEvent *evt) /* Make OpenGL aware of a changed texture */ free_realtime_image(sima->image); /* Redraw this view and the 3D view */ - force_draw_plus(SPACE_VIEW3D); + force_draw_plus(SPACE_VIEW3D, 0); } else { /* Redraw only this view */ - force_draw(); + force_draw(0); } xy_prev[0] = xy_curr[0]; xy_prev[1] = xy_curr[1]; @@ -3605,7 +3605,7 @@ static void winqreadimagespace(ScrArea *sa, void *spacedata, BWinEvent *evt) /* Make OpenGL aware of a changed texture */ free_realtime_image(sima->image); /* Redraw this view and the 3D view */ - force_draw_plus(SPACE_VIEW3D); + force_draw_plus(SPACE_VIEW3D, 1); } IMG_BrushDispose(brush); IMG_CanvasDispose(canvas); @@ -4581,15 +4581,16 @@ void allspace(unsigned short event, short val) } } - -void force_draw() +/* if header==1, then draw header for curarea too. Excepption for headerprint()... */ +void force_draw(int header) { /* draws alle areas that something identical to curarea */ extern int afterqtest(short win, unsigned short evt); //editscreen.c ScrArea *tempsa, *sa; scrarea_do_windraw(curarea); - + if(header) scrarea_do_headdraw(curarea); + tempsa= curarea; sa= G.curscreen->areabase.first; while(sa) { @@ -4598,19 +4599,13 @@ void force_draw() if( ((View3D *)sa->spacedata.first)->lay & ((View3D *)tempsa->spacedata.first)->lay) { areawinset(sa->win); scrarea_do_windraw(sa); + scrarea_do_headdraw(sa); } } - else if(sa->spacetype==SPACE_IPO) { - areawinset(sa->win); - scrarea_do_windraw(sa); - } - else if(sa->spacetype==SPACE_SEQ) { - areawinset(sa->win); - scrarea_do_windraw(sa); - } - else if(sa->spacetype==SPACE_ACTION) { + else { areawinset(sa->win); scrarea_do_windraw(sa); + scrarea_do_headdraw(sa); } } sa= sa->next; @@ -4635,13 +4630,14 @@ void force_draw() } -void force_draw_plus(int type) +/* if header==1, then draw header for curarea too. Excepption for headerprint()... */ +void force_draw_plus(int type, int header) { /* draws all areas that show something like curarea AND areas of 'type' */ ScrArea *tempsa, *sa; scrarea_do_windraw(curarea); - scrarea_do_headdraw(curarea); + if(header) scrarea_do_headdraw(curarea); tempsa= curarea; sa= G.curscreen->areabase.first; @@ -4660,7 +4656,8 @@ void force_draw_plus(int type) screen_swapbuffers(); } -void force_draw_all(void) +/* if header==1, then draw header for curarea too. Excepption for headerprint()... */ +void force_draw_all(int header) { /* redraws all */ ScrArea *tempsa, *sa; @@ -4672,7 +4669,7 @@ void force_draw_all(void) while(sa) { if(sa->headwin) { scrarea_do_headdraw(sa); - scrarea_do_headchange(sa); + if(sa!=curarea || header) scrarea_do_headchange(sa); } if(sa->win) { scrarea_do_windraw(sa); |