trunk/src/osd/sdl/video.c
| r243712 | r243713 | |
| 163 | 163 | m_dimensions.w = info.rcMonitor.right - info.rcMonitor.left; |
| 164 | 164 | m_dimensions.h = info.rcMonitor.bottom - info.rcMonitor.top; |
| 165 | 165 | char *temp = utf8_from_wstring(info.szDevice); |
| 166 | | strcpy(m_monitor_device, temp); |
| 166 | strncpy(m_name, temp, ARRAY_LENGTH(m_name) - 1); |
| 167 | 167 | osd_free(temp); |
| 168 | 168 | #elif defined(SDLMAME_MACOSX) // Mac OS X Core Imaging version |
| 169 | 169 | CGDirectDisplayID primary; |
| r243712 | r243713 | |
| 176 | 176 | m_dimensions.x = m_dimensions.y = 0; |
| 177 | 177 | m_dimensions.w = dbounds.size.width - dbounds.origin.x; |
| 178 | 178 | m_dimensions.h = dbounds.size.height - dbounds.origin.y; |
| 179 | | strcpy(m_monitor_device, "Mac OS X display"); |
| 179 | strncpy(m_name, "Mac OS X display", ARRAY_LENGTH(m_name) - 1); |
| 180 | 180 | #elif defined(SDLMAME_X11) || defined(SDLMAME_NO_X11) // X11 version |
| 181 | 181 | { |
| 182 | 182 | #if defined(SDLMAME_X11) |
| r243712 | r243713 | |
| 188 | 188 | if ( SDL_GetWMInfo(&info) && (info.subsystem == SDL_SYSWM_X11) ) |
| 189 | 189 | { |
| 190 | 190 | screen = DefaultScreen(info.info.x11.display); |
| 191 | | SDL_VideoDriverName(m_monitor_device, sizeof(m_monitor_device)-1); |
| 191 | SDL_VideoDriverName(m_name, ARRAY_LENGTH(m_name) - 1); |
| 192 | 192 | m_dimensions.x = m_dimensions.y = 0; |
| 193 | 193 | m_dimensions.w = DisplayWidth(info.info.x11.display, screen); |
| 194 | 194 | m_dimensions.h = DisplayHeight(info.info.x11.display, screen); |
| r243712 | r243713 | |
| 215 | 215 | static int first_call=0; |
| 216 | 216 | static int cw = 0, ch = 0; |
| 217 | 217 | |
| 218 | | SDL_VideoDriverName(m_monitor_device, sizeof(m_monitor_device)-1); |
| 218 | SDL_VideoDriverName(m_monitor_device, ARRAY_LENGTH(m_name) - 1); |
| 219 | 219 | if (first_call==0) |
| 220 | 220 | { |
| 221 | 221 | const char *dimstr = osd_getenv(SDLENV_DESKTOPDIM); |
| r243712 | r243713 | |
| 235 | 235 | } |
| 236 | 236 | if ((cw==0) || (ch==0)) |
| 237 | 237 | { |
| 238 | | osd_printf_warning("WARNING: SDL_GetVideoInfo() for driver <%s> is broken.\n", m_monitor_device); |
| 238 | osd_printf_warning("WARNING: SDL_GetVideoInfo() for driver <%s> is broken.\n", m_name); |
| 239 | 239 | osd_printf_warning(" You should set SDLMAME_DESKTOPDIM to your desktop size.\n"); |
| 240 | 240 | osd_printf_warning(" e.g. export SDLMAME_DESKTOPDIM=800x600\n"); |
| 241 | 241 | osd_printf_warning(" Assuming 1024x768 now!\n"); |
| r243712 | r243713 | |
| 252 | 252 | m_dimensions.x = m_dimensions.y = 0; |
| 253 | 253 | m_dimensions.w = WinQuerySysValue( HWND_DESKTOP, SV_CXSCREEN ); |
| 254 | 254 | m_dimensions.h = WinQuerySysValue( HWND_DESKTOP, SV_CYSCREEN ); |
| 255 | | strcpy(m_monitor_device, "OS/2 display"); |
| 255 | strncpy(m_name, "OS/2 display", ARRAY_LENGTH(m_name) - 1); |
| 256 | 256 | #else |
| 257 | 257 | #error Unknown SDLMAME_xx OS type! |
| 258 | 258 | #endif |
| r243712 | r243713 | |
| 261 | 261 | static int info_shown=0; |
| 262 | 262 | if (!info_shown) |
| 263 | 263 | { |
| 264 | | osd_printf_verbose("SDL Device Driver : %s\n", m_monitor_device); |
| 264 | osd_printf_verbose("SDL Device Driver : %s\n", m_name); |
| 265 | 265 | osd_printf_verbose("SDL Monitor Dimensions: %d x %d\n", m_dimensions.w, m_dimensions.h); |
| 266 | 266 | info_shown = 1; |
| 267 | 267 | } |
trunk/src/osd/sdl/video.h
| r243712 | r243713 | |
| 70 | 70 | sdl_monitor_info(const UINT64 handle, const char *monitor_device, float aspect) |
| 71 | 71 | : m_next(NULL), m_handle(handle), m_aspect(aspect) |
| 72 | 72 | { |
| 73 | | strncpy(m_name, monitor_device, 64); |
| 73 | strncpy(m_name, monitor_device, ARRAY_LENGTH(m_name) - 1); |
| 74 | 74 | refresh(); |
| 75 | 75 | } |
| 76 | 76 | |
| 77 | 77 | const UINT64 handle() { return m_handle; } |
| 78 | 78 | const SDL_Rect &position_size() { refresh(); return m_dimensions; } |
| 79 | 79 | |
| 80 | | const char *devicename() { refresh(); return (m_name != NULL) ? m_name : "UNKNOWN"; } |
| 80 | const char *devicename() { refresh(); return m_name[0] ? m_name : "UNKNOWN"; } |
| 81 | 81 | |
| 82 | 82 | float aspect(); |
| 83 | 83 | |