int draw13_init(running_machine &machine, sdl_draw_info *callbacks) { const char *stemp; // fill in the callbacks callbacks->exit = draw13_exit; callbacks->attach = draw13_attach; mame_printf_verbose("Using SDL native texturing driver (SDL 2.0+)\n"); expand_copy_info(blit_info_default); //FIXME: -opengl16 should be -opengl -prefer16bpp //if (video_config.prefer16bpp_tex) expand_copy_info(blit_info_16bpp); // Load the GL library now - else MT will fail stemp = downcast<sdl_options &>(machine.options()).gl_lib(); if (stemp != NULL && strcmp(stemp, SDLOPTVAL_AUTO) == 0) stemp = NULL; // No fatalerror here since not all video drivers support GL ! if (SDL_GL_LoadLibrary(stemp) != 0) // Load library (default for e==NULL mame_printf_verbose("Warning: Unable to load opengl library: %s\n", stemp ? stemp : "<default>"); else mame_printf_verbose("Loaded opengl shared library: %s\n", stemp ? stemp : "<default>"); return 0; }
renderer_sdl2::renderer_sdl2(std::shared_ptr<osd_window> window, int extra_flags) : osd_renderer(window, FLAG_NEEDS_OPENGL | extra_flags) , m_sdl_renderer(nullptr) , m_blittimer(0) , m_last_hofs(0) , m_last_vofs(0) , m_width(0) , m_height(0) , m_blit_dim(0, 0) , m_last_blit_time(0) , m_last_blit_pixels(0) { for (int i = 0; i < 30; i++) { fmt_support[i].format = 0; fmt_support[i].status = 0; } if (!s_blit_info_initialized) { /* On OSX, calling this from drawsdl2_init will * prohibit fullscreen toggling. It is than not possible * to toggle from fullscreen to window mode. */ expand_copy_info(s_blit_info_default); s_blit_info_initialized = true; } }