Am 18.03.2005 um 08:55 schrieb Stefan Urbanek:

Cit�t Markus Hitter <[EMAIL PROTECTED]>:

Am 15.03.2005 um 14:53 schrieb Stefan Urbanek:

URL:
  <http://savannah.gnu.org/bugs/?func=detailitem&item_id=12327>

When using a window manager, such as metacity, that draws windows while resizing, GNUstep draws each view in the window. This consumes too much CPU and causes flickering. This is problem mainly for windows with complex views with lots of drawing inside, including text compositing.

This can be avoided if gnustep has implemented NSView methods:

 inLiveResize
 viewWillStartLiveResize
 viewDidEndLiveResize

Not sure wether it's a good idea to burden GNUstep with this
misbehaviour of the window management. If a window manager uses live
window moving, it should move the contents as well and not ask the app
to redraw the window over and over.

Misbehavior of the window manager? There is no problem with window moving, but
with window resizing.

Yepp. It's clearly an advantage to read _every_ word of a message. :-}

While resizing, you need to redraw the window for each size change as you want to see NSView autoresizing changes to be reflected.

So you want to reduce the detail level a view draws under some circumstances. That's a new concept for OpenStep/GNUstep even if it's common in the 3D world already. How about an API similar to this:


typedef enum {
        NSHeavilyReducedDetailLevel,
        NSReducedDetailLevel,
        NSStandardDetailLevel,
        NSExtendedDetailLevel
} NSDetailLevel;

-(NSDeatailLevel) detailLevel
-(void) setDetailLevel(NSDetailLevel)
-(void) detailLevelChanged (?)

You could change the detail level in other situations as well, e.g. for tiny screens (NSReducedDetailLevel) or if the programmer wants this extra fancy GUI (NSExtendedDetailLevel).


Experience in the 3D area tells however, you better live with the flickering than with a suddenly changing appearance of what you see.



Again, just my $0.02


Markus

- - - - - - - - - - - - - - - - - - -
Dipl. Ing. Markus Hitter
http://www.jump-ing.de/





_______________________________________________
Bug-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gnustep

Reply via email to