protocol: Add wl_surface.offset

This is meant to address the issue where the call to 'wl_surface.attach'
is done by e.g. Vulkan, meaning applications cannot affect the values of
the offset passed as the x and y arguments.

The lack of ability to pass these is problematic when using the Vulkan
for e.g. drawing DND surfaces, as the buffer offset is used to implement
the drag icon hotspots.

Closes: https://gitlab.freedesktop.org/wayland/wayland/-/issues/148
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
This commit is contained in:
Jonas Ådahl 2021-03-22 08:56:30 +01:00 committed by Simon Ser
parent f00cfda737
commit fceabb7e9e
2 changed files with 46 additions and 3 deletions

View file

@ -35,6 +35,20 @@
#include "wayland-util.h"
/** Resize the EGL window
*
* \param egl_window A pointer to a struct wl_egl_window
* \param width The new width
* \param height The new height
* \param dx Offset on the X axis
* \param dy Offset on the Y axis
*
* Note that applications should prefer using the wl_surface.offset request if
* the associated wl_surface has the interface version 5 or higher.
*
* If the wl_surface.offset request is used, applications MUST pass 0 to both
* dx and dy.
*/
WL_EXPORT void
wl_egl_window_resize(struct wl_egl_window *egl_window,
int width, int height,