static bool menu_display_check_compatibility( enum menu_display_driver_type type) { const char *video_driver = menu_video_get_ident(); switch (type) { case MENU_VIDEO_DRIVER_GENERIC: return true; case MENU_VIDEO_DRIVER_OPENGL: if (string_is_equal(video_driver, "gl")) return true; break; case MENU_VIDEO_DRIVER_VULKAN: if (string_is_equal(video_driver, "vulkan")) return true; break; case MENU_VIDEO_DRIVER_DIRECT3D: if (string_is_equal(video_driver, "d3d")) return true; break; } return false; }
void init_menu(void) { const char *video_driver; driver_t *driver = driver_get_ptr(); if (driver->menu) return; find_menu_driver(); video_driver = menu_video_get_ident(); switch (driver->menu_ctx->type) { case MENU_VIDEO_DRIVER_GENERIC: break; case MENU_VIDEO_DRIVER_DIRECT3D: if (video_driver && (strcmp(video_driver, "d3d") != 0)) init_menu_fallback(); break; case MENU_VIDEO_DRIVER_OPENGL: if (video_driver && (strcmp(video_driver, "gl") != 0)) init_menu_fallback(); break; } if (!(driver->menu = (menu_handle_t*)menu_init(driver->menu_ctx))) rarch_fail(1, "init_menu()"); if (driver->menu_ctx->lists_init) if (!driver->menu_ctx->lists_init(driver->menu)) rarch_fail(1, "init_menu()"); }