Alexandros Frantzis (@afrantzis) commented about dlls/winewayland.drv/wayland_surface.c:
surface->buffer_height = shm_buffer->height;
- if (surface->wp_viewport)
- {
int win_width, win_height, width, height;
win_width = surface->window.rect.right - surface->window.rect.left;
win_height = surface->window.rect.bottom - surface->window.rect.top;
/* It is an error to specify a wp_viewporter source rectangle that
* is partially or completely outside of the wl_buffer. */
width = min(win_width, surface->buffer_width);
height = min(win_height, surface->buffer_height);
if (width != 0 && height != 0)
wp_viewport_set_source(surface->wp_viewport, 0, 0, width << 8, height << 8);
`wl_fixed_from_int()`?