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_early_init(DisplayOptions *opts);
|
||||||
void qemu_display_init(DisplayState *ds, 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 */
|
/* cocoa.m */
|
||||||
#ifdef CONFIG_COCOA
|
#ifdef CONFIG_COCOA
|
||||||
void cocoa_display_init(DisplayState *ds, DisplayOptions *opts);
|
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,
|
.dpy_cursor_define = sdl_mouse_define,
|
||||||
};
|
};
|
||||||
|
|
||||||
void sdl_display_early_init(DisplayOptions *opts)
|
static void sdl1_display_init(DisplayState *ds, DisplayOptions *o)
|
||||||
{
|
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
int flags;
|
int flags;
|
||||||
uint8_t data = 0;
|
uint8_t data = 0;
|
||||||
|
@ -1023,3 +1013,15 @@ void sdl_display_init(DisplayState *ds, DisplayOptions *o)
|
||||||
|
|
||||||
atexit(sdl_cleanup);
|
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
|
#endif
|
||||||
|
|
||||||
void sdl_display_early_init(DisplayOptions *o)
|
static void sdl2_display_early_init(DisplayOptions *o)
|
||||||
{
|
{
|
||||||
assert(o->type == DISPLAY_TYPE_SDL);
|
assert(o->type == DISPLAY_TYPE_SDL);
|
||||||
if (o->has_gl && o->gl) {
|
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;
|
int flags;
|
||||||
uint8_t data = 0;
|
uint8_t data = 0;
|
||||||
|
@ -861,3 +861,16 @@ void sdl_display_init(DisplayState *ds, DisplayOptions *o)
|
||||||
|
|
||||||
atexit(sdl_cleanup);
|
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;
|
const char *opts;
|
||||||
|
|
||||||
if (strstart(p, "sdl", &opts)) {
|
if (strstart(p, "sdl", &opts)) {
|
||||||
#ifdef CONFIG_SDL
|
|
||||||
dpy.type = DISPLAY_TYPE_SDL;
|
dpy.type = DISPLAY_TYPE_SDL;
|
||||||
while (*opts) {
|
while (*opts) {
|
||||||
const char *nextopt;
|
const char *nextopt;
|
||||||
|
@ -2153,10 +2152,6 @@ static void parse_display(const char *p)
|
||||||
}
|
}
|
||||||
opts = nextopt;
|
opts = nextopt;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
error_report("SDL support is disabled");
|
|
||||||
exit(1);
|
|
||||||
#endif
|
|
||||||
} else if (strstart(p, "vnc", &opts)) {
|
} else if (strstart(p, "vnc", &opts)) {
|
||||||
if (*opts == '=') {
|
if (*opts == '=') {
|
||||||
vnc_parse(opts + 1, &error_fatal);
|
vnc_parse(opts + 1, &error_fatal);
|
||||||
|
@ -4340,12 +4335,7 @@ int main(int argc, char **argv, char **envp)
|
||||||
"ignoring option");
|
"ignoring option");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dpy.type == DISPLAY_TYPE_SDL) {
|
qemu_display_early_init(&dpy);
|
||||||
sdl_display_early_init(&dpy);
|
|
||||||
} else {
|
|
||||||
qemu_display_early_init(&dpy);
|
|
||||||
}
|
|
||||||
|
|
||||||
qemu_console_early_init();
|
qemu_console_early_init();
|
||||||
|
|
||||||
if (dpy.has_gl && dpy.gl && display_opengl == 0) {
|
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:
|
case DISPLAY_TYPE_CURSES:
|
||||||
curses_display_init(ds, &dpy);
|
curses_display_init(ds, &dpy);
|
||||||
break;
|
break;
|
||||||
case DISPLAY_TYPE_SDL:
|
|
||||||
sdl_display_init(ds, &dpy);
|
|
||||||
break;
|
|
||||||
case DISPLAY_TYPE_COCOA:
|
case DISPLAY_TYPE_COCOA:
|
||||||
cocoa_display_init(ds, &dpy);
|
cocoa_display_init(ds, &dpy);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue