diff options
| author | Simon Ser <contact@emersion.fr> | 2020-08-25 12:30:00 +0200 | 
|---|---|---|
| committer | Simon Ser <contact@emersion.fr> | 2020-11-15 22:54:07 +0100 | 
| commit | 02df7b7ac89696e3a94de3ff66b2bed1c6e5b77a (patch) | |
| tree | e5488b14297b0e8fa6ebea600279ed57538680dc /backend/headless | |
| parent | 61f8cdfb9ee2f8cc710c4cf947634c0c737e6383 (diff) | |
| download | wlroots-02df7b7ac89696e3a94de3ff66b2bed1c6e5b77a.tar.xz | |
backend/headless: implement export_dmabuf
Diffstat (limited to 'backend/headless')
| -rw-r--r-- | backend/headless/output.c | 18 | 
1 files changed, 18 insertions, 0 deletions
| diff --git a/backend/headless/output.c b/backend/headless/output.c index d2160987..8ce7a32b 100644 --- a/backend/headless/output.c +++ b/backend/headless/output.c @@ -121,6 +121,23 @@ static void output_rollback_render(struct wlr_output *wlr_output) {  	output->back_buffer = NULL;  } +static bool output_export_dmabuf(struct wlr_output *wlr_output, +		struct wlr_dmabuf_attributes *attribs) { +	struct wlr_headless_output *output = +		headless_output_from_output(wlr_output); + +	if (!output->front_buffer) { +		return false; +	} + +	struct wlr_dmabuf_attributes tmp; +	if (!wlr_buffer_get_dmabuf(output->front_buffer, &tmp)) { +		return false; +	} + +	return wlr_dmabuf_attributes_copy(attribs, &tmp); +} +  static void output_destroy(struct wlr_output *wlr_output) {  	struct wlr_headless_output *output =  		headless_output_from_output(wlr_output); @@ -137,6 +154,7 @@ static const struct wlr_output_impl output_impl = {  	.attach_render = output_attach_render,  	.commit = output_commit,  	.rollback_render = output_rollback_render, +	.export_dmabuf = output_export_dmabuf,  };  bool wlr_output_is_headless(struct wlr_output *wlr_output) { | 
