mirror of https://gitee.com/openkylin/qemu.git
sdl: switch over to new display registry
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20180301100547.18962-3-kraxel@redhat.com
This commit is contained in:
parent
db71589fd9
commit
5ee1718f92
|
@ -444,25 +444,6 @@ void qemu_display_register(QemuDisplay *ui);
|
|||
void qemu_display_early_init(DisplayOptions *opts);
|
||||
void qemu_display_init(DisplayState *ds, DisplayOptions *opts);
|
||||
|
||||
/* sdl.c */
|
||||
#ifdef CONFIG_SDL
|
||||
void sdl_display_early_init(DisplayOptions *opts);
|
||||
void sdl_display_init(DisplayState *ds, DisplayOptions *opts);
|
||||
#else
|
||||
static inline void sdl_display_early_init(DisplayOptions *opts)
|
||||
{
|
||||
/* This must never be called if CONFIG_SDL is disabled */
|
||||
error_report("SDL support is disabled");
|
||||
abort();
|
||||
}
|
||||
static inline void sdl_display_init(DisplayState *ds, DisplayOptions *opts)
|
||||
{
|
||||
/* This must never be called if CONFIG_SDL is disabled */
|
||||
error_report("SDL support is disabled");
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
|
||||
/* cocoa.m */
|
||||
#ifdef CONFIG_COCOA
|
||||
void cocoa_display_init(DisplayState *ds, DisplayOptions *opts);
|
||||
|
|
24
ui/sdl.c
24
ui/sdl.c
|
@ -901,17 +901,7 @@ static const DisplayChangeListenerOps dcl_ops = {
|
|||
.dpy_cursor_define = sdl_mouse_define,
|
||||
};
|
||||
|
||||
void sdl_display_early_init(DisplayOptions *opts)
|
||||
{
|
||||
if (opts->has_gl && opts->gl) {
|
||||
fprintf(stderr,
|
||||
"SDL1 display code has no opengl support.\n"
|
||||
"Please recompile qemu with SDL2, using\n"
|
||||
"./configure --enable-sdl --with-sdlabi=2.0\n");
|
||||
}
|
||||
}
|
||||
|
||||
void sdl_display_init(DisplayState *ds, DisplayOptions *o)
|
||||
static void sdl1_display_init(DisplayState *ds, DisplayOptions *o)
|
||||
{
|
||||
int flags;
|
||||
uint8_t data = 0;
|
||||
|
@ -1023,3 +1013,15 @@ void sdl_display_init(DisplayState *ds, DisplayOptions *o)
|
|||
|
||||
atexit(sdl_cleanup);
|
||||
}
|
||||
|
||||
static QemuDisplay qemu_display_sdl1 = {
|
||||
.type = DISPLAY_TYPE_SDL,
|
||||
.init = sdl1_display_init,
|
||||
};
|
||||
|
||||
static void register_sdl1(void)
|
||||
{
|
||||
qemu_display_register(&qemu_display_sdl1);
|
||||
}
|
||||
|
||||
type_init(register_sdl1);
|
||||
|
|
17
ui/sdl2.c
17
ui/sdl2.c
|
@ -751,7 +751,7 @@ static const DisplayChangeListenerOps dcl_gl_ops = {
|
|||
};
|
||||
#endif
|
||||
|
||||
void sdl_display_early_init(DisplayOptions *o)
|
||||
static void sdl2_display_early_init(DisplayOptions *o)
|
||||
{
|
||||
assert(o->type == DISPLAY_TYPE_SDL);
|
||||
if (o->has_gl && o->gl) {
|
||||
|
@ -761,7 +761,7 @@ void sdl_display_early_init(DisplayOptions *o)
|
|||
}
|
||||
}
|
||||
|
||||
void sdl_display_init(DisplayState *ds, DisplayOptions *o)
|
||||
static void sdl2_display_init(DisplayState *ds, DisplayOptions *o)
|
||||
{
|
||||
int flags;
|
||||
uint8_t data = 0;
|
||||
|
@ -861,3 +861,16 @@ void sdl_display_init(DisplayState *ds, DisplayOptions *o)
|
|||
|
||||
atexit(sdl_cleanup);
|
||||
}
|
||||
|
||||
static QemuDisplay qemu_display_sdl2 = {
|
||||
.type = DISPLAY_TYPE_SDL,
|
||||
.early_init = sdl2_display_early_init,
|
||||
.init = sdl2_display_init,
|
||||
};
|
||||
|
||||
static void register_sdl1(void)
|
||||
{
|
||||
qemu_display_register(&qemu_display_sdl2);
|
||||
}
|
||||
|
||||
type_init(register_sdl1);
|
||||
|
|
15
vl.c
15
vl.c
|
@ -2092,7 +2092,6 @@ static void parse_display(const char *p)
|
|||
const char *opts;
|
||||
|
||||
if (strstart(p, "sdl", &opts)) {
|
||||
#ifdef CONFIG_SDL
|
||||
dpy.type = DISPLAY_TYPE_SDL;
|
||||
while (*opts) {
|
||||
const char *nextopt;
|
||||
|
@ -2153,10 +2152,6 @@ static void parse_display(const char *p)
|
|||
}
|
||||
opts = nextopt;
|
||||
}
|
||||
#else
|
||||
error_report("SDL support is disabled");
|
||||
exit(1);
|
||||
#endif
|
||||
} else if (strstart(p, "vnc", &opts)) {
|
||||
if (*opts == '=') {
|
||||
vnc_parse(opts + 1, &error_fatal);
|
||||
|
@ -4340,12 +4335,7 @@ int main(int argc, char **argv, char **envp)
|
|||
"ignoring option");
|
||||
}
|
||||
|
||||
if (dpy.type == DISPLAY_TYPE_SDL) {
|
||||
sdl_display_early_init(&dpy);
|
||||
} else {
|
||||
qemu_display_early_init(&dpy);
|
||||
}
|
||||
|
||||
qemu_display_early_init(&dpy);
|
||||
qemu_console_early_init();
|
||||
|
||||
if (dpy.has_gl && dpy.gl && display_opengl == 0) {
|
||||
|
@ -4677,9 +4667,6 @@ int main(int argc, char **argv, char **envp)
|
|||
case DISPLAY_TYPE_CURSES:
|
||||
curses_display_init(ds, &dpy);
|
||||
break;
|
||||
case DISPLAY_TYPE_SDL:
|
||||
sdl_display_init(ds, &dpy);
|
||||
break;
|
||||
case DISPLAY_TYPE_COCOA:
|
||||
cocoa_display_init(ds, &dpy);
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue