2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * PURPOSE: Native DirectDraw implementation
5 * FILE: subsys/win32k/ntddraw/dvd.c
6 * PROGRAMER: Magnus olsen (magnus@greatlord.com)
8 * 19/1-2006 Magnus Olsen
15 /************************************************************************/
16 /* NtGdiDvpCanCreateVideoPort */
17 /************************************************************************/
20 NtGdiDvpCanCreateVideoPort(HANDLE hDirectDraw
,
21 PDD_CANCREATEVPORTDATA puCanCreateVPortData
)
23 PGD_DVPCANCREATEVIDEOPORT pfnDvpCanCreateVideoPort
= (PGD_DVPCANCREATEVIDEOPORT
)gpDxFuncs
[DXG_INDEX_DxDvpCanCreateVideoPort
].pfn
;
25 if (pfnDvpCanCreateVideoPort
== NULL
)
27 DPRINT1("Warning: no pfnDvpCanCreateVideoPort");
28 return DDHAL_DRIVER_NOTHANDLED
;
31 DPRINT1("Calling dxg.sys pfnDvpCanCreateVideoPort");
32 return pfnDvpCanCreateVideoPort(hDirectDraw
, puCanCreateVPortData
);
35 /************************************************************************/
36 /* NtGdiDvpColorControl */
37 /************************************************************************/
40 NtGdiDvpColorControl(HANDLE hVideoPort
,
41 PDD_VPORTCOLORDATA puVPortColorData
)
43 PGD_DVPCOLORCONTROL pfnDvpColorControl
= (PGD_DVPCOLORCONTROL
)gpDxFuncs
[DXG_INDEX_DxDvpColorControl
].pfn
;
45 if (pfnDvpColorControl
== NULL
)
47 DPRINT1("Warning: no pfnDvpColorControl");
48 return DDHAL_DRIVER_NOTHANDLED
;
51 DPRINT1("Calling dxg.sys pfnDvpColorControl");
52 return pfnDvpColorControl(hVideoPort
, puVPortColorData
);
55 /************************************************************************/
56 /* NtGdiDvpCreateVideoPort */
57 /************************************************************************/
60 NtGdiDvpCreateVideoPort(HANDLE hDirectDraw
,
61 PDD_CREATEVPORTDATA puCreateVPortData
)
63 PGD_DVPCREATEVIDEOPORT pfnDvpCreateVideoPort
= (PGD_DVPCREATEVIDEOPORT
)gpDxFuncs
[DXG_INDEX_DxDvpCreateVideoPort
].pfn
;
65 if (pfnDvpCreateVideoPort
== NULL
)
67 DPRINT1("Warning: no pfnDvpCreateVideoPort");
68 return DDHAL_DRIVER_NOTHANDLED
;
71 DPRINT1("Calling dxg.sys pfnDvpCreateVideoPort");
72 return pfnDvpCreateVideoPort(hDirectDraw
, puCreateVPortData
);
75 /************************************************************************/
76 /* NtGdiDvpDestroyVideoPort */
77 /************************************************************************/
80 NtGdiDvpDestroyVideoPort(HANDLE hVideoPort
,
81 PDD_DESTROYVPORTDATA puDestroyVPortData
)
83 PGD_DVPDESTROYVIDEOPORT pfnDvpDestroyVideoPort
= (PGD_DVPDESTROYVIDEOPORT
)gpDxFuncs
[DXG_INDEX_DxDvpDestroyVideoPort
].pfn
;
85 if (pfnDvpDestroyVideoPort
== NULL
)
87 DPRINT1("Warning: no pfnDvpDestroyVideoPort");
88 return DDHAL_DRIVER_NOTHANDLED
;
91 DPRINT1("Calling dxg.sys pfnDvpDestroyVideoPort");
92 return pfnDvpDestroyVideoPort(hVideoPort
, puDestroyVPortData
);
95 /************************************************************************/
96 /* NtGdiDvpFlipVideoPort */
97 /************************************************************************/
100 NtGdiDvpFlipVideoPort(HANDLE hVideoPort
,
101 HANDLE hDDSurfaceCurrent
,
102 HANDLE hDDSurfaceTarget
,
103 PDD_FLIPVPORTDATA puFlipVPortData
)
105 PGD_DVPFLIPVIDEOPORT pfnDvpFlipVideoPort
= (PGD_DVPFLIPVIDEOPORT
)gpDxFuncs
[DXG_INDEX_DxDvpFlipVideoPort
].pfn
;
107 if (pfnDvpFlipVideoPort
== NULL
)
109 DPRINT1("Warning: no pfnDvpFlipVideoPort");
110 return DDHAL_DRIVER_NOTHANDLED
;
113 DPRINT1("Calling dxg.sys pfnDvpFlipVideoPort");
114 return pfnDvpFlipVideoPort(hVideoPort
, hDDSurfaceCurrent
, hDDSurfaceTarget
, puFlipVPortData
);
118 /************************************************************************/
119 /* NtGdiDvpGetVideoPortBandwidth */
120 /************************************************************************/
123 NtGdiDvpGetVideoPortBandwidth(HANDLE hVideoPort
,
124 PDD_GETVPORTBANDWIDTHDATA puGetVPortBandwidthData
)
126 PGD_DVPGETVIDEOPORTBANDWITH pfnDvpGetVideoPortBandwidth
= (PGD_DVPGETVIDEOPORTBANDWITH
)gpDxFuncs
[DXG_INDEX_DxDvpGetVideoPortBandwidth
].pfn
;
128 if (pfnDvpGetVideoPortBandwidth
== NULL
)
130 DPRINT1("Warning: no pfnDvpGetVideoPortBandwidth");
131 return DDHAL_DRIVER_NOTHANDLED
;
134 DPRINT1("Calling dxg.sys pfnDvpGetVideoPortBandwidth");
135 return pfnDvpGetVideoPortBandwidth(hVideoPort
, puGetVPortBandwidthData
);
139 /************************************************************************/
140 /* NtGdiDvpGetVideoPortFlipStatus */
141 /************************************************************************/
144 NtGdiDvpGetVideoPortFlipStatus(HANDLE hDirectDraw
,
145 PDD_GETVPORTFLIPSTATUSDATA puGetVPortFlipStatusData
)
147 PGD_DXDVPGETVIDEOPORTFLIPSTATUS pfnDvpGetVideoPortFlipStatus
= (PGD_DXDVPGETVIDEOPORTFLIPSTATUS
)gpDxFuncs
[DXG_INDEX_DxDvpGetVideoPortFlipStatus
].pfn
;
149 if (pfnDvpGetVideoPortFlipStatus
== NULL
)
151 DPRINT1("Warning: no pfnDvpGetVideoPortFlipStatus");
152 return DDHAL_DRIVER_NOTHANDLED
;
155 DPRINT1("Calling dxg.sys pfnDvpGetVideoPortFlipStatus");
156 return pfnDvpGetVideoPortFlipStatus(hDirectDraw
, puGetVPortFlipStatusData
);
160 /************************************************************************/
161 /* NtGdiDvpGetVideoPortInputFormats */
162 /************************************************************************/
165 NtGdiDvpGetVideoPortInputFormats(HANDLE hVideoPort
,
166 PDD_GETVPORTINPUTFORMATDATA puGetVPortInputFormatData
)
168 PGD_DXDVPGETVIDEOPORTINPUTFORMATS pfnDvpGetVideoPortInputFormats
= (PGD_DXDVPGETVIDEOPORTINPUTFORMATS
)gpDxFuncs
[DXG_INDEX_DxDvpGetVideoPortInputFormats
].pfn
;
170 if (pfnDvpGetVideoPortInputFormats
== NULL
)
172 DPRINT1("Warning: no pfnDvpGetVideoPortInputFormats");
173 return DDHAL_DRIVER_NOTHANDLED
;
176 DPRINT1("Calling dxg.sys pfnDvpGetVideoPortInputFormats");
177 return pfnDvpGetVideoPortInputFormats(hVideoPort
, puGetVPortInputFormatData
);
181 /************************************************************************/
182 /* NtGdiDvpGetVideoPortLine */
183 /************************************************************************/
186 NtGdiDvpGetVideoPortLine(HANDLE hVideoPort
,
187 PDD_GETVPORTLINEDATA puGetVPortLineData
)
189 PGD_DXDVPGETVIDEOPORTLINE pfnDvpGetVideoPortLine
= (PGD_DXDVPGETVIDEOPORTLINE
)gpDxFuncs
[DXG_INDEX_DxDvpGetVideoPortLine
].pfn
;
191 if (pfnDvpGetVideoPortLine
== NULL
)
193 DPRINT1("Warning: no pfnDvpGetVideoPortLine");
194 return DDHAL_DRIVER_NOTHANDLED
;
197 DPRINT1("Calling dxg.sys pfnDvpGetVideoPortLine");
198 return pfnDvpGetVideoPortLine(hVideoPort
, puGetVPortLineData
);
202 /************************************************************************/
203 /* NtGdiDvpGetVideoPortOutputFormats */
204 /************************************************************************/
207 NtGdiDvpGetVideoPortOutputFormats(HANDLE hVideoPort
,
208 PDD_GETVPORTOUTPUTFORMATDATA puGetVPortOutputFormatData
)
210 PGD_DXDVPGETVIDEOPORTOUTPUTFORMATS pfnDvpGetVideoPortOutputFormats
= (PGD_DXDVPGETVIDEOPORTOUTPUTFORMATS
)gpDxFuncs
[DXG_INDEX_DxDvpGetVideoPortOutputFormats
].pfn
;
212 if (pfnDvpGetVideoPortOutputFormats
== NULL
)
214 DPRINT1("Warning: no pfnDvpGetVideoPortOutputFormats");
215 return DDHAL_DRIVER_NOTHANDLED
;
218 DPRINT1("Calling dxg.sys pfnDvpGetVideoPortOutputFormats");
219 return pfnDvpGetVideoPortOutputFormats(hVideoPort
, puGetVPortOutputFormatData
);
224 /************************************************************************/
225 /* NtGdiDvpGetVideoPortConnectInfo */
226 /************************************************************************/
229 NtGdiDvpGetVideoPortConnectInfo(HANDLE hDirectDraw
,
230 PDD_GETVPORTCONNECTDATA puGetVPortConnectData
)
232 PGD_DXDVPGETVIDEOPORTCONNECTINFO pfnDvpGetVideoPortConnectInfo
= (PGD_DXDVPGETVIDEOPORTCONNECTINFO
)gpDxFuncs
[DXG_INDEX_DxDvpGetVideoPortConnectInfo
].pfn
;
234 if (pfnDvpGetVideoPortConnectInfo
== NULL
)
236 DPRINT1("Warning: no pfnDvpGetVideoPortConnectInfo");
237 return DDHAL_DRIVER_NOTHANDLED
;
240 DPRINT1("Calling dxg.sys pfnDvpGetVideoPortConnectInfo");
241 return pfnDvpGetVideoPortConnectInfo(hDirectDraw
, puGetVPortConnectData
);
245 /************************************************************************/
246 /* NtGdiDvpGetVideoSignalStatus */
247 /************************************************************************/
250 NtGdiDvpGetVideoSignalStatus(HANDLE hVideoPort
,
251 PDD_GETVPORTSIGNALDATA puGetVPortSignalData
)
253 PGD_DXDVPGETVIDEOSIGNALSTATUS pfnDvpGetVideoSignalStatus
= (PGD_DXDVPGETVIDEOSIGNALSTATUS
)gpDxFuncs
[DXG_INDEX_DxDvpGetVideoSignalStatus
].pfn
;
255 if (pfnDvpGetVideoSignalStatus
== NULL
)
257 DPRINT1("Warning: no pfnDvpGetVideoSignalStatus");
258 return DDHAL_DRIVER_NOTHANDLED
;
261 DPRINT1("Calling dxg.sys pfnDvpGetVideoSignalStatus");
262 return pfnDvpGetVideoSignalStatus(hVideoPort
, puGetVPortSignalData
);
267 /************************************************************************/
268 /* NtGdiDvpUpdateVideoPort */
269 /************************************************************************/
272 NtGdiDvpUpdateVideoPort(HANDLE hVideoPort
,
273 HANDLE
* phSurfaceVideo
,
274 HANDLE
* phSurfaceVbi
,
275 PDD_UPDATEVPORTDATA puUpdateVPortData
)
277 PGD_DXDVPUPDATEVIDEOPORT pfnDvpUpdateVideoPort
= (PGD_DXDVPUPDATEVIDEOPORT
)gpDxFuncs
[DXG_INDEX_DxDvpUpdateVideoPort
].pfn
;
279 if (pfnDvpUpdateVideoPort
== NULL
)
281 DPRINT1("Warning: no pfnDvpUpdateVideoPort");
282 return DDHAL_DRIVER_NOTHANDLED
;
285 DPRINT1("Calling dxg.sys pfnDvpUpdateVideoPort");
286 return pfnDvpUpdateVideoPort(hVideoPort
, phSurfaceVideo
, phSurfaceVbi
, puUpdateVPortData
);
291 /************************************************************************/
292 /* NtGdiDvpWaitForVideoPortSync */
293 /************************************************************************/
296 NtGdiDvpWaitForVideoPortSync(HANDLE hVideoPort
,
297 PDD_WAITFORVPORTSYNCDATA puWaitForVPortSyncData
)
299 PGD_DXDVPWAITFORVIDEOPORTSYNC pfnDvpWaitForVideoPortSync
= (PGD_DXDVPWAITFORVIDEOPORTSYNC
)gpDxFuncs
[DXG_INDEX_DxDvpWaitForVideoPortSync
].pfn
;
301 if (pfnDvpWaitForVideoPortSync
== NULL
)
303 DPRINT1("Warning: no pfnDvpWaitForVideoPortSync");
304 return DDHAL_DRIVER_NOTHANDLED
;
307 DPRINT1("Calling dxg.sys pfnDvpWaitForVideoPortSync");
308 return pfnDvpWaitForVideoPortSync(hVideoPort
, puWaitForVPortSyncData
);
312 /************************************************************************/
313 /* NtGdiDvpAcquireNotification */
314 /************************************************************************/
317 NtGdiDvpAcquireNotification(HANDLE hVideoPort
,
319 LPDDVIDEOPORTNOTIFY pNotify
)
321 PGD_DXDVPACQUIRENOTIFICATION pfnDvpAcquireNotification
= (PGD_DXDVPACQUIRENOTIFICATION
)gpDxFuncs
[DXG_INDEX_DxDvpAcquireNotification
].pfn
;
323 if (pfnDvpAcquireNotification
== NULL
)
325 DPRINT1("Warning: no pfnDvpAcquireNotification");
326 return DDHAL_DRIVER_NOTHANDLED
;
329 DPRINT1("Calling dxg.sys pfnDvpAcquireNotification");
330 return pfnDvpAcquireNotification(hVideoPort
, hEvent
, pNotify
);
334 /************************************************************************/
335 /* NtGdiDvpReleaseNotification */
336 /************************************************************************/
339 NtGdiDvpReleaseNotification(HANDLE hVideoPort
,
342 PGD_DXDVPRELEASENOTIFICATION pfnDvpReleaseNotification
= (PGD_DXDVPRELEASENOTIFICATION
)gpDxFuncs
[DXG_INDEX_DxDvpReleaseNotification
].pfn
;
344 if (pfnDvpReleaseNotification
== NULL
)
346 DPRINT1("Warning: no pfnDvpReleaseNotification");
347 return DDHAL_DRIVER_NOTHANDLED
;
350 DPRINT1("Calling dxg.sys pfnDvpReleaseNotification");
351 return pfnDvpReleaseNotification(hVideoPort
, hEvent
);
356 /************************************************************************/
357 /* NtGdiDvpGetVideoPortField */
358 /************************************************************************/
361 NtGdiDvpGetVideoPortField(HANDLE hVideoPort
,
362 PDD_GETVPORTFIELDDATA puGetVPortFieldData
)
364 PGD_DXDVPGETVIDEOPORTFIELD pfnDvpGetVideoPortField
= (PGD_DXDVPGETVIDEOPORTFIELD
)gpDxFuncs
[DXG_INDEX_DxDvpGetVideoPortField
].pfn
;
366 if (pfnDvpGetVideoPortField
== NULL
)
368 DPRINT1("Warning: no pfnDvpGetVideoPortField");
369 return DDHAL_DRIVER_NOTHANDLED
;
372 DPRINT1("Calling dxg.sys pfnDvpGetVideoPortField");
373 return pfnDvpGetVideoPortField(hVideoPort
, puGetVPortFieldData
);