| 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_display_change_preferred_video_codec_type () |
| 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
void spice_display_change_preferred_video_codec_type (SpiceChannel *channel,gint codec_type);
Tells the spice server to change the preferred video codec type for
streaming in channel
. Application can set only one preferred video codec per
display channel.
Since: 0.34
void
spice_gl_scanout_free (SpiceGlScanout *scanout);
Frees the scanout
.
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