• Vlad Zahorodnii's avatar
    Provide an easy way to monitor buffer size changes · fd995084
    Vlad Zahorodnii authored
    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.
surface_interface.cpp 32.9 KB