- struct wl_shm_pool *pool;
- struct wl_buffer *buf;
- struct wl_region *opaque;
- uint32_t stride;
- size_t size;
- void *map;
- int fd;
-
- switch (inter->shm_format) {
- case WL_SHM_FORMAT_ARGB8888:
- case WL_SHM_FORMAT_XRGB8888:
- case WL_SHM_FORMAT_ABGR8888:
- case WL_SHM_FORMAT_XBGR8888:
- stride = width * 4;
- break;
- case WL_SHM_FORMAT_RGB565:
- case WL_SHM_FORMAT_BGR565:
- stride = width * 2;
- break;
- default:
- fprintf(stderr, "Unsupported SHM format %d\n", inter->shm_format);
- exit(1);
- }
-
- size = stride * height;
- fd = os_create_anonymous_file(size);
- if (fd < 0) {
- fprintf(stderr, "Couldn't create surface buffer\n");
- exit(1);
- }
-
- map = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (map == MAP_FAILED) {
- fprintf(stderr, "Couldn't mmap surface buffer\n");
- exit(1);
- }
- memset(map, 0xff, size);
- munmap(map, size);
-
- pool = wl_shm_create_pool(inter->shm, fd, size);
- buf = wl_shm_pool_create_buffer(pool, 0, width, height, stride,
- inter->shm_format);
- wl_buffer_add_listener(buf, &buffer_listener, inter);
-
- wl_surface_attach(inter->wl_surf, buf, 0, 0);
- wl_surface_damage(inter->wl_surf, 0, 0, width, height);
-
- opaque = wl_compositor_create_region(inter->compositor);
- wl_region_add(opaque, 0, 0, width, height);
- wl_surface_set_opaque_region(inter->wl_surf, opaque);
- wl_region_destroy(opaque);
-
- wl_shm_pool_destroy(pool);
- close(fd);
+ struct wl_shm_pool *pool;
+ struct wl_buffer *buf;
+ struct wl_region *opaque;
+ uint32_t stride;
+ size_t size;
+ void *map;
+ int fd;
+
+ switch (inter->shm_format) {
+ case WL_SHM_FORMAT_ARGB8888:
+ case WL_SHM_FORMAT_XRGB8888:
+ case WL_SHM_FORMAT_ABGR8888:
+ case WL_SHM_FORMAT_XBGR8888:
+ stride = width * 4;
+ break;
+ case WL_SHM_FORMAT_RGB565:
+ case WL_SHM_FORMAT_BGR565:
+ stride = width * 2;
+ break;
+ default:
+ fprintf(stderr, "Unsupported SHM format %d\n", inter->shm_format);
+ exit(1);
+ }
+
+ size = stride * height;
+ fd = os_create_anonymous_file(size);
+ if (fd < 0) {
+ fprintf(stderr, "Couldn't create surface buffer\n");
+ exit(1);
+ }
+
+ map = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+ if (map == MAP_FAILED) {
+ fprintf(stderr, "Couldn't mmap surface buffer\n");
+ exit(1);
+ }
+ memset(map, 0xff, size);
+ munmap(map, size);
+
+ pool = wl_shm_create_pool(inter->shm, fd, size);
+ buf = wl_shm_pool_create_buffer(pool, 0, width, height, stride,
+ inter->shm_format);
+ wl_buffer_add_listener(buf, &buffer_listener, inter);
+
+ wl_surface_attach(inter->wl_surf, buf, 0, 0);
+ wl_surface_damage(inter->wl_surf, 0, 0, width, height);
+
+ opaque = wl_compositor_create_region(inter->compositor);
+ wl_region_add(opaque, 0, 0, width, height);
+ wl_surface_set_opaque_region(inter->wl_surf, opaque);
+ wl_region_destroy(opaque);
+
+ wl_shm_pool_destroy(pool);
+ close(fd);