blob: a3506cdc089ce21dd983c80cef06b78e42f88a2b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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
|