summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/sdl/video.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/sdl/video.cpp')
-rw-r--r--src/osd/sdl/video.cpp237
1 files changed, 3 insertions, 234 deletions
diff --git a/src/osd/sdl/video.cpp b/src/osd/sdl/video.cpp
index c5de6be41d9..ca7286d5696 100644
--- a/src/osd/sdl/video.cpp
+++ b/src/osd/sdl/video.cpp
@@ -7,33 +7,6 @@
// SDLMAME by Olivier Galibert and R. Belmont
//
//============================================================
-
-#ifdef SDLMAME_X11
-#include <X11/extensions/Xinerama.h>
-#endif
-
-#ifdef SDLMAME_MACOSX
-#undef Status
-#include <Carbon/Carbon.h>
-#endif
-
-#ifdef SDLMAME_WIN32
-// for multimonitor
-#ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x501
-#endif
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-
-#include "strconv.h"
-#endif
-
-#ifdef SDLMAME_OS2
-#define INCL_WINSYS
-#include <os2.h>
-#endif
-
#include "sdlinc.h"
// MAME headers
@@ -134,15 +107,9 @@ void sdl_osd_interface::video_exit()
//============================================================
// sdlvideo_monitor_refresh
//============================================================
-#if defined(SDLMAME_WIN32) // Win32 version
-inline osd_rect RECT_to_osd_rect(const RECT &r)
-{
- return osd_rect(r.left, r.top, r.right - r.left, r.bottom - r.top);
-}
-#endif
+
void sdl_monitor_info::refresh()
{
- #if (SDLMAME_SDL2)
SDL_DisplayMode dmode;
#if defined(SDLMAME_WIN32)
@@ -156,128 +123,8 @@ void sdl_monitor_info::refresh()
m_pos_size = SDL_Rect_to_osd_rect(dimensions);
m_usuable_pos_size = SDL_Rect_to_osd_rect(dimensions);
m_is_primary = (m_handle == 0);
-
- #else
- #if defined(SDLMAME_WIN32) // Win32 version
- MONITORINFOEX info;
- info.cbSize = sizeof(info);
- GetMonitorInfo((HMONITOR)m_handle, (LPMONITORINFO)&info);
- m_pos_size = RECT_to_osd_rect(info.rcMonitor);
- m_usuable_pos_size = RECT_to_osd_rect(info.rcWork);
- m_is_primary = ((info.dwFlags & MONITORINFOF_PRIMARY) != 0);
- char *temp = utf8_from_wstring(info.szDevice);
- strncpy(m_name, temp, ARRAY_LENGTH(m_name) - 1);
- osd_free(temp);
- #elif defined(SDLMAME_MACOSX) // Mac OS X Core Imaging version
- CGDirectDisplayID primary;
- CGRect dbounds;
-
- // get the main display
- primary = CGMainDisplayID();
- dbounds = CGDisplayBounds(primary);
-
- m_is_primary = (m_handle == 0);
- m_pos_size = osd_rect(0, 0, dbounds.size.width - dbounds.origin.x, dbounds.size.height - dbounds.origin.y);
- m_usuable_pos_size = m_pos_size;
- strncpy(m_name, "Mac OS X display", ARRAY_LENGTH(m_name) - 1);
- #elif defined(SDLMAME_X11) || defined(SDLMAME_NO_X11) // X11 version
- {
- #if defined(SDLMAME_X11)
- // X11 version
- int screen;
- SDL_SysWMinfo info;
- SDL_VERSION(&info.version);
-
- if ( SDL_GetWMInfo(&info) && (info.subsystem == SDL_SYSWM_X11) )
- {
- screen = DefaultScreen(info.info.x11.display);
- SDL_VideoDriverName(m_name, ARRAY_LENGTH(m_name) - 1);
- m_pos_size = osd_rect(0, 0,
- DisplayWidth(info.info.x11.display, screen),
- DisplayHeight(info.info.x11.display, screen));
-
- /* FIXME: If Xinerame is used we should compile a list of monitors
- * like we do for other targets and ignore SDL.
- */
- if ((XineramaIsActive(info.info.x11.display)) && video_config.restrictonemonitor)
- {
- XineramaScreenInfo *xineinfo;
- int numscreens;
-
- xineinfo = XineramaQueryScreens(info.info.x11.display, &numscreens);
-
- m_pos_size = osd_rect(0, 0, xineinfo[0].width, xineinfo[0].height);
-
- XFree(xineinfo);
- }
- m_usuable_pos_size = m_pos_size;
- m_is_primary = (m_handle == 0);
- }
- else
- #endif // defined(SDLMAME_X11)
- {
- static int first_call=0;
- static int cw = 0, ch = 0;
-
- SDL_VideoDriverName(m_name, ARRAY_LENGTH(m_name) - 1);
- if (first_call==0)
- {
- const char *dimstr = osd_getenv(SDLENV_DESKTOPDIM);
- const SDL_VideoInfo *sdl_vi;
-
- sdl_vi = SDL_GetVideoInfo();
- #if (SDL_VERSION_ATLEAST(1,2,10))
- cw = sdl_vi->current_w;
- ch = sdl_vi->current_h;
- #endif
- first_call=1;
- if ((cw==0) || (ch==0))
- {
- if (dimstr != NULL)
- {
- sscanf(dimstr, "%dx%d", &cw, &ch);
- }
- if ((cw==0) || (ch==0))
- {
- osd_printf_warning("WARNING: SDL_GetVideoInfo() for driver <%s> is broken.\n", m_name);
- osd_printf_warning(" You should set SDLMAME_DESKTOPDIM to your desktop size.\n");
- osd_printf_warning(" e.g. export SDLMAME_DESKTOPDIM=800x600\n");
- osd_printf_warning(" Assuming 1024x768 now!\n");
- cw=1024;
- ch=768;
- }
- }
- }
- m_pos_size = osd_rect(0, 0, cw, ch);
- m_usuable_pos_size = m_pos_size;
- m_is_primary = (m_handle == 0);
- }
- }
- #elif defined(SDLMAME_OS2) // OS2 version
- m_pos_size = osd_rect(0, 0,
- WinQuerySysValue( HWND_DESKTOP, SV_CXSCREEN ),
- WinQuerySysValue( HWND_DESKTOP, SV_CYSCREEN ) );
- m_usuable_pos_size = m_pos_size;
- m_is_primary = (m_handle == 0);
- strncpy(m_name, "OS/2 display", ARRAY_LENGTH(m_name) - 1);
- #else
- #error Unknown SDLMAME_xx OS type!
- #endif
-
- {
- static int info_shown=0;
- if (!info_shown)
- {
- osd_printf_verbose("SDL Device Driver : %s\n", m_name);
- osd_printf_verbose("SDL Monitor Dimensions: %d x %d\n", m_pos_size.width(), m_pos_size.height());
- info_shown = 1;
- }
- }
- #endif // (SDLMAME_SDL2)
}
-
-
//============================================================
// sdlvideo_monitor_get_aspect
//============================================================
@@ -325,68 +172,6 @@ void sdl_osd_interface::update(bool skip_redraw)
//============================================================
-// add_primary_monitor
-//============================================================
-
-#if !defined(SDLMAME_WIN32) && !(SDLMAME_SDL2)
-void sdl_monitor_info::add_primary_monitor(void *data)
-{
- // make a list of monitors
- osd_monitor_info::list = NULL;
- osd_monitor_info **tailptr = &sdl_monitor_info::list;
-
- // allocate a new monitor info
- osd_monitor_info *monitor = global_alloc_clear<sdl_monitor_info>(0, "", 1.0f);
-
- //monitor->refresh();
- // 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;
-}
-#endif
-
-
-//============================================================
-// monitor_enum_callback
-//============================================================
-
-#if defined(SDLMAME_WIN32) && !(SDLMAME_SDL2)
-BOOL CALLBACK sdl_monitor_info::monitor_enum_callback(HMONITOR handle, HDC dc, LPRECT rect, LPARAM data)
-{
- osd_monitor_info ***tailptr = (osd_monitor_info ***)data;
- osd_monitor_info *monitor;
- MONITORINFOEX info;
- BOOL result;
-
- // get the monitor info
- info.cbSize = sizeof(info);
- result = GetMonitorInfo(handle, (LPMONITORINFO)&info);
- assert(result);
- (void)result; // to silence gcc 4.6
-
- // guess the aspect ratio assuming square pixels
- float aspect = (float)(info.rcMonitor.right - info.rcMonitor.left) / (float)(info.rcMonitor.bottom - info.rcMonitor.top);
-
- // allocate a new monitor info
- char *temp = utf8_from_wstring(info.szDevice);
- // copy in the data
- monitor = global_alloc(sdl_monitor_info((UINT64) handle, temp, aspect));
- osd_free(temp);
-
- // hook us into the list
- **tailptr = monitor;
- *tailptr = &monitor->m_next;
-
- // enumerate all the available monitors so to list their names in verbose mode
- return TRUE;
-}
-#endif
-
-
-//============================================================
// init_monitors
//============================================================
@@ -398,7 +183,6 @@ void sdl_monitor_info::init()
osd_monitor_info::list = NULL;
tailptr = &osd_monitor_info::list;
- #if (SDLMAME_SDL2)
{
int i;
@@ -427,11 +211,6 @@ void sdl_monitor_info::init()
}
}
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
}
void sdl_monitor_info::exit()
@@ -534,7 +313,7 @@ static void check_osd_inputs(running_machine &machine)
machine.ui().popup_time(1, "Keepaspect %s", video_config.keepaspect? "enabled":"disabled");
}
- #if (USE_OPENGL || SDLMAME_SDL2)
+ #if (USE_OPENGL)
//FIXME: on a per window basis
if (machine.ui_input().pressed(IPT_OSD_5))
{
@@ -600,16 +379,14 @@ void sdl_osd_interface::extract_video_config()
}
else if (USE_OPENGL && (strcmp(stemp, SDLOPTVAL_OPENGL) == 0))
video_config.mode = VIDEO_MODE_OPENGL;
- else if (SDLMAME_SDL2 && (strcmp(stemp, SDLOPTVAL_SDL2ACCEL) == 0))
+ else if ((strcmp(stemp, SDLOPTVAL_SDL2ACCEL) == 0))
{
video_config.mode = VIDEO_MODE_SDL2ACCEL;
}
-#ifdef USE_BGFX
else if (strcmp(stemp, SDLOPTVAL_BGFX) == 0)
{
video_config.mode = VIDEO_MODE_BGFX;
}
-#endif
else
{
osd_printf_warning("Invalid video value %s; reverting to software\n", stemp);
@@ -693,19 +470,11 @@ void sdl_osd_interface::extract_video_config()
// misc options: sanity check values
// global options: sanity check values
-#if (!SDLMAME_SDL2)
- if (video_config.numscreens < 1 || video_config.numscreens > 1) //MAX_VIDEO_WINDOWS)
- {
- osd_printf_warning("Invalid numscreens value %d; reverting to 1\n", video_config.numscreens);
- video_config.numscreens = 1;
- }
-#else
if (video_config.numscreens < 1 || video_config.numscreens > MAX_VIDEO_WINDOWS)
{
osd_printf_warning("Invalid numscreens value %d; reverting to 1\n", video_config.numscreens);
video_config.numscreens = 1;
}
-#endif
// yuv settings ...
stemp = options().scale_mode();
video_config.scale_mode = drawsdl_scale_mode(stemp);