void twin_pixmap_destroy (twin_pixmap_t *pixmap) { if (pixmap->screen) twin_pixmap_hide (pixmap); free (pixmap); }
void twin_pixmap_show (twin_pixmap_t *pixmap, twin_screen_t *screen, twin_pixmap_t *lower) { if (pixmap->disable) twin_screen_disable_update (screen); if (lower == pixmap) lower = pixmap->down; if (pixmap->screen) twin_pixmap_hide (pixmap); pixmap->screen = screen; if (lower) { pixmap->down = lower; pixmap->up = lower->up; lower->up = pixmap; if (!pixmap->up) screen->top = pixmap; } else { pixmap->down = NULL; pixmap->up = screen->bottom; screen->bottom = pixmap; if (!pixmap->up) screen->top = pixmap; } twin_pixmap_damage (pixmap, 0, 0, pixmap->width, pixmap->height); }
void twin_screen_destroy (twin_screen_t *screen) { while (screen->bottom) twin_pixmap_hide (screen->bottom); free (screen); }