Bool radeon_glamor_create_textured_pixmap(PixmapPtr pixmap, struct radeon_pixmap *priv) { ScrnInfoPtr scrn = xf86ScreenToScrn(pixmap->drawable.pScreen); RADEONInfoPtr info = RADEONPTR(scrn); if ((info->use_glamor) == 0) return TRUE; return glamor_egl_create_textured_pixmap(pixmap, priv->bo->handle, pixmap->devKind); }
Bool radeon_glamor_create_textured_pixmap(PixmapPtr pixmap) { ScrnInfoPtr scrn = xf86ScreenToScrn(pixmap->drawable.pScreen); RADEONInfoPtr info = RADEONPTR(scrn); struct radeon_pixmap *priv; if ((info->use_glamor) == 0) return TRUE; priv = radeon_get_pixmap_private(pixmap); if (!priv->stride) priv->stride = pixmap->devKind; if (glamor_egl_create_textured_pixmap(pixmap, priv->bo->handle, priv->stride)) return TRUE; else return FALSE; }
Bool glamor_egl_create_textured_screen(ScreenPtr screen, int handle, int stride) { ScrnInfoPtr scrn = xf86ScreenToScrn(screen); struct glamor_egl_screen_private *glamor_egl; PixmapPtr screen_pixmap; glamor_egl = glamor_egl_get_screen_private(scrn); screen_pixmap = screen->GetScreenPixmap(screen); if (!glamor_egl_create_textured_pixmap(screen_pixmap, handle, stride)) { xf86DrvMsg(scrn->scrnIndex, X_ERROR, "Failed to create textured screen."); return FALSE; } glamor_egl->front_image = dixLookupPrivate(&screen_pixmap->devPrivates, glamor_egl_pixmap_private_key); glamor_set_screen_pixmap(screen_pixmap, glamor_egl->back_pixmap); return TRUE; }