51#include <cairo/cairo.h>
74#define GUAC_DISPLAY_LAYER_RAW_BUFFER(context, rect) \
75 GUAC_RECT_MUTABLE_BUFFER(rect, context->buffer, context->stride, GUAC_DISPLAY_LAYER_RAW_BPP)
668 const guac_rect* dst,
const void* restrict buffer,
size_t stride);
Functions and structure contents for the Guacamole proxy client.
Provides constants related to the abstract display implementation (guac_display).
Provides type definitions related to the abstract display implementation (guac_display).
void guac_display_layer_set_multitouch(guac_display_layer *layer, int touches)
Sets the level of multitouch support available for the given layer.
guac_display_cursor_type
Pre-defined mouse cursor graphics.
Definition display-types.h:75
void guac_display_notify_user_moved_mouse(guac_display *display, guac_user *user, int x, int y, int mask)
Notifies the given guac_display that a specific user has changed the state of the mouse,...
guac_display_render_thread * guac_display_render_thread_create(guac_display *display)
Creates and starts a rendering thread for the given guac_display.
void guac_display_render_thread_notify_modified(guac_display_render_thread *render_thread)
Notifies the given render thread that the graphical state of the display has been modified in some vi...
void guac_display_layer_set_lossless(guac_display_layer *layer, int lossless)
Sets whether graphical changes to the given layer are allowed to be represented, updated,...
void guac_display_layer_raw_context_set(guac_display_layer_raw_context *context, const guac_rect *dst, uint32_t color)
Fills a rectangle of image data within the given raw context with a single color.
void guac_display_layer_close_cairo(guac_display_layer *layer, guac_display_layer_cairo_context *context)
Ends a drawing operation that was started with a call to guac_display_layer_open_cairo() and relinqui...
void guac_display_layer_set_parent(guac_display_layer *layer, const guac_display_layer *parent)
Reparents the given layer such that it is a direct child of the given parent layer.
struct guac_display_layer guac_display_layer
Opaque representation of a layer within a guac_display.
Definition display-types.h:52
void guac_display_dup(guac_display *display, guac_socket *socket)
Replicates the current remote display state across the given socket.
void guac_display_render_thread_destroy(guac_display_render_thread *render_thread)
Safely stops and frees all resources associated with the given render thread.
void guac_display_layer_get_bounds(guac_display_layer *layer, guac_rect *bounds)
Stores the current bounding rectangle of the given layer in the given guac_rect.
guac_display_layer_cairo_context * guac_display_layer_open_cairo(guac_display_layer *layer)
Begins a drawing operation for the given layer, returning a context that can be used to draw to a Cai...
void guac_display_set_cursor(guac_display *display, guac_display_cursor_type cursor_type)
Sets the remote mouse cursor to the given built-in cursor icon.
void guac_display_layer_set_opacity(guac_display_layer *layer, int opacity)
Sets the opacity of the given layer.
void guac_display_end_mouse_frame(guac_display *display)
Ends the current frame only if the user-visible changes consist purely of updates to the mouse cursor...
void guac_display_layer_close_raw(guac_display_layer *layer, guac_display_layer_raw_context *context)
Ends a drawing operation that was started with a call to guac_display_layer_open_raw() and relinquish...
void guac_display_layer_resize(guac_display_layer *layer, int width, int height)
Resizes the given layer to the given dimensions.
void guac_display_layer_raw_context_put(guac_display_layer_raw_context *context, const guac_rect *dst, const void *restrict buffer, size_t stride)
Copies a rectangle of image data from the given buffer to the given raw context, replacing all pixel ...
guac_display_layer * guac_display_alloc_layer(guac_display *display, int opaque)
Allocates a new layer for the given display.
guac_display * guac_display_alloc(guac_client *client)
Allocates a new guac_display representing the remote display shared by all connected users of the giv...
void guac_display_notify_user_left(guac_display *display, guac_user *user)
Notifies the given guac_display that a specific user has left the connection and need no longer be co...
void guac_display_render_thread_notify_frame(guac_display_render_thread *render_thread)
Notifies the given render thread that a frame boundary has been reached.
void guac_display_layer_move(guac_display_layer *layer, int x, int y)
Moves the given layer to the given coordinates.
guac_display_layer * guac_display_cursor(guac_display *display)
Returns a layer representing the current mouse cursor icon.
guac_display_layer * guac_display_alloc_buffer(guac_display *display, int opaque)
Allocates a new buffer (offscreen layer) for the given display.
struct guac_display_render_thread guac_display_render_thread
Opaque representation of a thread that continuously renders updated graphical data to the remote disp...
Definition display-types.h:45
guac_display_layer * guac_display_default_layer(guac_display *display)
Returns the default layer for the given display.
guac_display_layer_raw_context * guac_display_layer_open_raw(guac_display_layer *layer)
Begins a drawing operation for the given layer, returning a context that can be used to draw directly...
void guac_display_end_multiple_frames(guac_display *display, int frames)
Ends the current frame, where that frame may combine or otherwise represent the changes of an arbitra...
struct guac_display guac_display
Opaque representation of the remote (client-side) display of a Guacamole connection (guac_client).
Definition display-types.h:39
void guac_display_free_layer(guac_display_layer *display_layer)
Frees the given layer, releasing any underlying memory.
void guac_display_set_cursor_hotspot(guac_display *display, int x, int y)
Sets the hotspot location of the remote mouse cursor.
void guac_display_end_frame(guac_display *display)
Ends the current frame, where the number of input frames that were considered in creating this frame ...
void guac_display_free(guac_display *display)
Frees all resources associated with the given guac_display.
void guac_display_layer_stack(guac_display_layer *layer, int z)
Sets the stacking position of the given layer relative to all other sibling layers (direct children o...
Defines the guac_socket object and functions for using and manipulating it.
Guacamole proxy client.
Definition client.h:48
The current Cairo drawing context of a guac_display_layer, including a Cairo image surface wrapping t...
Definition display.h:77
guac_rect bounds
A rectangle covering the current bounds of the graphical surface.
Definition display.h:95
cairo_surface_t * surface
A Cairo image surface wrapping the image buffer of this guac_display_layer.
Definition display.h:90
cairo_t * cairo
A Cairo context created for the Cairo surface.
Definition display.h:84
guac_rect dirty
A rectangle covering the region of the guac_display_layer that has changed since the last frame.
Definition display.h:103
guac_display_layer * hint_from
The layer that should be searched for possible scroll/copy operations related to the changes being ma...
Definition display.h:113
The current raw drawing context of a guac_display_layer, including the underlying drawing buffer of t...
Definition display.h:117
guac_rect bounds
A rectangle covering the current bounds of the graphical surface.
Definition display.h:170
unsigned char * buffer
The raw, underlying image buffer of the guac_display_layer.
Definition display.h:140
guac_rect dirty
A rectangle covering the region of the guac_display_layer that has changed since the last frame.
Definition display.h:178
size_t stride
The number of bytes in each row of image data.
Definition display.h:152
guac_display_layer * hint_from
The layer that should be searched for possible scroll/copy operations related to the changes being ma...
Definition display.h:188
A rectangle defined by its upper-left and lower-right corners.
Definition rect.h:94
The core I/O object of Guacamole.
Definition socket.h:39
Representation of a physical connection within a larger logical connection which may be shared.
Definition user.h:115