With the new interface in KWayland we can add support for viewports. Here the
specified viewport is being respected by setting the texture coordinates when
rendering with OpenGl and setting the source rectangle with QPainter.
The destination size is already implicitly respected through the size of the
KWayland SurfaceInterface.