static void init_monitors(void) { sdl_monitor_info **tailptr; // make a list of monitors sdl_monitor_list = NULL; tailptr = &sdl_monitor_list; #if (SDLMAME_SDL2) { int i; mame_printf_verbose("Enter init_monitors\n"); for (i = 0; i < SDL_GetNumVideoDisplays(); i++) { sdl_monitor_info *monitor; SDL_DisplayMode dmode; // allocate a new monitor info monitor = global_alloc_clear(sdl_monitor_info); snprintf(monitor->monitor_device, sizeof(monitor->monitor_device)-1, "%s%d", SDLOPTION_SCREEN,i); SDL_GetDesktopDisplayMode(i, &dmode); monitor->monitor_width = dmode.w; monitor->monitor_height = dmode.h; monitor->center_width = dmode.w; monitor->center_height = dmode.h; monitor->handle = i; // guess the aspect ratio assuming square pixels monitor->aspect = (float)(dmode.w) / (float)(dmode.h); mame_printf_verbose("Adding monitor %s (%d x %d)\n", monitor->monitor_device, dmode.w, dmode.h); // save the primary monitor handle if (i == 0) primary_monitor = monitor; // hook us into the list *tailptr = monitor; tailptr = &monitor->next; } } mame_printf_verbose("Leave init_monitors\n"); #elif defined(SDLMAME_WIN32) EnumDisplayMonitors(NULL, NULL, monitor_enum_callback, (LPARAM)&tailptr); #else add_primary_monitor((void *)&tailptr); #endif }
void sdl_monitor_info::init() { osd_monitor_info **tailptr; // make a list of monitors osd_monitor_info::list = NULL; tailptr = &osd_monitor_info::list; #if (SDLMAME_SDL2) { int i; osd_printf_verbose("Enter init_monitors\n"); for (i = 0; i < SDL_GetNumVideoDisplays(); i++) { sdl_monitor_info *monitor; char temp[64]; snprintf(temp, sizeof(temp)-1, "%s%d", OSDOPTION_SCREEN,i); // allocate a new monitor info monitor = global_alloc_clear<sdl_monitor_info>(i, temp, 1.0f); osd_printf_verbose("Adding monitor %s (%d x %d)\n", monitor->devicename(), monitor->position_size().width(), monitor->position_size().height()); // guess the aspect ratio assuming square pixels monitor->set_aspect((float)(monitor->position_size().width()) / (float)(monitor->position_size().height())); // hook us into the list *tailptr = monitor; tailptr = &monitor->m_next; } } osd_printf_verbose("Leave init_monitors\n"); #elif defined(SDLMAME_WIN32) EnumDisplayMonitors(NULL, NULL, monitor_enum_callback, (LPARAM)&tailptr); #else add_primary_monitor((void *)&tailptr); #endif }