summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/windows/video.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/windows/video.h')
-rw-r--r--src/osd/windows/video.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/osd/windows/video.h b/src/osd/windows/video.h
new file mode 100644
index 00000000000..a3506cdc089
--- /dev/null
+++ b/src/osd/windows/video.h
@@ -0,0 +1,100 @@
+//============================================================
+//
+// video.h - Win32 implementation of MAME video routines
+//
+// Copyright (c) 1996-2007, Nicola Salmoria and the MAME Team.
+// Visit http://mamedev.org for licensing and usage restrictions.
+//
+//============================================================
+
+#ifndef __WIN_VIDEO__
+#define __WIN_VIDEO__
+
+
+//============================================================
+// CONSTANTS
+//============================================================
+
+#define MAX_WINDOWS 4
+
+#define VIDEO_MODE_NONE 0
+#define VIDEO_MODE_GDI 1
+#define VIDEO_MODE_DDRAW 2
+#define VIDEO_MODE_D3D 3
+
+
+
+//============================================================
+// TYPE DEFINITIONS
+//============================================================
+
+typedef struct _win_monitor_info win_monitor_info;
+struct _win_monitor_info
+{
+ win_monitor_info * next; // pointer to next monitor in list
+ HMONITOR handle; // handle to the monitor
+ MONITORINFOEX info; // most recently retrieved info
+ float aspect; // computed/configured aspect ratio of the physical device
+ int reqwidth; // requested width for this monitor
+ int reqheight; // requested height for this monitor
+};
+
+
+typedef struct _win_window_config win_window_config;
+struct _win_window_config
+{
+ float aspect; // decoded aspect ratio
+ int width; // decoded width
+ int height; // decoded height
+ int refresh; // decoded refresh
+};
+
+
+typedef struct _win_video_config win_video_config;
+struct _win_video_config
+{
+ // global configuration
+ int windowed; // start windowed?
+ int prescale; // prescale factor
+ int keepaspect; // keep aspect ratio
+ int numscreens; // number of screens
+ int layerconfig; // default configuration of layers
+
+ // per-window configuration
+ win_window_config window[MAX_WINDOWS]; // configuration data per-window
+
+ // hardware options
+ int mode; // output mode
+ int waitvsync; // spin until vsync
+ int syncrefresh; // sync only to refresh rate
+ int triplebuf; // triple buffer
+ int switchres; // switch resolutions
+
+ // ddraw options
+ int hwstretch; // stretch using the hardware
+
+ // d3d options
+ int filter; // enable filtering
+};
+
+
+
+//============================================================
+// GLOBAL VARIABLES
+//============================================================
+
+extern win_monitor_info *win_monitor_list;
+extern win_video_config video_config;
+
+
+//============================================================
+// PROTOTYPES
+//============================================================
+
+void winvideo_init(running_machine *machine);
+
+void winvideo_monitor_refresh(win_monitor_info *monitor);
+float winvideo_monitor_get_aspect(win_monitor_info *monitor);
+win_monitor_info *winvideo_monitor_from_handle(HMONITOR monitor);
+
+#endif