trunk/src/osd/windows/d3dintf.h
r17981 | r17982 | |
74 | 74 | // TYPE DEFINITIONS |
75 | 75 | //============================================================ |
76 | 76 | |
77 | | struct d3d; |
| 77 | struct d3d_base; |
78 | 78 | struct d3d_device; |
79 | 79 | struct d3d_surface; |
80 | 80 | struct d3d_texture; |
r17981 | r17982 | |
154 | 154 | |
155 | 155 | struct d3d_interface |
156 | 156 | { |
157 | | HRESULT (*check_device_format)(d3d *d3dptr, UINT adapter, D3DDEVTYPE devtype, D3DFORMAT adapterformat, DWORD usage, D3DRESOURCETYPE restype, D3DFORMAT format); |
158 | | HRESULT (*check_device_type)(d3d *d3dptr, UINT adapter, D3DDEVTYPE devtype, D3DFORMAT format, D3DFORMAT backformat, BOOL windowed); |
159 | | HRESULT (*create_device)(d3d *d3dptr, UINT adapter, D3DDEVTYPE devtype, HWND focus, DWORD behavior, d3d_present_parameters *params, d3d_device **dev); |
160 | | HRESULT (*enum_adapter_modes)(d3d *d3dptr, UINT adapter, D3DFORMAT format, UINT index, D3DDISPLAYMODE *mode); |
161 | | UINT (*get_adapter_count)(d3d *d3dptr); |
162 | | HRESULT (*get_adapter_display_mode)(d3d *d3dptr, UINT adapter, D3DDISPLAYMODE *mode); |
163 | | HRESULT (*get_adapter_identifier)(d3d *d3dptr, UINT adapter, DWORD flags, d3d_adapter_identifier *identifier); |
164 | | UINT (*get_adapter_mode_count)(d3d *d3dptr, UINT adapter, D3DFORMAT format); |
165 | | HMONITOR (*get_adapter_monitor)(d3d *d3dptr, UINT adapter); |
166 | | HRESULT (*get_caps_dword)(d3d *d3dptr, UINT adapter, D3DDEVTYPE devtype, d3d_caps_index which, DWORD *value); |
167 | | ULONG (*release)(d3d *d3dptr); |
| 157 | HRESULT (*check_device_format)(d3d_base *d3dptr, UINT adapter, D3DDEVTYPE devtype, D3DFORMAT adapterformat, DWORD usage, D3DRESOURCETYPE restype, D3DFORMAT format); |
| 158 | HRESULT (*check_device_type)(d3d_base *d3dptr, UINT adapter, D3DDEVTYPE devtype, D3DFORMAT format, D3DFORMAT backformat, BOOL windowed); |
| 159 | HRESULT (*create_device)(d3d_base *d3dptr, UINT adapter, D3DDEVTYPE devtype, HWND focus, DWORD behavior, d3d_present_parameters *params, d3d_device **dev); |
| 160 | HRESULT (*enum_adapter_modes)(d3d_base *d3dptr, UINT adapter, D3DFORMAT format, UINT index, D3DDISPLAYMODE *mode); |
| 161 | UINT (*get_adapter_count)(d3d_base *d3dptr); |
| 162 | HRESULT (*get_adapter_display_mode)(d3d_base *d3dptr, UINT adapter, D3DDISPLAYMODE *mode); |
| 163 | HRESULT (*get_adapter_identifier)(d3d_base *d3dptr, UINT adapter, DWORD flags, d3d_adapter_identifier *identifier); |
| 164 | UINT (*get_adapter_mode_count)(d3d_base *d3dptr, UINT adapter, D3DFORMAT format); |
| 165 | HMONITOR (*get_adapter_monitor)(d3d_base *d3dptr, UINT adapter); |
| 166 | HRESULT (*get_caps_dword)(d3d_base *d3dptr, UINT adapter, D3DDEVTYPE devtype, d3d_caps_index which, DWORD *value); |
| 167 | ULONG (*release)(d3d_base *d3dptr); |
168 | 168 | }; |
169 | 169 | |
170 | 170 | |
r17981 | r17982 | |
262 | 262 | // Core D3D object |
263 | 263 | //============================================================ |
264 | 264 | |
265 | | struct d3d |
| 265 | struct d3d_base |
266 | 266 | { |
267 | 267 | // internal objects |
268 | 268 | int version; |
r17981 | r17982 | |
285 | 285 | //============================================================ |
286 | 286 | |
287 | 287 | #if DIRECT3D_VERSION < 0x0900 |
288 | | d3d *drawd3d8_init(void); |
| 288 | d3d_base *drawd3d8_init(void); |
289 | 289 | #endif |
290 | | d3d *drawd3d9_init(void); |
| 290 | d3d_base *drawd3d9_init(void); |
291 | 291 | |
292 | 292 | |
293 | 293 | #endif |
trunk/src/osd/windows/d3d8intf.c
r17981 | r17982 | |
67 | 67 | // PROTOTYPES |
68 | 68 | //============================================================ |
69 | 69 | |
70 | | static void set_interfaces(d3d *d3dptr); |
| 70 | static void set_interfaces(d3d_base *d3dptr); |
71 | 71 | |
72 | 72 | |
73 | 73 | |
r17981 | r17982 | |
102 | 102 | // drawd3d8_init |
103 | 103 | //============================================================ |
104 | 104 | |
105 | | d3d *drawd3d8_init(void) |
| 105 | d3d_base *drawd3d8_init(void) |
106 | 106 | { |
107 | 107 | direct3dcreate8_ptr direct3dcreate8; |
108 | 108 | HINSTANCE dllhandle; |
109 | 109 | IDirect3D8 *d3d8; |
110 | | d3d *d3dptr; |
| 110 | d3d_base *d3dptr; |
111 | 111 | |
112 | 112 | // dynamically grab the create function from d3d8.dll |
113 | 113 | dllhandle = LoadLibrary(TEXT("d3d8.dll")); |
r17981 | r17982 | |
138 | 138 | } |
139 | 139 | |
140 | 140 | // allocate an object to hold our data |
141 | | d3dptr = global_alloc(d3d); |
| 141 | d3dptr = global_alloc(d3d_base); |
142 | 142 | d3dptr->version = 8; |
143 | 143 | d3dptr->d3dobj = d3d8; |
144 | 144 | d3dptr->dllhandle = dllhandle; |
r17981 | r17982 | |
155 | 155 | // Direct3D interfaces |
156 | 156 | //============================================================ |
157 | 157 | |
158 | | static HRESULT d3d_check_device_format(d3d *d3dptr, UINT adapter, D3DDEVTYPE devtype, D3DFORMAT adapterformat, DWORD usage, D3DRESOURCETYPE restype, D3DFORMAT format) |
| 158 | static HRESULT d3d_check_device_format(d3d_base *d3dptr, UINT adapter, D3DDEVTYPE devtype, D3DFORMAT adapterformat, DWORD usage, D3DRESOURCETYPE restype, D3DFORMAT format) |
159 | 159 | { |
160 | 160 | IDirect3D8 *d3d8 = (IDirect3D8 *)d3dptr->d3dobj; |
161 | 161 | return IDirect3D8_CheckDeviceFormat(d3d8, adapter, devtype, adapterformat, usage, restype, format); |
162 | 162 | } |
163 | 163 | |
164 | 164 | |
165 | | static HRESULT d3d_check_device_type(d3d *d3dptr, UINT adapter, D3DDEVTYPE devtype, D3DFORMAT format, D3DFORMAT backformat, BOOL windowed) |
| 165 | static HRESULT d3d_check_device_type(d3d_base *d3dptr, UINT adapter, D3DDEVTYPE devtype, D3DFORMAT format, D3DFORMAT backformat, BOOL windowed) |
166 | 166 | { |
167 | 167 | IDirect3D8 *d3d8 = (IDirect3D8 *)d3dptr->d3dobj; |
168 | 168 | return IDirect3D8_CheckDeviceType(d3d8, adapter, devtype, format, backformat, windowed); |
169 | 169 | } |
170 | 170 | |
171 | 171 | |
172 | | static HRESULT d3d_create_device(d3d *d3dptr, UINT adapter, D3DDEVTYPE devtype, HWND focus, DWORD behavior, d3d_present_parameters *params, d3d_device **dev) |
| 172 | static HRESULT d3d_create_device(d3d_base *d3dptr, UINT adapter, D3DDEVTYPE devtype, HWND focus, DWORD behavior, d3d_present_parameters *params, d3d_device **dev) |
173 | 173 | { |
174 | 174 | IDirect3D8 *d3d8 = (IDirect3D8 *)d3dptr->d3dobj; |
175 | 175 | D3DPRESENT_PARAMETERS d3d8params; |
r17981 | r17982 | |
178 | 178 | } |
179 | 179 | |
180 | 180 | |
181 | | static HRESULT d3d_enum_adapter_modes(d3d *d3dptr, UINT adapter, D3DFORMAT format, UINT index, D3DDISPLAYMODE *mode) |
| 181 | static HRESULT d3d_enum_adapter_modes(d3d_base *d3dptr, UINT adapter, D3DFORMAT format, UINT index, D3DDISPLAYMODE *mode) |
182 | 182 | { |
183 | 183 | IDirect3D8 *d3d8 = (IDirect3D8 *)d3dptr->d3dobj; |
184 | 184 | return IDirect3D8_EnumAdapterModes(d3d8, adapter, index, mode); |
185 | 185 | } |
186 | 186 | |
187 | 187 | |
188 | | static UINT d3d_get_adapter_count(d3d *d3dptr) |
| 188 | static UINT d3d_get_adapter_count(d3d_base *d3dptr) |
189 | 189 | { |
190 | 190 | IDirect3D8 *d3d8 = (IDirect3D8 *)d3dptr->d3dobj; |
191 | 191 | return IDirect3D8_GetAdapterCount(d3d8); |
192 | 192 | } |
193 | 193 | |
194 | 194 | |
195 | | static HRESULT d3d_get_adapter_display_mode(d3d *d3dptr, UINT adapter, D3DDISPLAYMODE *mode) |
| 195 | static HRESULT d3d_get_adapter_display_mode(d3d_base *d3dptr, UINT adapter, D3DDISPLAYMODE *mode) |
196 | 196 | { |
197 | 197 | IDirect3D8 *d3d8 = (IDirect3D8 *)d3dptr->d3dobj; |
198 | 198 | return IDirect3D8_GetAdapterDisplayMode(d3d8, adapter, mode); |
199 | 199 | } |
200 | 200 | |
201 | 201 | |
202 | | static HRESULT d3d_get_adapter_identifier(d3d *d3dptr, UINT adapter, DWORD flags, d3d_adapter_identifier *identifier) |
| 202 | static HRESULT d3d_get_adapter_identifier(d3d_base *d3dptr, UINT adapter, DWORD flags, d3d_adapter_identifier *identifier) |
203 | 203 | { |
204 | 204 | IDirect3D8 *d3d8 = (IDirect3D8 *)d3dptr->d3dobj; |
205 | 205 | D3DADAPTER_IDENTIFIER8 id; |
r17981 | r17982 | |
217 | 217 | } |
218 | 218 | |
219 | 219 | |
220 | | static UINT d3d_get_adapter_mode_count(d3d *d3dptr, UINT adapter, D3DFORMAT format) |
| 220 | static UINT d3d_get_adapter_mode_count(d3d_base *d3dptr, UINT adapter, D3DFORMAT format) |
221 | 221 | { |
222 | 222 | IDirect3D8 *d3d8 = (IDirect3D8 *)d3dptr->d3dobj; |
223 | 223 | return IDirect3D8_GetAdapterModeCount(d3d8, adapter); |
224 | 224 | } |
225 | 225 | |
226 | 226 | |
227 | | static HMONITOR d3d_get_adapter_monitor(d3d *d3dptr, UINT adapter) |
| 227 | static HMONITOR d3d_get_adapter_monitor(d3d_base *d3dptr, UINT adapter) |
228 | 228 | { |
229 | 229 | IDirect3D8 *d3d8 = (IDirect3D8 *)d3dptr->d3dobj; |
230 | 230 | return IDirect3D8_GetAdapterMonitor(d3d8, adapter); |
231 | 231 | } |
232 | 232 | |
233 | 233 | |
234 | | static HRESULT d3d_get_caps_dword(d3d *d3dptr, UINT adapter, D3DDEVTYPE devtype, d3d_caps_index which, DWORD *value) |
| 234 | static HRESULT d3d_get_caps_dword(d3d_base *d3dptr, UINT adapter, D3DDEVTYPE devtype, d3d_caps_index which, DWORD *value) |
235 | 235 | { |
236 | 236 | IDirect3D8 *d3d8 = (IDirect3D8 *)d3dptr->d3dobj; |
237 | 237 | D3DCAPS8 caps; |
r17981 | r17982 | |
257 | 257 | } |
258 | 258 | |
259 | 259 | |
260 | | static ULONG d3d_release(d3d *d3dptr) |
| 260 | static ULONG d3d_release(d3d_base *d3dptr) |
261 | 261 | { |
262 | 262 | IDirect3D8 *d3d8 = (IDirect3D8 *)d3dptr->d3dobj; |
263 | 263 | ULONG result = IDirect3D8_Release(d3d8); |
r17981 | r17982 | |
696 | 696 | // set_interfaces |
697 | 697 | //============================================================ |
698 | 698 | |
699 | | static void set_interfaces(d3d *d3dptr) |
| 699 | static void set_interfaces(d3d_base *d3dptr) |
700 | 700 | { |
701 | 701 | d3dptr->d3d = d3d8_interface; |
702 | 702 | d3dptr->device = d3d8_device_interface; |
trunk/src/osd/windows/d3d9intf.c
r17981 | r17982 | |
69 | 69 | // PROTOTYPES |
70 | 70 | //============================================================ |
71 | 71 | |
72 | | static void set_interfaces(d3d *d3dptr); |
| 72 | static void set_interfaces(d3d_base *d3dptr); |
73 | 73 | |
74 | 74 | //============================================================ |
75 | 75 | // INLINES |
r17981 | r17982 | |
100 | 100 | // drawd3d9_init |
101 | 101 | //============================================================ |
102 | 102 | |
103 | | d3d *drawd3d9_init(void) |
| 103 | d3d_base *drawd3d9_init(void) |
104 | 104 | { |
105 | 105 | direct3dcreate9_ptr direct3dcreate9; |
106 | 106 | HINSTANCE dllhandle; |
107 | 107 | IDirect3D9 *d3d9; |
108 | | d3d *d3dptr; |
| 108 | d3d_base *d3dptr; |
109 | 109 | bool post_available = true; |
110 | 110 | |
111 | 111 | // dynamically grab the create function from d3d9.dll |
r17981 | r17982 | |
165 | 165 | } |
166 | 166 | |
167 | 167 | // allocate an object to hold our data |
168 | | d3dptr = global_alloc(d3d); |
| 168 | d3dptr = global_alloc(d3d_base); |
169 | 169 | d3dptr->version = 9; |
170 | 170 | d3dptr->d3dobj = d3d9; |
171 | 171 | d3dptr->dllhandle = dllhandle; |
r17981 | r17982 | |
182 | 182 | // Direct3D interfaces |
183 | 183 | //============================================================ |
184 | 184 | |
185 | | static HRESULT d3d_check_device_format(d3d *d3dptr, UINT adapter, D3DDEVTYPE devtype, D3DFORMAT adapterformat, DWORD usage, D3DRESOURCETYPE restype, D3DFORMAT format) |
| 185 | static HRESULT d3d_check_device_format(d3d_base *d3dptr, UINT adapter, D3DDEVTYPE devtype, D3DFORMAT adapterformat, DWORD usage, D3DRESOURCETYPE restype, D3DFORMAT format) |
186 | 186 | { |
187 | 187 | IDirect3D9 *d3d9 = (IDirect3D9 *)d3dptr->d3dobj; |
188 | 188 | return IDirect3D9_CheckDeviceFormat(d3d9, adapter, devtype, adapterformat, usage, restype, format); |
189 | 189 | } |
190 | 190 | |
191 | 191 | |
192 | | static HRESULT d3d_check_device_type(d3d *d3dptr, UINT adapter, D3DDEVTYPE devtype, D3DFORMAT format, D3DFORMAT backformat, BOOL windowed) |
| 192 | static HRESULT d3d_check_device_type(d3d_base *d3dptr, UINT adapter, D3DDEVTYPE devtype, D3DFORMAT format, D3DFORMAT backformat, BOOL windowed) |
193 | 193 | { |
194 | 194 | IDirect3D9 *d3d9 = (IDirect3D9 *)d3dptr->d3dobj; |
195 | 195 | return IDirect3D9_CheckDeviceType(d3d9, adapter, devtype, format, backformat, windowed); |
196 | 196 | } |
197 | 197 | |
198 | | static HRESULT d3d_create_device(d3d *d3dptr, UINT adapter, D3DDEVTYPE devtype, HWND focus, DWORD behavior, d3d_present_parameters *params, d3d_device **dev) |
| 198 | static HRESULT d3d_create_device(d3d_base *d3dptr, UINT adapter, D3DDEVTYPE devtype, HWND focus, DWORD behavior, d3d_present_parameters *params, d3d_device **dev) |
199 | 199 | { |
200 | 200 | IDirect3D9 *d3d9 = (IDirect3D9 *)d3dptr->d3dobj; |
201 | 201 | D3DPRESENT_PARAMETERS d3d9params; |
r17981 | r17982 | |
203 | 203 | return IDirect3D9_CreateDevice(d3d9, adapter, devtype, focus, behavior, &d3d9params, (IDirect3DDevice9 **)dev); |
204 | 204 | } |
205 | 205 | |
206 | | static HRESULT d3d_enum_adapter_modes(d3d *d3dptr, UINT adapter, D3DFORMAT format, UINT index, D3DDISPLAYMODE *mode) |
| 206 | static HRESULT d3d_enum_adapter_modes(d3d_base *d3dptr, UINT adapter, D3DFORMAT format, UINT index, D3DDISPLAYMODE *mode) |
207 | 207 | { |
208 | 208 | IDirect3D9 *d3d9 = (IDirect3D9 *)d3dptr->d3dobj; |
209 | 209 | return IDirect3D9_EnumAdapterModes(d3d9, adapter, format, index, mode); |
210 | 210 | } |
211 | 211 | |
212 | 212 | |
213 | | static UINT d3d_get_adapter_count(d3d *d3dptr) |
| 213 | static UINT d3d_get_adapter_count(d3d_base *d3dptr) |
214 | 214 | { |
215 | 215 | IDirect3D9 *d3d9 = (IDirect3D9 *)d3dptr->d3dobj; |
216 | 216 | return IDirect3D9_GetAdapterCount(d3d9); |
217 | 217 | } |
218 | 218 | |
219 | 219 | |
220 | | static HRESULT d3d_get_adapter_display_mode(d3d *d3dptr, UINT adapter, D3DDISPLAYMODE *mode) |
| 220 | static HRESULT d3d_get_adapter_display_mode(d3d_base *d3dptr, UINT adapter, D3DDISPLAYMODE *mode) |
221 | 221 | { |
222 | 222 | IDirect3D9 *d3d9 = (IDirect3D9 *)d3dptr->d3dobj; |
223 | 223 | return IDirect3D9_GetAdapterDisplayMode(d3d9, adapter, mode); |
224 | 224 | } |
225 | 225 | |
226 | 226 | |
227 | | static HRESULT d3d_get_adapter_identifier(d3d *d3dptr, UINT adapter, DWORD flags, d3d_adapter_identifier *identifier) |
| 227 | static HRESULT d3d_get_adapter_identifier(d3d_base *d3dptr, UINT adapter, DWORD flags, d3d_adapter_identifier *identifier) |
228 | 228 | { |
229 | 229 | IDirect3D9 *d3d9 = (IDirect3D9 *)d3dptr->d3dobj; |
230 | 230 | D3DADAPTER_IDENTIFIER9 id; |
r17981 | r17982 | |
242 | 242 | } |
243 | 243 | |
244 | 244 | |
245 | | static UINT d3d_get_adapter_mode_count(d3d *d3dptr, UINT adapter, D3DFORMAT format) |
| 245 | static UINT d3d_get_adapter_mode_count(d3d_base *d3dptr, UINT adapter, D3DFORMAT format) |
246 | 246 | { |
247 | 247 | IDirect3D9 *d3d9 = (IDirect3D9 *)d3dptr->d3dobj; |
248 | 248 | return IDirect3D9_GetAdapterModeCount(d3d9, adapter, format); |
249 | 249 | } |
250 | 250 | |
251 | 251 | |
252 | | static HMONITOR d3d_get_adapter_monitor(d3d *d3dptr, UINT adapter) |
| 252 | static HMONITOR d3d_get_adapter_monitor(d3d_base *d3dptr, UINT adapter) |
253 | 253 | { |
254 | 254 | IDirect3D9 *d3d9 = (IDirect3D9 *)d3dptr->d3dobj; |
255 | 255 | return IDirect3D9_GetAdapterMonitor(d3d9, adapter); |
256 | 256 | } |
257 | 257 | |
258 | 258 | |
259 | | static HRESULT d3d_get_caps_dword(d3d *d3dptr, UINT adapter, D3DDEVTYPE devtype, d3d_caps_index which, DWORD *value) |
| 259 | static HRESULT d3d_get_caps_dword(d3d_base *d3dptr, UINT adapter, D3DDEVTYPE devtype, d3d_caps_index which, DWORD *value) |
260 | 260 | { |
261 | 261 | IDirect3D9 *d3d9 = (IDirect3D9 *)d3dptr->d3dobj; |
262 | 262 | D3DCAPS9 caps; |
r17981 | r17982 | |
282 | 282 | } |
283 | 283 | |
284 | 284 | |
285 | | static ULONG d3d_release(d3d *d3dptr) |
| 285 | static ULONG d3d_release(d3d_base *d3dptr) |
286 | 286 | { |
287 | 287 | IDirect3D9 *d3d9 = (IDirect3D9 *)d3dptr->d3dobj; |
288 | 288 | ULONG result = IDirect3D9_Release(d3d9); |
r17981 | r17982 | |
789 | 789 | // set_interfaces |
790 | 790 | //============================================================ |
791 | 791 | |
792 | | static void set_interfaces(d3d *d3dptr) |
| 792 | static void set_interfaces(d3d_base *d3dptr) |
793 | 793 | { |
794 | 794 | d3dptr->d3d = d3d9_interface; |
795 | 795 | d3dptr->device = d3d9_device_interface; |