--- Dirk Meyer <[EMAIL PROTECTED]> escreveu: > Ho > > Gustavo Sverzut Barbieri wrote: > > I propose to integrate a WindowManager, as Krister said, with the > new > > Skin + GUI. > > My WindowManager proposal is: > > 1) Everything should be a GUI element. IE: The listing area in menu > > should be GUI_ListingIcon, GUI_ListingText, for Icon and Text > listing. > > 2) Each Window MUST have it's own surface and it must have a > property: > > OPAQUE. If OPAQUE==FALSE, then the WM should redraw ALL the things > that > > are under that window and then redraw the whole window. If > > OPAQUE==TRUE, the WM redraw only the parts of the other windows > that > > are not under the opaque window. With that we can avoid problems > like > > the transparency in X11 (like one with Konsole) > > 3) Elements inside a window should receive a surface to draw or > create > > its own surface. > > > > With that, when we have an extended menu we create 3 windows: 1) > View, > > 2) Info, 3) Listing. > > That's a nice idea, and I tried that. But there are some problems: if > we draw overlapping transparent rectangles for blue_round1, we don't > want the color to overlapp.
I didn't understant that. > But the most important problem: it's too > slow. We would redraw most of the screen all the time (areas can > overlap) and blitting something is slow, blitting an alpha surface > into a surface is very slow. And one very important problem: the > areas > depend on each other, one has to be redrawn when another changes. > Why? I don't understand. What I meant with OPAQUE maybe wasn't very clear. A Window could be opaque but have transparent areas. The OPAQUE thing means we just don't care with things are under this window: we don't redraw them. IE: the info area has rounded corners and transparent BG. However we know that the screen BG never change. So we can make Info.OPAQUE=TRUE. The same with View and Listing. I see no point here to it be slow. Like the listing, when we select another item, we have only 2 rectangles to update: the previous selected one that will be back to normal and the new selected one. See my other email "WindowManager". But be aware that some things mentioned there will not ever happen or will happen very occasionally, IE: transparent windows that overlaps other windows will just occurr when we use PopUps or some kind of window to receive user input. But the real slow part for us, Menus, will become really fast. About the OPAQUE, I think all the windows could be opaque for now. > What I have done (with Robs help): the skin is _no_ GUIObject. The > skin is only a set of drawing functions. The menuwidget is a > GUIObject > which fills the hole screen. The menuwidget can be drawn, shown, > hiden > like all other GUIObjects. It uses the skin functions to draw > itself. Since the menuwidget is one GUIObject, background, listing, > view, info and title area aren't GUIObjects, they are only part of > one > GUIObject. With this design I can redraw the changed parts of the > skin > very fast, it would be much slower (you will notice that even on a > fast computer) with separate GUIObjects for each area. > As i said before, I see no reason for that. Gustavo _______________________________________________________________________ Busca Yahoo! O serviço de busca mais completo da Internet. O que você pensar o Yahoo! encontra. http://br.busca.yahoo.com/ ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger for complex code. Debugging C/C++ programs can leave you feeling lost and disoriented. TotalView can help you find your way. Available on major UNIX and Linux platforms. Try it free. www.etnus.com _______________________________________________ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel