Top |
const SpiceGlScanout * | spice_display_get_gl_scanout () |
void | spice_display_gl_draw_done () |
gboolean | spice_display_get_primary () |
void | spice_display_change_preferred_compression () |
void | spice_gl_scanout_free () |
SpiceGlScanout * | gl-scanout | Read |
guint | height | Read |
GArray * | monitors | Read |
guint | monitors-max | Read |
guint | width | Read |
void | display-invalidate | Run First |
void | display-mark | Run First |
void | display-primary-create | Run First |
void | display-primary-destroy | Run First |
void | gl-draw |
struct | SpiceDisplayChannel |
struct | SpiceDisplayChannelClass |
struct | SpiceDisplayMonitorConfig |
struct | SpiceDisplayPrimary |
struct | SpiceGlScanout |
A class that handles the rendering of the remote display and inform of its updates.
The creation of the main graphic buffer is signaled with “display-primary-create”.
The update of regions is notified by “display-invalidate” signals.
const SpiceGlScanout *
spice_display_get_gl_scanout (SpiceDisplayChannel *channel
);
Retrieves the GL scanout if available
Since: 0.31
void
spice_display_gl_draw_done (SpiceDisplayChannel *channel
);
After a SpiceDisplayChannel::gl-draw is emitted, the client should
draw the current display with the current GL scanout, and must
release the GL resource with a call to spice_display_gl_draw_done()
(failing to do so for each gl-draw may result in a frozen display).
Since: 0.31
gboolean spice_display_get_primary (SpiceChannel *channel
,guint32 surface_id
,SpiceDisplayPrimary *primary
);
Retrieve primary display surface surface_id
.
void spice_display_change_preferred_compression (SpiceChannel *channel
,gint compression
);
Tells the spice server to change the preferred image compression
for the channel
.
Since: 0.31
struct SpiceDisplayChannel;
The SpiceDisplayChannel struct is opaque and should not be accessed directly.
struct SpiceDisplayChannelClass { SpiceChannelClass parent_class; /* signals */ void (*display_primary_create)(SpiceChannel *channel, gint format, gint width, gint height, gint stride, gint shmid, gpointer data); void (*display_primary_destroy)(SpiceChannel *channel); void (*display_invalidate)(SpiceChannel *channel, gint x, gint y, gint w, gint h); void (*display_mark)(SpiceChannel *channel, gboolean mark); };
Class structure for SpiceDisplayChannel.
Signal class handler for the “display-primary-create” signal. |
||
Signal class handler for the “display-primary-destroy” signal. |
||
Signal class handler for the “display-invalidate” signal. |
||
Signal class handler for the “display-mark” signal. |
struct SpiceDisplayMonitorConfig { guint id; guint surface_id; guint x; guint y; guint width; guint height; };
Holds a monitor configuration.
struct SpiceDisplayPrimary { enum SpiceSurfaceFmt format; gint width; gint height; gint stride; gint shmid; guint8 *data; gboolean marked; };
Holds the information necessary to use the primary surface.
primary buffer format |
||
gint |
width of the primary |
|
gint |
height of the primary |
|
gint |
stride of the primary |
|
gint |
identifier of the shared memory segment associated with
the |
|
guint8 * |
pointer to primary buffer |
|
gboolean |
whether the display is marked ready |
“gl-scanout”
property“gl-scanout” SpiceGlScanout *
The last SpiceGlScanout received.
Flags: Read
Since: 0.31
“monitors-max”
property“monitors-max” guint
The maximum number of monitors the server or guest supports. May change during client lifetime, for instance guest may reboot or dynamically adjust this.
Flags: Read
Allowed values: [1,256]
Default value: 1
Since: 0.13
“display-invalidate”
signalvoid user_function (SpiceDisplayChannel *display, gint x, gint y, gint width, gint height, gpointer user_data)
The “display-invalidate” signal is emitted when the rectangular region x/y/w/h of the primary buffer is updated.
display |
the SpiceDisplayChannel that emitted the signal |
|
x |
x position |
|
y |
y position |
|
width |
width |
|
height |
height |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run First
“display-mark”
signalvoid user_function (SpiceDisplayChannel *display, gint mark, gpointer user_data)
The “display-mark” signal is emitted when
the RED_DISPLAY_MARK
command is received, and the display
should be exposed.
display |
the SpiceDisplayChannel that emitted the signal |
|
mark |
|
|
user_data |
user data set when the signal handler was connected. |
Flags: Run First
“display-primary-create”
signalvoid user_function (SpiceDisplayChannel *display, gint format, gint width, gint height, gint stride, gint shmid, gpointer imgdata, gpointer user_data)
The “display-primary-create” signal provides main display buffer data.
display |
the SpiceDisplayChannel that emitted the signal |
|
format |
|
|
width |
width resolution |
|
height |
height resolution |
|
stride |
the buffer stride ("width" padding) |
|
shmid |
identifier of the shared memory segment associated with
the |
|
imgdata |
pointer to surface buffer |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run First
“display-primary-destroy”
signalvoid user_function (SpiceDisplayChannel *display, gpointer user_data)
The “display-primary-destroy” signal is emitted when the primary surface is freed and should not be accessed anymore.
display |
the SpiceDisplayChannel that emitted the signal |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run First
“gl-draw”
signalvoid user_function (SpiceDisplayChannel *display, guint x, guint y, guint width, guint height, gpointer user_data)
The “draw” signal is emitted when the
rectangular region x/y/w/h of the GL scanout is updated and
must be drawn. When the draw is finished, you must call
spice_display_gl_draw_done()
in order to release the GL
resources.
display |
the SpiceDisplayChannel that emitted the signal |
|
x |
x position |
|
y |
y position |
|
width |
width |
|
height |
height |
|
user_data |
user data set when the signal handler was connected. |
Since: 0.31