console: add QemuUIInfo
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
5643706a09
commit
6f90f3d786
@ -120,6 +120,14 @@ struct DisplaySurface {
|
|||||||
struct PixelFormat pf;
|
struct PixelFormat pf;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef struct QemuUIInfo {
|
||||||
|
/* geometry */
|
||||||
|
int xoff;
|
||||||
|
int yoff;
|
||||||
|
uint32_t width;
|
||||||
|
uint32_t height;
|
||||||
|
} QemuUIInfo;
|
||||||
|
|
||||||
/* cursor data format is 32bit RGBA */
|
/* cursor data format is 32bit RGBA */
|
||||||
typedef struct QEMUCursor {
|
typedef struct QEMUCursor {
|
||||||
int width, height;
|
int width, height;
|
||||||
@ -204,6 +212,8 @@ void update_displaychangelistener(DisplayChangeListener *dcl,
|
|||||||
uint64_t interval);
|
uint64_t interval);
|
||||||
void unregister_displaychangelistener(DisplayChangeListener *dcl);
|
void unregister_displaychangelistener(DisplayChangeListener *dcl);
|
||||||
|
|
||||||
|
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_update(QemuConsole *con, int x, int y, int w, int h);
|
||||||
void dpy_gfx_replace_surface(QemuConsole *con,
|
void dpy_gfx_replace_surface(QemuConsole *con,
|
||||||
DisplaySurface *surface);
|
DisplaySurface *surface);
|
||||||
@ -266,6 +276,7 @@ typedef struct GraphicHwOps {
|
|||||||
void (*gfx_update)(void *opaque);
|
void (*gfx_update)(void *opaque);
|
||||||
void (*text_update)(void *opaque, console_ch_t *text);
|
void (*text_update)(void *opaque, console_ch_t *text);
|
||||||
void (*update_interval)(void *opaque, uint64_t interval);
|
void (*update_interval)(void *opaque, uint64_t interval);
|
||||||
|
int (*ui_info)(void *opaque, uint32_t head, QemuUIInfo *info);
|
||||||
} GraphicHwOps;
|
} GraphicHwOps;
|
||||||
|
|
||||||
QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
|
QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
|
||||||
@ -283,6 +294,7 @@ bool qemu_console_is_graphic(QemuConsole *con);
|
|||||||
bool qemu_console_is_fixedsize(QemuConsole *con);
|
bool qemu_console_is_fixedsize(QemuConsole *con);
|
||||||
int qemu_console_get_index(QemuConsole *con);
|
int qemu_console_get_index(QemuConsole *con);
|
||||||
uint32_t qemu_console_get_head(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_width(QemuConsole *con, int fallback);
|
||||||
int qemu_console_get_height(QemuConsole *con, int fallback);
|
int qemu_console_get_height(QemuConsole *con, int fallback);
|
||||||
|
|
||||||
|
17
ui/console.c
17
ui/console.c
@ -125,6 +125,7 @@ struct QemuConsole {
|
|||||||
/* Graphic console state. */
|
/* Graphic console state. */
|
||||||
Object *device;
|
Object *device;
|
||||||
uint32_t head;
|
uint32_t head;
|
||||||
|
QemuUIInfo ui_info;
|
||||||
const GraphicHwOps *hw_ops;
|
const GraphicHwOps *hw_ops;
|
||||||
void *hw;
|
void *hw;
|
||||||
|
|
||||||
@ -1347,6 +1348,16 @@ void unregister_displaychangelistener(DisplayChangeListener *dcl)
|
|||||||
gui_setup_refresh(ds);
|
gui_setup_refresh(ds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info)
|
||||||
|
{
|
||||||
|
assert(con != NULL);
|
||||||
|
con->ui_info = *info;
|
||||||
|
if (con->hw_ops->ui_info) {
|
||||||
|
return con->hw_ops->ui_info(con->hw, con->head, info);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h)
|
void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h)
|
||||||
{
|
{
|
||||||
DisplayState *s = con->ds;
|
DisplayState *s = con->ds;
|
||||||
@ -1669,6 +1680,12 @@ uint32_t qemu_console_get_head(QemuConsole *con)
|
|||||||
return con ? con->head : -1;
|
return con ? con->head : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QemuUIInfo *qemu_console_get_ui_info(QemuConsole *con)
|
||||||
|
{
|
||||||
|
assert(con != NULL);
|
||||||
|
return &con->ui_info;
|
||||||
|
}
|
||||||
|
|
||||||
int qemu_console_get_width(QemuConsole *con, int fallback)
|
int qemu_console_get_width(QemuConsole *con, int fallback)
|
||||||
{
|
{
|
||||||
if (con == NULL) {
|
if (con == NULL) {
|
||||||
|
Loading…
Reference in New Issue
Block a user