static void destroy_buffer(struct wl_resource *resource)
{
struct wl_kms_buffer *buffer = resource->data;
+ struct drm_gem_close close;
+ int ret;
+ if (buffer->handle) {
+ close.handle = buffer->handle;
+ ret = drmIoctl(buffer->kms->fd, DRM_IOCTL_GEM_CLOSE, &close);
+ if (ret)
+ WLKMS_DEBUG("%s: %s: DRM_IOCTL_GEM_CLOSE failed.(%s)\n",
+ __FILE__, __func__, strerror(errno));
+ }
+
free(buffer);
}
wl_resource_post_event(resource, WL_KMS_FORMAT, WL_KMS_FORMAT_XRGB8888);
}
+int wayland_kms_fd_get(struct wl_kms* kms)
+{
+ return kms->fd;
+}
+
struct wl_kms_buffer *wayland_kms_buffer_get(struct wl_resource *resource)
{
if (resource == NULL)