static KdOffscreenArea * KdOffscreenKickOut (ScreenPtr pScreen, KdOffscreenArea *area) { if (area->save) (*area->save) (pScreen, area); return KdOffscreenFree (pScreen, area); }
static void kaaMoveOutPixmap (PixmapPtr pPixmap) { KaaPixmapPriv (pPixmap); KdOffscreenArea *area = pKaaPixmap->area; DBG_MIGRATE (("<- 0x%08x (0x%x) (%dx%d)\n", pPixmap->drawable.id, KaaGetPixmapPriv(pPixmap)->area ? KaaGetPixmapPriv(pPixmap)->area->offset : -1, pPixmap->drawable.width, pPixmap->drawable.height)); if (area) { kaaPixmapSave (pPixmap->drawable.pScreen, area); KdOffscreenFree (pPixmap->drawable.pScreen, area); } }
static Bool kaaDestroyPixmap (PixmapPtr pPixmap) { if (pPixmap->refcnt == 1) { KaaPixmapPriv (pPixmap); if (pKaaPixmap->area) { DBG_PIXMAP(("-- 0x%08x (0x%x) (%dx%d)\n", pPixmap->drawable.id, KaaGetPixmapPriv(pPixmap)->area->offset, pPixmap->drawable.width, pPixmap->drawable.height)); /* Free the offscreen area */ KdOffscreenFree (pPixmap->drawable.pScreen, pKaaPixmap->area); pPixmap->devPrivate = pKaaPixmap->devPrivate; pPixmap->devKind = pKaaPixmap->devKind; } } return fbDestroyPixmap (pPixmap); }