Reformat doc comments

Unify the way we document our APIs. See CONTRIBUTING.md for the
rules.
Simon Ser 3 years ago committed by Simon Zeni
parent 27383a1929
commit 28d89779af

@ -14,22 +14,25 @@
struct wlr_backend_impl; struct wlr_backend_impl;
/**
* A backend provides a set of input and output devices.
*/
struct wlr_backend { struct wlr_backend {
const struct wlr_backend_impl *impl; const struct wlr_backend_impl *impl;
struct { struct {
/** Raised when destroyed, passed the wlr_backend reference */ /** Raised when destroyed */
struct wl_signal destroy; struct wl_signal destroy;
/** Raised when new inputs are added, passed the wlr_input_device */ /** Raised when new inputs are added, passed the struct wlr_input_device */
struct wl_signal new_input; struct wl_signal new_input;
/** Raised when new outputs are added, passed the wlr_output */ /** Raised when new outputs are added, passed the struct wlr_output */
struct wl_signal new_output; struct wl_signal new_output;
} events; } events;
}; };
/** /**
* Automatically initializes the most suitable backend given the environment. * Automatically initializes the most suitable backend given the environment.
* Will always return a multibackend. The backend is created but not started. * Will always return a multi-backend. The backend is created but not started.
* Returns NULL on failure. * Returns NULL on failure.
*/ */
struct wlr_backend *wlr_backend_autocreate(struct wl_display *display); struct wlr_backend *wlr_backend_autocreate(struct wl_display *display);
@ -41,11 +44,11 @@ struct wlr_backend *wlr_backend_autocreate(struct wl_display *display);
bool wlr_backend_start(struct wlr_backend *backend); bool wlr_backend_start(struct wlr_backend *backend);
/** /**
* Destroy the backend and clean up all of its resources. Normally called * Destroy the backend and clean up all of its resources. Normally called
* automatically when the wl_display is destroyed. * automatically when the struct wl_display is destroyed.
*/ */
void wlr_backend_destroy(struct wlr_backend *backend); void wlr_backend_destroy(struct wlr_backend *backend);
/** /**
* Obtains the wlr_session reference from this backend if there is any. * Obtains the struct wlr_session reference from this backend if there is any.
* Might return NULL for backends that don't use a session. * Might return NULL for backends that don't use a session.
*/ */
struct wlr_session *wlr_backend_get_session(struct wlr_backend *backend); struct wlr_session *wlr_backend_get_session(struct wlr_backend *backend);

