* removed the global uiFrontbuf from interface.c (and python, it was used

there)
* replaced with nice local (uiBlock) storage of what goes on in drawing.
  it now only calls a glDrawBuffer() and glFinish() when it is actually
  needed

Result: interface drawing in general is speedy again, especially for gfx
cards that dont allow frontbuffer drawing, and copy stuff to the frontbuf
with a glFinish() call.

Needs to be tested on all platforms... report to me when you see problems
like menus not drawing correctly, tooltips not drawing or not disappearing,
etc.
This commit is contained in:
2003-07-07 15:50:44 +00:00
parent 828347f698
commit b4b10dfff8
4 changed files with 84 additions and 64 deletions

View File

@@ -421,14 +421,14 @@ static void py_slider_update(void *butv, void *data2_unused)
is still being used might be deleted
*/
/*@ UIfrontbuf = 0;
/*@
spacetext_do_pywin_buttons(curarea->spacedata.first, but->retval); */
g_window_redrawn = 0;
curarea->win_swap= WIN_BACK_OK;
UIfrontbuf = 1;
/* removed global uiFrontBuf (contact ton when this goes wrong here) */
spacetext_do_pywin_buttons(curarea->spacedata.first, uiButGetRetVal(but));
UIfrontbuf = 0;
if (!g_window_redrawn) /*@ if Redraw already called */
M_Window_Redraw(0, Py_BuildValue("(i)", SPACE_VIEW3D));