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

Re: Sluggish graphics



Russell Shaw wrote:

> Hi,
> I'm redrawing a line (with gdk_draw_line) 10 times/sec on a pixmap,
> where the line is drawn from a fixed point to the mouse position.
> If i make the pixmap large (1024x768), the mouse and line updating
> become *very* sluggish (500MHz PIII system, GTK2), even if i don't
> have the background refreshing.

How do you draw to screen ? Entire pixmap or just a changed part ?
Anyway, PIII system with AGP video is fast enough to keep 10fps rate
on 1024x768 frames (I hope you are not using one of that damned
industrial/embedded monsters with an alien hw).

> I have only these extra events for the containing drawing area:
> drawing_area=gtk_drawing_area_new();
> gtk_widget_set_events(drawing_area,
>         GDK_EXPOSURE_MASK
>       | GDK_ENTER_NOTIFY_MASK
>       | GDK_BUTTON_PRESS_MASK
>       | GDK_BUTTON_RELEASE_MASK
>       | GDK_KEY_PRESS_MASK
>       | GDK_KEY_RELEASE_MASK);

I suggest to call gtk_widget_set_double_buffered(drawing_area, FALSE) on 
your widget.

> Is the pixmap stored on the client side or the server side? 

Always server-side. Special case when you can access pixmap's memory - 
shared memory
pixmaps (XShm extension).

> Does a line-draw cause the pixmap to be transferred? 

Nope, you sending only the line draw request to server.

> How can i draw direct to video memory?

With XFree86 the only way is to use DGA extension. I suggest you not to 
use it.
It's possible to do small hack and get the map of video memory but this 
is even
worse than use DGA.

    Olexiy





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