aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndri Yngvason <andri@yngvason.is>2021-08-14 21:41:46 +0000
committerSimon Ser <contact@emersion.fr>2021-09-10 10:37:18 +0200
commit04d234bac1fe1b8d8e96e727d5ac7e4a41e9e6a7 (patch)
tree71749183823bcbe6984071210fc3e60693da6046
parenta181a37b12c804d658bb82eb542870a0ee54a63d (diff)
downloadwlroots-04d234bac1fe1b8d8e96e727d5ac7e4a41e9e6a7.tar.xz
screencopy: Use output->front_buffer instead of wlr_output_export_dmabuf
-rw-r--r--types/wlr_screencopy_v1.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/types/wlr_screencopy_v1.c b/types/wlr_screencopy_v1.c
index 9469c53f..ba06f87f 100644
--- a/types/wlr_screencopy_v1.c
+++ b/types/wlr_screencopy_v1.c
@@ -265,10 +265,11 @@ static void frame_handle_output_precommit(struct wl_listener *listener,
static bool blit_dmabuf(struct wlr_renderer *renderer,
struct wlr_dmabuf_v1_buffer *dst_dmabuf,
- struct wlr_dmabuf_attributes *src_attrs) {
+ struct wlr_buffer *src_buffer) {
struct wlr_buffer *dst_buffer = wlr_buffer_lock(&dst_dmabuf->base);
- struct wlr_texture *src_tex = wlr_texture_from_dmabuf(renderer, src_attrs);
+ struct wlr_texture *src_tex =
+ wlr_texture_from_buffer(renderer, src_buffer);
if (src_tex == NULL) {
goto error_src_tex;
}
@@ -335,12 +336,10 @@ static void frame_handle_output_commit(struct wl_listener *listener,
return;
}
- struct wlr_dmabuf_attributes attr = { 0 };
- bool ok = wlr_output_export_dmabuf(output, &attr);
- ok = ok && blit_dmabuf(renderer, dma_buffer, &attr);
+ bool ok = output->front_buffer && blit_dmabuf(renderer, dma_buffer,
+ output->front_buffer);
uint32_t flags = dma_buffer->attributes.flags & WLR_DMABUF_ATTRIBUTES_FLAGS_Y_INVERT ?
ZWLR_SCREENCOPY_FRAME_V1_FLAGS_Y_INVERT : 0;
- wlr_dmabuf_attributes_finish(&attr);
if (!ok) {
zwlr_screencopy_frame_v1_send_failed(frame->resource);