Commit 5ee1718f authored by Gerd Hoffmann's avatar Gerd Hoffmann
Browse files

sdl: switch over to new display registry



Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
Message-id: 20180301100547.18962-3-kraxel@redhat.com
parent db71589f
Loading
Loading
Loading
Loading
+0 −19
Original line number Diff line number Diff line
@@ -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);
+13 −11
Original line number Diff line number Diff line
@@ -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);
+15 −2
Original line number Diff line number Diff line
@@ -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);
+1 −14
Original line number Diff line number Diff line
@@ -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_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;