From 1b151f2e6aa581400b09220b87ae2d34a39aeb17 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Sat, 20 Dec 2008 13:48:39 -0800 Subject: [PATCH] glamor: glFlush from the blockhandler so rendering happens. --- glamor/glamor.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/glamor/glamor.c b/glamor/glamor.c index ba2701415..a45745985 100644 --- a/glamor/glamor.c +++ b/glamor/glamor.c @@ -74,6 +74,18 @@ glamor_destroy_pixmap(PixmapPtr pixmap) return fbDestroyPixmap(pixmap); } +static void +glamor_block_handler(void *data, OSTimePtr wt, void *last_select_mask) +{ + glFlush(); +} + +static void +glamor_wakeup_handler(void *data, OSTimePtr wt, void *last_select_mask) +{ + glFlush(); +} + /** Set up glamor for an already-configured GL context. */ Bool glamor_init(ScreenPtr screen) @@ -86,6 +98,14 @@ glamor_init(ScreenPtr screen) dixSetPrivate(&screen->devPrivates, glamor_screen_private_key, glamor_priv); + if (!RegisterBlockAndWakeupHandlers(glamor_block_handler, + glamor_wakeup_handler, + NULL)) { + dixSetPrivate(&screen->devPrivates, glamor_screen_private_key, NULL); + xfree(glamor_priv); + return FALSE; + } + glamor_priv->saved_create_gc = screen->CreateGC; screen->CreateGC = glamor_create_gc;