shell: Bypass fullscreen scaling if surface width and height match output
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.)
This commit is contained in:
parent
9fc4c3c98b
commit
fd5654baae
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue