mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-29 05:40:12 -04:00
wlr_client_buffer: add get_shm implementation
This commit is contained in:
parent
5dc73937ff
commit
d7527778bb
1 changed files with 35 additions and 0 deletions
|
|
@ -44,9 +44,44 @@ static bool client_buffer_get_dmabuf(struct wlr_buffer *buffer,
|
|||
return wlr_buffer_get_dmabuf(client_buffer->source, attribs);
|
||||
}
|
||||
|
||||
static bool client_buffer_get_shm(struct wlr_buffer *buffer,
|
||||
struct wlr_shm_attributes *attribs) {
|
||||
struct wlr_client_buffer *client_buffer = client_buffer_from_buffer(buffer);
|
||||
|
||||
if (client_buffer->source == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return wlr_buffer_get_shm(client_buffer->source, attribs);
|
||||
}
|
||||
|
||||
static bool client_buffer_begin_data_ptr_access(struct wlr_buffer *buffer, uint32_t flags,
|
||||
void **data, uint32_t *format, size_t *stride) {
|
||||
struct wlr_client_buffer *client_buffer = client_buffer_from_buffer(buffer);
|
||||
|
||||
if (client_buffer->source == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return wlr_buffer_begin_data_ptr_access(client_buffer->source, flags, data, format, stride);
|
||||
}
|
||||
|
||||
static void client_buffer_end_data_ptr_access(struct wlr_buffer *buffer) {
|
||||
struct wlr_client_buffer *client_buffer = client_buffer_from_buffer(buffer);
|
||||
|
||||
if (client_buffer->source == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
wlr_buffer_end_data_ptr_access(client_buffer->source);
|
||||
}
|
||||
|
||||
static const struct wlr_buffer_impl client_buffer_impl = {
|
||||
.destroy = client_buffer_destroy,
|
||||
.get_dmabuf = client_buffer_get_dmabuf,
|
||||
.get_shm = client_buffer_get_shm,
|
||||
.begin_data_ptr_access = client_buffer_begin_data_ptr_access,
|
||||
.end_data_ptr_access = client_buffer_end_data_ptr_access,
|
||||
};
|
||||
|
||||
static void client_buffer_handle_source_destroy(struct wl_listener *listener,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue