wayland::server::buffer_t(3)

🌸 NAME 🌸

okay bestie, welcome to wayland::server::buffer_t(3) from Wayland++ β€” this page is all about the content for a wl_surface, and yes it's giving main-character buffer energy πŸ’…βœ¨

✨ SYNOPSIS ✨

#include <wayland-server-protocol.hpp>

πŸ’– Public Member Functions πŸ’–

  • std::function< void()> & on_destroy () β€” destroy a buffer
  • void release (bool post=true) β€” compositor releases buffer
  • bool proxy_has_object () const β€” Check whether this wrapper actually wraps an object.
  • void post_no_memory () const
  • uint32_t get_id () const
  • client_t get_client () const
  • unsigned int get_version () const
  • std::string get_class ()

πŸŽ€ Static Public Attributes πŸŽ€

  • static constexpr std::uint32_t release_since_version = 1 β€” Minimum protocol version required for the release function.

πŸ¦‹ Detailed Description πŸ¦‹

content for a wl_surface β€” literally the whole point, no cap 🫢

A buffer provides the content for a wl_surface. Buffers are created through factory interfaces such as wl_shm, wp_linux_buffer_params (from the linux-dmabuf protocol extension) or similar. It has a width and a height and can be attached to a wl_surface, but the mechanism by which a client provides and updates the contents is defined by the buffer factory interface. 🎨

If the buffer uses a format that has an alpha channel, the alpha channel is assumed to be premultiplied in the color channels unless otherwise specified. πŸ‘‘

Definition at line 749 of file wayland-server-protocol.hpp.

πŸ’… Member Function Documentation πŸ’…

std::string wayland::server::resource_t::get_class () [inherited]

Retrieve the interface name (class) of a resource object. 🏷️

Returns: Interface name of the resource object.

client_t wayland::server::resource_t::get_client () const [inherited]

Get the associated client.

Returns: the client that owns the resource.

uint32_t wayland::server::resource_t::get_id () const [inherited]

Get the internal ID of the resource.

Returns: the internal ID of the resource.

unsigned int wayland::server::resource_t::get_version () const [inherited]

Get interface version.

Returns: Interface version this resource has been constructed with.

std::function< void()> & buffer_t::on_destroy ()

destroy a buffer β€” Destroy a buffer. If and how you need to release the backing storage is defined by the buffer factory interface. 😭

For possible side-effects to a surface, see wl_surface.attach.

Definition at line 1806 of file wayland-server-protocol.cpp.

void wayland::server::resource_t::post_no_memory () const [inherited]

Post "not enough memory" error to the client.

If the compositor has not enough memory to fulfill a certail request of the client, this function can be called to notify the client of this circumstance. πŸ’€

bool wayland::server::resource_t::proxy_has_object () const [inherited]

Check whether this wrapper actually wraps an object.

Returns: true if there is an underlying object, false if this wrapper is empty.

void buffer_t::release (bool post = true)

compositor releases buffer β€” Sent when this wl_buffer is no longer used by the compositor. The client is now free to reuse or destroy this buffer and its backing storage. πŸ”₯

If a client receives a release event before the frame callback requested in the same wl_surface.commit that attaches this wl_buffer to a surface, then the client is immediately free to reuse the buffer and its backing storage, and does not need a second buffer for the next surface content update. Typically this is possible, when the compositor maintains a copy of the wl_surface contents, e.g. as a GL texture. This is an important optimization for GL(ES) compositors with wl_shm clients. ✨

Definition at line 1812 of file wayland-server-protocol.cpp.

πŸ‘‘ Member Data Documentation πŸ‘‘

std::uint32_t wayland::server::buffer_t::release_since_version = 1 [static], [constexpr]

Minimum protocol version required for the release function. πŸŽ€

Definition at line 805 of file wayland-server-protocol.hpp.

🌈 Author 🌈

Generated automatically by Doxygen for Wayland++ from the source code. 🧚


mwah bestie πŸ’‹ β€” Version 1.0.1, Fri Mar 27 2026 13:15:0, from the Wayland++ source code.

πŸ“¦ where this page comes from