X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=vl.c;h=15bccc49a25ff70b96a1f1873caafed9287fc1fb;hb=6953d920784466dfaea77f7cfd23df2ad8b772a0;hp=69617d640a321c77e0ed5927aa96b150b3e7269f;hpb=33a8d5b72d63fe44f08614408284fa934dee1edd;p=mirror_qemu.git diff --git a/vl.c b/vl.c index 69617d640a..15bccc49a2 100644 --- a/vl.c +++ b/vl.c @@ -130,6 +130,7 @@ static int data_dir_idx; const char *bios_name = NULL; enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB; DisplayType display_type = DT_DEFAULT; +int request_opengl = -1; int display_opengl; static int display_remote; const char* keyboard_layout = NULL; @@ -1990,6 +1991,15 @@ static DisplayType select_display(const char *p) } else { goto invalid_sdl_args; } + } else if (strstart(opts, ",gl=", &nextopt)) { + opts = nextopt; + if (strstart(opts, "on", &nextopt)) { + request_opengl = 1; + } else if (strstart(opts, "off", &nextopt)) { + request_opengl = 0; + } else { + goto invalid_sdl_args; + } } else { invalid_sdl_args: fprintf(stderr, "Invalid SDL option string: %s\n", p); @@ -3618,8 +3628,10 @@ int main(int argc, char **argv, char **envp) } break; case QEMU_OPTION_incoming: + if (!incoming) { + runstate_set(RUN_STATE_INMIGRATE); + } incoming = optarg; - runstate_set(RUN_STATE_INMIGRATE); break; case QEMU_OPTION_nodefaults: has_defaults = 0; @@ -4003,6 +4015,19 @@ int main(int argc, char **argv, char **envp) early_gtk_display_init(); } #endif +#if defined(CONFIG_SDL) + if (display_type == DT_SDL) { + sdl_display_early_init(request_opengl); + } +#endif + if (request_opengl == 1 && display_opengl == 0) { +#if defined(CONFIG_OPENGL) + fprintf(stderr, "OpenGL is not supported by the display.\n"); +#else + fprintf(stderr, "QEMU was built without opengl support.\n"); +#endif + exit(1); + } socket_init(); @@ -4170,7 +4195,7 @@ int main(int argc, char **argv, char **envp) default_drive(default_floppy, snapshot, IF_FLOPPY, 0, FD_OPTS); default_drive(default_sdcard, snapshot, IF_SD, 0, SD_OPTS); - parse_numa_opts(); + parse_numa_opts(machine_class); if (qemu_opts_foreach(qemu_find_opts("mon"), mon_init_func, NULL, 1) != 0) { exit(1);