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]