summaryrefslogtreecommitdiffstats
path: root/qemu/include/ui
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/include/ui')
-rw-r--r--qemu/include/ui/console.h460
-rw-r--r--qemu/include/ui/egl-context.h14
-rw-r--r--qemu/include/ui/egl-helpers.h28
-rw-r--r--qemu/include/ui/gtk.h135
-rw-r--r--qemu/include/ui/input.h70
-rw-r--r--qemu/include/ui/pixel_ops.h53
-rw-r--r--qemu/include/ui/qemu-pixman.h78
-rw-r--r--qemu/include/ui/qemu-spice.h90
-rw-r--r--qemu/include/ui/sdl2.h72
-rw-r--r--qemu/include/ui/shader.h15
-rw-r--r--qemu/include/ui/spice-display.h169
11 files changed, 0 insertions, 1184 deletions
diff --git a/qemu/include/ui/console.h b/qemu/include/ui/console.h
deleted file mode 100644
index d5a88d93e..000000000
--- a/qemu/include/ui/console.h
+++ /dev/null
@@ -1,460 +0,0 @@
-#ifndef CONSOLE_H
-#define CONSOLE_H
-
-#include "ui/qemu-pixman.h"
-#include "qom/object.h"
-#include "qapi/qmp/qdict.h"
-#include "qemu/notify.h"
-#include "qapi-types.h"
-
-#ifdef CONFIG_OPENGL
-# include <epoxy/gl.h>
-#endif
-
-/* keyboard/mouse support */
-
-#define MOUSE_EVENT_LBUTTON 0x01
-#define MOUSE_EVENT_RBUTTON 0x02
-#define MOUSE_EVENT_MBUTTON 0x04
-#define MOUSE_EVENT_WHEELUP 0x08
-#define MOUSE_EVENT_WHEELDN 0x10
-
-/* identical to the ps/2 keyboard bits */
-#define QEMU_SCROLL_LOCK_LED (1 << 0)
-#define QEMU_NUM_LOCK_LED (1 << 1)
-#define QEMU_CAPS_LOCK_LED (1 << 2)
-
-/* in ms */
-#define GUI_REFRESH_INTERVAL_DEFAULT 30
-#define GUI_REFRESH_INTERVAL_IDLE 3000
-
-/* Color number is match to standard vga palette */
-enum qemu_color_names {
- QEMU_COLOR_BLACK = 0,
- QEMU_COLOR_BLUE = 1,
- QEMU_COLOR_GREEN = 2,
- QEMU_COLOR_CYAN = 3,
- QEMU_COLOR_RED = 4,
- QEMU_COLOR_MAGENTA = 5,
- QEMU_COLOR_YELLOW = 6,
- QEMU_COLOR_WHITE = 7
-};
-/* Convert to curses char attributes */
-#define ATTR2CHTYPE(c, fg, bg, bold) \
- ((bold) << 21 | (bg) << 11 | (fg) << 8 | (c))
-
-typedef void QEMUPutKBDEvent(void *opaque, int keycode);
-typedef void QEMUPutLEDEvent(void *opaque, int ledstate);
-typedef void QEMUPutMouseEvent(void *opaque, int dx, int dy, int dz, int buttons_state);
-
-typedef struct QEMUPutMouseEntry QEMUPutMouseEntry;
-typedef struct QEMUPutKbdEntry QEMUPutKbdEntry;
-typedef struct QEMUPutLEDEntry QEMUPutLEDEntry;
-
-QEMUPutKbdEntry *qemu_add_kbd_event_handler(QEMUPutKBDEvent *func,
- void *opaque);
-QEMUPutMouseEntry *qemu_add_mouse_event_handler(QEMUPutMouseEvent *func,
- void *opaque, int absolute,
- const char *name);
-void qemu_remove_mouse_event_handler(QEMUPutMouseEntry *entry);
-void qemu_activate_mouse_event_handler(QEMUPutMouseEntry *entry);
-
-QEMUPutLEDEntry *qemu_add_led_event_handler(QEMUPutLEDEvent *func, void *opaque);
-void qemu_remove_led_event_handler(QEMUPutLEDEntry *entry);
-
-void kbd_put_ledstate(int ledstate);
-
-struct MouseTransformInfo {
- /* Touchscreen resolution */
- int x;
- int y;
- /* Calibration values as used/generated by tslib */
- int a[7];
-};
-
-void hmp_mouse_set(Monitor *mon, const QDict *qdict);
-
-/* keysym is a unicode code except for special keys (see QEMU_KEY_xxx
- constants) */
-#define QEMU_KEY_ESC1(c) ((c) | 0xe100)
-#define QEMU_KEY_BACKSPACE 0x007f
-#define QEMU_KEY_UP QEMU_KEY_ESC1('A')
-#define QEMU_KEY_DOWN QEMU_KEY_ESC1('B')
-#define QEMU_KEY_RIGHT QEMU_KEY_ESC1('C')
-#define QEMU_KEY_LEFT QEMU_KEY_ESC1('D')
-#define QEMU_KEY_HOME QEMU_KEY_ESC1(1)
-#define QEMU_KEY_END QEMU_KEY_ESC1(4)
-#define QEMU_KEY_PAGEUP QEMU_KEY_ESC1(5)
-#define QEMU_KEY_PAGEDOWN QEMU_KEY_ESC1(6)
-#define QEMU_KEY_DELETE QEMU_KEY_ESC1(3)
-
-#define QEMU_KEY_CTRL_UP 0xe400
-#define QEMU_KEY_CTRL_DOWN 0xe401
-#define QEMU_KEY_CTRL_LEFT 0xe402
-#define QEMU_KEY_CTRL_RIGHT 0xe403
-#define QEMU_KEY_CTRL_HOME 0xe404
-#define QEMU_KEY_CTRL_END 0xe405
-#define QEMU_KEY_CTRL_PAGEUP 0xe406
-#define QEMU_KEY_CTRL_PAGEDOWN 0xe407
-
-void kbd_put_keysym_console(QemuConsole *s, int keysym);
-bool kbd_put_qcode_console(QemuConsole *s, int qcode);
-void kbd_put_string_console(QemuConsole *s, const char *str, int len);
-void kbd_put_keysym(int keysym);
-
-/* consoles */
-
-#define TYPE_QEMU_CONSOLE "qemu-console"
-#define QEMU_CONSOLE(obj) \
- OBJECT_CHECK(QemuConsole, (obj), TYPE_QEMU_CONSOLE)
-#define QEMU_CONSOLE_GET_CLASS(obj) \
- OBJECT_GET_CLASS(QemuConsoleClass, (obj), TYPE_QEMU_CONSOLE)
-#define QEMU_CONSOLE_CLASS(klass) \
- OBJECT_CLASS_CHECK(QemuConsoleClass, (klass), TYPE_QEMU_CONSOLE)
-
-typedef struct QemuConsoleClass QemuConsoleClass;
-
-struct QemuConsoleClass {
- ObjectClass parent_class;
-};
-
-#define QEMU_ALLOCATED_FLAG 0x01
-
-struct PixelFormat {
- uint8_t bits_per_pixel;
- uint8_t bytes_per_pixel;
- uint8_t depth; /* color depth in bits */
- uint32_t rmask, gmask, bmask, amask;
- uint8_t rshift, gshift, bshift, ashift;
- uint8_t rmax, gmax, bmax, amax;
- uint8_t rbits, gbits, bbits, abits;
-};
-
-struct DisplaySurface {
- pixman_format_code_t format;
- pixman_image_t *image;
- uint8_t flags;
-#ifdef CONFIG_OPENGL
- GLenum glformat;
- GLenum gltype;
- GLuint texture;
-#endif
-};
-
-typedef struct QemuUIInfo {
- /* geometry */
- int xoff;
- int yoff;
- uint32_t width;
- uint32_t height;
-} QemuUIInfo;
-
-/* cursor data format is 32bit RGBA */
-typedef struct QEMUCursor {
- int width, height;
- int hot_x, hot_y;
- int refcount;
- uint32_t data[];
-} QEMUCursor;
-
-QEMUCursor *cursor_alloc(int width, int height);
-void cursor_get(QEMUCursor *c);
-void cursor_put(QEMUCursor *c);
-QEMUCursor *cursor_builtin_hidden(void);
-QEMUCursor *cursor_builtin_left_ptr(void);
-void cursor_print_ascii_art(QEMUCursor *c, const char *prefix);
-int cursor_get_mono_bpl(QEMUCursor *c);
-void cursor_set_mono(QEMUCursor *c,
- uint32_t foreground, uint32_t background, uint8_t *image,
- int transparent, uint8_t *mask);
-void cursor_get_mono_image(QEMUCursor *c, int foreground, uint8_t *mask);
-void cursor_get_mono_mask(QEMUCursor *c, int transparent, uint8_t *mask);
-
-typedef void *QEMUGLContext;
-typedef struct QEMUGLParams QEMUGLParams;
-
-struct QEMUGLParams {
- int major_ver;
- int minor_ver;
-};
-
-typedef struct DisplayChangeListenerOps {
- const char *dpy_name;
-
- void (*dpy_refresh)(DisplayChangeListener *dcl);
-
- void (*dpy_gfx_update)(DisplayChangeListener *dcl,
- int x, int y, int w, int h);
- void (*dpy_gfx_switch)(DisplayChangeListener *dcl,
- struct DisplaySurface *new_surface);
- void (*dpy_gfx_copy)(DisplayChangeListener *dcl,
- int src_x, int src_y,
- int dst_x, int dst_y, int w, int h);
- bool (*dpy_gfx_check_format)(DisplayChangeListener *dcl,
- pixman_format_code_t format);
-
- void (*dpy_text_cursor)(DisplayChangeListener *dcl,
- int x, int y);
- void (*dpy_text_resize)(DisplayChangeListener *dcl,
- int w, int h);
- void (*dpy_text_update)(DisplayChangeListener *dcl,
- int x, int y, int w, int h);
-
- void (*dpy_mouse_set)(DisplayChangeListener *dcl,
- int x, int y, int on);
- void (*dpy_cursor_define)(DisplayChangeListener *dcl,
- QEMUCursor *cursor);
-
- QEMUGLContext (*dpy_gl_ctx_create)(DisplayChangeListener *dcl,
- QEMUGLParams *params);
- void (*dpy_gl_ctx_destroy)(DisplayChangeListener *dcl,
- QEMUGLContext ctx);
- int (*dpy_gl_ctx_make_current)(DisplayChangeListener *dcl,
- QEMUGLContext ctx);
- QEMUGLContext (*dpy_gl_ctx_get_current)(DisplayChangeListener *dcl);
-
- void (*dpy_gl_scanout)(DisplayChangeListener *dcl,
- uint32_t backing_id, bool backing_y_0_top,
- uint32_t x, uint32_t y, uint32_t w, uint32_t h);
- void (*dpy_gl_update)(DisplayChangeListener *dcl,
- uint32_t x, uint32_t y, uint32_t w, uint32_t h);
-
-} DisplayChangeListenerOps;
-
-struct DisplayChangeListener {
- uint64_t update_interval;
- const DisplayChangeListenerOps *ops;
- DisplayState *ds;
- QemuConsole *con;
-
- QLIST_ENTRY(DisplayChangeListener) next;
-};
-
-DisplayState *init_displaystate(void);
-DisplaySurface *qemu_create_displaysurface_from(int width, int height,
- pixman_format_code_t format,
- int linesize, uint8_t *data);
-DisplaySurface *qemu_create_displaysurface_pixman(pixman_image_t *image);
-DisplaySurface *qemu_create_displaysurface_guestmem(int width, int height,
- pixman_format_code_t format,
- int linesize,
- uint64_t addr);
-PixelFormat qemu_default_pixelformat(int bpp);
-
-DisplaySurface *qemu_create_displaysurface(int width, int height);
-void qemu_free_displaysurface(DisplaySurface *surface);
-
-static inline int is_surface_bgr(DisplaySurface *surface)
-{
- if (PIXMAN_FORMAT_BPP(surface->format) == 32 &&
- PIXMAN_FORMAT_TYPE(surface->format) == PIXMAN_TYPE_ABGR) {
- return 1;
- } else {
- return 0;
- }
-}
-
-static inline int is_buffer_shared(DisplaySurface *surface)
-{
- return !(surface->flags & QEMU_ALLOCATED_FLAG);
-}
-
-void register_displaychangelistener(DisplayChangeListener *dcl);
-void update_displaychangelistener(DisplayChangeListener *dcl,
- uint64_t interval);
-void unregister_displaychangelistener(DisplayChangeListener *dcl);
-
-bool dpy_ui_info_supported(QemuConsole *con);
-int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info);
-
-void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h);
-void dpy_gfx_replace_surface(QemuConsole *con,
- DisplaySurface *surface);
-void dpy_gfx_copy(QemuConsole *con, int src_x, int src_y,
- int dst_x, int dst_y, int w, int h);
-void dpy_text_cursor(QemuConsole *con, int x, int y);
-void dpy_text_update(QemuConsole *con, int x, int y, int w, int h);
-void dpy_text_resize(QemuConsole *con, int w, int h);
-void dpy_mouse_set(QemuConsole *con, int x, int y, int on);
-void dpy_cursor_define(QemuConsole *con, QEMUCursor *cursor);
-bool dpy_cursor_define_supported(QemuConsole *con);
-bool dpy_gfx_check_format(QemuConsole *con,
- pixman_format_code_t format);
-
-void dpy_gl_scanout(QemuConsole *con,
- uint32_t backing_id, bool backing_y_0_top,
- uint32_t x, uint32_t y, uint32_t w, uint32_t h);
-void dpy_gl_update(QemuConsole *con,
- uint32_t x, uint32_t y, uint32_t w, uint32_t h);
-
-QEMUGLContext dpy_gl_ctx_create(QemuConsole *con,
- QEMUGLParams *params);
-void dpy_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx);
-int dpy_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx);
-QEMUGLContext dpy_gl_ctx_get_current(QemuConsole *con);
-
-bool console_has_gl(QemuConsole *con);
-
-static inline int surface_stride(DisplaySurface *s)
-{
- return pixman_image_get_stride(s->image);
-}
-
-static inline void *surface_data(DisplaySurface *s)
-{
- return pixman_image_get_data(s->image);
-}
-
-static inline int surface_width(DisplaySurface *s)
-{
- return pixman_image_get_width(s->image);
-}
-
-static inline int surface_height(DisplaySurface *s)
-{
- return pixman_image_get_height(s->image);
-}
-
-static inline int surface_bits_per_pixel(DisplaySurface *s)
-{
- int bits = PIXMAN_FORMAT_BPP(s->format);
- return bits;
-}
-
-static inline int surface_bytes_per_pixel(DisplaySurface *s)
-{
- int bits = PIXMAN_FORMAT_BPP(s->format);
- return (bits + 7) / 8;
-}
-
-static inline pixman_format_code_t surface_format(DisplaySurface *s)
-{
- return s->format;
-}
-
-#ifdef CONFIG_CURSES
-#include <curses.h>
-typedef chtype console_ch_t;
-extern chtype vga_to_curses[];
-#else
-typedef unsigned long console_ch_t;
-#endif
-static inline void console_write_ch(console_ch_t *dest, uint32_t ch)
-{
- uint8_t c = ch;
-#ifdef CONFIG_CURSES
- if (vga_to_curses[c]) {
- ch &= ~(console_ch_t)0xff;
- ch |= vga_to_curses[c];
- }
-#else
- if (c == '\0') {
- ch |= ' ';
- }
-#endif
- *dest = ch;
-}
-
-typedef struct GraphicHwOps {
- void (*invalidate)(void *opaque);
- void (*gfx_update)(void *opaque);
- void (*text_update)(void *opaque, console_ch_t *text);
- void (*update_interval)(void *opaque, uint64_t interval);
- int (*ui_info)(void *opaque, uint32_t head, QemuUIInfo *info);
- void (*gl_block)(void *opaque, bool block);
-} GraphicHwOps;
-
-QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
- const GraphicHwOps *ops,
- void *opaque);
-void graphic_console_set_hwops(QemuConsole *con,
- const GraphicHwOps *hw_ops,
- void *opaque);
-
-void graphic_hw_update(QemuConsole *con);
-void graphic_hw_invalidate(QemuConsole *con);
-void graphic_hw_text_update(QemuConsole *con, console_ch_t *chardata);
-void graphic_hw_gl_block(QemuConsole *con, bool block);
-
-QemuConsole *qemu_console_lookup_by_index(unsigned int index);
-QemuConsole *qemu_console_lookup_by_device(DeviceState *dev, uint32_t head);
-QemuConsole *qemu_console_lookup_by_device_name(const char *device_id,
- uint32_t head, Error **errp);
-bool qemu_console_is_visible(QemuConsole *con);
-bool qemu_console_is_graphic(QemuConsole *con);
-bool qemu_console_is_fixedsize(QemuConsole *con);
-char *qemu_console_get_label(QemuConsole *con);
-int qemu_console_get_index(QemuConsole *con);
-uint32_t qemu_console_get_head(QemuConsole *con);
-QemuUIInfo *qemu_console_get_ui_info(QemuConsole *con);
-int qemu_console_get_width(QemuConsole *con, int fallback);
-int qemu_console_get_height(QemuConsole *con, int fallback);
-
-void text_consoles_set_display(DisplayState *ds);
-void console_select(unsigned int index);
-void console_color_init(DisplayState *ds);
-void qemu_console_resize(QemuConsole *con, int width, int height);
-void qemu_console_copy(QemuConsole *con, int src_x, int src_y,
- int dst_x, int dst_y, int w, int h);
-DisplaySurface *qemu_console_surface(QemuConsole *con);
-
-/* console-gl.c */
-typedef struct ConsoleGLState ConsoleGLState;
-#ifdef CONFIG_OPENGL
-ConsoleGLState *console_gl_init_context(void);
-void console_gl_fini_context(ConsoleGLState *gls);
-bool console_gl_check_format(DisplayChangeListener *dcl,
- pixman_format_code_t format);
-void surface_gl_create_texture(ConsoleGLState *gls,
- DisplaySurface *surface);
-void surface_gl_update_texture(ConsoleGLState *gls,
- DisplaySurface *surface,
- int x, int y, int w, int h);
-void surface_gl_render_texture(ConsoleGLState *gls,
- DisplaySurface *surface);
-void surface_gl_destroy_texture(ConsoleGLState *gls,
- DisplaySurface *surface);
-void surface_gl_setup_viewport(ConsoleGLState *gls,
- DisplaySurface *surface,
- int ww, int wh);
-#endif
-
-/* sdl.c */
-void sdl_display_early_init(int opengl);
-void sdl_display_init(DisplayState *ds, int full_screen, int no_frame);
-
-/* cocoa.m */
-void cocoa_display_init(DisplayState *ds, int full_screen);
-
-/* vnc.c */
-void vnc_display_init(const char *id);
-void vnc_display_open(const char *id, Error **errp);
-void vnc_display_add_client(const char *id, int csock, bool skipauth);
-char *vnc_display_local_addr(const char *id);
-#ifdef CONFIG_VNC
-int vnc_display_password(const char *id, const char *password);
-int vnc_display_pw_expire(const char *id, time_t expires);
-QemuOpts *vnc_parse(const char *str, Error **errp);
-int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp);
-#else
-static inline int vnc_display_password(const char *id, const char *password)
-{
- return -ENODEV;
-}
-static inline int vnc_display_pw_expire(const char *id, time_t expires)
-{
- return -ENODEV;
-};
-#endif
-
-/* curses.c */
-void curses_display_init(DisplayState *ds, int full_screen);
-
-/* input.c */
-int index_from_key(const char *key, size_t key_length);
-
-/* gtk.c */
-void early_gtk_display_init(int opengl);
-void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover);
-
-#endif
diff --git a/qemu/include/ui/egl-context.h b/qemu/include/ui/egl-context.h
deleted file mode 100644
index f004ce11a..000000000
--- a/qemu/include/ui/egl-context.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef EGL_CONTEXT_H
-#define EGL_CONTEXT_H
-
-#include "ui/console.h"
-#include "ui/egl-helpers.h"
-
-QEMUGLContext qemu_egl_create_context(DisplayChangeListener *dcl,
- QEMUGLParams *params);
-void qemu_egl_destroy_context(DisplayChangeListener *dcl, QEMUGLContext ctx);
-int qemu_egl_make_context_current(DisplayChangeListener *dcl,
- QEMUGLContext ctx);
-QEMUGLContext qemu_egl_get_current_context(DisplayChangeListener *dcl);
-
-#endif /* EGL_CONTEXT_H */
diff --git a/qemu/include/ui/egl-helpers.h b/qemu/include/ui/egl-helpers.h
deleted file mode 100644
index 03fcf4bba..000000000
--- a/qemu/include/ui/egl-helpers.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef EGL_HELPERS_H
-#define EGL_HELPERS_H
-
-#include <epoxy/gl.h>
-#include <epoxy/egl.h>
-#include <gbm.h>
-
-extern EGLDisplay *qemu_egl_display;
-extern EGLConfig qemu_egl_config;
-
-#ifdef CONFIG_OPENGL_DMABUF
-
-extern int qemu_egl_rn_fd;
-extern struct gbm_device *qemu_egl_rn_gbm_dev;
-extern EGLContext qemu_egl_rn_ctx;
-
-int qemu_egl_rendernode_open(void);
-int egl_rendernode_init(void);
-int egl_get_fd_for_texture(uint32_t tex_id, EGLint *stride, EGLint *fourcc);
-
-#endif
-
-EGLSurface qemu_egl_init_surface_x11(EGLContext ectx, Window win);
-
-int qemu_egl_init_dpy(EGLNativeDisplayType dpy, bool gles, bool debug);
-EGLContext qemu_egl_init_ctx(void);
-
-#endif /* EGL_HELPERS_H */
diff --git a/qemu/include/ui/gtk.h b/qemu/include/ui/gtk.h
deleted file mode 100644
index 2bf60f3ec..000000000
--- a/qemu/include/ui/gtk.h
+++ /dev/null
@@ -1,135 +0,0 @@
-#ifndef UI_GTK_H
-#define UI_GTK_H
-
-#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
-/* Work around an -Wstrict-prototypes warning in GTK headers */
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wstrict-prototypes"
-#endif
-#include <gtk/gtk.h>
-#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
-#pragma GCC diagnostic pop
-#endif
-
-#include <gdk/gdkkeysyms.h>
-
-#ifdef GDK_WINDOWING_X11
-#include <gdk/gdkx.h>
-#include <X11/XKBlib.h>
-#endif
-
-#if defined(CONFIG_OPENGL)
-#include "ui/egl-helpers.h"
-#include "ui/egl-context.h"
-#endif
-
-/* Compatibility define to let us build on both Gtk2 and Gtk3 */
-#if GTK_CHECK_VERSION(3, 0, 0)
-static inline void gdk_drawable_get_size(GdkWindow *w, gint *ww, gint *wh)
-{
- *ww = gdk_window_get_width(w);
- *wh = gdk_window_get_height(w);
-}
-#endif
-
-typedef struct GtkDisplayState GtkDisplayState;
-
-typedef struct VirtualGfxConsole {
- GtkWidget *drawing_area;
- DisplayChangeListener dcl;
- DisplaySurface *ds;
- pixman_image_t *convert;
- cairo_surface_t *surface;
- double scale_x;
- double scale_y;
-#if defined(CONFIG_OPENGL)
- ConsoleGLState *gls;
- EGLContext ectx;
- EGLSurface esurface;
- int glupdates;
- int x, y, w, h;
- GLuint tex_id;
- GLuint fbo_id;
- bool y0_top;
- bool scanout_mode;
-#endif
-} VirtualGfxConsole;
-
-#if defined(CONFIG_VTE)
-typedef struct VirtualVteConsole {
- GtkWidget *box;
- GtkWidget *scrollbar;
- GtkWidget *terminal;
- CharDriverState *chr;
- bool echo;
-} VirtualVteConsole;
-#endif
-
-typedef enum VirtualConsoleType {
- GD_VC_GFX,
- GD_VC_VTE,
-} VirtualConsoleType;
-
-typedef struct VirtualConsole {
- GtkDisplayState *s;
- char *label;
- GtkWidget *window;
- GtkWidget *menu_item;
- GtkWidget *tab_item;
- GtkWidget *focus;
- VirtualConsoleType type;
- union {
- VirtualGfxConsole gfx;
-#if defined(CONFIG_VTE)
- VirtualVteConsole vte;
-#endif
- };
-} VirtualConsole;
-
-/* ui/gtk.c */
-void gd_update_windowsize(VirtualConsole *vc);
-
-/* ui/gtk-egl.c */
-void gd_egl_init(VirtualConsole *vc);
-void gd_egl_draw(VirtualConsole *vc);
-void gd_egl_update(DisplayChangeListener *dcl,
- int x, int y, int w, int h);
-void gd_egl_refresh(DisplayChangeListener *dcl);
-void gd_egl_switch(DisplayChangeListener *dcl,
- DisplaySurface *surface);
-QEMUGLContext gd_egl_create_context(DisplayChangeListener *dcl,
- QEMUGLParams *params);
-void gd_egl_scanout(DisplayChangeListener *dcl,
- uint32_t backing_id, bool backing_y_0_top,
- uint32_t x, uint32_t y,
- uint32_t w, uint32_t h);
-void gd_egl_scanout_flush(DisplayChangeListener *dcl,
- uint32_t x, uint32_t y, uint32_t w, uint32_t h);
-void gtk_egl_init(void);
-int gd_egl_make_current(DisplayChangeListener *dcl,
- QEMUGLContext ctx);
-
-/* ui/gtk-gl-area.c */
-void gd_gl_area_init(VirtualConsole *vc);
-void gd_gl_area_draw(VirtualConsole *vc);
-void gd_gl_area_update(DisplayChangeListener *dcl,
- int x, int y, int w, int h);
-void gd_gl_area_refresh(DisplayChangeListener *dcl);
-void gd_gl_area_switch(DisplayChangeListener *dcl,
- DisplaySurface *surface);
-QEMUGLContext gd_gl_area_create_context(DisplayChangeListener *dcl,
- QEMUGLParams *params);
-void gd_gl_area_destroy_context(DisplayChangeListener *dcl,
- QEMUGLContext ctx);
-void gd_gl_area_scanout(DisplayChangeListener *dcl,
- uint32_t backing_id, bool backing_y_0_top,
- uint32_t x, uint32_t y,
- uint32_t w, uint32_t h);
-void gd_gl_area_scanout_flush(DisplayChangeListener *dcl,
- uint32_t x, uint32_t y, uint32_t w, uint32_t h);
-void gtk_gl_area_init(void);
-QEMUGLContext gd_gl_area_get_current_context(DisplayChangeListener *dcl);
-int gd_gl_area_make_current(DisplayChangeListener *dcl,
- QEMUGLContext ctx);
-
-#endif /* UI_GTK_H */
diff --git a/qemu/include/ui/input.h b/qemu/include/ui/input.h
deleted file mode 100644
index 102d8a334..000000000
--- a/qemu/include/ui/input.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef INPUT_H
-#define INPUT_H
-
-#include "qapi-types.h"
-
-#define INPUT_EVENT_MASK_KEY (1<<INPUT_EVENT_KIND_KEY)
-#define INPUT_EVENT_MASK_BTN (1<<INPUT_EVENT_KIND_BTN)
-#define INPUT_EVENT_MASK_REL (1<<INPUT_EVENT_KIND_REL)
-#define INPUT_EVENT_MASK_ABS (1<<INPUT_EVENT_KIND_ABS)
-
-#define INPUT_EVENT_ABS_SIZE 0x8000
-
-typedef struct QemuInputHandler QemuInputHandler;
-typedef struct QemuInputHandlerState QemuInputHandlerState;
-
-typedef void (*QemuInputHandlerEvent)(DeviceState *dev, QemuConsole *src,
- InputEvent *evt);
-typedef void (*QemuInputHandlerSync)(DeviceState *dev);
-
-struct QemuInputHandler {
- const char *name;
- uint32_t mask;
- QemuInputHandlerEvent event;
- QemuInputHandlerSync sync;
-};
-
-QemuInputHandlerState *qemu_input_handler_register(DeviceState *dev,
- QemuInputHandler *handler);
-void qemu_input_handler_activate(QemuInputHandlerState *s);
-void qemu_input_handler_deactivate(QemuInputHandlerState *s);
-void qemu_input_handler_unregister(QemuInputHandlerState *s);
-void qemu_input_handler_bind(QemuInputHandlerState *s,
- const char *device_id, int head,
- Error **errp);
-void qemu_input_event_send(QemuConsole *src, InputEvent *evt);
-void qemu_input_event_send_impl(QemuConsole *src, InputEvent *evt);
-void qemu_input_event_sync(void);
-void qemu_input_event_sync_impl(void);
-
-InputEvent *qemu_input_event_new_key(KeyValue *key, bool down);
-void qemu_input_event_send_key(QemuConsole *src, KeyValue *key, bool down);
-void qemu_input_event_send_key_number(QemuConsole *src, int num, bool down);
-void qemu_input_event_send_key_qcode(QemuConsole *src, QKeyCode q, bool down);
-void qemu_input_event_send_key_delay(uint32_t delay_ms);
-int qemu_input_key_number_to_qcode(uint8_t nr);
-int qemu_input_key_value_to_number(const KeyValue *value);
-int qemu_input_key_value_to_qcode(const KeyValue *value);
-int qemu_input_key_value_to_scancode(const KeyValue *value, bool down,
- int *codes);
-
-InputEvent *qemu_input_event_new_btn(InputButton btn, bool down);
-void qemu_input_queue_btn(QemuConsole *src, InputButton btn, bool down);
-void qemu_input_update_buttons(QemuConsole *src, uint32_t *button_map,
- uint32_t button_old, uint32_t button_new);
-
-bool qemu_input_is_absolute(void);
-int qemu_input_scale_axis(int value, int size_in, int size_out);
-InputEvent *qemu_input_event_new_move(InputEventKind kind,
- InputAxis axis, int value);
-void qemu_input_queue_rel(QemuConsole *src, InputAxis axis, int value);
-void qemu_input_queue_abs(QemuConsole *src, InputAxis axis,
- int value, int size);
-
-void qemu_input_check_mode_change(void);
-void qemu_add_mouse_mode_change_notifier(Notifier *notify);
-void qemu_remove_mouse_mode_change_notifier(Notifier *notify);
-
-int input_linux_init(void *opaque, QemuOpts *opts, Error **errp);
-
-#endif /* INPUT_H */
diff --git a/qemu/include/ui/pixel_ops.h b/qemu/include/ui/pixel_ops.h
deleted file mode 100644
index d390adfd1..000000000
--- a/qemu/include/ui/pixel_ops.h
+++ /dev/null
@@ -1,53 +0,0 @@
-static inline unsigned int rgb_to_pixel8(unsigned int r, unsigned int g,
- unsigned int b)
-{
- return ((r >> 5) << 5) | ((g >> 5) << 2) | (b >> 6);
-}
-
-static inline unsigned int rgb_to_pixel15(unsigned int r, unsigned int g,
- unsigned int b)
-{
- return ((r >> 3) << 10) | ((g >> 3) << 5) | (b >> 3);
-}
-
-static inline unsigned int rgb_to_pixel15bgr(unsigned int r, unsigned int g,
- unsigned int b)
-{
- return ((b >> 3) << 10) | ((g >> 3) << 5) | (r >> 3);
-}
-
-static inline unsigned int rgb_to_pixel16(unsigned int r, unsigned int g,
- unsigned int b)
-{
- return ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3);
-}
-
-static inline unsigned int rgb_to_pixel16bgr(unsigned int r, unsigned int g,
- unsigned int b)
-{
- return ((b >> 3) << 11) | ((g >> 2) << 5) | (r >> 3);
-}
-
-static inline unsigned int rgb_to_pixel24(unsigned int r, unsigned int g,
- unsigned int b)
-{
- return (r << 16) | (g << 8) | b;
-}
-
-static inline unsigned int rgb_to_pixel24bgr(unsigned int r, unsigned int g,
- unsigned int b)
-{
- return (b << 16) | (g << 8) | r;
-}
-
-static inline unsigned int rgb_to_pixel32(unsigned int r, unsigned int g,
- unsigned int b)
-{
- return (r << 16) | (g << 8) | b;
-}
-
-static inline unsigned int rgb_to_pixel32bgr(unsigned int r, unsigned int g,
- unsigned int b)
-{
- return (b << 16) | (g << 8) | r;
-}
diff --git a/qemu/include/ui/qemu-pixman.h b/qemu/include/ui/qemu-pixman.h
deleted file mode 100644
index 4a67e0123..000000000
--- a/qemu/include/ui/qemu-pixman.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- */
-
-#ifndef QEMU_PIXMAN_H
-#define QEMU_PIXMAN_H
-
-/* pixman-0.16.0 headers have a redundant declaration */
-#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wredundant-decls"
-#endif
-#include <pixman.h>
-#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
-#pragma GCC diagnostic pop
-#endif
-
-/*
- * pixman image formats are defined to be native endian,
- * that means host byte order on qemu. So we go define
- * fixed formats here for cases where it is needed, like
- * feeding libjpeg / libpng and writing screenshots.
- */
-
-#ifdef HOST_WORDS_BIGENDIAN
-# define PIXMAN_BE_r8g8b8 PIXMAN_r8g8b8
-# define PIXMAN_BE_x8r8g8b8 PIXMAN_x8r8g8b8
-# define PIXMAN_BE_a8r8g8b8 PIXMAN_a8r8g8b8
-# define PIXMAN_BE_b8g8r8x8 PIXMAN_b8g8r8x8
-# define PIXMAN_BE_b8g8r8a8 PIXMAN_b8g8r8a8
-# define PIXMAN_BE_r8g8b8x8 PIXMAN_r8g8b8x8
-# define PIXMAN_BE_r8g8b8a8 PIXMAN_r8g8b8a8
-# define PIXMAN_BE_x8b8g8r8 PIXMAN_x8b8g8r8
-# define PIXMAN_BE_a8b8g8r8 PIXMAN_a8b8g8r8
-# define PIXMAN_LE_x8r8g8b8 PIXMAN_b8g8r8x8
-#else
-# define PIXMAN_BE_r8g8b8 PIXMAN_b8g8r8
-# define PIXMAN_BE_x8r8g8b8 PIXMAN_b8g8r8x8
-# define PIXMAN_BE_a8r8g8b8 PIXMAN_b8g8r8a8
-# define PIXMAN_BE_b8g8r8x8 PIXMAN_x8r8g8b8
-# define PIXMAN_BE_b8g8r8a8 PIXMAN_a8r8g8b8
-# define PIXMAN_BE_r8g8b8x8 PIXMAN_x8b8g8r8
-# define PIXMAN_BE_r8g8b8a8 PIXMAN_a8b8g8r8
-# define PIXMAN_BE_x8b8g8r8 PIXMAN_r8g8b8x8
-# define PIXMAN_BE_a8b8g8r8 PIXMAN_r8g8b8a8
-# define PIXMAN_LE_x8r8g8b8 PIXMAN_x8r8g8b8
-#endif
-
-/* -------------------------------------------------------------------- */
-
-PixelFormat qemu_pixelformat_from_pixman(pixman_format_code_t format);
-pixman_format_code_t qemu_default_pixman_format(int bpp, bool native_endian);
-int qemu_pixman_get_type(int rshift, int gshift, int bshift);
-pixman_format_code_t qemu_pixman_get_format(PixelFormat *pf);
-bool qemu_pixman_check_format(DisplayChangeListener *dcl,
- pixman_format_code_t format);
-
-pixman_image_t *qemu_pixman_linebuf_create(pixman_format_code_t format,
- int width);
-void qemu_pixman_linebuf_fill(pixman_image_t *linebuf, pixman_image_t *fb,
- int width, int x, int y);
-void qemu_pixman_linebuf_copy(pixman_image_t *fb, int width, int x, int y,
- pixman_image_t *linebuf);
-pixman_image_t *qemu_pixman_mirror_create(pixman_format_code_t format,
- pixman_image_t *image);
-void qemu_pixman_image_unref(pixman_image_t *image);
-
-pixman_color_t qemu_pixman_color(PixelFormat *pf, uint32_t color);
-pixman_image_t *qemu_pixman_glyph_from_vgafont(int height, const uint8_t *font,
- unsigned int ch);
-void qemu_pixman_glyph_render(pixman_image_t *glyph,
- pixman_image_t *surface,
- pixman_color_t *fgcol,
- pixman_color_t *bgcol,
- int x, int y, int cw, int ch);
-
-#endif /* QEMU_PIXMAN_H */
diff --git a/qemu/include/ui/qemu-spice.h b/qemu/include/ui/qemu-spice.h
deleted file mode 100644
index aa2436355..000000000
--- a/qemu/include/ui/qemu-spice.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2010 Red Hat, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 or
- * (at your option) version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef QEMU_SPICE_H
-#define QEMU_SPICE_H
-
-#include "qapi/error.h"
-
-#ifdef CONFIG_SPICE
-
-#include <spice.h>
-#include "qemu/option.h"
-#include "qemu/config-file.h"
-
-extern int using_spice;
-
-void qemu_spice_init(void);
-void qemu_spice_input_init(void);
-void qemu_spice_audio_init(void);
-void qemu_spice_display_init(void);
-int qemu_spice_display_add_client(int csock, int skipauth, int tls);
-int qemu_spice_add_interface(SpiceBaseInstance *sin);
-bool qemu_spice_have_display_interface(QemuConsole *con);
-int qemu_spice_add_display_interface(QXLInstance *qxlin, QemuConsole *con);
-int qemu_spice_set_passwd(const char *passwd,
- bool fail_if_connected, bool disconnect_if_connected);
-int qemu_spice_set_pw_expire(time_t expires);
-int qemu_spice_migrate_info(const char *hostname, int port, int tls_port,
- const char *subject);
-
-#if SPICE_SERVER_VERSION >= 0x000c02
-void qemu_spice_register_ports(void);
-#else
-static inline CharDriverState *qemu_chr_open_spice_port(const char *name)
-{ return NULL; }
-#endif
-
-#else /* CONFIG_SPICE */
-
-#define using_spice 0
-#define spice_displays 0
-static inline int qemu_spice_set_passwd(const char *passwd,
- bool fail_if_connected,
- bool disconnect_if_connected)
-{
- return -1;
-}
-static inline int qemu_spice_set_pw_expire(time_t expires)
-{
- return -1;
-}
-static inline int qemu_spice_migrate_info(const char *h, int p, int t,
- const char *s)
-{
- return -1;
-}
-
-static inline int qemu_spice_display_add_client(int csock, int skipauth,
- int tls)
-{
- return -1;
-}
-
-#endif /* CONFIG_SPICE */
-
-static inline bool qemu_using_spice(Error **errp)
-{
- if (!using_spice) {
- error_set(errp, ERROR_CLASS_DEVICE_NOT_ACTIVE,
- "SPICE is not in use");
- return false;
- }
- return true;
-}
-
-#endif /* QEMU_SPICE_H */
diff --git a/qemu/include/ui/sdl2.h b/qemu/include/ui/sdl2.h
deleted file mode 100644
index 3f0b57bb1..000000000
--- a/qemu/include/ui/sdl2.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef SDL2_H
-#define SDL2_H
-
-/* Avoid compiler warning because macro is redefined in SDL_syswm.h. */
-#undef WIN32_LEAN_AND_MEAN
-
-#include <SDL.h>
-#include <SDL_syswm.h>
-
-struct sdl2_console {
- DisplayChangeListener dcl;
- DisplaySurface *surface;
- SDL_Texture *texture;
- SDL_Window *real_window;
- SDL_Renderer *real_renderer;
- int idx;
- int last_vm_running; /* per console for caption reasons */
- int x, y, w, h;
- int hidden;
- int opengl;
- int updates;
- int idle_counter;
- SDL_GLContext winctx;
-#ifdef CONFIG_OPENGL
- ConsoleGLState *gls;
- GLuint tex_id;
- GLuint fbo_id;
- bool y0_top;
- bool scanout_mode;
-#endif
-};
-
-void sdl2_window_create(struct sdl2_console *scon);
-void sdl2_window_destroy(struct sdl2_console *scon);
-void sdl2_window_resize(struct sdl2_console *scon);
-void sdl2_poll_events(struct sdl2_console *scon);
-
-void sdl2_reset_keys(struct sdl2_console *scon);
-void sdl2_process_key(struct sdl2_console *scon,
- SDL_KeyboardEvent *ev);
-
-void sdl2_2d_update(DisplayChangeListener *dcl,
- int x, int y, int w, int h);
-void sdl2_2d_switch(DisplayChangeListener *dcl,
- DisplaySurface *new_surface);
-void sdl2_2d_refresh(DisplayChangeListener *dcl);
-void sdl2_2d_redraw(struct sdl2_console *scon);
-bool sdl2_2d_check_format(DisplayChangeListener *dcl,
- pixman_format_code_t format);
-
-void sdl2_gl_update(DisplayChangeListener *dcl,
- int x, int y, int w, int h);
-void sdl2_gl_switch(DisplayChangeListener *dcl,
- DisplaySurface *new_surface);
-void sdl2_gl_refresh(DisplayChangeListener *dcl);
-void sdl2_gl_redraw(struct sdl2_console *scon);
-
-QEMUGLContext sdl2_gl_create_context(DisplayChangeListener *dcl,
- QEMUGLParams *params);
-void sdl2_gl_destroy_context(DisplayChangeListener *dcl, QEMUGLContext ctx);
-int sdl2_gl_make_context_current(DisplayChangeListener *dcl,
- QEMUGLContext ctx);
-QEMUGLContext sdl2_gl_get_current_context(DisplayChangeListener *dcl);
-
-void sdl2_gl_scanout(DisplayChangeListener *dcl,
- uint32_t backing_id, bool backing_y_0_top,
- uint32_t x, uint32_t y,
- uint32_t w, uint32_t h);
-void sdl2_gl_scanout_flush(DisplayChangeListener *dcl,
- uint32_t x, uint32_t y, uint32_t w, uint32_t h);
-
-#endif /* SDL2_H */
diff --git a/qemu/include/ui/shader.h b/qemu/include/ui/shader.h
deleted file mode 100644
index f7d86188b..000000000
--- a/qemu/include/ui/shader.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef QEMU_SHADER_H
-#define QEMU_SHADER_H
-
-#include <epoxy/gl.h>
-
-GLuint qemu_gl_init_texture_blit(GLint texture_blit_prog);
-void qemu_gl_run_texture_blit(GLint texture_blit_prog,
- GLint texture_blit_vao);
-
-GLuint qemu_gl_create_compile_shader(GLenum type, const GLchar *src);
-GLuint qemu_gl_create_link_program(GLuint vert, GLuint frag);
-GLuint qemu_gl_create_compile_link_program(const GLchar *vert_src,
- const GLchar *frag_src);
-
-#endif /* QEMU_SHADER_H */
diff --git a/qemu/include/ui/spice-display.h b/qemu/include/ui/spice-display.h
deleted file mode 100644
index 30ccfe3da..000000000
--- a/qemu/include/ui/spice-display.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2010 Red Hat, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 or
- * (at your option) version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <spice/ipc_ring.h>
-#include <spice/enums.h>
-#include <spice/qxl_dev.h>
-
-#include "qemu/thread.h"
-#include "ui/qemu-pixman.h"
-#include "ui/console.h"
-#include "sysemu/sysemu.h"
-
-#if defined(CONFIG_OPENGL_DMABUF)
-# if SPICE_SERVER_VERSION >= 0x000d01 /* release 0.13.1 */
-# define HAVE_SPICE_GL 1
-# include "ui/egl-helpers.h"
-# include "ui/egl-context.h"
-# endif
-#endif
-
-#define NUM_MEMSLOTS 8
-#define MEMSLOT_GENERATION_BITS 8
-#define MEMSLOT_SLOT_BITS 8
-
-#define MEMSLOT_GROUP_HOST 0
-#define MEMSLOT_GROUP_GUEST 1
-#define NUM_MEMSLOTS_GROUPS 2
-
-/*
- * Internal enum to differenciate between options for
- * io calls that have a sync (old) version and an _async (new)
- * version:
- * QXL_SYNC: use the old version
- * QXL_ASYNC: use the new version and make sure there are no two
- * happening at the same time. This is used for guest initiated
- * calls
- */
-typedef enum qxl_async_io {
- QXL_SYNC,
- QXL_ASYNC,
-} qxl_async_io;
-
-enum {
- QXL_COOKIE_TYPE_IO,
- QXL_COOKIE_TYPE_RENDER_UPDATE_AREA,
- QXL_COOKIE_TYPE_POST_LOAD_MONITORS_CONFIG,
- QXL_COOKIE_TYPE_GL_DRAW_DONE,
-};
-
-typedef struct QXLCookie {
- int type;
- uint64_t io;
- union {
- uint32_t surface_id;
- QXLRect area;
- struct {
- QXLRect area;
- int redraw;
- } render;
- } u;
-} QXLCookie;
-
-QXLCookie *qxl_cookie_new(int type, uint64_t io);
-
-typedef struct SimpleSpiceDisplay SimpleSpiceDisplay;
-typedef struct SimpleSpiceUpdate SimpleSpiceUpdate;
-typedef struct SimpleSpiceCursor SimpleSpiceCursor;
-
-struct SimpleSpiceDisplay {
- DisplaySurface *ds;
- DisplayChangeListener dcl;
- void *buf;
- int bufsize;
- QXLWorker *worker;
- QXLInstance qxl;
- uint32_t unique;
- pixman_image_t *surface;
- pixman_image_t *mirror;
- int32_t num_surfaces;
-
- QXLRect dirty;
- int notify;
-
- /*
- * All struct members below this comment can be accessed from
- * both spice server and qemu (iothread) context and any access
- * to them must be protected by the lock.
- */
- QemuMutex lock;
- QTAILQ_HEAD(, SimpleSpiceUpdate) updates;
-
- /* cursor (without qxl): displaychangelistener -> spice server */
- SimpleSpiceCursor *ptr_define;
- SimpleSpiceCursor *ptr_move;
- int16_t ptr_x, ptr_y;
- int16_t hot_x, hot_y;
-
- /* cursor (with qxl): qxl local renderer -> displaychangelistener */
- QEMUCursor *cursor;
- int mouse_x, mouse_y;
- QEMUBH *cursor_bh;
-
-#ifdef HAVE_SPICE_GL
- /* opengl rendering */
- QEMUBH *gl_unblock_bh;
- QEMUTimer *gl_unblock_timer;
- int dmabuf_fd;
-#endif
-};
-
-struct SimpleSpiceUpdate {
- QXLDrawable drawable;
- QXLImage image;
- QXLCommandExt ext;
- uint8_t *bitmap;
- QTAILQ_ENTRY(SimpleSpiceUpdate) next;
-};
-
-struct SimpleSpiceCursor {
- QXLCursorCmd cmd;
- QXLCommandExt ext;
- QXLCursor cursor;
-};
-
-int qemu_spice_rect_is_empty(const QXLRect* r);
-void qemu_spice_rect_union(QXLRect *dest, const QXLRect *r);
-
-void qemu_spice_destroy_update(SimpleSpiceDisplay *sdpy, SimpleSpiceUpdate *update);
-void qemu_spice_create_host_memslot(SimpleSpiceDisplay *ssd);
-void qemu_spice_create_host_primary(SimpleSpiceDisplay *ssd);
-void qemu_spice_destroy_host_primary(SimpleSpiceDisplay *ssd);
-void qemu_spice_vm_change_state_handler(void *opaque, int running,
- RunState state);
-void qemu_spice_display_init_common(SimpleSpiceDisplay *ssd);
-
-void qemu_spice_display_update(SimpleSpiceDisplay *ssd,
- int x, int y, int w, int h);
-void qemu_spice_display_switch(SimpleSpiceDisplay *ssd,
- DisplaySurface *surface);
-void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd);
-void qemu_spice_cursor_refresh_bh(void *opaque);
-
-void qemu_spice_add_memslot(SimpleSpiceDisplay *ssd, QXLDevMemSlot *memslot,
- qxl_async_io async);
-void qemu_spice_del_memslot(SimpleSpiceDisplay *ssd, uint32_t gid,
- uint32_t sid);
-void qemu_spice_create_primary_surface(SimpleSpiceDisplay *ssd, uint32_t id,
- QXLDevSurfaceCreate *surface,
- qxl_async_io async);
-void qemu_spice_destroy_primary_surface(SimpleSpiceDisplay *ssd,
- uint32_t id, qxl_async_io async);
-void qemu_spice_wakeup(SimpleSpiceDisplay *ssd);
-void qemu_spice_display_start(void);
-void qemu_spice_display_stop(void);
-int qemu_spice_display_is_running(SimpleSpiceDisplay *ssd);