@ -48,8 +48,9 @@ bool wlr_output_is_drm(struct wlr_output *output);
uint32_t wlr_drm_connector_get_id(struct wlr_output *output); uint32_t wlr_drm_connector_get_id(struct wlr_output *output);
/** /**
* Tries to open non-master DRM FD. The compositor must not call `drmSetMaster` * Tries to open non-master DRM FD. The compositor must not call drmSetMaster()
* on the returned FD. * on the returned FD.
*
* Returns a valid opened DRM FD, or -1 on error. * Returns a valid opened DRM FD, or -1 on error.
*/ */
int wlr_drm_backend_get_non_master_fd(struct wlr_backend *backend); int wlr_drm_backend_get_non_master_fd(struct wlr_backend *backend);
@ -71,7 +72,7 @@ struct wlr_drm_lease *wlr_drm_create_lease(struct wlr_output **outputs,
void wlr_drm_lease_terminate(struct wlr_drm_lease *lease); void wlr_drm_lease_terminate(struct wlr_drm_lease *lease);
/** /**
* Add mode to the list of available modes * Add mode to the list of available modes.
*/ */
typedef struct _drmModeModeInfo drmModeModeInfo; typedef struct _drmModeModeInfo drmModeModeInfo;
struct wlr_output_mode *wlr_drm_connector_add_mode(struct wlr_output *output, struct wlr_output_mode *wlr_drm_connector_add_mode(struct wlr_output *output,

@ -18,9 +18,9 @@
*/ */
struct wlr_backend *wlr_headless_backend_create(struct wl_display *display); struct wlr_backend *wlr_headless_backend_create(struct wl_display *display);
/** /**
* Create a new headless output backed by an in-memory EGL framebuffer. You can * Create a new headless output.
* read pixels from this framebuffer via wlr_renderer_read_pixels but it is *
* otherwise not displayed. * The buffers presented on the output won't be displayed to the user.
*/ */
struct wlr_output *wlr_headless_add_output(struct wlr_backend *backend, struct wlr_output *wlr_headless_add_output(struct wlr_backend *backend,
unsigned int width, unsigned int height); unsigned int width, unsigned int height);

@ -23,8 +23,8 @@ struct wlr_backend_impl {
}; };
/** /**
* Initializes common state on a wlr_backend and sets the implementation to the * Initializes common state on a struct wlr_backend and sets the implementation
* provided wlr_backend_impl reference. * to the provided struct wlr_backend_impl reference.
*/ */
void wlr_backend_init(struct wlr_backend *backend, void wlr_backend_init(struct wlr_backend *backend,
const struct wlr_backend_impl *impl); const struct wlr_backend_impl *impl);

@ -18,7 +18,9 @@ struct wlr_input_device;
struct wlr_backend *wlr_libinput_backend_create(struct wl_display *display, struct wlr_backend *wlr_libinput_backend_create(struct wl_display *display,
struct wlr_session *session); struct wlr_session *session);
/** Gets the underlying libinput_device handle for the given wlr_input_device */ /**
* Gets the underlying struct libinput_device handle for the given input device.
*/
struct libinput_device *wlr_libinput_get_device_handle( struct libinput_device *wlr_libinput_get_device_handle(
struct wlr_input_device *dev); struct wlr_input_device *dev);

@ -79,36 +79,33 @@ struct wlr_device_change_event {
* This should not be called if another program is already in control * This should not be called if another program is already in control
* of the terminal (Xorg, another Wayland compositor, etc.). * of the terminal (Xorg, another Wayland compositor, etc.).
* *
* If libseat support is not enabled, or if a standalone backend is to be used,
* then you must have CAP_SYS_ADMIN or be root. It is safe to drop privileges
* after this is called.
*
* Returns NULL on error. * Returns NULL on error.
*/ */
struct wlr_session *wlr_session_create(struct wl_display *disp); struct wlr_session *wlr_session_create(struct wl_display *disp);
/* /*
* Closes a previously opened session and restores the virtual terminal. * Closes a previously opened session and restores the virtual terminal.
* You should call wlr_session_close_file on each files you opened * You should call wlr_session_close_file() on each files you opened
* with wlr_session_open_file before you call this. * with wlr_session_open_file() before you call this.
*/ */
void wlr_session_destroy(struct wlr_session *session); void wlr_session_destroy(struct wlr_session *session);
/* /*
* Opens the file at path. * Opens the file at path.
* This can only be used to open DRM or evdev (input) devices. *
* This can only be used to open DRM or evdev (input) devices. Files opened via
* this function must be closed by calling wlr_session_close_file().
* *
* When the session becomes inactive: * When the session becomes inactive:
*
* - DRM files lose their DRM master status * - DRM files lose their DRM master status
* - evdev files become invalid and should be closed * - evdev files become invalid and should be closed
*
* Returns -errno on error.
*/ */
struct wlr_device *wlr_session_open_file(struct wlr_session *session, struct wlr_device *wlr_session_open_file(struct wlr_session *session,
const char *path); const char *path);
/* /*
* Closes a file previously opened with wlr_session_open_file. * Closes a file previously opened with wlr_session_open_file().
*/ */
void wlr_session_close_file(struct wlr_session *session, void wlr_session_close_file(struct wlr_session *session,
struct wlr_device *device); struct wlr_device *device);

@ -9,18 +9,18 @@
struct wlr_input_device; struct wlr_input_device;
/** /**
* Creates a new wlr_wl_backend. This backend will be created with no outputs; * Creates a new Wayland backend. This backend will be created with no outputs;
* you must use wlr_wl_output_create to add them. * you must use wlr_wl_output_create() to add them.
* *
* The `remote` argument is the name of the host compositor wayland socket. Set * The `remote` argument is the name of the host compositor wayland socket. Set
* to NULL for the default behaviour (WAYLAND_DISPLAY env variable or wayland-0 * to NULL for the default behaviour (WAYLAND_DISPLAY env variable or wayland-0
* default) * default).
*/ */
struct wlr_backend *wlr_wl_backend_create(struct wl_display *display, struct wlr_backend *wlr_wl_backend_create(struct wl_display *display,
const char *remote); const char *remote);
/** /**
* Returns the remote wl_display used by the Wayland backend. * Returns the remote struct wl_display used by the Wayland backend.
*/ */
struct wl_display *wlr_wl_backend_get_remote_display(struct wlr_backend *backend); struct wl_display *wlr_wl_backend_get_remote_display(struct wlr_backend *backend);
@ -28,37 +28,37 @@ struct wl_display *wlr_wl_backend_get_remote_display(struct wlr_backend *backend
* Adds a new output to this backend. You may remove outputs by destroying them. * Adds a new output to this backend. You may remove outputs by destroying them.
* Note that if called before initializing the backend, this will return NULL * Note that if called before initializing the backend, this will return NULL
* and your outputs will be created during initialization (and given to you via * and your outputs will be created during initialization (and given to you via
* the output_add signal). * the new_output signal).
*/ */
struct wlr_output *wlr_wl_output_create(struct wlr_backend *backend); struct wlr_output *wlr_wl_output_create(struct wlr_backend *backend);
/** /**
* True if the given backend is a wlr_wl_backend. * Check whether the provided backend is a Wayland backend.
*/ */
bool wlr_backend_is_wl(struct wlr_backend *backend); bool wlr_backend_is_wl(struct wlr_backend *backend);
/** /**
* True if the given input device is a wlr_wl_input_device. * Check whether the provided input device is a Wayland input device.
*/ */
bool wlr_input_device_is_wl(struct wlr_input_device *device); bool wlr_input_device_is_wl(struct wlr_input_device *device);
/** /**
* True if the given output is a wlr_wl_output. * Check whether the provided output device is a Wayland output device.
*/ */
bool wlr_output_is_wl(struct wlr_output *output); bool wlr_output_is_wl(struct wlr_output *output);
/** /**
* Sets the title of a wlr_output which is a Wayland window. * Sets the title of a struct wlr_output which is a Wayland toplevel.
*/ */
void wlr_wl_output_set_title(struct wlr_output *output, const char *title); void wlr_wl_output_set_title(struct wlr_output *output, const char *title);
/** /**
* Returns the remote wl_surface used by the Wayland output. * Returns the remote struct wl_surface used by the Wayland output.
*/ */
struct wl_surface *wlr_wl_output_get_surface(struct wlr_output *output); struct wl_surface *wlr_wl_output_get_surface(struct wlr_output *output);
/** /**
* Returns the remote wl_seat for a Wayland input device. * Returns the remote struct wl_seat for a Wayland input device.
*/ */
struct wl_seat *wlr_wl_input_device_get_seat(struct wlr_input_device *dev); struct wl_seat *wlr_wl_input_device_get_seat(struct wlr_input_device *dev);

@ -11,11 +11,11 @@
struct wlr_input_device; struct wlr_input_device;
/** /**
* Creates a new wlr_x11_backend. This backend will be created with no outputs; * Creates a new X11 backend. This backend will be created with no outputs;
* you must use wlr_x11_output_create to add them. * you must use wlr_x11_output_create() to add them.
* *
* The `x11_display` argument is the name of the X Display socket. Set * The `x11_display` argument is the name of the X Display socket. Set
* to NULL for the default behaviour of XOpenDisplay. * to NULL for the default behaviour of XOpenDisplay().
*/ */
struct wlr_backend *wlr_x11_backend_create(struct wl_display *display, struct wlr_backend *wlr_x11_backend_create(struct wl_display *display,
const char *x11_display); const char *x11_display);
@ -24,27 +24,27 @@ struct wlr_backend *wlr_x11_backend_create(struct wl_display *display,
* Adds a new output to this backend. You may remove outputs by destroying them. * Adds a new output to this backend. You may remove outputs by destroying them.
* Note that if called before initializing the backend, this will return NULL * Note that if called before initializing the backend, this will return NULL
* and your outputs will be created during initialization (and given to you via * and your outputs will be created during initialization (and given to you via
* the output_add signal). * the new_output signal).
*/ */
struct wlr_output *wlr_x11_output_create(struct wlr_backend *backend); struct wlr_output *wlr_x11_output_create(struct wlr_backend *backend);
/** /**
* True if the given backend is a wlr_x11_backend. * Check whether this backend is an X11 backend.
*/ */
bool wlr_backend_is_x11(struct wlr_backend *backend); bool wlr_backend_is_x11(struct wlr_backend *backend);
/** /**
* True if the given input device is a wlr_x11_input_device. * Check whether this input device is an X11 input device.
*/ */
bool wlr_input_device_is_x11(struct wlr_input_device *device); bool wlr_input_device_is_x11(struct wlr_input_device *device);
/** /**
* True if the given output is a wlr_x11_output. * Check whether this output device is an X11 output device.
*/ */
bool wlr_output_is_x11(struct wlr_output *output); bool wlr_output_is_x11(struct wlr_output *output);
/** /**
* Sets the title of a wlr_output which is an X11 window. * Sets the title of a struct wlr_output which is an X11 window.
*/ */
void wlr_x11_output_set_title(struct wlr_output *output, const char *title); void wlr_x11_output_set_title(struct wlr_output *output, const char *title);

@ -31,16 +31,16 @@ struct wlr_buffer_resource_interface {
/** /**
* Initialize a buffer. This function should be called by producers. The * Initialize a buffer. This function should be called by producers. The
* initialized buffer is referenced: once the producer is done with the buffer * initialized buffer is referenced: once the producer is done with the buffer
* they should call wlr_buffer_drop. * they should call wlr_buffer_drop().
*/ */
void wlr_buffer_init(struct wlr_buffer *buffer, void wlr_buffer_init(struct wlr_buffer *buffer,
const struct wlr_buffer_impl *impl, int width, int height); const struct wlr_buffer_impl *impl, int width, int height);
/** /**
* Allows the registration of a wl_resource implementation. * Allows the registration of a struct wl_resource implementation.
* *
* The matching function will be called for the wl_resource when creating a * The matching function will be called for the struct wl_resource when creating
* wlr_buffer from a wl_resource. * a struct wlr_buffer from a struct wl_resource.
*/ */
void wlr_buffer_register_resource_interface( void wlr_buffer_register_resource_interface(
const struct wlr_buffer_resource_interface *iface); const struct wlr_buffer_resource_interface *iface);

@ -21,7 +21,7 @@ void wlr_keyboard_init(struct wlr_keyboard *keyboard,
const struct wlr_keyboard_impl *impl, const char *name); const struct wlr_keyboard_impl *impl, const char *name);
/** /**
* Cleans up all of the resources owned by wlr_keyboard. * Cleans up all of the resources owned by the struct wlr_keyboard.
*/ */
void wlr_keyboard_finish(struct wlr_keyboard *keyboard); void wlr_keyboard_finish(struct wlr_keyboard *keyboard);

@ -26,7 +26,7 @@
WLR_OUTPUT_STATE_SUBPIXEL) WLR_OUTPUT_STATE_SUBPIXEL)
/** /**
* A backend implementation of wlr_output. * A backend implementation of struct wlr_output.
* *
* The commit function is mandatory. Other functions are optional. * The commit function is mandatory. Other functions are optional.
*/ */
@ -39,7 +39,7 @@ struct wlr_output_impl {
* The hotspot indicates the offset that needs to be applied to the * The hotspot indicates the offset that needs to be applied to the
* top-left corner of the image to match the cursor position. In other * top-left corner of the image to match the cursor position. In other
* words, the image should be displayed at (x - hotspot_x, y - hotspot_y). * words, the image should be displayed at (x - hotspot_x, y - hotspot_y).
* The hotspot is given in the texture's coordinate space. * The hotspot is given in the buffer's coordinate space.
*/ */
bool (*set_cursor)(struct wlr_output *output, struct wlr_buffer *buffer, bool (*set_cursor)(struct wlr_output *output, struct wlr_buffer *buffer,
int hotspot_x, int hotspot_y); int hotspot_x, int hotspot_y);

@ -19,9 +19,11 @@ void wlr_tablet_pad_init(struct wlr_tablet_pad *pad,
const struct wlr_tablet_pad_impl *impl, const char *name); const struct wlr_tablet_pad_impl *impl, const char *name);
/** /**
* Cleans up the resources owned by a wlr_tablet_pad. * Cleans up the resources owned by a struct wlr_tablet_pad.
* This function will not clean the memory allocated by wlr_tablet_pad_group, *
* it's the responsibility of the caller to clean it. * This function will not clean the memory allocated by
* struct wlr_tablet_pad_group, it's the responsibility of the caller to clean
* it.
*/ */
void wlr_tablet_pad_finish(struct wlr_tablet_pad *pad); void wlr_tablet_pad_finish(struct wlr_tablet_pad *pad);

@ -37,7 +37,7 @@ struct wlr_allocator {
}; };
/** /**
* Creates the adequate wlr_allocator given a backend and a renderer * Creates the adequate struct wlr_allocator given a backend and a renderer.
*/ */
struct wlr_allocator *wlr_allocator_autocreate(struct wlr_backend *backend, struct wlr_allocator *wlr_allocator_autocreate(struct wlr_backend *backend,
struct wlr_renderer *renderer); struct wlr_renderer *renderer);
@ -50,7 +50,7 @@ void wlr_allocator_destroy(struct wlr_allocator *alloc);
* Allocate a new buffer. * Allocate a new buffer.
* *
* When the caller is done with it, they must unreference it by calling * When the caller is done with it, they must unreference it by calling
* wlr_buffer_drop. * wlr_buffer_drop().
* *
* The `format` passed in indicates the format to use and the list of * The `format` passed in indicates the format to use and the list of
* acceptable modifiers. The order in which modifiers are listed is not * acceptable modifiers. The order in which modifiers are listed is not

@ -51,7 +51,7 @@ struct wlr_drm_format_set {
void wlr_drm_format_set_finish(struct wlr_drm_format_set *set); void wlr_drm_format_set_finish(struct wlr_drm_format_set *set);
/** /**
* Return a pointer to a member of this `wlr_drm_format_set` of format * Return a pointer to a member of this struct wlr_drm_format_set of format
* `format`, or NULL if none exists. * `format`, or NULL if none exists.
*/ */
const struct wlr_drm_format *wlr_drm_format_set_get( const struct wlr_drm_format *wlr_drm_format_set_get(

@ -77,7 +77,7 @@ struct wlr_egl *wlr_egl_create_with_context(EGLDisplay display,
* Make the EGL context current. * Make the EGL context current.
* *
* Callers are expected to clear the current context when they are done by * Callers are expected to clear the current context when they are done by
* calling wlr_egl_unset_current. * calling wlr_egl_unset_current().
*/ */
bool wlr_egl_make_current(struct wlr_egl *egl); bool wlr_egl_make_current(struct wlr_egl *egl);

@ -77,13 +77,13 @@ void wlr_render_quad_with_matrix(struct wlr_renderer *r,
const float color[static 4], const float matrix[static 9]); const float color[static 4], const float matrix[static 9]);
/** /**
* Get the shared-memory formats supporting import usage. Buffers allocated * Get the shared-memory formats supporting import usage. Buffers allocated
* with a format from this list may be imported via wlr_texture_from_pixels. * with a format from this list may be imported via wlr_texture_from_pixels().
*/ */
const uint32_t *wlr_renderer_get_shm_texture_formats( const uint32_t *wlr_renderer_get_shm_texture_formats(
struct wlr_renderer *r, size_t *len); struct wlr_renderer *r, size_t *len);
/** /**
* Get the DMA-BUF formats supporting sampling usage. Buffers allocated with * Get the DMA-BUF formats supporting sampling usage. Buffers allocated with
* a format from this list may be imported via wlr_texture_from_dmabuf. * a format from this list may be imported via wlr_texture_from_dmabuf().
*/ */
const struct wlr_drm_format_set *wlr_renderer_get_dmabuf_texture_formats( const struct wlr_drm_format_set *wlr_renderer_get_dmabuf_texture_formats(
struct wlr_renderer *renderer); struct wlr_renderer *renderer);
@ -92,7 +92,7 @@ const struct wlr_drm_format_set *wlr_renderer_get_dmabuf_texture_formats(
* bytes. * bytes.
* *
* If `flags` is not NULl, the caller indicates that it accepts frame flags * If `flags` is not NULl, the caller indicates that it accepts frame flags
* defined in `enum wlr_renderer_read_pixels_flags`. * defined in enum wlr_renderer_read_pixels_flags.
*/ */
bool wlr_renderer_read_pixels(struct wlr_renderer *r, uint32_t fmt, bool wlr_renderer_read_pixels(struct wlr_renderer *r, uint32_t fmt,
uint32_t *flags, uint32_t stride, uint32_t width, uint32_t height, uint32_t *flags, uint32_t stride, uint32_t width, uint32_t height,
@ -107,7 +107,7 @@ bool wlr_renderer_init_wl_display(struct wlr_renderer *r,
struct wl_display *wl_display); struct wl_display *wl_display);
/** /**
* Initializes wl_shm on the provided wl_display. * Initializes wl_shm on the provided struct wl_display.
*/ */
bool wlr_renderer_init_wl_shm(struct wlr_renderer *r, bool wlr_renderer_init_wl_shm(struct wlr_renderer *r,
struct wl_display *wl_display); struct wl_display *wl_display);
@ -120,7 +120,9 @@ bool wlr_renderer_init_wl_shm(struct wlr_renderer *r,
int wlr_renderer_get_drm_fd(struct wlr_renderer *r); int wlr_renderer_get_drm_fd(struct wlr_renderer *r);
/** /**
* Destroys this wlr_renderer. Textures must be destroyed separately. * Destroys the renderer.
*
* Textures must be destroyed separately.
*/ */
void wlr_renderer_destroy(struct wlr_renderer *renderer); void wlr_renderer_destroy(struct wlr_renderer *renderer);

@ -51,7 +51,7 @@ bool wlr_texture_write_pixels(struct wlr_texture *texture,
const void *data); const void *data);
/** /**
* Destroys this wlr_texture. * Destroys the texture.
*/ */
void wlr_texture_destroy(struct wlr_texture *texture); void wlr_texture_destroy(struct wlr_texture *texture);

@ -27,8 +27,8 @@ struct wlr_shm_attributes {
/** /**
* Buffer capabilities. * Buffer capabilities.
* *
* These bits indicate the features supported by a wlr_buffer. There is one bit * These bits indicate the features supported by a struct wlr_buffer. There is
* per function in wlr_buffer_impl. * one bit per function in struct wlr_buffer_impl.
*/ */
enum wlr_buffer_cap { enum wlr_buffer_cap {
WLR_BUFFER_CAP_DATA_PTR = 1 << 0, WLR_BUFFER_CAP_DATA_PTR = 1 << 0,
@ -69,7 +69,7 @@ void wlr_buffer_drop(struct wlr_buffer *buffer);
/** /**
* Lock the buffer. This function should be called by consumers to make * Lock the buffer. This function should be called by consumers to make
* sure the buffer can be safely read from. Once the consumer is done with the * sure the buffer can be safely read from. Once the consumer is done with the
* buffer, they should call wlr_buffer_unlock. * buffer, they should call wlr_buffer_unlock().
*/ */
struct wlr_buffer *wlr_buffer_lock(struct wlr_buffer *buffer); struct wlr_buffer *wlr_buffer_lock(struct wlr_buffer *buffer);
/** /**
@ -82,7 +82,7 @@ void wlr_buffer_unlock(struct wlr_buffer *buffer);
* returns false. * returns false.
* *
* The returned DMA-BUF attributes are valid for the lifetime of the * The returned DMA-BUF attributes are valid for the lifetime of the
* wlr_buffer. The caller isn't responsible for cleaning up the DMA-BUF * struct wlr_buffer. The caller isn't responsible for cleaning up the DMA-BUF
* attributes. * attributes.
*/ */
bool wlr_buffer_get_dmabuf(struct wlr_buffer *buffer, bool wlr_buffer_get_dmabuf(struct wlr_buffer *buffer,
@ -92,16 +92,16 @@ bool wlr_buffer_get_dmabuf(struct wlr_buffer *buffer,
* memory, returns false. * memory, returns false.
* *
* The returned shared memory attributes are valid for the lifetime of the * The returned shared memory attributes are valid for the lifetime of the
* wlr_buffer. The caller isn't responsible for cleaning up the shared memory * struct wlr_buffer. The caller isn't responsible for cleaning up the shared
* attributes. * memory attributes.
*/ */
bool wlr_buffer_get_shm(struct wlr_buffer *buffer, bool wlr_buffer_get_shm(struct wlr_buffer *buffer,
struct wlr_shm_attributes *attribs); struct wlr_shm_attributes *attribs);
/** /**
* Transforms a wl_resource into a wlr_buffer and locks it. Once the caller is * Transforms a struct wl_resource into a struct wlr_buffer and locks it. Once
* done with the buffer, they must call wlr_buffer_unlock. * the caller is done with the buffer, they must call wlr_buffer_unlock().
* *
* The provided wl_resource must be a wl_buffer. * The provided struct wl_resource must be a wl_buffer.
*/ */
struct wlr_buffer *wlr_buffer_from_resource(struct wl_resource *resource); struct wlr_buffer *wlr_buffer_from_resource(struct wl_resource *resource);
@ -126,7 +126,7 @@ enum wlr_buffer_data_ptr_access_flag {
* *
* The returned pointer should be pointing to a valid memory region for the * The returned pointer should be pointing to a valid memory region for the
* operations specified in the flags. The returned pointer is only valid up to * operations specified in the flags. The returned pointer is only valid up to
* the next buffer_end_data_ptr_access call. * the next wlr_buffer_end_data_ptr_access() call.
*/ */
bool wlr_buffer_begin_data_ptr_access(struct wlr_buffer *buffer, uint32_t flags, bool wlr_buffer_begin_data_ptr_access(struct wlr_buffer *buffer, uint32_t flags,
void **data, uint32_t *format, size_t *stride); void **data, uint32_t *format, size_t *stride);
@ -157,8 +157,8 @@ struct wlr_client_buffer {
}; };
/** /**
* Creates a wlr_client_buffer from a given wlr_buffer by creating a texture * Creates a struct wlr_client_buffer from a given struct wlr_buffer by creating
* from it, and copying its wl_resource. * a texture from it, and copying its struct wl_resource.
*/ */
struct wlr_client_buffer *wlr_client_buffer_create(struct wlr_buffer *buffer, struct wlr_client_buffer *wlr_client_buffer_create(struct wlr_buffer *buffer,
struct wlr_renderer *renderer); struct wlr_renderer *renderer);

@ -147,7 +147,7 @@ struct wlr_surface {
struct wl_signal destroy; struct wl_signal destroy;
} events; } events;
struct wl_list current_outputs; // wlr_surface_output::link struct wl_list current_outputs; // wlr_surface_output.link
struct wlr_addon_set addons; struct wlr_addon_set addons;
void *data; void *data;
@ -243,9 +243,10 @@ void wlr_surface_send_frame_done(struct wlr_surface *surface,
void wlr_surface_get_extends(struct wlr_surface *surface, struct wlr_box *box); void wlr_surface_get_extends(struct wlr_surface *surface, struct wlr_box *box);
/** /**
* Get the wlr_surface corresponding to a wl_surface resource. This asserts * Get the struct wlr_surface corresponding to a wl_surface resource.
* that the resource is a valid wl_surface resource created by wlroots and *
* will never return NULL. * This asserts that the resource is a valid wl_surface resource created by
* wlroots and will never return NULL.
*/ */
struct wlr_surface *wlr_surface_from_resource(struct wl_resource *resource); struct wlr_surface *wlr_surface_from_resource(struct wl_resource *resource);
@ -281,7 +282,7 @@ void wlr_surface_get_buffer_source_box(struct wlr_surface *surface,
* Acquire a lock for the pending surface state. * Acquire a lock for the pending surface state.
* *
* The state won't be committed before the caller releases the lock. Instead, * The state won't be committed before the caller releases the lock. Instead,
* the state becomes cached. The caller needs to use wlr_surface_unlock_cached * the state becomes cached. The caller needs to use wlr_surface_unlock_cached()
* to release the lock. * to release the lock.
* *
* Returns a surface commit sequence number for the cached state. * Returns a surface commit sequence number for the cached state.

@ -18,12 +18,12 @@ struct wlr_input_device;
/** /**
* wlr_cursor implements the behavior of the "cursor", that is, the image on the * wlr_cursor implements the behavior of the "cursor", that is, the image on the
* screen typically moved about with a mouse or so. It provides tracking for * screen typically moved about with a mouse or so. It provides tracking for
* this in global coordinates, and integrates with wlr_output, * this in global coordinates, and integrates with struct wlr_output,
* wlr_output_layout, and wlr_input_device. You can use it to abstract multiple * struct wlr_output_layout, and struct wlr_input_device. You can use it to
* input devices over a single cursor, constrain cursor movement to the usable * abstract multiple input devices over a single cursor, constrain cursor
* area of a wlr_output_layout and communicate position updates to the hardware * movement to the usable area of a struct wlr_output_layout and communicate
* cursor, constrain specific input devices to specific outputs or regions of * position updates to the hardware cursor, constrain specific input devices to
* the screen, and so on. * specific outputs or regions of the screen, and so on.
*/ */
struct wlr_box; struct wlr_box;
@ -37,15 +37,15 @@ struct wlr_cursor {
* The interpretation of these signals is the responsibility of the * The interpretation of these signals is the responsibility of the
* compositor, but some helpers are provided for your benefit. If you * compositor, but some helpers are provided for your benefit. If you
* receive a relative motion event, for example, you may want to call * receive a relative motion event, for example, you may want to call
* wlr_cursor_move. If you receive an absolute event, call * wlr_cursor_move(). If you receive an absolute event, call
* wlr_cursor_warp_absolute. If you pass an input device into these * wlr_cursor_warp_absolute(). If you pass an input device into these
* functions, it will apply the region/output constraints associated with * functions, it will apply the region/output constraints associated with
* that device to the resulting cursor motion. If an output layout is * that device to the resulting cursor motion. If an output layout is
* attached, these functions will constrain the resulting cursor motion to * attached, these functions will constrain the resulting cursor motion to
* within the usable space of the output layout. * within the usable space of the output layout.
* *
* Re-broadcasting these signals to, for example, a wlr_seat, is also your * Re-broadcasting these signals to, for example, a struct wlr_seat, is also
* responsibility. * your responsibility.
*/ */
struct { struct {
struct wl_signal motion; struct wl_signal motion;
@ -191,13 +191,14 @@ void wlr_cursor_map_input_to_output(struct wlr_cursor *cur,
struct wlr_input_device *dev, struct wlr_output *output); struct wlr_input_device *dev, struct wlr_output *output);
/** /**
* Maps this cursor to an arbitrary region on the associated wlr_output_layout. * Maps this cursor to an arbitrary region on the associated
* struct wlr_output_layout.
*/ */
void wlr_cursor_map_to_region(struct wlr_cursor *cur, const struct wlr_box *box); void wlr_cursor_map_to_region(struct wlr_cursor *cur, const struct wlr_box *box);
/** /**
* Maps inputs from this input device to an arbitrary region on the associated * Maps inputs from this input device to an arbitrary region on the associated
* wlr_output_layout. * struct wlr_output_layout.
*/ */
void wlr_cursor_map_input_to_region(struct wlr_cursor *cur, void wlr_cursor_map_input_to_region(struct wlr_cursor *cur,
struct wlr_input_device *dev, const struct wlr_box *box); struct wlr_input_device *dev, const struct wlr_box *box);

@ -14,7 +14,7 @@
struct wlr_data_control_manager_v1 { struct wlr_data_control_manager_v1 {
struct wl_global *global; struct wl_global *global;
struct wl_list devices; // wlr_data_control_device_v1::link struct wl_list devices; // wlr_data_control_device_v1.link
struct { struct {
struct wl_signal destroy; struct wl_signal destroy;
@ -27,7 +27,7 @@ struct wlr_data_control_manager_v1 {
struct wlr_data_control_device_v1 { struct wlr_data_control_device_v1 {
struct wl_resource *resource; struct wl_resource *resource;
struct wlr_data_control_manager_v1 *manager; struct wlr_data_control_manager_v1 *manager;
struct wl_list link; // wlr_data_control_manager_v1::devices struct wl_list link; // wlr_data_control_manager_v1.devices
struct wlr_seat *seat; struct wlr_seat *seat;
struct wl_resource *selection_offer_resource; // current selection offer struct wl_resource *selection_offer_resource; // current selection offer

@ -43,7 +43,7 @@ struct wlr_data_offer {
struct wl_resource *resource; struct wl_resource *resource;
struct wlr_data_source *source; struct wlr_data_source *source;
enum wlr_data_offer_type type; enum wlr_data_offer_type type;
struct wl_list link; // wlr_seat::{selection_offers,drag_offers} struct wl_list link; // wlr_seat.{selection_offers,drag_offers}
uint32_t actions; uint32_t actions;
enum wl_data_device_manager_dnd_action preferred_action; enum wl_data_device_manager_dnd_action preferred_action;
@ -54,7 +54,7 @@ struct wlr_data_offer {
/** /**
* A data source implementation. Only the `send` function is mandatory. Refer to * A data source implementation. Only the `send` function is mandatory. Refer to
* the matching wl_data_source_* functions documentation to know what they do. * the matching `wlr_data_source_*` functions documentation to know what they do.
*/ */
struct wlr_data_source_impl { struct wlr_data_source_impl {
void (*send)(struct wlr_data_source *source, const char *mime_type, void (*send)(struct wlr_data_source *source, const char *mime_type,
@ -131,8 +131,8 @@ struct wlr_drag {
struct { struct {
struct wl_signal focus; struct wl_signal focus;
struct wl_signal motion; // wlr_drag_motion_event struct wl_signal motion; // struct wlr_drag_motion_event
struct wl_signal drop; // wlr_drag_drop_event struct wl_signal drop; // struct wlr_drag_drop_event
struct wl_signal destroy; struct wl_signal destroy;
} events; } events;
@ -155,7 +155,7 @@ struct wlr_drag_drop_event {
}; };
/** /**
* Create a wl data device manager global for this display. * Create a wl_data_device_manager global for this display.
*/ */
struct wlr_data_device_manager *wlr_data_device_manager_create( struct wlr_data_device_manager *wlr_data_device_manager_create(
struct wl_display *display); struct wl_display *display);
@ -181,7 +181,7 @@ void wlr_seat_set_selection(struct wlr_seat *seat,
/** /**
* Creates a new drag. To request to start the drag, call * Creates a new drag. To request to start the drag, call
* `wlr_seat_request_start_drag`. * wlr_seat_request_start_drag().
*/ */
struct wlr_drag *wlr_drag_create(struct wlr_seat_client *seat_client, struct wlr_drag *wlr_drag_create(struct wlr_seat_client *seat_client,
struct wlr_data_source *source, struct wlr_surface *icon_surface); struct wlr_data_source *source, struct wlr_surface *icon_surface);
@ -258,7 +258,7 @@ void wlr_data_source_dnd_finish(struct wlr_data_source *source);
* Notifies the data source that a target accepts the drag with the specified * Notifies the data source that a target accepts the drag with the specified
* action. * action.
* *
* This shouldn't be called after `wlr_data_source_dnd_drop` unless the * This shouldn't be called after wlr_data_source_dnd_drop() unless the
* drag-and-drop operation ended in an "ask" action. * drag-and-drop operation ended in an "ask" action.
*/ */
void wlr_data_source_dnd_action(struct wlr_data_source *source, void wlr_data_source_dnd_action(struct wlr_data_source *source,

@ -15,7 +15,7 @@ struct wlr_backend;
struct wlr_output; struct wlr_output;
struct wlr_drm_lease_v1_manager { struct wlr_drm_lease_v1_manager {
struct wl_list devices; // wlr_drm_lease_device_v1::link; struct wl_list devices; // wlr_drm_lease_device_v1.link
struct wl_display *display; struct wl_display *display;
struct wl_listener display_destroy; struct wl_listener display_destroy;
@ -23,9 +23,9 @@ struct wlr_drm_lease_v1_manager {
struct { struct {
/** /**
* Upon receiving this signal, call * Upon receiving this signal, call
* wlr_drm_lease_device_v1_grant_lease_request to grant a lease of the * wlr_drm_lease_device_v1_grant_lease_request() to grant a lease of the
* requested DRM resources, or * requested DRM resources, or
* wlr_drm_lease_device_v1_reject_lease_request to reject the request. * wlr_drm_lease_device_v1_reject_lease_request() to reject the request.
*/ */
struct wl_signal request; struct wl_signal request;
} events; } events;
@ -38,10 +38,10 @@ struct wlr_drm_lease_device_v1 {
struct wlr_drm_lease_v1_manager *manager; struct wlr_drm_lease_v1_manager *manager;
struct wlr_backend *backend; struct wlr_backend *backend;
struct wl_list connectors; // wlr_drm_lease_connector_v1::link struct wl_list connectors; // wlr_drm_lease_connector_v1.link
struct wl_list leases; // wlr_drm_lease_v1::link struct wl_list leases; // wlr_drm_lease_v1.link
struct wl_list requests; // wlr_drm_lease_request_v1::link struct wl_list requests; // wlr_drm_lease_request_v1.link
struct wl_list link; // wlr_drm_lease_v1_manager::devices struct wl_list link; // wlr_drm_lease_v1_manager.devices
struct wl_listener backend_destroy; struct wl_listener backend_destroy;
@ -51,7 +51,7 @@ struct wlr_drm_lease_device_v1 {
struct wlr_drm_lease_v1; struct wlr_drm_lease_v1;
struct wlr_drm_lease_connector_v1 { struct wlr_drm_lease_connector_v1 {
struct wl_list resources; // wl_resource_get_link struct wl_list resources; // wl_resource_get_link()
struct wlr_output *output; struct wlr_output *output;
struct wlr_drm_lease_device_v1 *device; struct wlr_drm_lease_device_v1 *device;
@ -60,7 +60,7 @@ struct wlr_drm_lease_connector_v1 {
struct wl_listener destroy; struct wl_listener destroy;
struct wl_list link; // wlr_drm_lease_device_v1::connectors struct wl_list link; // wlr_drm_lease_device_v1.connectors
}; };
struct wlr_drm_lease_request_v1 { struct wlr_drm_lease_request_v1 {
@ -76,7 +76,7 @@ struct wlr_drm_lease_request_v1 {
bool invalid; bool invalid;
struct wl_list link; // wlr_drm_lease_device_v1::requests struct wl_list link; // wlr_drm_lease_device_v1.requests
}; };
struct wlr_drm_lease_v1 { struct wlr_drm_lease_v1 {
@ -97,7 +97,8 @@ struct wlr_drm_lease_v1 {
/** /**
* Creates a DRM lease manager. A DRM lease device will be created for each * Creates a DRM lease manager. A DRM lease device will be created for each
* DRM backend supplied in case of a wlr_multi_backend. * DRM backend supplied in case of a struct wlr_multi_backend.
*
* Returns NULL if no DRM backend is supplied. * Returns NULL if no DRM backend is supplied.
*/ */
struct wlr_drm_lease_v1_manager *wlr_drm_lease_v1_manager_create( struct wlr_drm_lease_v1_manager *wlr_drm_lease_v1_manager_create(
@ -105,6 +106,7 @@ struct wlr_drm_lease_v1_manager *wlr_drm_lease_v1_manager_create(
/** /**
* Offers a wlr_output for lease. * Offers a wlr_output for lease.
*
* Returns false if the output can't be offered to lease. * Returns false if the output can't be offered to lease.
*/ */
bool wlr_drm_lease_v1_manager_offer_output( bool wlr_drm_lease_v1_manager_offer_output(
@ -120,7 +122,7 @@ void wlr_drm_lease_v1_manager_withdraw_output(
/** /**
* Grants a client's lease request. The lease device will then provision the * Grants a client's lease request. The lease device will then provision the
* DRM lease and transfer the file descriptor to the client. After calling this, * DRM lease and transfer the file descriptor to the client. After calling this,
* each wlr_output leased is destroyed, and will be re-issued through * each struct wlr_output leased is destroyed, and will be re-issued through
* wlr_backend.events.new_outputs when the lease is revoked. * wlr_backend.events.new_outputs when the lease is revoked.
* *
* This will return NULL without leasing any resources if the lease is invalid; * This will return NULL without leasing any resources if the lease is invalid;

@ -15,7 +15,7 @@
struct wlr_export_dmabuf_manager_v1 { struct wlr_export_dmabuf_manager_v1 {
struct wl_global *global; struct wl_global *global;
struct wl_list frames; // wlr_export_dmabuf_frame_v1::link struct wl_list frames; // wlr_export_dmabuf_frame_v1.link
struct wl_listener display_destroy; struct wl_listener display_destroy;
@ -27,7 +27,7 @@ struct wlr_export_dmabuf_manager_v1 {
struct wlr_export_dmabuf_frame_v1 { struct wlr_export_dmabuf_frame_v1 {
struct wl_resource *resource; struct wl_resource *resource;
struct wlr_export_dmabuf_manager_v1 *manager; struct wlr_export_dmabuf_manager_v1 *manager;
struct wl_list link; // wlr_export_dmabuf_manager_v1::frames struct wl_list link; // wlr_export_dmabuf_manager_v1.frames
struct wlr_output *output; struct wlr_output *output;

@ -15,8 +15,8 @@
struct wlr_foreign_toplevel_manager_v1 { struct wlr_foreign_toplevel_manager_v1 {
struct wl_event_loop *event_loop; struct wl_event_loop *event_loop;
struct wl_global *global; struct wl_global *global;
struct wl_list resources; // wl_resource_get_link struct wl_list resources; // wl_resource_get_link()
struct wl_list toplevels; // wlr_foreign_toplevel_handle_v1::link struct wl_list toplevels; // wlr_foreign_toplevel_handle_v1.link
struct wl_listener display_destroy; struct wl_listener display_destroy;
@ -35,7 +35,7 @@ enum wlr_foreign_toplevel_handle_v1_state {
}; };
struct wlr_foreign_toplevel_handle_v1_output { struct wlr_foreign_toplevel_handle_v1_output {
struct wl_list link; // wlr_foreign_toplevel_handle_v1::outputs struct wl_list link; // wlr_foreign_toplevel_handle_v1.outputs
struct wlr_output *output; struct wlr_output *output;
struct wlr_foreign_toplevel_handle_v1 *toplevel; struct wlr_foreign_toplevel_handle_v1 *toplevel;
@ -54,21 +54,21 @@ struct wlr_foreign_toplevel_handle_v1 {
char *title; char *title;
char *app_id; char *app_id;
struct wlr_foreign_toplevel_handle_v1 *parent; struct wlr_foreign_toplevel_handle_v1 *parent;
struct wl_list outputs; // wlr_foreign_toplevel_v1_output struct wl_list outputs; // wlr_foreign_toplevel_v1_output.link
uint32_t state; // wlr_foreign_toplevel_v1_state uint32_t state; // enum wlr_foreign_toplevel_v1_state
struct { struct {
// wlr_foreign_toplevel_handle_v1_maximized_event // struct wlr_foreign_toplevel_handle_v1_maximized_event
struct wl_signal request_maximize; struct wl_signal request_maximize;
//wlr_foreign_toplevel_handle_v1_minimized_event // struct wlr_foreign_toplevel_handle_v1_minimized_event
struct wl_signal request_minimize; struct wl_signal request_minimize;
//wlr_foreign_toplevel_handle_v1_activated_event // struct wlr_foreign_toplevel_handle_v1_activated_event
struct wl_signal request_activate; struct wl_signal request_activate;
//wlr_foreign_toplevel_handle_v1_fullscreen_event // struct wlr_foreign_toplevel_handle_v1_fullscreen_event
struct wl_signal request_fullscreen; struct wl_signal request_fullscreen;
struct wl_signal request_close; struct wl_signal request_close;
//wlr_foreign_toplevel_handle_v1_set_rectangle_event // struct wlr_foreign_toplevel_handle_v1_set_rectangle_event
struct wl_signal set_rectangle; struct wl_signal set_rectangle;
struct wl_signal destroy; struct wl_signal destroy;
} events; } events;
@ -108,12 +108,14 @@ struct wlr_foreign_toplevel_manager_v1 *wlr_foreign_toplevel_manager_v1_create(
struct wlr_foreign_toplevel_handle_v1 *wlr_foreign_toplevel_handle_v1_create( struct wlr_foreign_toplevel_handle_v1 *wlr_foreign_toplevel_handle_v1_create(
struct wlr_foreign_toplevel_manager_v1 *manager); struct wlr_foreign_toplevel_manager_v1 *manager);
/* Destroy the given toplevel handle, sending the closed event to any /**
* Destroy the given toplevel handle, sending the closed event to any
* client. Also, if the destroyed toplevel is set as a parent of any * client. Also, if the destroyed toplevel is set as a parent of any
* other valid toplevel, clients still holding a handle to both are * other valid toplevel, clients still holding a handle to both are
* sent a parent signal with NULL parent. If this is not desired, the * sent a parent signal with NULL parent. If this is not desired, the
* caller should ensure that any child toplevels are destroyed before * caller should ensure that any child toplevels are destroyed before
* the parent. */ * the parent.
*/
void wlr_foreign_toplevel_handle_v1_destroy( void wlr_foreign_toplevel_handle_v1_destroy(
struct wlr_foreign_toplevel_handle_v1 *toplevel); struct wlr_foreign_toplevel_handle_v1 *toplevel);
@ -136,11 +138,13 @@ void wlr_foreign_toplevel_handle_v1_set_activated(
void wlr_foreign_toplevel_handle_v1_set_fullscreen( void wlr_foreign_toplevel_handle_v1_set_fullscreen(
struct wlr_foreign_toplevel_handle_v1* toplevel, bool fullscreen); struct wlr_foreign_toplevel_handle_v1* toplevel, bool fullscreen);
/* Set the parent of a toplevel. If the parent changed from its previous /**
* Set the parent of a toplevel. If the parent changed from its previous
* value, also sends a parent event to all clients that hold handles to * value, also sends a parent event to all clients that hold handles to
* both toplevel and parent (no message is sent to clients that have * both toplevel and parent (no message is sent to clients that have
* previously destroyed their parent handle). NULL is allowed as the * previously destroyed their parent handle). NULL is allowed as the
* parent, meaning no parent exists. */ * parent, meaning no parent exists.
*/
void wlr_foreign_toplevel_handle_v1_set_parent( void wlr_foreign_toplevel_handle_v1_set_parent(
struct wlr_foreign_toplevel_handle_v1 *toplevel, struct wlr_foreign_toplevel_handle_v1 *toplevel,
struct wlr_foreign_toplevel_handle_v1 *parent); struct wlr_foreign_toplevel_handle_v1 *parent);

@ -17,7 +17,7 @@ struct wlr_fullscreen_shell_v1 {
struct { struct {
struct wl_signal destroy; struct wl_signal destroy;
// wlr_fullscreen_shell_v1_present_surface_event // struct wlr_fullscreen_shell_v1_present_surface_event
struct wl_signal present_surface; struct wl_signal present_surface;
} events; } events;

@ -5,7 +5,7 @@
struct wlr_gamma_control_manager_v1 { struct wlr_gamma_control_manager_v1 {
struct wl_global *global; struct wl_global *global;
struct wl_list controls; // wlr_gamma_control_v1::link struct wl_list controls; // wlr_gamma_control_v1.link
struct wl_listener display_destroy; struct wl_listener display_destroy;

@ -23,7 +23,7 @@
struct wlr_idle { struct wlr_idle {
struct wl_global *global; struct wl_global *global;
struct wl_list idle_timers; // wlr_idle_timeout::link struct wl_list idle_timers; // wlr_idle_timeout.link
struct wl_event_loop *event_loop; struct wl_event_loop *event_loop;
bool enabled; bool enabled;

@ -24,7 +24,7 @@
*/ */
struct wlr_idle_inhibit_manager_v1 { struct wlr_idle_inhibit_manager_v1 {
struct wl_list inhibitors; // wlr_idle_inhibit_inhibitor_v1::link struct wl_list inhibitors; // wlr_idle_inhibit_inhibitor_v1.link
struct wl_global *global; struct wl_global *global;
struct wl_listener display_destroy; struct wl_listener display_destroy;
@ -42,7 +42,7 @@ struct wlr_idle_inhibitor_v1 {
struct wl_resource *resource; struct wl_resource *resource;
struct wl_listener surface_destroy; struct wl_listener surface_destroy;
struct wl_list link; // wlr_idle_inhibit_manager_v1::inhibitors; struct wl_list link; // wlr_idle_inhibit_manager_v1.inhibitors
struct { struct {
struct wl_signal destroy; struct wl_signal destroy;

@ -51,10 +51,10 @@ struct wlr_input_method_v2 {
struct wl_listener seat_client_destroy; struct wl_listener seat_client_destroy;
struct { struct {
struct wl_signal commit; // (struct wlr_input_method_v2*) struct wl_signal commit; // struct wlr_input_method_v2 *
struct wl_signal new_popup_surface; // (struct wlr_input_popup_surface_v2*) struct wl_signal new_popup_surface; // struct wlr_input_popup_surface_v2 *
struct wl_signal grab_keyboard; // (struct wlr_input_method_keyboard_grab_v2*) struct wl_signal grab_keyboard; // struct wlr_input_method_keyboard_grab_v2 *
struct wl_signal destroy; // (struct wlr_input_method_v2*) struct wl_signal destroy; // struct wlr_input_method_v2 *
} events; } events;
}; };
@ -87,19 +87,19 @@ struct wlr_input_method_keyboard_grab_v2 {
struct wl_listener keyboard_destroy; struct wl_listener keyboard_destroy;
struct { struct {
struct wl_signal destroy; // (struct wlr_input_method_keyboard_grab_v2*) struct wl_signal destroy; // struct wlr_input_method_keyboard_grab_v2 *
} events; } events;
}; };
struct wlr_input_method_manager_v2 { struct wlr_input_method_manager_v2 {
struct wl_global *global; struct wl_global *global;
struct wl_list input_methods; // struct wlr_input_method_v2*::link struct wl_list input_methods; // struct wlr_input_method_v2.link
struct wl_listener display_destroy; struct wl_listener display_destroy;
struct { struct {
struct wl_signal input_method; // (struct wlr_input_method_v2*) struct wl_signal input_method; // struct wlr_input_method_v2 *
struct wl_signal destroy; // (struct wlr_input_method_manager_v2*) struct wl_signal destroy; // struct wlr_input_method_manager_v2 *
} events; } events;
}; };

@ -73,8 +73,8 @@ struct wlr_keyboard {
struct { struct {
/** /**
* The `key` event signals with a `wlr_event_keyboard_key` event that a * The `key` event signals with a struct wlr_event_keyboard_key_event
* key has been pressed or released on the keyboard. This event is * that a key has been pressed or released on the keyboard. This event is
* emitted before the xkb state of the keyboard has been updated * emitted before the xkb state of the keyboard has been updated
* (including modifiers). * (including modifiers).
*/ */
@ -82,9 +82,9 @@ struct wlr_keyboard {
/** /**
* The `modifiers` event signals that the modifier state of the * The `modifiers` event signals that the modifier state of the
* `wlr_keyboard` has been updated. At this time, you can read the * struct wlr_keyboard has been updated. At this time, you can read the
* modifier state of the `wlr_keyboard` and handle the updated state by * modifier state of the struct wlr_keyboard and handle the updated
* sending it to clients. * state by sending it to clients.
*/ */
struct wl_signal modifiers; struct wl_signal modifiers;
struct wl_signal keymap; struct wl_signal keymap;

@ -14,28 +14,28 @@
struct wlr_keyboard_group { struct wlr_keyboard_group {
struct wlr_keyboard keyboard; struct wlr_keyboard keyboard;
struct wl_list devices; // keyboard_group_device::link struct wl_list devices; // keyboard_group_device.link
struct wl_list keys; // keyboard_group_key::link struct wl_list keys; // keyboard_group_key.link
struct { struct {
/* /**
* Sent when a keyboard has entered the group with keys currently * Sent when a keyboard has entered the group with keys currently
* pressed that are not pressed by any other keyboard in the group. The * pressed that are not pressed by any other keyboard in the group. The
* data for this signal will be a wl_array containing the key codes. * data for this signal will be a struct wl_array containing the key
* This should be used to update the compositor's internal state. * codes. This should be used to update the compositor's internal state.
* Bindings should not be triggered based off of these key codes and * Bindings should not be triggered based off of these key codes and
* they should also not notify any surfaces of the key press. * they should also not notify any surfaces of the key press.
*/ */
struct wl_signal enter; struct wl_signal enter;
/* /**
* Sent when a keyboard has left the group with keys currently pressed * Sent when a keyboard has left the group with keys currently pressed
* that are not pressed by any other keyboard in the group. The data for * that are not pressed by any other keyboard in the group. The data for
* this signal will be a wl_array containing the key codes. This should * this signal will be a struct wl_array containing the key codes. This
* be used to update the compositor's internal state. Bindings should * should be used to update the compositor's internal state. Bindings
* not be triggered based off of these key codes. Additionally, surfaces * should not be triggered based off of these key codes. Additionally,
* should only be notified if they received a corresponding key press * surfaces should only be notified if they received a corresponding key
* for the key code. * press for the key code.
*/ */
struct wl_signal leave; struct wl_signal leave;
} events; } events;

@ -23,14 +23,14 @@
*/ */
struct wlr_keyboard_shortcuts_inhibit_manager_v1 { struct wlr_keyboard_shortcuts_inhibit_manager_v1 {
// wlr_keyboard_shortcuts_inhibitor_v1::link // wlr_keyboard_shortcuts_inhibitor_v1.link
struct wl_list inhibitors; struct wl_list inhibitors;
struct wl_global *global; struct wl_global *global;
struct wl_listener display_destroy; struct wl_listener display_destroy;
struct { struct {
struct wl_signal new_inhibitor; // wlr_keyboard_shortcuts_inhibitor_v1 struct wl_signal new_inhibitor; // struct wlr_keyboard_shortcuts_inhibitor_v1
struct wl_signal destroy; struct wl_signal destroy;
} events; } events;
@ -46,7 +46,7 @@ struct wlr_keyboard_shortcuts_inhibitor_v1 {
struct wl_listener surface_destroy; struct wl_listener surface_destroy;
struct wl_listener seat_destroy; struct wl_listener seat_destroy;
// wlr_keyboard_shortcuts_inhibit_manager_v1::inhibitors // wlr_keyboard_shortcuts_inhibit_manager_v1.inhibitors
struct wl_list link; struct wl_list link;
struct { struct {

@ -19,11 +19,11 @@
* wlr_layer_shell_v1 allows clients to arrange themselves in "layers" on the * wlr_layer_shell_v1 allows clients to arrange themselves in "layers" on the
* desktop in accordance with the wlr-layer-shell protocol. When a client is * desktop in accordance with the wlr-layer-shell protocol. When a client is
* added, the new_surface signal will be raised and passed a reference to our * added, the new_surface signal will be raised and passed a reference to our
* wlr_layer_surface_v1. At this time, the client will have configured the * struct wlr_layer_surface_v1. At this time, the client will have configured the
* surface as it desires, including information like desired anchors and * surface as it desires, including information like desired anchors and
* margins. The compositor should use this information to decide how to arrange * margins. The compositor should use this information to decide how to arrange
* the layer on-screen, then determine the dimensions of the layer and call * the layer on-screen, then determine the dimensions of the layer and call
* wlr_layer_surface_v1_configure. The client will then attach a buffer and * wlr_layer_surface_v1_configure(). The client will then attach a buffer and
* commit the surface, at which point the wlr_layer_surface_v1 map signal is * commit the surface, at which point the wlr_layer_surface_v1 map signal is
* raised and the compositor should begin rendering the surface. * raised and the compositor should begin rendering the surface.
*/ */
@ -69,7 +69,7 @@ struct wlr_layer_surface_v1_state {
}; };
struct wlr_layer_surface_v1_configure { struct wlr_layer_surface_v1_configure {
struct wl_list link; // wlr_layer_surface_v1::configure_list struct wl_list link; // wlr_layer_surface_v1.configure_list
uint32_t serial; uint32_t serial;
uint32_t width, height; uint32_t width, height;
@ -80,7 +80,7 @@ struct wlr_layer_surface_v1 {
struct wlr_output *output; struct wlr_output *output;
struct wl_resource *resource; struct wl_resource *resource;
struct wlr_layer_shell_v1 *shell; struct wlr_layer_shell_v1 *shell;
struct wl_list popups; // wlr_xdg_popup::link struct wl_list popups; // wlr_xdg_popup.link
char *namespace; char *namespace;
@ -93,9 +93,10 @@ struct wlr_layer_surface_v1 {
struct { struct {
/** /**
* The destroy signal indicates that the wlr_layer_surface is about to be * The destroy signal indicates that the struct wlr_layer_surface is
* freed. It is guaranteed that the unmap signal is raised before the destroy * about to be freed. It is guaranteed that the unmap signal is raised
* signal if the layer surface is destroyed while mapped. * before the destroy signal if the layer surface is destroyed while
* mapped.
*/ */
struct wl_signal destroy; struct wl_signal destroy;
/** /**
@ -114,7 +115,8 @@ struct wlr_layer_surface_v1 {
struct wl_signal unmap; struct wl_signal unmap;
/** /**
* The new_popup signal is raised when a new popup is created. The data * The new_popup signal is raised when a new popup is created. The data
* parameter passed to the listener is a pointer to the new wlr_xdg_popup. * parameter passed to the listener is a pointer to the new
* struct wlr_xdg_popup.
*/ */
struct wl_signal new_popup; struct wl_signal new_popup;
} events; } events;
@ -134,7 +136,7 @@ uint32_t wlr_layer_surface_v1_configure(struct wlr_layer_surface_v1 *surface,
/** /**
* Notify the client that the surface has been closed and destroy the * Notify the client that the surface has been closed and destroy the
* wlr_layer_surface_v1, rendering the resource inert. * struct wlr_layer_surface_v1, rendering the resource inert.
*/ */
void wlr_layer_surface_v1_destroy(struct wlr_layer_surface_v1 *surface); void wlr_layer_surface_v1_destroy(struct wlr_layer_surface_v1 *surface);
@ -178,7 +180,8 @@ struct wlr_surface *wlr_layer_surface_v1_popup_surface_at(
struct wlr_layer_surface_v1 *surface, double sx, double sy, struct wlr_layer_surface_v1 *surface, double sx, double sy,
double *sub_x, double *sub_y); double *sub_x, double *sub_y);
/** Get the corresponding wlr_layer_surface_v1 from a resource. /**
* Get the corresponding struct wlr_layer_surface_v1 from a resource.
* *
* Aborts if the resource doesn't have the correct type. * Aborts if the resource doesn't have the correct type.
*/ */

@ -35,8 +35,8 @@ struct wlr_dmabuf_v1_buffer {
bool wlr_dmabuf_v1_resource_is_buffer(struct wl_resource *buffer_resource); bool wlr_dmabuf_v1_resource_is_buffer(struct wl_resource *buffer_resource);
/** /**
* Returns the wlr_dmabuf_buffer if the given resource was created * Returns the struct wlr_dmabuf_buffer if the given resource was created
* via the linux-dmabuf buffer protocol * via the linux-dmabuf buffer protocol.
*/ */
struct wlr_dmabuf_v1_buffer *wlr_dmabuf_v1_buffer_from_buffer_resource( struct wlr_dmabuf_v1_buffer *wlr_dmabuf_v1_buffer_from_buffer_resource(
struct wl_resource *buffer_resource); struct wl_resource *buffer_resource);
@ -72,7 +72,7 @@ struct wlr_linux_dmabuf_v1 {
}; };
/** /**
* Create linux-dmabuf interface * Create linux-dmabuf interface.
*/ */
struct wlr_linux_dmabuf_v1 *wlr_linux_dmabuf_v1_create(struct wl_display *display, struct wlr_linux_dmabuf_v1 *wlr_linux_dmabuf_v1_create(struct wl_display *display,
struct wlr_renderer *renderer); struct wlr_renderer *renderer);

@ -108,9 +108,9 @@ struct wlr_output_impl;
* The `frame` event will be emitted when it is a good time for the compositor * The `frame` event will be emitted when it is a good time for the compositor
* to submit a new frame. * to submit a new frame.
* *
* To render a new frame, compositors should call `wlr_output_attach_render`, * To render a new frame, compositors should call wlr_output_attach_render(),
* render and call `wlr_output_commit`. No rendering should happen outside a * render and call wlr_output_commit(). No rendering should happen outside a
* `frame` event handler or before `wlr_output_attach_render`. * `frame` event handler or before wlr_output_attach_render().
*/ */
struct wlr_output { struct wlr_output {
const struct wlr_output_impl *impl; const struct wlr_output_impl *impl;
@ -259,7 +259,7 @@ struct wlr_surface;
* emit `frame` events. * emit `frame` events.
* *
* Whether an output is enabled is double-buffered state, see * Whether an output is enabled is double-buffered state, see
* `wlr_output_commit`. * wlr_output_commit().
*/ */
void wlr_output_enable(struct wlr_output *output, bool enable); void wlr_output_enable(struct wlr_output *output, bool enable);
void wlr_output_create_global(struct wlr_output *output); void wlr_output_create_global(struct wlr_output *output);
@ -268,8 +268,8 @@ void wlr_output_destroy_global(struct wlr_output *output);
* Initialize the output's rendering subsystem with the provided allocator and * Initialize the output's rendering subsystem with the provided allocator and
* renderer. Can only be called once. * renderer. Can only be called once.
* *
* Call this function prior to any call to wlr_output_attach_render, * Call this function prior to any call to wlr_output_attach_render(),
* wlr_output_commit or wlr_output_cursor_create. * wlr_output_commit() or wlr_output_cursor_create().
* *
* The buffer capabilities of the provided must match the capabilities of the * The buffer capabilities of the provided must match the capabilities of the
* output's backend. Returns false otherwise. * output's backend. Returns false otherwise.
@ -284,7 +284,7 @@ struct wlr_output_mode *wlr_output_preferred_mode(struct wlr_output *output);
/** /**
* Sets the output mode. The output needs to be enabled. * Sets the output mode. The output needs to be enabled.
* *
* Mode is double-buffered state, see `wlr_output_commit`. * Mode is double-buffered state, see wlr_output_commit().
*/ */
void wlr_output_set_mode(struct wlr_output *output, void wlr_output_set_mode(struct wlr_output *output,
struct wlr_output_mode *mode); struct wlr_output_mode *mode);
@ -293,14 +293,14 @@ void wlr_output_set_mode(struct wlr_output *output,
* Setting `refresh` to zero lets the backend pick a preferred value. The * Setting `refresh` to zero lets the backend pick a preferred value. The
* output needs to be enabled. * output needs to be enabled.
* *
* Custom mode is double-buffered state, see `wlr_output_commit`. * Custom mode is double-buffered state, see wlr_output_commit().
*/ */
void wlr_output_set_custom_mode(struct wlr_output *output, int32_t width, void wlr_output_set_custom_mode(struct wlr_output *output, int32_t width,
int32_t height, int32_t refresh); int32_t height, int32_t refresh);
/** /**
* Sets a transform for the output. * Sets a transform for the output.
* *
* Transform is double-buffered state, see `wlr_output_commit`. * Transform is double-buffered state, see wlr_output_commit().
*/ */
void wlr_output_set_transform(struct wlr_output *output, void wlr_output_set_transform(struct wlr_output *output,
enum wl_output_transform transform); enum wl_output_transform transform);
@ -311,7 +311,7 @@ void wlr_output_set_transform(struct wlr_output *output,
* When enabled, compositors can submit frames a little bit later than the * When enabled, compositors can submit frames a little bit later than the
* deadline without dropping a frame. * deadline without dropping a frame.
* *
* Adaptive sync is double-buffered state, see `wlr_output_commit`. * Adaptive sync is double-buffered state, see wlr_output_commit().
*/ */
void wlr_output_enable_adaptive_sync(struct wlr_output *output, bool enabled); void wlr_output_enable_adaptive_sync(struct wlr_output *output, bool enabled);
/** /**
@ -323,17 +323,17 @@ void wlr_output_enable_adaptive_sync(struct wlr_output *output, bool enabled);
* hardware and software permit this. * hardware and software permit this.
* *
* This only affects the format of the output buffer used when rendering, * This only affects the format of the output buffer used when rendering,
* as with `wlr_output_attach_render`. It has no impact on the cursor buffer * as with wlr_output_attach_render(). It has no impact on the cursor buffer
* format, or on the formats supported for direct scan-out (see also * format, or on the formats supported for direct scan-out (see also
* `wlr_output_attach_buffer`). * wlr_output_attach_buffer()).
* *
* This format is double-buffered state, see `wlr_output_commit`. * This format is double-buffered state, see wlr_output_commit().
*/ */
void wlr_output_set_render_format(struct wlr_output *output, uint32_t format); void wlr_output_set_render_format(struct wlr_output *output, uint32_t format);
/** /**
* Sets a scale for the output. * Sets a scale for the output.
* *
* Scale is double-buffered state, see `wlr_output_commit`. * Scale is double-buffered state, see wlr_output_commit().
*/ */
void wlr_output_set_scale(struct wlr_output *output, float scale); void wlr_output_set_scale(struct wlr_output *output, float scale);
void wlr_output_set_subpixel(struct wlr_output *output, void wlr_output_set_subpixel(struct wlr_output *output,
@ -370,22 +370,22 @@ void wlr_output_effective_resolution(struct wlr_output *output,
/** /**
* Attach the renderer's buffer to the output. Compositors must call this * Attach the renderer's buffer to the output. Compositors must call this
* function before rendering. After they are done rendering, they should call * function before rendering. After they are done rendering, they should call
* `wlr_output_commit` to submit the new frame. The output needs to be * wlr_output_commit() to submit the new frame. The output needs to be
* enabled. * enabled.
* *
* If non-NULL, `buffer_age` is set to the drawing buffer age in number of * If non-NULL, `buffer_age` is set to the drawing buffer age in number of
* frames or -1 if unknown. This is useful for damage tracking. * frames or -1 if unknown. This is useful for damage tracking.
* *
* If the compositor decides not to render after calling this function, it * If the compositor decides not to render after calling this function, it
* must call wlr_output_rollback. * must call wlr_output_rollback().
*/ */
bool wlr_output_attach_render(struct wlr_output *output, int *buffer_age); bool wlr_output_attach_render(struct wlr_output *output, int *buffer_age);
/** /**
* Attach a buffer to the output. Compositors should call `wlr_output_commit` * Attach a buffer to the output. Compositors should call wlr_output_commit()
* to submit the new frame. The output needs to be enabled. * to submit the new frame. The output needs to be enabled.
* *
* Not all backends support direct scan-out on all buffers. Compositors can * Not all backends support direct scan-out on all buffers. Compositors can
* check whether a buffer is supported by calling `wlr_output_test`. * check whether a buffer is supported by calling wlr_output_test().
*/ */
void wlr_output_attach_buffer(struct wlr_output *output, void wlr_output_attach_buffer(struct wlr_output *output,
struct wlr_buffer *buffer); struct wlr_buffer *buffer);
@ -409,14 +409,14 @@ void wlr_output_set_damage(struct wlr_output *output,
pixman_region32_t *damage); pixman_region32_t *damage);
/** /**
* Test whether the pending output state would be accepted by the backend. If * Test whether the pending output state would be accepted by the backend. If
* this function returns true, `wlr_output_commit` can only fail due to a * this function returns true, wlr_output_commit() can only fail due to a
* runtime error. * runtime error.
* *
* This function doesn't mutate the pending state. * This function doesn't mutate the pending state.
*/ */
bool wlr_output_test(struct wlr_output *output); bool wlr_output_test(struct wlr_output *output);
/** /**
* Commit the pending output state. If `wlr_output_attach_render` has been * Commit the pending output state. If wlr_output_attach_render() has been
* called, the pending frame will be submitted for display and a `frame` event * called, the pending frame will be submitted for display and a `frame` event
* will be scheduled. * will be scheduled.
* *
@ -439,11 +439,11 @@ size_t wlr_output_get_gamma_size(struct wlr_output *output);
/** /**
* Sets the gamma table for this output. `r`, `g` and `b` are gamma ramps for * Sets the gamma table for this output. `r`, `g` and `b` are gamma ramps for
* red, green and blue. `size` is the length of the ramps and must not exceed * red, green and blue. `size` is the length of the ramps and must not exceed
* the value returned by `wlr_output_get_gamma_size`. * the value returned by wlr_output_get_gamma_size().
* *
* Providing zero-sized ramps resets the gamma table. * Providing zero-sized ramps resets the gamma table.
* *
* The gamma table is double-buffered state, see `wlr_output_commit`. * The gamma table is double-buffered state, see wlr_output_commit().
*/ */
void wlr_output_set_gamma(struct wlr_output *output, size_t size, void wlr_output_set_gamma(struct wlr_output *output, size_t size,
const uint16_t *r, const uint16_t *g, const uint16_t *b); const uint16_t *r, const uint16_t *g, const uint16_t *b);

@ -29,9 +29,9 @@ struct wlr_box;
* to submit a new frame. * to submit a new frame.
* *
* To render a new frame, compositors should call * To render a new frame, compositors should call
* `wlr_output_damage_attach_render`, render and call `wlr_output_commit`. No * wlr_output_damage_attach_render(), render and call wlr_output_commit(). No
* rendering should happen outside a `frame` event handler or before * rendering should happen outside a `frame` event handler or before
* `wlr_output_damage_attach_render`. * wlr_output_damage_attach_render().
*/ */
struct wlr_output_damage { struct wlr_output_damage {
struct wlr_output *output; struct wlr_output *output;
@ -64,7 +64,7 @@ void wlr_output_damage_destroy(struct wlr_output_damage *output_damage);
/** /**
* Attach the renderer's buffer to the output. Compositors must call this * Attach the renderer's buffer to the output. Compositors must call this
* function before rendering. After they are done rendering, they should call * function before rendering. After they are done rendering, they should call
* `wlr_output_set_damage` and `wlr_output_commit` to submit the new frame. * wlr_output_set_damage() and wlr_output_commit() to submit the new frame.
* *
* `needs_frame` will be set to true if a frame should be submitted. `damage` * `needs_frame` will be set to true if a frame should be submitted. `damage`
* will be set to the region of the output that needs to be repainted, in * will be set to the region of the output that needs to be repainted, in

@ -18,10 +18,10 @@ struct wlr_box;
/** /**
* Helper to arrange outputs in a 2D coordinate space. The output effective * Helper to arrange outputs in a 2D coordinate space. The output effective
* resolution is used, see wlr_output_effective_resolution. * resolution is used, see wlr_output_effective_resolution().
* *
* Outputs added to the output layout are automatically exposed to clients (see * Outputs added to the output layout are automatically exposed to clients (see
* wlr_output_create_global). They are no longer exposed when removed from the * wlr_output_create_global()). They are no longer exposed when removed from the
* layout. * layout.
*/ */
struct wlr_output_layout { struct wlr_output_layout {
@ -115,7 +115,7 @@ void wlr_output_layout_get_box(struct wlr_output_layout *layout,
* sensible location in the layout. The coordinates of the output in the layout * sensible location in the layout. The coordinates of the output in the layout
* may adjust dynamically when the layout changes. If the output is already in * may adjust dynamically when the layout changes. If the output is already in
* the layout, it will become auto configured. If the position of the output is * the layout, it will become auto configured. If the position of the output is
* set such as with `wlr_output_layout_move()`, the output will become manually * set such as with wlr_output_layout_move(), the output will become manually
* configured. * configured.
*/ */
void wlr_output_layout_add_auto(struct wlr_output_layout *layout, void wlr_output_layout_add_auto(struct wlr_output_layout *layout,

@ -16,9 +16,9 @@
struct wlr_output_manager_v1 { struct wlr_output_manager_v1 {
struct wl_display *display; struct wl_display *display;
struct wl_global *global; struct wl_global *global;
struct wl_list resources; // wl_resource_get_link struct wl_list resources; // wl_resource_get_link()
struct wl_list heads; // wlr_output_head_v1::link struct wl_list heads; // wlr_output_head_v1.link
uint32_t serial; uint32_t serial;
bool current_configuration_dirty; bool current_configuration_dirty;
@ -33,8 +33,8 @@ struct wlr_output_manager_v1 {
* event data). That is, the compositor is responsible for destroying * event data). That is, the compositor is responsible for destroying
* the configuration. * the configuration.
*/ */
struct wl_signal apply; // wlr_output_configuration_v1 struct wl_signal apply; // struct wlr_output_configuration_v1
struct wl_signal test; // wlr_output_configuration_v1 struct wl_signal test; // struct wlr_output_configuration_v1
struct wl_signal destroy; struct wl_signal destroy;
} events; } events;
@ -61,16 +61,16 @@ struct wlr_output_head_v1_state {
struct wlr_output_head_v1 { struct wlr_output_head_v1 {
struct wlr_output_head_v1_state state; struct wlr_output_head_v1_state state;
struct wlr_output_manager_v1 *manager; struct wlr_output_manager_v1 *manager;
struct wl_list link; // wlr_output_manager_v1::heads struct wl_list link; // wlr_output_manager_v1.heads
struct wl_list resources; // wl_resource_get_link struct wl_list resources; // wl_resource_get_link()
struct wl_list mode_resources; // wl_resource_get_link struct wl_list mode_resources; // wl_resource_get_link()
struct wl_listener output_destroy; struct wl_listener output_destroy;
}; };
struct wlr_output_configuration_v1 { struct wlr_output_configuration_v1 {
struct wl_list heads; // wlr_output_configuration_head_v1::link struct wl_list heads; // wlr_output_configuration_head_v1.link
// client state // client state
struct wlr_output_manager_v1 *manager; struct wlr_output_manager_v1 *manager;
@ -83,7 +83,7 @@ struct wlr_output_configuration_v1 {
struct wlr_output_configuration_head_v1 { struct wlr_output_configuration_head_v1 {
struct wlr_output_head_v1_state state; struct wlr_output_head_v1_state state;
struct wlr_output_configuration_v1 *config; struct wlr_output_configuration_v1 *config;
struct wl_list link; // wlr_output_configuration_v1::heads struct wl_list link; // wlr_output_configuration_v1.heads
// client state // client state
struct wl_resource *resource; // can be NULL if finalized or disabled struct wl_resource *resource; // can be NULL if finalized or disabled
@ -93,7 +93,7 @@ struct wlr_output_configuration_head_v1 {
/** /**
* Create a new output manager. The compositor is responsible for calling * Create a new output manager. The compositor is responsible for calling
* `wlr_output_manager_v1_set_configuration` whenever the current output * wlr_output_manager_v1_set_configuration() whenever the current output
* configuration changes. * configuration changes.
*/ */
struct wlr_output_manager_v1 *wlr_output_manager_v1_create( struct wlr_output_manager_v1 *wlr_output_manager_v1_create(
@ -111,8 +111,8 @@ void wlr_output_manager_v1_set_configuration(
/** /**
* Create a new, empty output configuration. Compositors should add current head * Create a new, empty output configuration. Compositors should add current head
* status with `wlr_output_configuration_head_v1_create`. They can then call * status with wlr_output_configuration_head_v1_create(). They can then call
* `wlr_output_manager_v1_set_configuration`. * wlr_output_manager_v1_set_configuration().
*/ */
struct wlr_output_configuration_v1 *wlr_output_configuration_v1_create(void); struct wlr_output_configuration_v1 *wlr_output_configuration_v1_create(void);
void wlr_output_configuration_v1_destroy( void wlr_output_configuration_v1_destroy(

@ -6,12 +6,12 @@
struct wlr_output_power_manager_v1 { struct wlr_output_power_manager_v1 {
struct wl_global *global; struct wl_global *global;
struct wl_list output_powers; // wlr_output_power_v1::link struct wl_list output_powers; // wlr_output_power_v1.link
struct wl_listener display_destroy; struct wl_listener display_destroy;
struct { struct {
struct wl_signal set_mode; // wlr_output_power_v1_set_mode_event struct wl_signal set_mode; // struct wlr_output_power_v1_set_mode_event
struct wl_signal destroy; struct wl_signal destroy;
} events; } events;
@ -22,7 +22,7 @@ struct wlr_output_power_v1 {
struct wl_resource *resource; struct wl_resource *resource;
struct wlr_output *output; struct wlr_output *output;
struct wlr_output_power_manager_v1 *manager; struct wlr_output_power_manager_v1 *manager;
struct wl_list link; struct wl_list link; // wlr_output_power_manager_v1.output_powers
struct wl_listener output_destroy_listener; struct wl_listener output_destroy_listener;
struct wl_listener output_commit_listener; struct wl_listener output_commit_listener;

@ -53,7 +53,7 @@ struct wlr_pointer_constraint_v1 {
struct wl_listener surface_destroy; struct wl_listener surface_destroy;
struct wl_listener seat_destroy; struct wl_listener seat_destroy;
struct wl_list link; // wlr_pointer_constraints_v1::constraints struct wl_list link; // wlr_pointer_constraints_v1.constraints
struct { struct {
/** /**
@ -69,13 +69,13 @@ struct wlr_pointer_constraint_v1 {
struct wlr_pointer_constraints_v1 { struct wlr_pointer_constraints_v1 {
struct wl_global *global; struct wl_global *global;
struct wl_list constraints; // wlr_pointer_constraint_v1::link struct wl_list constraints; // wlr_pointer_constraint_v1.link
struct { struct {
/** /**
* Called when a new pointer constraint is created. * Called when a new pointer constraint is created.
* *
* data: struct wlr_pointer_constraint_v1 * * The data pointer is a struct wlr_pointer_constraint_v1.
*/ */
struct wl_signal new_constraint; struct wl_signal new_constraint;
} events; } events;

@ -16,9 +16,9 @@ struct wlr_surface;
struct wlr_pointer_gestures_v1 { struct wlr_pointer_gestures_v1 {
struct wl_global *global; struct wl_global *global;
struct wl_list swipes; // wl_resource_get_link struct wl_list swipes; // wl_resource_get_link()
struct wl_list pinches; // wl_resource_get_link struct wl_list pinches; // wl_resource_get_link()
struct wl_list holds; // wl_resource_get_link struct wl_list holds; // wl_resource_get_link()
struct wl_listener display_destroy; struct wl_listener display_destroy;

@ -31,10 +31,10 @@ struct wlr_presentation {
}; };
struct wlr_presentation_feedback { struct wlr_presentation_feedback {
struct wl_list resources; // wl_resource_get_link struct wl_list resources; // wl_resource_get_link()
// Only when the wlr_presentation_surface_sampled_on_output helper has been // Only when the wlr_presentation_surface_sampled_on_output() helper has
// called // been called.
struct wlr_output *output; struct wlr_output *output;
bool output_committed; bool output_committed;
uint32_t output_commit_seq; uint32_t output_commit_seq;
@ -50,7 +50,7 @@ struct wlr_presentation_event {
uint32_t tv_nsec; uint32_t tv_nsec;
uint32_t refresh; uint32_t refresh;
uint64_t seq; uint64_t seq;
uint32_t flags; // wp_presentation_feedback_kind uint32_t flags; // enum wp_presentation_feedback_kind
}; };
struct wlr_backend; struct wlr_backend;
@ -64,8 +64,8 @@ struct wlr_presentation *wlr_presentation_create(struct wl_display *display,
* contents (e.g. when rendering the surface's current texture, when * contents (e.g. when rendering the surface's current texture, when
* referencing its current buffer, or when directly scanning out its current * referencing its current buffer, or when directly scanning out its current
* buffer). A wlr_presentation_feedback is returned. The compositor should call * buffer). A wlr_presentation_feedback is returned. The compositor should call
* wlr_presentation_feedback_send_presented if this content has been displayed, * wlr_presentation_feedback_send_presented() if this content has been displayed,
* then wlr_presentation_feedback_destroy. * then wlr_presentation_feedback_destroy().
* *
* NULL is returned if the client hasn't requested presentation feedback for * NULL is returned if the client hasn't requested presentation feedback for
* this surface. * this surface.
@ -79,7 +79,7 @@ void wlr_presentation_feedback_destroy(
struct wlr_presentation_feedback *feedback); struct wlr_presentation_feedback *feedback);
/** /**
* Fill a wlr_presentation_event from a wlr_output_event_present. * Fill a wlr_presentation_event from a struct wlr_output_event_present.
*/ */
void wlr_presentation_event_from_output(struct wlr_presentation_event *event, void wlr_presentation_event_from_output(struct wlr_presentation_event *event,
const struct wlr_output_event_present *output_event); const struct wlr_output_event_present *output_event);
@ -87,9 +87,9 @@ void wlr_presentation_event_from_output(struct wlr_presentation_event *event,
/** /**
* Mark the current surface's buffer as sampled on the given output. * Mark the current surface's buffer as sampled on the given output.
* *
* Instead of calling wlr_presentation_surface_sampled and managing the * Instead of calling wlr_presentation_surface_sampled() and managing the
* wlr_presentation_feedback itself, the compositor can call this function * struct wlr_presentation_feedback itself, the compositor can call this function
* before a wlr_output_commit call to indicate that the surface's current * before a wlr_output_commit() call to indicate that the surface's current
* contents will be displayed on the output. * contents will be displayed on the output.
*/ */
void wlr_presentation_surface_sampled_on_output( void wlr_presentation_surface_sampled_on_output(

@ -14,7 +14,7 @@
struct wlr_primary_selection_v1_device_manager { struct wlr_primary_selection_v1_device_manager {
struct wl_global *global; struct wl_global *global;
struct wl_list devices; // wlr_primary_selection_v1_device::link struct wl_list devices; // wlr_primary_selection_v1_device.link
struct wl_listener display_destroy; struct wl_listener display_destroy;
@ -31,10 +31,10 @@ struct wlr_primary_selection_v1_device_manager {
struct wlr_primary_selection_v1_device { struct wlr_primary_selection_v1_device {
struct wlr_primary_selection_v1_device_manager *manager; struct wlr_primary_selection_v1_device_manager *manager;
struct wlr_seat *seat; struct wlr_seat *seat;
struct wl_list link; // wlr_primary_selection_v1_device_manager::devices struct wl_list link; // wlr_primary_selection_v1_device_manager.devices
struct wl_list resources; // wl_resource_get_link struct wl_list resources; // wl_resource_get_link()
struct wl_list offers; // wl_resource_get_link struct wl_list offers; // wl_resource_get_link()
struct wl_listener seat_destroy; struct wl_listener seat_destroy;
struct wl_listener seat_focus_change; struct wl_listener seat_focus_change;

@ -23,11 +23,11 @@
*/ */
struct wlr_relative_pointer_manager_v1 { struct wlr_relative_pointer_manager_v1 {
struct wl_global *global; struct wl_global *global;
struct wl_list relative_pointers; // wlr_relative_pointer_v1::link struct wl_list relative_pointers; // wlr_relative_pointer_v1.link
struct { struct {
struct wl_signal destroy; struct wl_signal destroy;
struct wl_signal new_relative_pointer; // wlr_relative_pointer_v1 struct wl_signal new_relative_pointer; // struct wlr_relative_pointer_v1
} events; } events;
struct wl_listener display_destroy_listener; struct wl_listener display_destroy_listener;
@ -45,7 +45,7 @@ struct wlr_relative_pointer_v1 {
struct wl_resource *resource; struct wl_resource *resource;
struct wl_resource *pointer_resource; struct wl_resource *pointer_resource;
struct wlr_seat *seat; struct wlr_seat *seat;
struct wl_list link; // wlr_relative_pointer_manager_v1::relative_pointers struct wl_list link; // wlr_relative_pointer_manager_v1.relative_pointers
struct { struct {
struct wl_signal destroy; struct wl_signal destroy;

@ -258,7 +258,7 @@ struct wlr_scene *wlr_scene_create(void);
* Handle presentation feedback for all surfaces in the scene, assuming that * Handle presentation feedback for all surfaces in the scene, assuming that
* scene outputs and the scene rendering functions are used. * scene outputs and the scene rendering functions are used.
* *
* Asserts that a wlr_presentation hasn't already been set for the scene. * Asserts that a struct wlr_presentation hasn't already been set for the scene.
*/ */
void wlr_scene_set_presentation(struct wlr_scene *scene, void wlr_scene_set_presentation(struct wlr_scene *scene,
struct wlr_presentation *presentation); struct wlr_presentation *presentation);
@ -273,7 +273,7 @@ struct wlr_scene_tree *wlr_scene_tree_create(struct wlr_scene_node *parent);
* *
* The child sub-surfaces are ignored. * The child sub-surfaces are ignored.
* *
* wlr_surface_send_enter()/wlr_surface_send_leave() will be called * wlr_surface_send_enter() and wlr_surface_send_leave() will be called
* automatically based on the position of the surface and outputs in * automatically based on the position of the surface and outputs in
* the scene. * the scene.
*/ */
@ -283,7 +283,7 @@ struct wlr_scene_surface *wlr_scene_surface_create(struct wlr_scene_node *parent
struct wlr_scene_buffer *wlr_scene_buffer_from_node(struct wlr_scene_node *node); struct wlr_scene_buffer *wlr_scene_buffer_from_node(struct wlr_scene_node *node);
/** /**
* If this buffer is backed by a surface, then the wlr_scene_surface is * If this buffer is backed by a surface, then the struct wlr_scene_surface is
* returned. If not, NULL will be returned. * returned. If not, NULL will be returned.
*/ */
struct wlr_scene_surface *wlr_scene_surface_from_buffer( struct wlr_scene_surface *wlr_scene_surface_from_buffer(
@ -383,7 +383,7 @@ void wlr_scene_output_set_position(struct wlr_scene_output *scene_output,
bool wlr_scene_output_commit(struct wlr_scene_output *scene_output); bool wlr_scene_output_commit(struct wlr_scene_output *scene_output);
/** /**
* Call wlr_surface_send_frame_done() on all surfaces in the scene rendered by * Call wlr_surface_send_frame_done() on all surfaces in the scene rendered by
* wlr_scene_output_commit() for which wlr_scene_surface->primary_output * wlr_scene_output_commit() for which wlr_scene_surface.primary_output
* matches the given scene_output. * matches the given scene_output.
*/ */
void wlr_scene_output_send_frame_done(struct wlr_scene_output *scene_output, void wlr_scene_output_send_frame_done(struct wlr_scene_output *scene_output,
@ -396,7 +396,7 @@ void wlr_scene_output_send_frame_done(struct wlr_scene_output *scene_output,
void wlr_scene_output_for_each_buffer(struct wlr_scene_output *scene_output, void wlr_scene_output_for_each_buffer(struct wlr_scene_output *scene_output,
wlr_scene_buffer_iterator_func_t iterator, void *user_data); wlr_scene_buffer_iterator_func_t iterator, void *user_data);
/** /**
* Get a scene-graph output from a wlr_output. * Get a scene-graph output from a struct wlr_output.
* *
* If the output hasn't been added to the scene-graph, returns NULL. * If the output hasn't been added to the scene-graph, returns NULL.
*/ */

@ -15,7 +15,7 @@
struct wlr_screencopy_manager_v1 { struct wlr_screencopy_manager_v1 {
struct wl_global *global; struct wl_global *global;
struct wl_list frames; // wlr_screencopy_frame_v1::link struct wl_list frames; // wlr_screencopy_frame_v1.link
struct wl_listener display_destroy; struct wl_listener display_destroy;
@ -35,7 +35,7 @@ struct wlr_screencopy_v1_client {
struct wlr_screencopy_frame_v1 { struct wlr_screencopy_frame_v1 {
struct wl_resource *resource; struct wl_resource *resource;
struct wlr_screencopy_v1_client *client; struct wlr_screencopy_v1_client *client;
struct wl_list link; struct wl_list link; // wlr_screencopy_manager_v1.frames
enum wl_shm_format format; enum wl_shm_format format;
uint32_t fourcc; uint32_t fourcc;

@ -32,7 +32,7 @@ struct wlr_serial_ringset {
/** /**
* Contains state for a single client's bound wl_seat resource and can be used * Contains state for a single client's bound wl_seat resource and can be used
* to issue input events to that client. The lifetime of these objects is * to issue input events to that client. The lifetime of these objects is
* managed by wlr_seat; some may be NULL. * managed by struct wlr_seat; some may be NULL.
*/ */
struct wlr_seat_client { struct wlr_seat_client {
struct wl_client *client; struct wl_client *client;
@ -127,7 +127,7 @@ struct wlr_touch_grab_interface {
}; };
/** /**
* Passed to `wlr_seat_touch_start_grab()` to start a grab of the touch device. * Passed to wlr_seat_touch_start_grab() to start a grab of the touch device.
* The grabber is responsible for handling touch events for the seat. * The grabber is responsible for handling touch events for the seat.
*/ */
struct wlr_seat_touch_grab { struct wlr_seat_touch_grab {
@ -137,7 +137,7 @@ struct wlr_seat_touch_grab {
}; };
/** /**
* Passed to `wlr_seat_keyboard_start_grab()` to start a grab of the keyboard. * Passed to wlr_seat_keyboard_start_grab() to start a grab of the keyboard.
* The grabber is responsible for handling keyboard events for the seat. * The grabber is responsible for handling keyboard events for the seat.
*/ */
struct wlr_seat_keyboard_grab { struct wlr_seat_keyboard_grab {
@ -147,7 +147,7 @@ struct wlr_seat_keyboard_grab {
}; };
/** /**
* Passed to `wlr_seat_pointer_start_grab()` to start a grab of the pointer. The * Passed to wlr_seat_pointer_start_grab() to start a grab of the pointer. The
* grabber is responsible for handling pointer events for the seat. * grabber is responsible for handling pointer events for the seat.
*/ */
struct wlr_seat_pointer_grab { struct wlr_seat_pointer_grab {
@ -179,7 +179,7 @@ struct wlr_seat_pointer_state {
struct wl_listener surface_destroy; struct wl_listener surface_destroy;
struct { struct {
struct wl_signal focus_change; // wlr_seat_pointer_focus_change_event struct wl_signal focus_change; // struct wlr_seat_pointer_focus_change_event
} events; } events;
}; };
@ -201,13 +201,13 @@ struct wlr_seat_keyboard_state {
struct wlr_seat_keyboard_grab *default_grab; struct wlr_seat_keyboard_grab *default_grab;
struct { struct {
struct wl_signal focus_change; // wlr_seat_keyboard_focus_change_event struct wl_signal focus_change; // struct wlr_seat_keyboard_focus_change_event
} events; } events;
}; };
struct wlr_seat_touch_state { struct wlr_seat_touch_state {
struct wlr_seat *seat; struct wlr_seat *seat;
struct wl_list touch_points; // wlr_touch_point::link struct wl_list touch_points; // wlr_touch_point.link
uint32_t grab_serial; uint32_t grab_serial;
uint32_t grab_id; uint32_t grab_id;
@ -230,7 +230,7 @@ struct wlr_seat {
struct wlr_data_source *selection_source; struct wlr_data_source *selection_source;
uint32_t selection_serial; uint32_t selection_serial;
struct wl_list selection_offers; // wlr_data_offer::link struct wl_list selection_offers; // wlr_data_offer.link
struct wlr_primary_selection_source *primary_selection_source; struct wlr_primary_selection_source *primary_selection_source;
uint32_t primary_selection_serial; uint32_t primary_selection_serial;
@ -239,7 +239,7 @@ struct wlr_seat {
struct wlr_drag *drag; struct wlr_drag *drag;
struct wlr_data_source *drag_source; struct wlr_data_source *drag_source;
uint32_t drag_serial; uint32_t drag_serial;
struct wl_list drag_offers; // wlr_data_offer::link struct wl_list drag_offers; // wlr_data_offer.link
struct wlr_seat_pointer_state pointer_state; struct wlr_seat_pointer_state pointer_state;
struct wlr_seat_keyboard_state keyboard_state; struct wlr_seat_keyboard_state keyboard_state;
@ -260,26 +260,26 @@ struct wlr_seat {
struct wl_signal touch_grab_begin; struct wl_signal touch_grab_begin;
struct wl_signal touch_grab_end; struct wl_signal touch_grab_end;
// wlr_seat_pointer_request_set_cursor_event // struct wlr_seat_pointer_request_set_cursor_event
struct wl_signal request_set_cursor; struct wl_signal request_set_cursor;
// Called when an application _wants_ to set the selection (user copies some data). // Called when an application _wants_ to set the selection (user copies some data).
// Compositors should listen to this event and call wlr_seat_set_selection // Compositors should listen to this event and call wlr_seat_set_selection()
// if they want to accept the client's request. // if they want to accept the client's request.
struct wl_signal request_set_selection; // wlr_seat_request_set_selection_event struct wl_signal request_set_selection; // struct wlr_seat_request_set_selection_event
// Called after the data source is set for the selection. // Called after the data source is set for the selection.
struct wl_signal set_selection; struct wl_signal set_selection;
// Called when an application _wants_ to set the primary selection (user selects some data). // Called when an application _wants_ to set the primary selection (user selects some data).
// Compositors should listen to this event and call wlr_seat_set_primary_selection // Compositors should listen to this event and call wlr_seat_set_primary_selection()
// if they want to accept the client's request. // if they want to accept the client's request.
struct wl_signal request_set_primary_selection; // wlr_seat_request_set_primary_selection_event struct wl_signal request_set_primary_selection; // struct wlr_seat_request_set_primary_selection_event
// Called after the primary selection source object is set. // Called after the primary selection source object is set.
struct wl_signal set_primary_selection; struct wl_signal set_primary_selection;
// wlr_seat_request_start_drag_event // struct wlr_seat_request_start_drag_event
struct wl_signal request_start_drag; struct wl_signal request_start_drag;
struct wl_signal start_drag; // wlr_drag struct wl_signal start_drag; // struct wlr_drag
struct wl_signal destroy; struct wl_signal destroy;
} events; } events;
@ -322,16 +322,16 @@ struct wlr_seat_keyboard_focus_change_event {
}; };
/** /**
* Allocates a new wlr_seat and adds a wl_seat global to the display. * Allocates a new struct wlr_seat and adds a wl_seat global to the display.
*/ */
struct wlr_seat *wlr_seat_create(struct wl_display *display, const char *name); struct wlr_seat *wlr_seat_create(struct wl_display *display, const char *name);
/** /**
* Destroys a wlr_seat, removes its wl_seat global and clears focus for all * Destroys a seat, removes its wl_seat global and clears focus for all
* devices belonging to the seat. * devices belonging to the seat.
*/ */
void wlr_seat_destroy(struct wlr_seat *wlr_seat); void wlr_seat_destroy(struct wlr_seat *wlr_seat);
/** /**
* Gets a wlr_seat_client for the specified client, or returns NULL if no * Gets a struct wlr_seat_client for the specified client, or returns NULL if no
* client is bound for that client. * client is bound for that client.
*/ */
struct wlr_seat_client *wlr_seat_client_for_wl_client(struct wlr_seat *wlr_seat, struct wlr_seat_client *wlr_seat_client_for_wl_client(struct wlr_seat *wlr_seat,
@ -359,7 +359,7 @@ bool wlr_seat_pointer_surface_has_focus(struct wlr_seat *wlr_seat,
* focused surface for the pointer. This will send a leave event to the last * focused surface for the pointer. This will send a leave event to the last
* surface that was entered. Coordinates for the enter event are surface-local. * surface that was entered. Coordinates for the enter event are surface-local.
* This function does not respect pointer grabs: you probably want * This function does not respect pointer grabs: you probably want
* `wlr_seat_pointer_notify_enter()` instead. * wlr_seat_pointer_notify_enter() instead.
*/ */
void wlr_seat_pointer_enter(struct wlr_seat *wlr_seat, void wlr_seat_pointer_enter(struct wlr_seat *wlr_seat,
struct wlr_surface *surface, double sx, double sy); struct wlr_surface *surface, double sx, double sy);
@ -367,14 +367,14 @@ void wlr_seat_pointer_enter(struct wlr_seat *wlr_seat,
/** /**
* Clear the focused surface for the pointer and leave all entered surfaces. * Clear the focused surface for the pointer and leave all entered surfaces.
* This function does not respect pointer grabs: you probably want * This function does not respect pointer grabs: you probably want
* `wlr_seat_pointer_notify_clear_focus()` instead. * wlr_seat_pointer_notify_clear_focus() instead.
*/ */
void wlr_seat_pointer_clear_focus(struct wlr_seat *wlr_seat); void wlr_seat_pointer_clear_focus(struct wlr_seat *wlr_seat);
/** /**
* Send a motion event to the surface with pointer focus. Coordinates for the * Send a motion event to the surface with pointer focus. Coordinates for the
* motion event are surface-local. This function does not respect pointer grabs: * motion event are surface-local. This function does not respect pointer grabs:
* you probably want `wlr_seat_pointer_notify_motion()` instead. * you probably want wlr_seat_pointer_notify_motion() instead.
*/ */
void wlr_seat_pointer_send_motion(struct wlr_seat *wlr_seat, uint32_t time_msec, void wlr_seat_pointer_send_motion(struct wlr_seat *wlr_seat, uint32_t time_msec,
double sx, double sy); double sx, double sy);
@ -382,7 +382,7 @@ void wlr_seat_pointer_send_motion(struct wlr_seat *wlr_seat, uint32_t time_msec,
/** /**
* Send a button event to the surface with pointer focus. Coordinates for the * Send a button event to the surface with pointer focus. Coordinates for the
* button event are surface-local. Returns the serial. This function does not * button event are surface-local. Returns the serial. This function does not
* respect pointer grabs: you probably want `wlr_seat_pointer_notify_button()` * respect pointer grabs: you probably want wlr_seat_pointer_notify_button()
* instead. * instead.
*/ */
uint32_t wlr_seat_pointer_send_button(struct wlr_seat *wlr_seat, uint32_t wlr_seat_pointer_send_button(struct wlr_seat *wlr_seat,
@ -390,7 +390,7 @@ uint32_t wlr_seat_pointer_send_button(struct wlr_seat *wlr_seat,
/** /**
* Send an axis event to the surface with pointer focus. This function does not * Send an axis event to the surface with pointer focus. This function does not
* respect pointer grabs: you probably want `wlr_seat_pointer_notify_axis()` * respect pointer grabs: you probably want wlr_seat_pointer_notify_axis()
* instead. * instead.
*/ */
void wlr_seat_pointer_send_axis(struct wlr_seat *wlr_seat, uint32_t time_msec, void wlr_seat_pointer_send_axis(struct wlr_seat *wlr_seat, uint32_t time_msec,
@ -399,7 +399,7 @@ void wlr_seat_pointer_send_axis(struct wlr_seat *wlr_seat, uint32_t time_msec,
/** /**
* Send a frame event to the surface with pointer focus. This function does not * Send a frame event to the surface with pointer focus. This function does not
* respect pointer grabs: you probably want `wlr_seat_pointer_notify_frame()` * respect pointer grabs: you probably want wlr_seat_pointer_notify_frame()
* instead. * instead.
*/ */
void wlr_seat_pointer_send_frame(struct wlr_seat *wlr_seat); void wlr_seat_pointer_send_frame(struct wlr_seat *wlr_seat);
@ -485,7 +485,7 @@ struct wlr_keyboard *wlr_seat_get_keyboard(struct wlr_seat *seat);
/** /**
* Send the keyboard key to focused keyboard resources. This function does not * Send the keyboard key to focused keyboard resources. This function does not
* respect keyboard grabs: you probably want `wlr_seat_keyboard_notify_key()` * respect keyboard grabs: you probably want wlr_seat_keyboard_notify_key()
* instead. * instead.
*/ */
void wlr_seat_keyboard_send_key(struct wlr_seat *seat, uint32_t time_msec, void wlr_seat_keyboard_send_key(struct wlr_seat *seat, uint32_t time_msec,
@ -494,7 +494,7 @@ void wlr_seat_keyboard_send_key(struct wlr_seat *seat, uint32_t time_msec,
/** /**
* Send the modifier state to focused keyboard resources. This function does * Send the modifier state to focused keyboard resources. This function does
* not respect keyboard grabs: you probably want * not respect keyboard grabs: you probably want
* `wlr_seat_keyboard_notify_modifiers()` instead. * wlr_seat_keyboard_notify_modifiers() instead.
*/ */
void wlr_seat_keyboard_send_modifiers(struct wlr_seat *seat, void wlr_seat_keyboard_send_modifiers(struct wlr_seat *seat,
struct wlr_keyboard_modifiers *modifiers); struct wlr_keyboard_modifiers *modifiers);
@ -503,7 +503,7 @@ void wlr_seat_keyboard_send_modifiers(struct wlr_seat *seat,
* Send a keyboard enter event to the given surface and consider it to be the * Send a keyboard enter event to the given surface and consider it to be the
* focused surface for the keyboard. This will send a leave event to the last * focused surface for the keyboard. This will send a leave event to the last
* surface that was entered. This function does not respect keyboard grabs: you * surface that was entered. This function does not respect keyboard grabs: you
* probably want `wlr_seat_keyboard_notify_enter()` instead. * probably want wlr_seat_keyboard_notify_enter() instead.
*/ */
void wlr_seat_keyboard_enter(struct wlr_seat *seat, void wlr_seat_keyboard_enter(struct wlr_seat *seat,
struct wlr_surface *surface, uint32_t keycodes[], size_t num_keycodes, struct wlr_surface *surface, uint32_t keycodes[], size_t num_keycodes,
@ -512,7 +512,7 @@ void wlr_seat_keyboard_enter(struct wlr_seat *seat,
/** /**
* Clear the focused surface for the keyboard and leave all entered surfaces. * Clear the focused surface for the keyboard and leave all entered surfaces.
* This function does not respect keyboard grabs: you probably want * This function does not respect keyboard grabs: you probably want
* `wlr_seat_keyboard_notify_clear_focus()` instead. * wlr_seat_keyboard_notify_clear_focus() instead.
*/ */
void wlr_seat_keyboard_clear_focus(struct wlr_seat *wlr_seat); void wlr_seat_keyboard_clear_focus(struct wlr_seat *wlr_seat);
@ -573,7 +573,7 @@ struct wlr_touch_point *wlr_seat_touch_get_point(struct wlr_seat *seat,
/** /**
* Notify the seat that the touch point given by `touch_id` has entered a new * Notify the seat that the touch point given by `touch_id` has entered a new
* surface. The surface is required. To clear focus, use * surface. The surface is required. To clear focus, use
* `wlr_seat_touch_point_clear_focus()`. * wlr_seat_touch_point_clear_focus().
*/ */
void wlr_seat_touch_point_focus(struct wlr_seat *seat, void wlr_seat_touch_point_focus(struct wlr_seat *seat,
struct wlr_surface *surface, uint32_t time_msec, struct wlr_surface *surface, uint32_t time_msec,
@ -591,7 +591,7 @@ void wlr_seat_touch_point_clear_focus(struct wlr_seat *seat, uint32_t time_msec,
* this will add a new touch point with the given `touch_id`. The touch down may * this will add a new touch point with the given `touch_id`. The touch down may
* not be valid if the surface seat client does not accept touch input. * not be valid if the surface seat client does not accept touch input.
* Coordinates are surface-local. This function does not respect touch grabs: * Coordinates are surface-local. This function does not respect touch grabs:
* you probably want `wlr_seat_touch_notify_down()` instead. * you probably want wlr_seat_touch_notify_down() instead.
*/ */
uint32_t wlr_seat_touch_send_down(struct wlr_seat *seat, uint32_t wlr_seat_touch_send_down(struct wlr_seat *seat,
struct wlr_surface *surface, uint32_t time_msec, struct wlr_surface *surface, uint32_t time_msec,
@ -601,7 +601,7 @@ uint32_t wlr_seat_touch_send_down(struct wlr_seat *seat,
* Send a touch up event for the touch point given by the `touch_id`. The event * Send a touch up event for the touch point given by the `touch_id`. The event
* will go to the client for the surface given in the corresponding touch down * will go to the client for the surface given in the corresponding touch down
* event. This will remove the touch point. This function does not respect touch * event. This will remove the touch point. This function does not respect touch
* grabs: you probably want `wlr_seat_touch_notify_up()` instead. * grabs: you probably want wlr_seat_touch_notify_up() instead.
*/ */
void wlr_seat_touch_send_up(struct wlr_seat *seat, uint32_t time_msec, void wlr_seat_touch_send_up(struct wlr_seat *seat, uint32_t time_msec,
int32_t touch_id); int32_t touch_id);
@ -610,7 +610,7 @@ void wlr_seat_touch_send_up(struct wlr_seat *seat, uint32_t time_msec,
* Send a touch motion event for the touch point given by the `touch_id`. The * Send a touch motion event for the touch point given by the `touch_id`. The
* event will go to the client for the surface given in the corresponding touch * event will go to the client for the surface given in the corresponding touch
* down event. This function does not respect touch grabs: you probably want * down event. This function does not respect touch grabs: you probably want
* `wlr_seat_touch_notify_motion()` instead. * wlr_seat_touch_notify_motion() instead.
*/ */
void wlr_seat_touch_send_motion(struct wlr_seat *seat, uint32_t time_msec, void wlr_seat_touch_send_motion(struct wlr_seat *seat, uint32_t time_msec,
int32_t touch_id, double sx, double sy); int32_t touch_id, double sx, double sy);
@ -619,7 +619,7 @@ void wlr_seat_touch_send_motion(struct wlr_seat *seat, uint32_t time_msec,
* Notify the seat that this is a global gesture and the client should cancel * Notify the seat that this is a global gesture and the client should cancel
* processing it. The event will go to the client for the surface given. * processing it. The event will go to the client for the surface given.
* This function does not respect touch grabs: you probably want * This function does not respect touch grabs: you probably want
* `wlr_seat_touch_notify_cancel()` instead. * wlr_seat_touch_notify_cancel() instead.
*/ */
void wlr_seat_touch_send_cancel(struct wlr_seat *seat, struct wlr_surface *surface); void wlr_seat_touch_send_cancel(struct wlr_seat *seat, struct wlr_surface *surface);
@ -695,7 +695,7 @@ bool wlr_seat_validate_pointer_grab_serial(struct wlr_seat *seat,
/** /**
* Check whether this serial is valid to start a touch grab action. If it's the * Check whether this serial is valid to start a touch grab action. If it's the
* case and point_ptr is non-NULL, *point_ptr is set to the touch point matching * case and point_ptr is non-NULL, `*point_ptr` is set to the touch point matching
* the serial. * the serial.
*/ */
bool wlr_seat_validate_touch_grab_serial(struct wlr_seat *seat, bool wlr_seat_validate_touch_grab_serial(struct wlr_seat *seat,

@ -44,8 +44,8 @@ enum wlr_server_decoration_manager_mode {
*/ */
struct wlr_server_decoration_manager { struct wlr_server_decoration_manager {
struct wl_global *global; struct wl_global *global;
struct wl_list resources; // wl_resource_get_link struct wl_list resources; // wl_resource_get_link()
struct wl_list decorations; // wlr_server_decoration::link struct wl_list decorations; // wlr_server_decoration.link
uint32_t default_mode; // enum wlr_server_decoration_manager_mode uint32_t default_mode; // enum wlr_server_decoration_manager_mode

@ -31,7 +31,7 @@ struct wlr_session_lock_manager_v1 {
struct wlr_session_lock_v1 { struct wlr_session_lock_v1 {
struct wl_resource *resource; struct wl_resource *resource;
struct wl_list surfaces; // struct wlr_session_lock_surface_v1::link struct wl_list surfaces; // struct wlr_session_lock_surface_v1.link
struct { struct {
struct wl_signal new_surface; // struct wlr_session_lock_surface_v1 * struct wl_signal new_surface; // struct wlr_session_lock_surface_v1 *
@ -48,7 +48,7 @@ struct wlr_session_lock_surface_v1_state {
}; };
struct wlr_session_lock_surface_v1_configure { struct wlr_session_lock_surface_v1_configure {
struct wl_list link; // wlr_session_lock_surface_v1::configure_list struct wl_list link; // wlr_session_lock_surface_v1.configure_list
uint32_t serial; uint32_t serial;
uint32_t width, height; uint32_t width, height;
@ -56,14 +56,14 @@ struct wlr_session_lock_surface_v1_configure {
struct wlr_session_lock_surface_v1 { struct wlr_session_lock_surface_v1 {
struct wl_resource *resource; struct wl_resource *resource;
struct wl_list link; // wlr_session_lock_v1::surfaces struct wl_list link; // wlr_session_lock_v1.surfaces
struct wlr_output *output; struct wlr_output *output;
struct wlr_surface *surface; struct wlr_surface *surface;
bool configured, mapped; bool configured, mapped;
struct wl_list configure_list; // wlr_session_lock_surface_v1_configure::link struct wl_list configure_list; // wlr_session_lock_surface_v1_configure.link
struct wlr_session_lock_surface_v1_state current; struct wlr_session_lock_surface_v1_state current;
struct wlr_session_lock_surface_v1_state pending; struct wlr_session_lock_surface_v1_state pending;

@ -30,14 +30,14 @@ struct wlr_tablet_pad {
struct wl_signal button; struct wl_signal button;
struct wl_signal ring; struct wl_signal ring;
struct wl_signal strip; struct wl_signal strip;
struct wl_signal attach_tablet; //struct wlr_tablet_tool struct wl_signal attach_tablet; // struct wlr_tablet_tool
} events; } events;
size_t button_count; size_t button_count;
size_t ring_count; size_t ring_count;
size_t strip_count; size_t strip_count;
struct wl_list groups; // wlr_tablet_pad_group::link struct wl_list groups; // wlr_tablet_pad_group.link
struct wl_array paths; // char * struct wl_array paths; // char *
void *data; void *data;

@ -41,8 +41,8 @@ struct wlr_tablet_pad_client_v2;
struct wlr_tablet_manager_v2 { struct wlr_tablet_manager_v2 {
struct wl_global *wl_global; struct wl_global *wl_global;
struct wl_list clients; // wlr_tablet_manager_client_v2::link struct wl_list clients; // wlr_tablet_manager_client_v2.link
struct wl_list seats; // wlr_tablet_seat_v2::link struct wl_list seats; // wlr_tablet_seat_v2.link
struct wl_listener display_destroy; struct wl_listener display_destroy;
@ -54,10 +54,10 @@ struct wlr_tablet_manager_v2 {
}; };
struct wlr_tablet_v2_tablet { struct wlr_tablet_v2_tablet {
struct wl_list link; // wlr_tablet_seat_v2::tablets struct wl_list link; // wlr_tablet_seat_v2.tablets
struct wlr_tablet *wlr_tablet; struct wlr_tablet *wlr_tablet;
struct wlr_input_device *wlr_device; struct wlr_input_device *wlr_device;
struct wl_list clients; // wlr_tablet_client_v2::tablet_link struct wl_list clients; // wlr_tablet_client_v2.tablet_link
struct wl_listener tool_destroy; struct wl_listener tool_destroy;
@ -65,9 +65,9 @@ struct wlr_tablet_v2_tablet {
}; };
struct wlr_tablet_v2_tablet_tool { struct wlr_tablet_v2_tablet_tool {
struct wl_list link; // wlr_tablet_seat_v2::tablets struct wl_list link; // wlr_tablet_seat_v2.tablets
struct wlr_tablet_tool *wlr_tool; struct wlr_tablet_tool *wlr_tool;
struct wl_list clients; // wlr_tablet_tool_client_v2::tool_link struct wl_list clients; // wlr_tablet_tool_client_v2.tool_link
struct wl_listener tool_destroy; struct wl_listener tool_destroy;
@ -91,10 +91,10 @@ struct wlr_tablet_v2_tablet_tool {
}; };
struct wlr_tablet_v2_tablet_pad { struct wlr_tablet_v2_tablet_pad {
struct wl_list link; // wlr_tablet_seat_v2::pads struct wl_list link; // wlr_tablet_seat_v2.pads
struct wlr_tablet_pad *wlr_pad; struct wlr_tablet_pad *wlr_pad;
struct wlr_input_device *wlr_device; struct wlr_input_device *wlr_device;
struct wl_list clients; // wlr_tablet_pad_client_v2::pad_link struct wl_list clients; // wlr_tablet_pad_client_v2.pad_link
size_t group_count; size_t group_count;
uint32_t *groups; uint32_t *groups;

@ -39,7 +39,7 @@ struct wlr_text_input_v3_state {
// Tracks which features were used in the current commit. // Tracks which features were used in the current commit.
// Useful in the enabling commit, where usage means support. // Useful in the enabling commit, where usage means support.
uint32_t features; // OR'ed wlr_text_input_v3_features uint32_t features; // bitfield of enum wlr_text_input_v3_features
}; };
struct wlr_text_input_v3 { struct wlr_text_input_v3 {
@ -52,7 +52,7 @@ struct wlr_text_input_v3 {
bool pending_enabled; bool pending_enabled;
bool current_enabled; bool current_enabled;
// supported in the current text input, more granular than surface // supported in the current text input, more granular than surface
uint32_t active_features; // OR'ed wlr_text_input_v3_features uint32_t active_features; // bitfield of enum wlr_text_input_v3_features
struct wl_list link; struct wl_list link;
@ -60,22 +60,22 @@ struct wlr_text_input_v3 {
struct wl_listener seat_destroy; struct wl_listener seat_destroy;
struct { struct {
struct wl_signal enable; // (struct wlr_text_input_v3*) struct wl_signal enable; // struct wlr_text_input_v3 *
struct wl_signal commit; // (struct wlr_text_input_v3*) struct wl_signal commit; // struct wlr_text_input_v3 *
struct wl_signal disable; // (struct wlr_text_input_v3*) struct wl_signal disable; // struct wlr_text_input_v3 *
struct wl_signal destroy; // (struct wlr_text_input_v3*) struct wl_signal destroy; // struct wlr_text_input_v3 *
} events; } events;
}; };
struct wlr_text_input_manager_v3 { struct wlr_text_input_manager_v3 {
struct wl_global *global; struct wl_global *global;
struct wl_list text_inputs; // struct wlr_text_input_v3::resource::link struct wl_list text_inputs; // struct wlr_text_input_v3.resource.link
struct wl_listener display_destroy; struct wl_listener display_destroy;
struct { struct {
struct wl_signal text_input; // (struct wlr_text_input_v3*) struct wl_signal text_input; // struct wlr_text_input_v3 *
struct wl_signal destroy; // (struct wlr_input_method_manager_v3*) struct wl_signal destroy; // struct wlr_input_method_manager_v3 *
} events; } events;
}; };

@ -18,9 +18,9 @@
* *
* - The size of the surface texture may not match the surface size anymore. * - The size of the surface texture may not match the surface size anymore.
* Compositors must use the surface size only. * Compositors must use the surface size only.
* - Compositors must call wlr_render_subtexture_with_matrix when rendering a * - Compositors must call wlr_render_subtexture_with_matrix() when rendering a
* surface texture with the source box returned by * surface texture with the source box returned by
* wlr_surface_get_buffer_source_box. * wlr_surface_get_buffer_source_box().
*/ */
struct wlr_viewporter { struct wlr_viewporter {
struct wl_global *global; struct wl_global *global;

@ -14,12 +14,12 @@
struct wlr_virtual_keyboard_manager_v1 { struct wlr_virtual_keyboard_manager_v1 {
struct wl_global *global; struct wl_global *global;
struct wl_list virtual_keyboards; // struct wlr_virtual_keyboard_v1* struct wl_list virtual_keyboards; // wlr_virtual_keyboard_v1.link
struct wl_listener display_destroy; struct wl_listener display_destroy;
struct { struct {
struct wl_signal new_virtual_keyboard; // struct wlr_virtual_keyboard_v1* struct wl_signal new_virtual_keyboard; // struct wlr_virtual_keyboard_v1 *
struct wl_signal destroy; struct wl_signal destroy;
} events; } events;
}; };
@ -30,7 +30,7 @@ struct wlr_virtual_keyboard_v1 {
struct wlr_seat *seat; struct wlr_seat *seat;
bool has_keymap; bool has_keymap;
struct wl_list link; struct wl_list link; // wlr_virtual_keyboard_manager_v1.virtual_keyboards
}; };
struct wlr_virtual_keyboard_manager_v1* wlr_virtual_keyboard_manager_v1_create( struct wlr_virtual_keyboard_manager_v1* wlr_virtual_keyboard_manager_v1_create(

@ -16,12 +16,12 @@
struct wlr_virtual_pointer_manager_v1 { struct wlr_virtual_pointer_manager_v1 {
struct wl_global *global; struct wl_global *global;
struct wl_list virtual_pointers; // struct wlr_virtual_pointer_v1* struct wl_list virtual_pointers; // wlr_virtual_pointer_v1.link
struct wl_listener display_destroy; struct wl_listener display_destroy;
struct { struct {
struct wl_signal new_virtual_pointer; // struct wlr_virtual_pointer_v1_new_pointer_event* struct wl_signal new_virtual_pointer; // struct wlr_virtual_pointer_v1_new_pointer_event *
struct wl_signal destroy; struct wl_signal destroy;
} events; } events;
}; };
@ -34,7 +34,7 @@ struct wlr_virtual_pointer_v1 {
enum wl_pointer_axis axis; enum wl_pointer_axis axis;
bool axis_valid[2]; bool axis_valid[2];
struct wl_list link; struct wl_list link; // wlr_virtual_pointer_manager_v1.virtual_pointers
}; };
struct wlr_virtual_pointer_v1_new_pointer_event { struct wlr_virtual_pointer_v1_new_pointer_event {

@ -23,9 +23,9 @@ struct wlr_xcursor_manager_theme {
}; };
/** /**
* wlr_xcursor_manager dynamically loads xcursor themes at sizes necessary for * struct wlr_xcursor_manager dynamically loads xcursor themes at sizes necessary
* use on outputs at arbitrary scale factors. You should call * for use on outputs at arbitrary scale factors. You should call
* wlr_xcursor_manager_load for each output you will show your cursor on, with * wlr_xcursor_manager_load() for each output you will show your cursor on, with
* the scale factor parameter set to that output's scale factor. * the scale factor parameter set to that output's scale factor.
*/ */
struct wlr_xcursor_manager { struct wlr_xcursor_manager {
@ -51,17 +51,17 @@ bool wlr_xcursor_manager_load(struct wlr_xcursor_manager *manager,
/** /**
* Retrieves a wlr_xcursor reference for the given cursor name at the given * Retrieves a wlr_xcursor reference for the given cursor name at the given
* scale factor, or NULL if this wlr_xcursor_manager has not loaded a cursor * scale factor, or NULL if this struct wlr_xcursor_manager has not loaded a
* theme at the requested scale. * cursor theme at the requested scale.
*/ */
struct wlr_xcursor *wlr_xcursor_manager_get_xcursor( struct wlr_xcursor *wlr_xcursor_manager_get_xcursor(
struct wlr_xcursor_manager *manager, const char *name, float scale); struct wlr_xcursor_manager *manager, const char *name, float scale);
/** /**
* Set a wlr_cursor's cursor image to the specified cursor name for all scale * Set a struct wlr_cursor's cursor image to the specified cursor name for all
* factors. wlr_cursor will take over from this point and ensure the correct * scale factors. struct wlr_cursor will take over from this point and ensure
* cursor is used on each output, assuming a wlr_output_layout is attached to * the correct cursor is used on each output, assuming a
* it. * struct wlr_output_layout is attached to it.
*/ */
void wlr_xcursor_manager_set_cursor_image(struct wlr_xcursor_manager *manager, void wlr_xcursor_manager_set_cursor_image(struct wlr_xcursor_manager *manager,
const char *name, struct wlr_cursor *cursor); const char *name, struct wlr_cursor *cursor);

@ -45,7 +45,7 @@ struct wlr_xdg_activation_v1 {
struct { struct {
struct wl_signal destroy; struct wl_signal destroy;
struct wl_signal request_activate; // wlr_xdg_activation_v1_request_activate_event struct wl_signal request_activate; // struct wlr_xdg_activation_v1_request_activate_event
} events; } events;
// private state // private state

@ -12,7 +12,7 @@ enum wlr_xdg_toplevel_decoration_v1_mode {
struct wlr_xdg_decoration_manager_v1 { struct wlr_xdg_decoration_manager_v1 {
struct wl_global *global; struct wl_global *global;
struct wl_list decorations; // wlr_xdg_toplevel_decoration::link struct wl_list decorations; // wlr_xdg_toplevel_decoration.link
struct wl_listener display_destroy; struct wl_listener display_destroy;
@ -25,7 +25,7 @@ struct wlr_xdg_decoration_manager_v1 {
}; };
struct wlr_xdg_toplevel_decoration_v1_configure { struct wlr_xdg_toplevel_decoration_v1_configure {
struct wl_list link; // wlr_xdg_toplevel_decoration::configure_list struct wl_list link; // wlr_xdg_toplevel_decoration.configure_list
struct wlr_xdg_surface_configure *surface_configure; struct wlr_xdg_surface_configure *surface_configure;
enum wlr_xdg_toplevel_decoration_v1_mode mode; enum wlr_xdg_toplevel_decoration_v1_mode mode;
}; };
@ -38,7 +38,7 @@ struct wlr_xdg_toplevel_decoration_v1 {
struct wl_resource *resource; struct wl_resource *resource;
struct wlr_xdg_surface *surface; struct wlr_xdg_surface *surface;
struct wlr_xdg_decoration_manager_v1 *manager; struct wlr_xdg_decoration_manager_v1 *manager;
struct wl_list link; // wlr_xdg_decoration_manager_v1::link struct wl_list link; // wlr_xdg_decoration_manager_v1.link
struct wlr_xdg_toplevel_decoration_v1_state current, pending; struct wlr_xdg_toplevel_decoration_v1_state current, pending;
@ -47,7 +47,7 @@ struct wlr_xdg_toplevel_decoration_v1 {
bool added; bool added;
struct wl_list configure_list; // wlr_xdg_toplevel_decoration_v1_configure::link struct wl_list configure_list; // wlr_xdg_toplevel_decoration_v1_configure.link
struct { struct {
struct wl_signal destroy; struct wl_signal destroy;

@ -14,8 +14,8 @@
#define WLR_XDG_FOREIGN_HANDLE_SIZE 37 #define WLR_XDG_FOREIGN_HANDLE_SIZE 37
/** /**
* wlr_xdg_foreign_registry is used for storing a list of exported surfaces with * struct wlr_xdg_foreign_registry is used for storing a list of exported
* the xdg-foreign family of protocols. * surfaces with the xdg-foreign family of protocols.
* *
* It can be used to allow interoperability between clients using different * It can be used to allow interoperability between clients using different
* versions of the protocol (if all versions use the same registry). * versions of the protocol (if all versions use the same registry).
@ -30,7 +30,7 @@ struct wlr_xdg_foreign_registry {
}; };
struct wlr_xdg_foreign_exported { struct wlr_xdg_foreign_exported {
struct wl_list link; // wlr_xdg_foreign_registry::exported_surfaces struct wl_list link; // wlr_xdg_foreign_registry.exported_surfaces
struct wlr_xdg_foreign_registry *registry; struct wlr_xdg_foreign_registry *registry;
struct wlr_surface *surface; struct wlr_surface *surface;
@ -43,7 +43,7 @@ struct wlr_xdg_foreign_exported {
}; };
/** /**
* Create an empty wlr_xdg_foreign_registry. * Create an empty struct wlr_xdg_foreign_registry.
* *
* It will be destroyed when the associated display is destroyed. * It will be destroyed when the associated display is destroyed.
*/ */

@ -15,7 +15,7 @@
struct wlr_xdg_foreign_v1 { struct wlr_xdg_foreign_v1 {
struct { struct {
struct wl_global *global; struct wl_global *global;
struct wl_list objects; // wlr_xdg_exported_v1::link or wlr_xdg_imported_v1::link struct wl_list objects; // wlr_xdg_exported_v1.link or wlr_xdg_imported_v1.link
} exporter, importer; } exporter, importer;
struct wl_listener foreign_registry_destroy; struct wl_listener foreign_registry_destroy;
@ -36,7 +36,7 @@ struct wlr_xdg_exported_v1 {
struct wl_resource *resource; struct wl_resource *resource;
struct wl_listener xdg_surface_unmap; struct wl_listener xdg_surface_unmap;
struct wl_list link; // wlr_xdg_foreign_v1::exporter::objects struct wl_list link; // wlr_xdg_foreign_v1.exporter.objects
}; };
struct wlr_xdg_imported_v1 { struct wlr_xdg_imported_v1 {
@ -44,7 +44,7 @@ struct wlr_xdg_imported_v1 {
struct wl_listener exported_destroyed; struct wl_listener exported_destroyed;
struct wl_resource *resource; struct wl_resource *resource;
struct wl_list link; // wlr_xdg_foreign_v1::importer::objects struct wl_list link; // wlr_xdg_foreign_v1.importer.objects
struct wl_list children; struct wl_list children;
}; };
@ -52,7 +52,7 @@ struct wlr_xdg_imported_child_v1 {
struct wlr_xdg_imported_v1 *imported; struct wlr_xdg_imported_v1 *imported;
struct wlr_surface *surface; struct wlr_surface *surface;
struct wl_list link; // wlr_xdg_imported_v1::children struct wl_list link; // wlr_xdg_imported_v1.children
struct wl_listener xdg_surface_unmap; struct wl_listener xdg_surface_unmap;
struct wl_listener xdg_toplevel_set_parent; struct wl_listener xdg_toplevel_set_parent;

@ -15,7 +15,7 @@
struct wlr_xdg_foreign_v2 { struct wlr_xdg_foreign_v2 {
struct { struct {
struct wl_global *global; struct wl_global *global;
struct wl_list objects; // wlr_xdg_exported_v2::link or wlr_xdg_imported_v2::link struct wl_list objects; // wlr_xdg_exported_v2.link or wlr_xdg_imported_v2.link
} exporter, importer; } exporter, importer;
struct wl_listener foreign_registry_destroy; struct wl_listener foreign_registry_destroy;
@ -36,7 +36,7 @@ struct wlr_xdg_exported_v2 {
struct wl_resource *resource; struct wl_resource *resource;
struct wl_listener xdg_surface_unmap; struct wl_listener xdg_surface_unmap;
struct wl_list link; // wlr_xdg_foreign_v2::exporter::objects struct wl_list link; // wlr_xdg_foreign_v2.exporter.objects
}; };
struct wlr_xdg_imported_v2 { struct wlr_xdg_imported_v2 {
@ -44,7 +44,7 @@ struct wlr_xdg_imported_v2 {
struct wl_listener exported_destroyed; struct wl_listener exported_destroyed;
struct wl_resource *resource; struct wl_resource *resource;
struct wl_list link; // wlr_xdg_foreign_v2::importer::objects struct wl_list link; // wlr_xdg_foreign_v2.importer.objects
struct wl_list children; struct wl_list children;
}; };
@ -52,7 +52,7 @@ struct wlr_xdg_imported_child_v2 {
struct wlr_xdg_imported_v2 *imported; struct wlr_xdg_imported_v2 *imported;
struct wlr_surface *surface; struct wlr_surface *surface;
struct wl_list link; // wlr_xdg_imported_v2::children struct wl_list link; // wlr_xdg_imported_v2.children
struct wl_listener xdg_surface_unmap; struct wl_listener xdg_surface_unmap;
struct wl_listener xdg_toplevel_set_parent; struct wl_listener xdg_toplevel_set_parent;

@ -44,7 +44,7 @@ struct wlr_xdg_client {
struct wl_client *client; struct wl_client *client;
struct wl_list surfaces; struct wl_list surfaces;
struct wl_list link; // wlr_xdg_shell::clients struct wl_list link; // wlr_xdg_shell.clients
uint32_t ping_serial; uint32_t ping_serial;
struct wl_event_source *ping_timer; struct wl_event_source *ping_timer;
@ -85,7 +85,7 @@ struct wlr_xdg_popup {
struct wlr_xdg_positioner_rules positioner_rules; struct wlr_xdg_positioner_rules positioner_rules;
struct wl_list grab_link; // wlr_xdg_popup_grab::popups struct wl_list grab_link; // wlr_xdg_popup_grab.popups
}; };
// each seat gets a popup grab // each seat gets a popup grab
@ -96,7 +96,7 @@ struct wlr_xdg_popup_grab {
struct wlr_seat_touch_grab touch_grab; struct wlr_seat_touch_grab touch_grab;
struct wlr_seat *seat; struct wlr_seat *seat;
struct wl_list popups; struct wl_list popups;
struct wl_list link; // wlr_xdg_shell::popup_grabs struct wl_list link; // wlr_xdg_shell.popup_grabs
struct wl_listener seat_destroy; struct wl_listener seat_destroy;
}; };
@ -141,7 +141,7 @@ struct wlr_xdg_toplevel {
// Properties that the client has requested. Intended to be checked // Properties that the client has requested. Intended to be checked
// by the compositor on surface map and state change requests (such as // by the compositor on surface map and state change requests (such as
// xdg_toplevel::set_fullscreen) and handled accordingly. // xdg_toplevel.set_fullscreen) and handled accordingly.
struct wlr_xdg_toplevel_requested requested; struct wlr_xdg_toplevel_requested requested;
char *title; char *title;
@ -170,7 +170,7 @@ struct wlr_xdg_toplevel {
struct wlr_xdg_surface_configure { struct wlr_xdg_surface_configure {
struct wlr_xdg_surface *surface; struct wlr_xdg_surface *surface;
struct wl_list link; // wlr_xdg_surface::configure_list struct wl_list link; // wlr_xdg_surface.configure_list
uint32_t serial; uint32_t serial;
struct wlr_xdg_toplevel_configure *toplevel_configure; struct wlr_xdg_toplevel_configure *toplevel_configure;
@ -195,7 +195,7 @@ struct wlr_xdg_surface {
struct wlr_xdg_client *client; struct wlr_xdg_client *client;
struct wl_resource *resource; struct wl_resource *resource;
struct wlr_surface *surface; struct wlr_surface *surface;
struct wl_list link; // wlr_xdg_client::surfaces struct wl_list link; // wlr_xdg_client.surfaces
enum wlr_xdg_surface_role role; enum wlr_xdg_surface_role role;
union { union {
@ -203,7 +203,7 @@ struct wlr_xdg_surface {
struct wlr_xdg_popup *popup; struct wlr_xdg_popup *popup;
}; };
struct wl_list popups; // wlr_xdg_popup::link struct wl_list popups; // wlr_xdg_popup.link
bool added, configured, mapped; bool added, configured, mapped;
struct wl_event_source *configure_idle; struct wl_event_source *configure_idle;
@ -237,8 +237,8 @@ struct wlr_xdg_surface {
struct wl_signal unmap; struct wl_signal unmap;
// for protocol extensions // for protocol extensions
struct wl_signal configure; // wlr_xdg_surface_configure struct wl_signal configure; // struct wlr_xdg_surface_configure
struct wl_signal ack_configure; // wlr_xdg_surface_configure struct wl_signal ack_configure; // struct wlr_xdg_surface_configure
} events; } events;
void *data; void *data;
@ -270,7 +270,7 @@ struct wlr_xdg_toplevel_show_window_menu_event {
struct wlr_xdg_shell *wlr_xdg_shell_create(struct wl_display *display, struct wlr_xdg_shell *wlr_xdg_shell_create(struct wl_display *display,
uint32_t version); uint32_t version);
/** Get the corresponding wlr_xdg_surface from a resource. /** Get the corresponding struct wlr_xdg_surface from a resource.
* *
* Aborts if the resource doesn't have the correct type. Returns NULL if the * Aborts if the resource doesn't have the correct type. Returns NULL if the
* resource is inert. * resource is inert.
@ -278,7 +278,7 @@ struct wlr_xdg_shell *wlr_xdg_shell_create(struct wl_display *display,
struct wlr_xdg_surface *wlr_xdg_surface_from_resource( struct wlr_xdg_surface *wlr_xdg_surface_from_resource(
struct wl_resource *resource); struct wl_resource *resource);
/** Get the corresponding wlr_xdg_popup from a resource. /** Get the corresponding struct wlr_xdg_popup from a resource.
* *
* Aborts if the resource doesn't have the correct type. Returns NULL if the * Aborts if the resource doesn't have the correct type. Returns NULL if the
* resource is inert. * resource is inert.
@ -286,7 +286,7 @@ struct wlr_xdg_surface *wlr_xdg_surface_from_resource(
struct wlr_xdg_popup *wlr_xdg_popup_from_resource( struct wlr_xdg_popup *wlr_xdg_popup_from_resource(
struct wl_resource *resource); struct wl_resource *resource);
/** Get the corresponding wlr_xdg_toplevel from a resource. /** Get the corresponding struct wlr_xdg_toplevel from a resource.
* *
* Aborts if the resource doesn't have the correct type. Returns NULL if the * Aborts if the resource doesn't have the correct type. Returns NULL if the
* resource is inert. * resource is inert.
@ -294,7 +294,7 @@ struct wlr_xdg_popup *wlr_xdg_popup_from_resource(
struct wlr_xdg_toplevel *wlr_xdg_toplevel_from_resource( struct wlr_xdg_toplevel *wlr_xdg_toplevel_from_resource(
struct wl_resource *resource); struct wl_resource *resource);
/** Get the corresponding wlr_xdg_positioner from a resource. /** Get the corresponding struct wlr_xdg_positioner from a resource.
* *
* Aborts if the resource doesn't have the correct type. * Aborts if the resource doesn't have the correct type.
*/ */
@ -345,7 +345,7 @@ uint32_t wlr_xdg_toplevel_set_resizing(struct wlr_xdg_toplevel *toplevel,
/** /**
* Request that this toplevel consider itself in a tiled layout and some * Request that this toplevel consider itself in a tiled layout and some
* edges are adjacent to another part of the tiling grid. `tiled_edges` is a * edges are adjacent to another part of the tiling grid. `tiled_edges` is a
* bitfield of `enum wlr_edges`. Returns the associated configure serial. * bitfield of enum wlr_edges. Returns the associated configure serial.
*/ */
uint32_t wlr_xdg_toplevel_set_tiled(struct wlr_xdg_toplevel *toplevel, uint32_t wlr_xdg_toplevel_set_tiled(struct wlr_xdg_toplevel *toplevel,
uint32_t tiled_edges); uint32_t tiled_edges);
@ -425,10 +425,11 @@ struct wlr_xdg_surface *wlr_xdg_surface_from_wlr_surface(
/** /**
* Get the surface geometry. * Get the surface geometry.
*
* This is either the geometry as set by the client, or defaulted to the bounds * This is either the geometry as set by the client, or defaulted to the bounds
* of the surface + the subsurfaces (as specified by the protocol). * of the surface + the subsurfaces (as specified by the protocol).
* *
* The x and y value can be <0 * The x and y value can be < 0.
*/ */
void wlr_xdg_surface_get_geometry(struct wlr_xdg_surface *surface, void wlr_xdg_surface_get_geometry(struct wlr_xdg_surface *surface,
struct wlr_box *box); struct wlr_box *box);

@ -23,7 +23,7 @@
* *
* The x and y coordinates are inclusive, and the width and height lengths are * The x and y coordinates are inclusive, and the width and height lengths are
* exclusive. In other words, the box starts from the coordinates (x, y), and * exclusive. In other words, the box starts from the coordinates (x, y), and
* goes up to but not including (x + width, y + height) * goes up to but not including (x + width, y + height).
*/ */
struct wlr_box { struct wlr_box {
int x, y; int x, y;
@ -33,7 +33,7 @@ struct wlr_box {
/** /**
* A floating-point box representing a rectangle region in a 2D space. * A floating-point box representing a rectangle region in a 2D space.
* *
* wlr_fbox has the same semantics as wlr_box * struct wlr_fbox has the same semantics as struct wlr_box.
*/ */
struct wlr_fbox { struct wlr_fbox {
double x, y; double x, y;
@ -41,25 +41,26 @@ struct wlr_fbox {
}; };
/** /**
* Finds the closest point within the box bounds * Finds the closest point within the box bounds.
* *
* Returns NAN if the box is empty * Returns NAN if the box is empty.
*/ */
void wlr_box_closest_point(const struct wlr_box *box, double x, double y, void wlr_box_closest_point(const struct wlr_box *box, double x, double y,
double *dest_x, double *dest_y); double *dest_x, double *dest_y);
/** /**
* Gives the intersecting box between two wlr_box. * Gives the intersecting box between two struct wlr_box.
* *
* Returns an empty wlr_box if the provided wlr_box don't intersect. * Returns an empty box if the provided boxes don't intersect.
*/ */
bool wlr_box_intersection(struct wlr_box *dest, const struct wlr_box *box_a, bool wlr_box_intersection(struct wlr_box *dest, const struct wlr_box *box_a,
const struct wlr_box *box_b); const struct wlr_box *box_b);
/** /**
* Verifies if a point is contained within the bounds of a given wlr_box. * Verifies if a point is contained within the bounds of a given struct wlr_box.
* *
* For example: * For example:
*
* - A point at (100, 50) is not contained in the box (0, 0, 100, 50). * - A point at (100, 50) is not contained in the box (0, 0, 100, 50).
* - A point at (10, 10) is contained in the box (10, 0, 50, 50). * - A point at (10, 10) is contained in the box (10, 0, 50, 50).
*/ */
@ -68,7 +69,7 @@ bool wlr_box_contains_point(const struct wlr_box *box, double x, double y);
/** /**
* Checks whether a box is empty or not. * Checks whether a box is empty or not.
* *
* A wlr_box is considered empty if its width and/or height is zero or negative. * A box is considered empty if its width and/or height is zero or negative.
*/ */
bool wlr_box_empty(const struct wlr_box *box); bool wlr_box_empty(const struct wlr_box *box);
@ -81,7 +82,7 @@ void wlr_box_transform(struct wlr_box *dest, const struct wlr_box *box,
/** /**
* Checks whether a box is empty or not. * Checks whether a box is empty or not.
* *
* A wlr_box is considered empty if its width and/or height is zero or negative. * A box is considered empty if its width and/or height is zero or negative.
*/ */
bool wlr_fbox_empty(const struct wlr_fbox *box); bool wlr_fbox_empty(const struct wlr_fbox *box);

@ -32,13 +32,20 @@ enum wlr_log_importance {
typedef void (*wlr_log_func_t)(enum wlr_log_importance importance, typedef void (*wlr_log_func_t)(enum wlr_log_importance importance,
const char *fmt, va_list args); const char *fmt, va_list args);
// Will log all messages less than or equal to `verbosity` /**
// If `callback` is NULL, wlr will use its default logger. * Set the log verbosity and callback.
// The function can be called multiple times to update the verbosity or *
// callback function. * Only messages less than or equal to the supplied verbosity will be logged.
* If the callback is NULL, the default logger is used.
*
* This function can be called multiple times to update the verbosity or
* callback function.
*/
void wlr_log_init(enum wlr_log_importance verbosity, wlr_log_func_t callback); void wlr_log_init(enum wlr_log_importance verbosity, wlr_log_func_t callback);
// Returns the log verbosity provided to wlr_log_init /**
* Get the current log verbosity configured by wlr_log_init().
*/
enum wlr_log_importance wlr_log_get_verbosity(void); enum wlr_log_importance wlr_log_get_verbosity(void);
#ifdef __GNUC__ #ifdef __GNUC__

Loading…
Cancel
Save