Lines Matching refs:xwl_pixmap
43 struct xwl_pixmap { struct
197 struct xwl_pixmap *xwl_pixmap; in xwl_shm_create_pixmap() local
212 xwl_pixmap = malloc(sizeof *xwl_pixmap); in xwl_shm_create_pixmap()
213 if (xwl_pixmap == NULL) in xwl_shm_create_pixmap()
218 xwl_pixmap->buffer = NULL; in xwl_shm_create_pixmap()
219 xwl_pixmap->size = size; in xwl_shm_create_pixmap()
224 xwl_pixmap->data = mmap(NULL, size, PROT_READ | PROT_WRITE, in xwl_shm_create_pixmap()
226 if (xwl_pixmap->data == MAP_FAILED) in xwl_shm_create_pixmap()
231 stride, xwl_pixmap->data)) in xwl_shm_create_pixmap()
235 pool = wl_shm_create_pool(xwl_screen->shm, fd, xwl_pixmap->size); in xwl_shm_create_pixmap()
236 xwl_pixmap->buffer = wl_shm_pool_create_buffer(pool, 0, in xwl_shm_create_pixmap()
243 xwl_pixmap_set_private(pixmap, xwl_pixmap); in xwl_shm_create_pixmap()
248 munmap(xwl_pixmap->data, size); in xwl_shm_create_pixmap()
252 free(xwl_pixmap); in xwl_shm_create_pixmap()
262 struct xwl_pixmap *xwl_pixmap = xwl_pixmap_get(pixmap); in xwl_shm_destroy_pixmap() local
264 if (xwl_pixmap && pixmap->refcnt == 1) { in xwl_shm_destroy_pixmap()
265 if (xwl_pixmap->buffer) in xwl_shm_destroy_pixmap()
266 wl_buffer_destroy(xwl_pixmap->buffer); in xwl_shm_destroy_pixmap()
267 munmap(xwl_pixmap->data, xwl_pixmap->size); in xwl_shm_destroy_pixmap()
268 free(xwl_pixmap); in xwl_shm_destroy_pixmap()