[PATCH weston] shell: Bypass fullscreen scaling if surface width and height match output
Kristian Høgsberg
hoegsberg at gmail.com
Thu Feb 14 10:41:09 PST 2013
On Tue, Feb 12, 2013 at 11:53:47AM +0000, Rob Bradford wrote:
> From: Rob Bradford <rob at linux.intel.com>
>
> If our surface has width and height set to the same dimensions as the output
> then we can bypassing the scale factor calculation and addition of the
> transformation.
>
> The use case that led to this optimisation is the playback of video using
> gstreamer-vaapi with the "scale" method. The video is the same dimensions as
> the output (1080p.)
> ---
> src/shell.c | 7 +++++++
> 1 file changed, 7 insertions(+)
Thanks, that looks good.
Kristian
> diff --git a/src/shell.c b/src/shell.c
> index 368fa5b..19ccdfd 100644
> --- a/src/shell.c
> +++ b/src/shell.c
> @@ -1672,6 +1672,13 @@ shell_configure_fullscreen(struct shell_surface *shsurf)
> center_on_output(surface, shsurf->fullscreen_output);
> break;
> case WL_SHELL_SURFACE_FULLSCREEN_METHOD_SCALE:
> + /* 1:1 mapping between surface and output dimensions */
> + if (output->width == surface->geometry.width &&
> + output->height == surface->geometry.height) {
> + weston_surface_set_position(surface, output->x, output->y);
> + break;
> + }
> +
> matrix = &shsurf->fullscreen.transform.matrix;
> weston_matrix_init(matrix);
>
> --
> 1.8.1
>
> _______________________________________________
> 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