glamor: glFlush from the blockhandler so rendering happens.

This commit is contained in:
Eric Anholt 2008-12-20 13:48:39 -08:00 committed by Zhigang Gong
parent b530cdea4a
commit 1b151f2e6a
1 changed files with 20 additions and 0 deletions

View File

@ -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;