README.mui
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:4k
- GLUT users wanting a GLUT user interface toolkit,
- Tom Davis (an SGI founder) has contributed his micro-UI toolkit ported
- to GLUT. With this user interface library, it should be possible to
- write an OpenGL application with a very asthetically pleasing user
- interface.
- See the subdirectories:
- lib/mui
- test/mui
- progs/mui
- The micro-UI is "as is" and currently doesn't have any documentation
- beyond the short description below written by Tom.
- - Mark Kilgard
- July 16, 1997
- Here's some experimental code for a micro-ui (MUI).
- The code that draws the widgets is taken from the old Showcase "libui",
- and has been ported to OpenGL. The showcase code had routines to draw
- the various widgets in many "states" -- selected, highlighted, inactive,
- et cetera.
- The philosophy behind MUI is to provide a ui library with multiple
- levels of access. At the lowest level, if you just want to draw pretty
- buttons and handle all the interaction yourself, it should provide
- that. But if you'd like to make a list of the widgets and have the
- code do locate-highlight as your mouse passes over the buttons and make
- callbacks when buttons are pressed or sliders are slid, it should
- provide that too.
- You should also be able to work at intermediate levels. For example,
- the Showcase libui has "radio buttons", where a bunch of them are linked
- together, and if you press one, the previously pressed button is
- released. But if you'd like to use these for a non-radio-like purpose
- becasue you like the way they look, you can do so, but you'll have to
- manually control which ones are activated.
- There's no layout tool (although I have some ideas on that topic --
- I'll try to add them to this someday), so you have to give the
- coordinates of all the widgets.
- I have not yet ported all the Showcase libui widgets. So far the list
- of ported widgets includes:
- generic buttons
- radio buttons
- tiny radio buttons
- labels
- bold labels
- vertical sliders
- horizontal sliders
- text entry fields
- scrolling text blocks (for selecting file names, for example)
- pull-down menu (*)
- (*) Actually, I just provide the menu bar, and what gets activated are
- the GLUT pop-up menues. It works fine, except that the GLUT pop-ups are
- not drawn in the same style as the rest of the MUI widgets.
- There's one very weird thing in the code -- the MUI always draws stuff
- using a sort of display list -- usually a very short display list. The
- reason for this is that the Showcase libui was designed to run on
- systems with as few as 16 colors. To get a bigger variety of colors in
- the 16 color case, it would draw things twice with 2 different colors
- and 2 different stipple patterns. So to draw pink if it only had red
- and white, it would draw half the pixels in red, change the stipple to
- hit the other bits, and then draw the same thing in white. If the
- system had good color capability, it would just draw in pink.
- I've tossed out the code that did multiple drawing, but the display list
- structure is ubiquitous, so I didn't bother to rip it out yet. I
- shouldn't take too long; I wanted to get all the widgets ported first
- and then I figured I'd do the whole thing at once rather than
- piece-meal.
- I just don't want anyone to conclude that I'm a moron because of the
- obviously inefficient drawing code. (There are pleny of other features
- of the code you can use to see if I'm really a moron :^)
- The code hasn't been cleaned up in the sense that I'd like to have the
- only visible external names begin with "mui_". I'd also like to make
- sure that the only include file you'll need is mui.h. And mui.h still
- exposes too much. I've only used it for a small number of examples
- (about 3) of applications, and each new one I do causes me to clean
- things up a bit more.
- -- Tom Davis (davis@sgi.com)