Re: Modernizing the display loop
- From: Owen Taylor <otaylor redhat com>
- To: gtk-devel-list gnome org
- Subject: Re: Modernizing the display loop
- Date: Mon, 12 Dec 2011 11:29:35 -0500
Please ignore this for now for now - sent accidentally when not finished
- will send a finished version in the next day or two.
- Owen
On Mon, 2011-12-12 at 11:27 -0500, Owen Taylor wrote:
> My current large-scale project is to get proper coordination between the
> application and window system for timing.
>
> Window Clocks
> ==============
>
> My basic idea is to have a "Window Clock" object that serves as the
> central point of timing coordination for each toplevel window.
>
> /* Get the singleton window clock for a toplevel window */
> GdkWindowClock *gdk_window_get_clock (GdkWindow *window);
>
> The window clock object has two signals:
>
> ::layout
> ::draw
>
> With corresponding methods:
>
> gdk_window_clock_queue_layout (GdkWindowClock *clock);
> gdk_window_clock_queue_draw (GdkWindowClock *clock);
>
> It also has can have any number of "clock targets" objects added to it:
>
> void gdk_window_clock_add (GdkWindowClock *clock,
> GdkClockTarget *target);
> void gdk_window_clock_remove (GdkWindowClock *clock,
> GdkClockTarget *target);
>
> GdkClockTarget is a simple interface:
>
> struct _GdkClockTargetClass {
> GTypeInterface base_iface;
>
> void (*update) (GdkClockTarget target,
> GdkWindowClock *clock);
> };
>
> When there is at least one clock target added, the clock is "on", and
> whenever it's time to draw a frame, each clock is updated.
>
> Event compression
> =================
>
> Cross-platform issues
> =====================
>
> I spent some time looking at what windowing system capabilities we'd
> want to hook this into on Windows and the Mac. It seemed like on the
> Mac, you might want to hook this up to CVDisplayLink
>
> http://developer.apple.com/library/mac/#documentation/QuartzCore/Reference/CVDisplayLinkRef/Reference/reference.html
>
> On Windows (Vista, 7), the Desktop Window Manager APIs allow querying
> for information about how the scree is being updated:
>
>
> - Owen
>
>
>
>
> _______________________________________________
> gtk-devel-list mailing list
> gtk-devel-list gnome org
> http://mail.gnome.org/mailman/listinfo/gtk-devel-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]