aboutsummaryrefslogtreecommitdiff
path: root/render/drm_dumb_allocator.c
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-06-02 17:02:28 +0200
committerSimon Zeni <simon@bl4ckb0ne.ca>2021-06-07 09:22:56 -0400
commit38ba5881a078eb35b3f82abaf5e4873a9a3a981e (patch)
treec195493140817034eb7b014a8f977c65d051e988 /render/drm_dumb_allocator.c
parent9e58301df7f09660cb36337211cbf5700d99810c (diff)
buffer: replace get_data_ptr with {begin,end}_data_ptr_access
This new API allows buffer implementations to know when a user is actively accessing the buffer's underlying storage. This is important for the upcoming client-backed wlr_buffer implementation.
Diffstat (limited to 'render/drm_dumb_allocator.c')
-rw-r--r--render/drm_dumb_allocator.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/render/drm_dumb_allocator.c b/render/drm_dumb_allocator.c
index 9e14e38e..9713e078 100644
--- a/render/drm_dumb_allocator.c
+++ b/render/drm_dumb_allocator.c
@@ -128,8 +128,8 @@ create_err:
return NULL;
}
-static bool drm_dumb_buffer_get_data_ptr(struct wlr_buffer *wlr_buffer, void **data,
- uint32_t *format, size_t *stride) {
+static bool drm_dumb_buffer_begin_data_ptr_access(struct wlr_buffer *wlr_buffer,
+ void **data, uint32_t *format, size_t *stride) {
struct wlr_drm_dumb_buffer *buf = drm_dumb_buffer_from_buffer(wlr_buffer);
*data = buf->data;
*stride = buf->stride;
@@ -137,6 +137,10 @@ static bool drm_dumb_buffer_get_data_ptr(struct wlr_buffer *wlr_buffer, void **d
return true;
}
+static void drm_dumb_buffer_end_data_ptr_access(struct wlr_buffer *wlr_buffer) {
+ // This space is intentionally left blank
+}
+
static bool buffer_get_dmabuf(struct wlr_buffer *wlr_buffer,
struct wlr_dmabuf_attributes *attribs) {
struct wlr_drm_dumb_buffer *buf = drm_dumb_buffer_from_buffer(wlr_buffer);
@@ -153,7 +157,8 @@ static void buffer_destroy(struct wlr_buffer *wlr_buffer) {
static const struct wlr_buffer_impl buffer_impl = {
.destroy = buffer_destroy,
.get_dmabuf = buffer_get_dmabuf,
- .get_data_ptr = drm_dumb_buffer_get_data_ptr,
+ .begin_data_ptr_access = drm_dumb_buffer_begin_data_ptr_access,
+ .end_data_ptr_access = drm_dumb_buffer_end_data_ptr_access,
};
static const struct wlr_allocator_interface allocator_impl;