ReactOS 0.4.15-dev-8058-ga7cbb60
dvp.c
Go to the documentation of this file.
1/*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * PURPOSE: Native DirectDraw implementation
5 * FILE: win32ss/reactx/ntddraw/dvp.c
6 * PROGRAMER: Magnus olsen (magnus@greatlord.com)
7 * REVISION HISTORY:
8 * 19/1-2006 Magnus Olsen
9 */
10
11#include <win32k.h>
12
13// #define NDEBUG
14#include <debug.h>
15
16/************************************************************************/
17/* NtGdiDvpCanCreateVideoPort */
18/************************************************************************/
22 PDD_CANCREATEVPORTDATA puCanCreateVPortData)
23{
25
26 if (pfnDvpCanCreateVideoPort == NULL)
27 {
28 DPRINT1("Warning: no pfnDvpCanCreateVideoPort\n");
30 }
31
32 DPRINT("Calling dxg.sys pfnDvpCanCreateVideoPort\n");
33 return pfnDvpCanCreateVideoPort(hDirectDraw, puCanCreateVPortData);
34}
35
36/************************************************************************/
37/* NtGdiDvpColorControl */
38/************************************************************************/
42 PDD_VPORTCOLORDATA puVPortColorData)
43{
45
46 if (pfnDvpColorControl == NULL)
47 {
48 DPRINT1("Warning: no pfnDvpColorControl\n");
50 }
51
52 DPRINT("Calling dxg.sys pfnDvpColorControl\n");
53 return pfnDvpColorControl(hVideoPort, puVPortColorData);
54}
55
56/************************************************************************/
57/* NtGdiDvpCreateVideoPort */
58/************************************************************************/
62 PDD_CREATEVPORTDATA puCreateVPortData)
63{
65
66 if (pfnDvpCreateVideoPort == NULL)
67 {
68 DPRINT1("Warning: no pfnDvpCreateVideoPort\n");
70 }
71
72 DPRINT("Calling dxg.sys pfnDvpCreateVideoPort\n");
73 return pfnDvpCreateVideoPort(hDirectDraw, puCreateVPortData);
74}
75
76/************************************************************************/
77/* NtGdiDvpDestroyVideoPort */
78/************************************************************************/
82 PDD_DESTROYVPORTDATA puDestroyVPortData)
83{
84 PGD_DVPDESTROYVIDEOPORT pfnDvpDestroyVideoPort =
86
87 if (pfnDvpDestroyVideoPort == NULL)
88 {
89 DPRINT1("Warning: no pfnDvpDestroyVideoPort\n");
91 }
92
93 DPRINT("Calling dxg.sys pfnDvpDestroyVideoPort\n");
94 return pfnDvpDestroyVideoPort(hVideoPort, puDestroyVPortData);
95}
96
97/************************************************************************/
98/* NtGdiDvpFlipVideoPort */
99/************************************************************************/
100DWORD
103 HANDLE hDDSurfaceCurrent,
104 HANDLE hDDSurfaceTarget,
105 PDD_FLIPVPORTDATA puFlipVPortData)
106{
107 PGD_DVPFLIPVIDEOPORT pfnDvpFlipVideoPort =
109
110 if (pfnDvpFlipVideoPort == NULL)
111 {
112 DPRINT1("Warning: no pfnDvpFlipVideoPort\n");
114 }
115
116 DPRINT("Calling dxg.sys pfnDvpFlipVideoPort\n");
117 return pfnDvpFlipVideoPort(hVideoPort, hDDSurfaceCurrent, hDDSurfaceTarget, puFlipVPortData);
118}
119
120/************************************************************************/
121/* NtGdiDvpGetVideoPortBandwidth */
122/************************************************************************/
123DWORD
126 PDD_GETVPORTBANDWIDTHDATA puGetVPortBandwidthData)
127{
129
130 if (pfnDvpGetVideoPortBandwidth == NULL)
131 {
132 DPRINT1("Warning: no pfnDvpGetVideoPortBandwidth\n");
134 }
135
136 DPRINT("Calling dxg.sys pfnDvpGetVideoPortBandwidth\n");
137 return pfnDvpGetVideoPortBandwidth(hVideoPort, puGetVPortBandwidthData);
138}
139
140/************************************************************************/
141/* NtGdiDvpGetVideoPortFlipStatus */
142/************************************************************************/
143DWORD
146 PDD_GETVPORTFLIPSTATUSDATA puGetVPortFlipStatusData)
147{
149
150 if (pfnDvpGetVideoPortFlipStatus == NULL)
151 {
152 DPRINT1("Warning: no pfnDvpGetVideoPortFlipStatus\n");
154 }
155
156 DPRINT("Calling dxg.sys pfnDvpGetVideoPortFlipStatus\n");
157 return pfnDvpGetVideoPortFlipStatus(hDirectDraw, puGetVPortFlipStatusData);
158}
159
160/************************************************************************/
161/* NtGdiDvpGetVideoPortInputFormats */
162/************************************************************************/
163DWORD
166 PDD_GETVPORTINPUTFORMATDATA puGetVPortInputFormatData)
167{
169
170 if (pfnDvpGetVideoPortInputFormats == NULL)
171 {
172 DPRINT1("Warning: no pfnDvpGetVideoPortInputFormats\n");
174 }
175
176 DPRINT("Calling dxg.sys pfnDvpGetVideoPortInputFormats\n");
177 return pfnDvpGetVideoPortInputFormats(hVideoPort, puGetVPortInputFormatData);
178}
179
180/************************************************************************/
181/* NtGdiDvpGetVideoPortLine */
182/************************************************************************/
183DWORD
186 PDD_GETVPORTLINEDATA puGetVPortLineData)
187{
189
190 if (pfnDvpGetVideoPortLine == NULL)
191 {
192 DPRINT1("Warning: no pfnDvpGetVideoPortLine\n");
194 }
195
196 DPRINT("Calling dxg.sys pfnDvpGetVideoPortLine\n");
197 return pfnDvpGetVideoPortLine(hVideoPort, puGetVPortLineData);
198}
199
200/************************************************************************/
201/* NtGdiDvpGetVideoPortOutputFormats */
202/************************************************************************/
203DWORD
206 PDD_GETVPORTOUTPUTFORMATDATA puGetVPortOutputFormatData)
207{
209
210 if (pfnDvpGetVideoPortOutputFormats == NULL)
211 {
212 DPRINT1("Warning: no pfnDvpGetVideoPortOutputFormats\n");
214 }
215
216 DPRINT("Calling dxg.sys pfnDvpGetVideoPortOutputFormats\n");
217 return pfnDvpGetVideoPortOutputFormats(hVideoPort, puGetVPortOutputFormatData);
218}
219
220/************************************************************************/
221/* NtGdiDvpGetVideoPortConnectInfo */
222/************************************************************************/
223DWORD
226 PDD_GETVPORTCONNECTDATA puGetVPortConnectData)
227{
229
230 if (pfnDvpGetVideoPortConnectInfo == NULL)
231 {
232 DPRINT1("Warning: no pfnDvpGetVideoPortConnectInfo\n");
234 }
235
236 DPRINT("Calling dxg.sys pfnDvpGetVideoPortConnectInfo\n");
237 return pfnDvpGetVideoPortConnectInfo(hDirectDraw, puGetVPortConnectData);
238}
239
240/************************************************************************/
241/* NtGdiDvpGetVideoSignalStatus */
242/************************************************************************/
243DWORD
246 PDD_GETVPORTSIGNALDATA puGetVPortSignalData)
247{
249
250 if (pfnDvpGetVideoSignalStatus == NULL)
251 {
252 DPRINT1("Warning: no pfnDvpGetVideoSignalStatus\n");
254 }
255
256 DPRINT("Calling dxg.sys pfnDvpGetVideoSignalStatus\n");
257 return pfnDvpGetVideoSignalStatus(hVideoPort, puGetVPortSignalData);
258}
259
260/************************************************************************/
261/* NtGdiDvpUpdateVideoPort */
262/************************************************************************/
263DWORD
266 HANDLE* phSurfaceVideo,
267 HANDLE* phSurfaceVbi,
268 PDD_UPDATEVPORTDATA puUpdateVPortData)
269{
271
272 if (pfnDvpUpdateVideoPort == NULL)
273 {
274 DPRINT1("Warning: no pfnDvpUpdateVideoPort\n");
276 }
277
278 DPRINT("Calling dxg.sys pfnDvpUpdateVideoPort\n");
279 return pfnDvpUpdateVideoPort(hVideoPort, phSurfaceVideo, phSurfaceVbi, puUpdateVPortData);
280}
281
282/************************************************************************/
283/* NtGdiDvpWaitForVideoPortSync */
284/************************************************************************/
285DWORD
288 PDD_WAITFORVPORTSYNCDATA puWaitForVPortSyncData)
289{
291
292 if (pfnDvpWaitForVideoPortSync == NULL)
293 {
294 DPRINT1("Warning: no pfnDvpWaitForVideoPortSync\n");
296 }
297
298 DPRINT("Calling dxg.sys pfnDvpWaitForVideoPortSync\n");
299 return pfnDvpWaitForVideoPortSync(hVideoPort, puWaitForVPortSyncData);
300}
301
302/************************************************************************/
303/* NtGdiDvpAcquireNotification */
304/************************************************************************/
305DWORD
308 HANDLE* hEvent,
309 LPDDVIDEOPORTNOTIFY pNotify)
310{
312
313 if (pfnDvpAcquireNotification == NULL)
314 {
315 DPRINT1("Warning: no pfnDvpAcquireNotification\n");
317 }
318
319 DPRINT("Calling dxg.sys pfnDvpAcquireNotification\n");
320 return pfnDvpAcquireNotification(hVideoPort, hEvent, pNotify);
321}
322
323/************************************************************************/
324/* NtGdiDvpReleaseNotification */
325/************************************************************************/
326DWORD
330{
332
333 if (pfnDvpReleaseNotification == NULL)
334 {
335 DPRINT1("Warning: no pfnDvpReleaseNotification\n");
337 }
338
339 DPRINT("Calling dxg.sys pfnDvpReleaseNotification\n");
340 return pfnDvpReleaseNotification(hVideoPort, hEvent);
341}
342
343/************************************************************************/
344/* NtGdiDvpGetVideoPortField */
345/************************************************************************/
346DWORD
349 PDD_GETVPORTFIELDDATA puGetVPortFieldData)
350{
352
353 if (pfnDvpGetVideoPortField == NULL)
354 {
355 DPRINT1("Warning: no pfnDvpGetVideoPortField\n");
357 }
358
359 DPRINT("Calling dxg.sys pfnDvpGetVideoPortField\n");
360 return pfnDvpGetVideoPortField(hVideoPort, puGetVPortFieldData);
361}
#define DPRINT1
Definition: precomp.h:8
#define DDHAL_DRIVER_NOTHANDLED
Definition: ddrawi.h:320
#define NULL
Definition: types.h:112
#define APIENTRY
Definition: api.h:79
DWORD APIENTRY NtGdiDvpGetVideoPortConnectInfo(HANDLE hDirectDraw, PDD_GETVPORTCONNECTDATA puGetVPortConnectData)
Definition: dvp.c:225
DWORD APIENTRY NtGdiDvpGetVideoPortBandwidth(HANDLE hVideoPort, PDD_GETVPORTBANDWIDTHDATA puGetVPortBandwidthData)
Definition: dvp.c:125
DWORD APIENTRY NtGdiDvpGetVideoPortOutputFormats(HANDLE hVideoPort, PDD_GETVPORTOUTPUTFORMATDATA puGetVPortOutputFormatData)
Definition: dvp.c:205
DWORD APIENTRY NtGdiDvpUpdateVideoPort(HANDLE hVideoPort, HANDLE *phSurfaceVideo, HANDLE *phSurfaceVbi, PDD_UPDATEVPORTDATA puUpdateVPortData)
Definition: dvp.c:265
DWORD APIENTRY NtGdiDvpGetVideoPortLine(HANDLE hVideoPort, PDD_GETVPORTLINEDATA puGetVPortLineData)
Definition: dvp.c:185
DWORD APIENTRY NtGdiDvpGetVideoPortField(HANDLE hVideoPort, PDD_GETVPORTFIELDDATA puGetVPortFieldData)
Definition: dvp.c:348
HANDLE APIENTRY NtGdiDvpCreateVideoPort(HANDLE hDirectDraw, PDD_CREATEVPORTDATA puCreateVPortData)
Definition: dvp.c:61
DWORD APIENTRY NtGdiDvpAcquireNotification(HANDLE hVideoPort, HANDLE *hEvent, LPDDVIDEOPORTNOTIFY pNotify)
Definition: dvp.c:307
DWORD APIENTRY NtGdiDvpGetVideoPortInputFormats(HANDLE hVideoPort, PDD_GETVPORTINPUTFORMATDATA puGetVPortInputFormatData)
Definition: dvp.c:165
DWORD APIENTRY NtGdiDvpDestroyVideoPort(HANDLE hVideoPort, PDD_DESTROYVPORTDATA puDestroyVPortData)
Definition: dvp.c:81
DWORD APIENTRY NtGdiDvpGetVideoSignalStatus(HANDLE hVideoPort, PDD_GETVPORTSIGNALDATA puGetVPortSignalData)
Definition: dvp.c:245
DWORD APIENTRY NtGdiDvpColorControl(HANDLE hVideoPort, PDD_VPORTCOLORDATA puVPortColorData)
Definition: dvp.c:41
DWORD APIENTRY NtGdiDvpWaitForVideoPortSync(HANDLE hVideoPort, PDD_WAITFORVPORTSYNCDATA puWaitForVPortSyncData)
Definition: dvp.c:287
DWORD APIENTRY NtGdiDvpCanCreateVideoPort(HANDLE hDirectDraw, PDD_CANCREATEVPORTDATA puCanCreateVPortData)
Definition: dvp.c:21
DWORD APIENTRY NtGdiDvpGetVideoPortFlipStatus(HANDLE hDirectDraw, PDD_GETVPORTFLIPSTATUSDATA puGetVPortFlipStatusData)
Definition: dvp.c:145
DWORD APIENTRY NtGdiDvpFlipVideoPort(HANDLE hVideoPort, HANDLE hDDSurfaceCurrent, HANDLE hDDSurfaceTarget, PDD_FLIPVPORTDATA puFlipVPortData)
Definition: dvp.c:102
DWORD APIENTRY NtGdiDvpReleaseNotification(HANDLE hVideoPort, HANDLE hEvent)
Definition: dvp.c:328
#define DXG_INDEX_DxDvpCreateVideoPort
Definition: dxg.h:72
#define DXG_INDEX_DxDvpGetVideoPortConnectInfo
Definition: dxg.h:81
#define DXG_INDEX_DxDvpGetVideoPortFlipStatus
Definition: dxg.h:77
#define DXG_INDEX_DxDvpAcquireNotification
Definition: dxg.h:85
#define DXG_INDEX_DxDvpGetVideoPortLine
Definition: dxg.h:79
#define DXG_INDEX_DxDvpDestroyVideoPort
Definition: dxg.h:73
#define DXG_INDEX_DxDvpReleaseNotification
Definition: dxg.h:86
#define DXG_INDEX_DxDvpFlipVideoPort
Definition: dxg.h:74
#define DXG_INDEX_DxDvpGetVideoPortBandwidth
Definition: dxg.h:75
#define DXG_INDEX_DxDvpWaitForVideoPortSync
Definition: dxg.h:84
#define DXG_INDEX_DxDvpGetVideoPortInputFormats
Definition: dxg.h:78
#define DXG_INDEX_DxDvpUpdateVideoPort
Definition: dxg.h:83
#define DXG_INDEX_DxDvpGetVideoPortField
Definition: dxg.h:76
#define DXG_INDEX_DxDvpGetVideoPortOutputFormats
Definition: dxg.h:80
#define DXG_INDEX_DxDvpCanCreateVideoPort
Definition: dxg.h:70
#define DXG_INDEX_DxDvpGetVideoSignalStatus
Definition: dxg.h:82
#define DXG_INDEX_DxDvpColorControl
Definition: dxg.h:71
unsigned long DWORD
Definition: ntddk_ex.h:95
DWORD(APIENTRY * PGD_DXDVPGETVIDEOPORTCONNECTINFO)(HANDLE, PDD_GETVPORTCONNECTDATA)
Definition: intddraw.h:59
DWORD(APIENTRY * PGD_DXDVPACQUIRENOTIFICATION)(HANDLE, HANDLE *, LPDDVIDEOPORTNOTIFY)
Definition: intddraw.h:63
DWORD(APIENTRY * PGD_DVPFLIPVIDEOPORT)(HANDLE, HANDLE, HANDLE, PDD_FLIPVPORTDATA)
Definition: intddraw.h:53
DWORD(APIENTRY * PGD_DXDVPGETVIDEOPORTOUTPUTFORMATS)(HANDLE, PDD_GETVPORTOUTPUTFORMATDATA)
Definition: intddraw.h:58
DWORD(APIENTRY * PGD_DVPGETVIDEOPORTBANDWITH)(HANDLE, PDD_GETVPORTBANDWIDTHDATA)
Definition: intddraw.h:54
DWORD(APIENTRY * PGD_DVPCOLORCONTROL)(HANDLE, PDD_VPORTCOLORDATA)
Definition: intddraw.h:50
DWORD(APIENTRY * PGD_DXDVPGETVIDEOPORTFLIPSTATUS)(HANDLE, PDD_GETVPORTFLIPSTATUSDATA)
Definition: intddraw.h:55
DWORD(APIENTRY * PGD_DXDVPGETVIDEOSIGNALSTATUS)(HANDLE, PDD_GETVPORTSIGNALDATA)
Definition: intddraw.h:60
DWORD(APIENTRY * PGD_DXDVPGETVIDEOPORTINPUTFORMATS)(HANDLE, PDD_GETVPORTINPUTFORMATDATA)
Definition: intddraw.h:56
DWORD(APIENTRY * PGD_DXDVPWAITFORVIDEOPORTSYNC)(HANDLE, PDD_WAITFORVPORTSYNCDATA)
Definition: intddraw.h:62
DWORD(APIENTRY * PGD_DXDVPRELEASENOTIFICATION)(HANDLE, HANDLE)
Definition: intddraw.h:64
DWORD(APIENTRY * PGD_DXDVPGETVIDEOPORTLINE)(HANDLE, PDD_GETVPORTLINEDATA)
Definition: intddraw.h:57
DWORD(APIENTRY * PGD_DXDVPUPDATEVIDEOPORT)(HANDLE, HANDLE *, HANDLE *, PDD_UPDATEVPORTDATA)
Definition: intddraw.h:61
DWORD(APIENTRY * PGD_DXDVPGETVIDEOPORTFIELD)(HANDLE, PDD_GETVPORTFIELDDATA)
Definition: intddraw.h:65
DWORD(APIENTRY * PGD_DVPDESTROYVIDEOPORT)(HANDLE, PDD_DESTROYVPORTDATA)
Definition: intddraw.h:52
DWORD(APIENTRY * PGD_DVPCANCREATEVIDEOPORT)(HANDLE, PDD_CANCREATEVPORTDATA)
Definition: intddraw.h:49
HANDLE(APIENTRY * PGD_DVPCREATEVIDEOPORT)(HANDLE, PDD_CREATEVPORTDATA)
Definition: intddraw.h:51
static HANDLE hEvent
Definition: comm.c:54
#define DPRINT
Definition: sndvol32.h:71
DRVFN gpDxFuncs[DXG_INDEX_DxDdIoctl+1]
Definition: ddraw.c:24