1#ifndef PATCHWORK_DISPLAY_H
2#define PATCHWORK_DISPLAY_H 1
12#if defined(__cplusplus)
247#if defined(__cplusplus)
void display_disconnect(display_t *disp)
Disconnect the display connection.
uint64_t display_poll(display_t *disp, pollfd_t *fds, uint64_t nfds, clock_t timeout)
Poll the display connection for events together with other file descriptors.
void * display_cmd_alloc(display_t *disp, cmd_type_t type, uint64_t size)
Allocate a section of the displays command buffer.
uint64_t display_next(display_t *disp, event_t *event, clock_t timeout)
Retrieve the next event from the display connection.
uint64_t display_unsubscribe(display_t *disp, event_type_t type)
Unsubscribe from events of a specific type.
void display_cmds_flush(display_t *disp)
Flush the display's command buffer.
uint64_t display_dispatch(display_t *disp, const event_t *event)
Dispatch an event to the appropriate surface.
void display_push(display_t *disp, surface_id_t target, event_type_t type, void *data, uint64_t size)
Push an event to the display's internal event queue.
uint64_t display_wait(display_t *disp, event_t *event, event_type_t expected)
Wait for the display to receive an event of the expected type.
uint64_t display_get_screen(display_t *disp, rect_t *rect, uint64_t index)
Get the rectangle of a screen.
void display_free(display_t *disp)
Free a display connection.
uint64_t display_set_focus(display_t *disp, surface_id_t id)
Set the focus to a surface.
bool display_is_connected(display_t *disp)
Check if the display connection is still connected.
uint64_t display_emit(display_t *disp, surface_id_t target, event_type_t type, void *data, uint64_t size)
Emit an event to a target surface.
uint64_t display_dispatch_pending(display_t *disp, event_type_t type, surface_id_t target)
Dispatch all events currently in the display's internal event queue of a specific type and target.
display_t * display_new(void)
Create a new display connection.
uint64_t display_get_surface_info(display_t *disp, surface_id_t id, surface_info_t *info)
Get information about a surface.
uint64_t display_subscribe(display_t *disp, event_type_t type)
Subscribe to events of a specific type.
uint64_t display_set_is_visible(display_t *disp, surface_id_t id, bool isVisible)
Set the visibility of a surface.
uint16_t event_type_t
Event type.
__UINT64_TYPE__ clock_t
A nanosecond time.
Opaque display structure.
Poll file descriptor structure.