Re: Redraw things..




Tomas Ogren <stric@ing.umu.se> writes:

> After Tim's changes to the redraw routines, gtk has become very slow for
> me and has lots and lots of unnecessary redraws.. most notably in
> complex widgets like a notebook where the *list in the middle gets
> redrawn maybe 3-4 times and the further out of the widget, the fewer
> redraws.. but still too many redraws...
> 
> Also.. it seems to do things in a very illogic order... when flipping
> between tabs in a notebook, the texts from the old tab is overwritten as
> a _final_ stage... it looks _much_ better if old stuff is cleared first
> then new stuff drawn over that... instead of first making a horrible
> clutter and then cover the parts we don't want to keep...
> 
> I know this must be awfully hard to get good.. but the old way was
> _much_ better for low cpu/bandwidth people like me... (what has improved
> from these patches?)

Tim was trying to fix some obscure bugs with things not
being redrawn and also trying to reduce the amount drawing
being done (believe it not).

There is absolutely no intention to leave it in this way,
so don't worry about it.

I've found a number of different problems:

 - There are a couple of old bugs that result in extra draws
   being queued

 - I broke my redraw-coellescing code recently while
   fixing some other stuff, so that wasn't working.
   
 - There is a major problem in that with Tim's changes
   currently we aren't relying on exposes to draw things 
   when windows are initially mapped.

   I suspect that the easiest way to get this working
   is in gtk_widget_queue_* check if there is
   an !MAPPED !NO_WINDOW window somewhere in the
   heirarchy above the widget, and if so, ignore the
   queue.

> I'm not sure if it appeared now, but I get an abort when docking
> GtkHandleboxes ...
> Gdk-ERROR **: BadWindow (invalid Window parameter)
> serial 70720 error_code 3 request_code 20 minor_code 0

This might be an old bug - there have been some similar
bug reported for a while. Is this reproducable when
running GTK+ --sync.
 
> Also... with testgtk (and the supplied testgtkrc) with mine and tybstars
> ThinIce, I get the little checkmarks from the checkboxes as background
> image when flipping tabs in the notebook.. prolly our fault for not
> caring too much about background images..

This is a symptom of a bug that we fixed for the default theme
but you'll have to fix for the thinice theme separately.
You'll basically want to look at how gtk_style_draw_default_background
replaced gtk_style_draw_default_pixmap, but it might be worth
holding off a bit since I think I'm going to change the
parameters to the former a little bit.
 
> The same things happens when displaying onto a Solaris 2.6/sparc/8bpp
> box over 10mbit net from:
> * P100, Debian 1.3/x86
> * Dual SuperSparc 60Mhz, Solaris 2.6/sparc
> 
> Also when running locally on the SparcStation LX (about the speed of a
> 486 25-33 something)

If those with faster machines want to see the redraw problems,
then they should run the Pixmap theme from gtk-engines, and
use imlib_config to set the cache size to zero.

                                        Owen 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]