.TH "wayland::server::shm_t" 3 "Wed May 3 2023" "Version 1.0.0" "Wayland++" \" -*- nroff -*- .ad l .nh .SH NAME wayland::server::shm_t \- shared memory support .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits wayland::server::resource_t\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "std::function< void(\fBshm_pool_t\fP, int, int32_t)> & \fBon_create_pool\fP ()" .br .RI "create a shm pool " .ti -1c .RI "void \fBformat\fP (shm_format const &format, bool post=true)" .br .RI "pixel format description " .ti -1c .RI "void \fBpost_invalid_format\fP (std::string const &msg)" .br .RI "Post error: buffer format is not known\&. " .ti -1c .RI "void \fBpost_invalid_stride\fP (std::string const &msg)" .br .RI "Post error: invalid size or stride during pool or buffer creation\&. " .ti -1c .RI "void \fBpost_invalid_fd\fP (std::string const &msg)" .br .RI "Post error: mmapping the file descriptor failed\&. " .ti -1c .RI "bool \fBproxy_has_object\fP () const" .br .RI "Check whether this wrapper actually wraps an object\&. " .ti -1c .RI "void \fBpost_no_memory\fP () const" .br .ti -1c .RI "uint32_t \fBget_id\fP () const" .br .ti -1c .RI "client_t \fBget_client\fP () const" .br .ti -1c .RI "unsigned int \fBget_version\fP () const" .br .ti -1c .RI "std::string \fBget_class\fP ()" .br .in -1c .SS "Static Public Attributes" .in +1c .ti -1c .RI "static constexpr std::uint32_t \fBformat_since_version\fP = 1" .br .RI "Minimum protocol version required for the \fBformat\fP function\&. " .in -1c .SH "Detailed Description" .PP shared memory support A singleton global object that provides support for shared memory\&. .PP Clients can create wl_shm_pool objects using the create_pool request\&. .PP On binding the wl_shm object one or more format events are emitted to inform clients about the valid pixel formats that can be used for buffers\&. .PP Definition at line \fB424\fP of file \fBwayland\-server\-protocol\&.hpp\fP\&. .SH "Member Function Documentation" .PP .SS "void shm_t::format (shm_format const & format, bool post = \fCtrue\fP)" .PP pixel format description .PP \fBParameters\fP .RS 4 \fIformat\fP buffer pixel format .RE .PP Informs the client about a valid pixel format that can be used for buffers\&. Known formats include argb8888 and xrgb8888\&. .PP Definition at line \fB1753\fP of file \fBwayland\-server\-protocol\&.cpp\fP\&. .SS "std::string wayland::server::resource_t::get_class ()\fC [inherited]\fP" Retrieve the interface name (class) of a resource object\&. .PP \fBReturns\fP .RS 4 Interface name of the resource object\&. .RE .PP .SS "client_t wayland::server::resource_t::get_client () const\fC [inherited]\fP" Get the associated client .PP \fBReturns\fP .RS 4 the client that owns the resource\&. .RE .PP .SS "uint32_t wayland::server::resource_t::get_id () const\fC [inherited]\fP" Get the internal ID of the resource .PP \fBReturns\fP .RS 4 the internal ID of the resource .RE .PP .SS "unsigned int wayland::server::resource_t::get_version () const\fC [inherited]\fP" Get interface version .PP \fBReturns\fP .RS 4 Interface version this resource has been constructed with\&. .RE .PP .SS "std::function< void(\fBshm_pool_t\fP, int, int32_t)> & shm_t::on_create_pool ()" .PP create a shm pool .PP \fBParameters\fP .RS 4 \fIid\fP pool to create .br \fIfd\fP file descriptor for the pool .br \fIsize\fP pool size, in bytes .RE .PP Create a new wl_shm_pool object\&. .PP The pool can be used to create shared memory based buffer objects\&. The server will mmap size bytes of the passed file descriptor, to use as backing memory for the pool\&. .PP Definition at line \fB1747\fP of file \fBwayland\-server\-protocol\&.cpp\fP\&. .SS "void shm_t::post_invalid_fd (std::string const & msg)" .PP Post error: mmapping the file descriptor failed\&. .PP Definition at line \fB1768\fP of file \fBwayland\-server\-protocol\&.cpp\fP\&. .SS "void shm_t::post_invalid_format (std::string const & msg)" .PP Post error: buffer format is not known\&. .PP Definition at line \fB1758\fP of file \fBwayland\-server\-protocol\&.cpp\fP\&. .SS "void shm_t::post_invalid_stride (std::string const & msg)" .PP Post error: invalid size or stride during pool or buffer creation\&. .PP Definition at line \fB1763\fP of file \fBwayland\-server\-protocol\&.cpp\fP\&. .SS "void wayland::server::resource_t::post_no_memory () const\fC [inherited]\fP" Post 'not enough memory' error to the client .PP 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\&. .SS "bool wayland::server::resource_t::proxy_has_object () const\fC [inherited]\fP" .PP Check whether this wrapper actually wraps an object\&. .PP \fBReturns\fP .RS 4 true if there is an underlying object, false if this wrapper is empty .RE .PP .SH "Member Data Documentation" .PP .SS "constexpr std::uint32_t wayland::server::shm_t::format_since_version = 1\fC [static]\fP, \fC [constexpr]\fP" .PP Minimum protocol version required for the \fBformat\fP function\&. .PP Definition at line \fB476\fP of file \fBwayland\-server\-protocol\&.hpp\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Wayland++ from the source code\&.