Skip to content

Provide an easy way to monitor buffer size changes

Vlad Zahorodnii requested to merge work/discard-window-pixmap into master

The main purpose behind the kwaylandserver library is to provide a set of re-usable wayland compositor extension implementations. However, it's worth noting that the design of kwaylandserver is far from perfect at the moment.

KWaylandServer tries to hide all low level wayland details from the compositor. But it's not the case with buffers, which diminishes the whole point behind the library.

Creating OpenGL textures from Wayland buffers is the responsibility of the compositor. So, when it comes to client buffers, we are one foot in KWaylandServer, and the other foot in the compositor.

Since the surface size is a logical size, the compositor can't use it for allocating memory for OpenGL textures. This change adds the buffer size property in SurfaceInterface that can be used for allocating memory for textures as well as monitoring buffer size changes.

I must say that the introduction of the buffer size property is a crude hack because BufferInterface just needs to provide an OpenGL texture for each plane. The main blocker for that is that it would involve moving the backend, the compositor, and the wayland bits in the same place, for example kwayland-server or ultimately kwin.

Merge request reports