Lots of small changes, all for UI in Blender;

----- Killed UI frontbuffer draw
The interface toolkit was drawing all live updates (while using menus/buttons)
in the frontbuffer. This isn't well supported cross-platform, so time to be
killed once. Now it uses *only* glReadPixels and glCopyPixels for frontbuffer
access.

Live updates or menus now are drawn in backbuffer always, and copied to
front when needed.

NOTE: it was tested, but needs thorough review! On PC systems I suspects
backbuffer selection to screw up (check!). On SGI/SUN workstations it
should work smooth; but I need evidence

----- Smaller fixes;

- AA fonts were garbled on ATI systems. Now the AA fonts are drawn exact
  on pixel positions. Needs the new FTGL libb too, patch is on maillist
- Rounded theme uses antialiased outlines
- Pulldown and popup menus have nice softshadow now
- New button type 'PULLDOWN', thats the one that callsup a pulldown menu.
  Should be added to themes, as is the full menu/pulldown drawing
- Screendump for 1 window does the full window now, including header
- Empty pulldowns (for example running blender without scripts) give no
  drawing error anymore

For review & fun;
- added curved lines as connectors, for Oops window
This commit is contained in:
2004-10-03 13:49:54 +00:00
parent 6e4b9ad96b
commit 3a840670a5
29 changed files with 574 additions and 349 deletions

View File

@@ -207,7 +207,7 @@ void undo_editmode_step(int step)
undo_clean_stack();
if(step==0) {
undo_restore(curundo); // if NULL, reloads editmesh
undo_restore(curundo);
}
else if(step==1) {
@@ -215,7 +215,7 @@ void undo_editmode_step(int step)
else {
printf("undo %s\n", curundo->name);
curundo= curundo->prev;
undo_restore(curundo); // if NULL, reloads editmesh
undo_restore(curundo);
}
}
else {
@@ -311,6 +311,8 @@ uiBlock *editmode_undohistorymenu(void *arg_unused)
short yco = 20, menuwidth = 120;
short item=2;
undo_clean_stack(); // removes other objects from it
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_mesh_undohistorymenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
uiBlockSetButmFunc(block, do_editmode_undohistorymenu, NULL);
@@ -319,6 +321,7 @@ uiBlock *editmode_undohistorymenu(void *arg_unused)
for(uel= undobase.first; uel; uel= uel->next, item++) {
if (uel==curundo) uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, uel->name, 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, (float)item, "");
if (uel==curundo) uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
}
uiBlockSetDirection(block, UI_RIGHT);