wl_tbm_set_sync_timeline(tbm_client->wl_tbm, wl_buffer, timeline);
}
+void
+wayland_tbm_client_set_buffer_transform(struct wayland_tbm_client *tbm_client,
+ struct wl_buffer *wl_buffer, int transform)
+{
+ WL_TBM_RETURN_IF_FAIL(tbm_client != NULL);
+ WL_TBM_RETURN_IF_FAIL(wl_buffer != NULL);
+ WL_TBM_RETURN_IF_FAIL(transform >= 0);
+
+ wl_tbm_set_buffer_transform(tbm_client->wl_tbm, wl_buffer, transform);
+}
+
void *
wayland_tbm_client_get_bufmgr(struct wayland_tbm_client *tbm_client)
{
wayland_tbm_client_set_sync_timeline(struct wayland_tbm_client *tbm_client,
struct wl_buffer *buffer, tbm_fd timeline);
+void
+wayland_tbm_client_set_buffer_transform(struct wayland_tbm_client *tbm_client,
+ struct wl_buffer *buffer, int transform);
+
void *
wayland_tbm_client_get_bufmgr(struct wayland_tbm_client *tbm_client);
struct wl_list link_ref; /*link to same tbm_surface_h*/
tbm_fd sync_timeline;
+ int transform;
};
struct wayland_tbm_client_resource {
}
static void
+_wayland_tbm_server_impl_set_buffer_transform(struct wl_client *client,
+ struct wl_resource *wl_tbm,
+ struct wl_resource *wl_buffer,
+ int32_t transform)
+{
+ WL_TBM_RETURN_IF_FAIL(wl_buffer != NULL);
+
+ if (wl_resource_instance_of(wl_buffer, &wl_buffer_interface,
+ &_wayland_tbm_buffer_impementation)) {
+ struct wayland_tbm_buffer *tbm_buffer;
+
+ tbm_buffer = (struct wayland_tbm_buffer *)
+ wl_resource_get_user_data(wl_buffer);
+ WL_TBM_RETURN_IF_FAIL(tbm_buffer != NULL);
+
+ tbm_buffer->transform = transform;
+ }
+}
+
+static void
_wayland_tbm_server_impl_destroy(struct wl_client *client,
struct wl_resource *wl_tbm)
{
_wayland_tbm_server_impl_create_buffer_with_fd,
_wayland_tbm_server_impl_create_surface_queue,
_wayland_tbm_server_impl_set_sync_timeline,
+ _wayland_tbm_server_impl_set_buffer_transform,
_wayland_tbm_server_impl_destroy
};
return 0;
}
+
+int
+wayland_tbm_server_buffer_get_buffer_transform(struct wayland_tbm_server *tbm_srv,
+ struct wl_resource *wl_buffer)
+{
+ WL_TBM_RETURN_VAL_IF_FAIL(wl_buffer != NULL, 0);
+
+ if (wl_resource_instance_of(wl_buffer, &wl_buffer_interface,
+ &_wayland_tbm_buffer_impementation)) {
+ struct wayland_tbm_buffer *tbm_buffer;
+
+ tbm_buffer = (struct wayland_tbm_buffer *)
+ wl_resource_get_user_data(wl_buffer);
+ WL_TBM_RETURN_VAL_IF_FAIL(tbm_buffer != NULL, 0);
+
+ return tbm_buffer->transform;
+ }
+
+ return 0;
+}