[PATCH weston] screenshot: Use correct buffer size for transformed outputs.

Kristian Høgsberg hoegsberg at gmail.com
Wed Aug 29 11:57:15 PDT 2012


On Sat, Aug 18, 2012 at 07:52:42PM -0600, Scott Moreau wrote:
> This is a workaround for screenshots with transformed outputs. It reorders
> the output positions so the correct buffer size is determined for the final
> image. This assumes the outputs are in succession on the x axis. The outputs
> are rendered in their transformed state.

Committed, thanks.

> ---
>  clients/screenshot.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/clients/screenshot.c b/clients/screenshot.c
> index 7395bf3..0fa4e4b 100644
> --- a/clients/screenshot.c
> +++ b/clients/screenshot.c
> @@ -205,6 +205,12 @@ set_buffer_size(int *width, int *height)
>  	struct screenshooter_output *output;
>  	min_x = min_y = INT_MAX;
>  	max_x = max_y = INT_MIN;
> +	int position = 0;
> +
> +	wl_list_for_each_reverse(output, &output_list, link) {
> +		output->offset_x = position;
> +		position += output->width;
> +	}

We should probably change the wl_list_insert in handle_global() to
insert at the end of the list:

	wl_list_insert(output_list.prev, &output->link);

instead of the reverse iteration.

>  	wl_list_for_each(output, &output_list, link) {
>  		min_x = MIN(min_x, output->offset_x);
> -- 
> 1.7.11.2
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list