xref: /reactos/win32ss/reactx/ntddraw/mocomp.c (revision 24757e30)
1 /*
2  * COPYRIGHT:        See COPYING in the top level directory
3  * PROJECT:          ReactOS kernel
4  * PURPOSE:          Native DirectDraw implementation
5  * FILE:             win32ss/reactx/ntddraw/mocomp.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 /* NtGdiDdBeginMoCompFrame                                              */
18 /************************************************************************/
19 DWORD
20 APIENTRY
NtGdiDdBeginMoCompFrame(HANDLE hMoComp,PDD_BEGINMOCOMPFRAMEDATA puBeginFrameData)21 NtGdiDdBeginMoCompFrame(HANDLE hMoComp,
22                         PDD_BEGINMOCOMPFRAMEDATA puBeginFrameData)
23 {
24     PGD_DDBEGINMOCOMPFRAME pfnDdBeginMoCompFrame = (PGD_DDBEGINMOCOMPFRAME)gpDxFuncs[DXG_INDEX_DxDdBeginMoCompFrame].pfn;
25 
26     if (pfnDdBeginMoCompFrame == NULL)
27     {
28         DPRINT1("Warning: no pfnDdBeginMoCompFrame\n");
29         return DDHAL_DRIVER_NOTHANDLED;
30     }
31 
32     DPRINT("Calling dxg.sys pfnDdBeginMoCompFrame\n");
33     return pfnDdBeginMoCompFrame(hMoComp,puBeginFrameData);
34 }
35 
36 /************************************************************************/
37 /* NtGdiDdCreateMoComp                                                  */
38 /************************************************************************/
39 HANDLE
40 APIENTRY
NtGdiDdCreateMoComp(HANDLE hDirectDraw,PDD_CREATEMOCOMPDATA puCreateMoCompData)41 NtGdiDdCreateMoComp(HANDLE hDirectDraw, PDD_CREATEMOCOMPDATA puCreateMoCompData)
42 {
43     PGD_DXDDCREATEMOCOMP pfnDdCreateMoComp = (PGD_DXDDCREATEMOCOMP)gpDxFuncs[DXG_INDEX_DxDdCreateMoComp].pfn;
44 
45     if (pfnDdCreateMoComp == NULL)
46     {
47         DPRINT1("Warning: no pfnDdCreateMoComp\n");
48         return DDHAL_DRIVER_NOTHANDLED;
49     }
50 
51     DPRINT("Calling dxg.sys pfnDdCreateMoComp\n");
52     return pfnDdCreateMoComp(hDirectDraw, puCreateMoCompData);
53 }
54 
55 /************************************************************************/
56 /* NtGdiDdDestroyMoComp                                                 */
57 /************************************************************************/
58 DWORD
59 APIENTRY
NtGdiDdDestroyMoComp(HANDLE hMoComp,PDD_DESTROYMOCOMPDATA puBeginFrameData)60 NtGdiDdDestroyMoComp(HANDLE hMoComp,
61                      PDD_DESTROYMOCOMPDATA puBeginFrameData)
62 {
63     PGD_DXDDDESTROYMOCOMP pfnDdDestroyMoComp =
64         (PGD_DXDDDESTROYMOCOMP)gpDxFuncs[DXG_INDEX_DxDdDestroyMoComp].pfn;
65 
66     if (pfnDdDestroyMoComp == NULL)
67     {
68         DPRINT1("Warning: no pfnDdDestroyMoComp\n");
69         return DDHAL_DRIVER_NOTHANDLED;
70     }
71 
72     DPRINT("Calling dxg.sys pfnDdDestroyMoComp\n");
73     return pfnDdDestroyMoComp(hMoComp, puBeginFrameData);
74 }
75 
76 /************************************************************************/
77 /* NtGdiDdEndMoCompFrame                                                */
78 /************************************************************************/
79 DWORD
80 APIENTRY
NtGdiDdEndMoCompFrame(HANDLE hMoComp,PDD_ENDMOCOMPFRAMEDATA puEndFrameData)81 NtGdiDdEndMoCompFrame(HANDLE hMoComp,
82                       PDD_ENDMOCOMPFRAMEDATA puEndFrameData)
83 {
84     PGD_DXDDENDMOCOMPFRAME pfnDdEndMoCompFrame = (PGD_DXDDENDMOCOMPFRAME)gpDxFuncs[DXG_INDEX_DxDdEndMoCompFrame].pfn;
85 
86     if (pfnDdEndMoCompFrame == NULL)
87     {
88         DPRINT1("Warning: no pfnDdEndMoCompFrame\n");
89         return DDHAL_DRIVER_NOTHANDLED;
90     }
91 
92     DPRINT("Calling dxg.sys pfnDdEndMoCompFrame\n");
93     return pfnDdEndMoCompFrame(hMoComp, puEndFrameData);
94 }
95 
96 /************************************************************************/
97 /* NtGdiDdGetInternalMoCompInfo                                         */
98 /************************************************************************/
99 DWORD
100 APIENTRY
NtGdiDdGetInternalMoCompInfo(HANDLE hDirectDraw,PDD_GETINTERNALMOCOMPDATA puGetInternalData)101 NtGdiDdGetInternalMoCompInfo(HANDLE hDirectDraw,
102                              PDD_GETINTERNALMOCOMPDATA puGetInternalData)
103 {
104     PGD_DXDDGETINTERNALMOCOMPINFO pfnDdGetInternalMoCompInfo = (PGD_DXDDGETINTERNALMOCOMPINFO)gpDxFuncs[DXG_INDEX_DxDdGetInternalMoCompInfo].pfn;
105 
106     if (pfnDdGetInternalMoCompInfo == NULL)
107     {
108         DPRINT1("Warning: no pfnDdGetInternalMoCompInfo\n");
109         return DDHAL_DRIVER_NOTHANDLED;
110     }
111 
112     DPRINT("Calling dxg.sys pfnDdGetInternalMoCompInfo\n");
113     return pfnDdGetInternalMoCompInfo(hDirectDraw, puGetInternalData);
114 }
115 
116 /************************************************************************/
117 /* NtGdiDdGetMoCompBuffInfo                                             */
118 /************************************************************************/
119 DWORD
120 APIENTRY
NtGdiDdGetMoCompBuffInfo(HANDLE hDirectDraw,PDD_GETMOCOMPCOMPBUFFDATA puGetBuffData)121 NtGdiDdGetMoCompBuffInfo(HANDLE hDirectDraw,
122                          PDD_GETMOCOMPCOMPBUFFDATA puGetBuffData)
123 {
124     PGD_DXDDGETMOCOMPBUFFINFO pfnDdGetMoCompBuffInfo = (PGD_DXDDGETMOCOMPBUFFINFO)gpDxFuncs[DXG_INDEX_DxDdGetMoCompBuffInfo].pfn;
125 
126     if (pfnDdGetMoCompBuffInfo == NULL)
127     {
128         DPRINT1("Warning: no pfnDdGetMoCompBuffInfo\n");
129         return DDHAL_DRIVER_NOTHANDLED;
130     }
131 
132     DPRINT("Calling dxg.sys pfnDdGetMoCompBuffInfo\n");
133     return pfnDdGetMoCompBuffInfo(hDirectDraw, puGetBuffData);
134 }
135 
136 /************************************************************************/
137 /* NtGdiDdGetMoCompFormats                                              */
138 /************************************************************************/
139 DWORD
140 APIENTRY
NtGdiDdGetMoCompFormats(HANDLE hDirectDraw,PDD_GETMOCOMPFORMATSDATA puGetMoCompFormatsData)141 NtGdiDdGetMoCompFormats(HANDLE hDirectDraw,
142                         PDD_GETMOCOMPFORMATSDATA puGetMoCompFormatsData)
143 {
144     PGD_DXDDGETMOCOMPFORMATS pfnDdGetMoCompFormats = (PGD_DXDDGETMOCOMPFORMATS)gpDxFuncs[DXG_INDEX_DxDdGetMoCompFormats].pfn;
145 
146     if (pfnDdGetMoCompFormats == NULL)
147     {
148         DPRINT1("Warning: no pfnDdGetMoCompFormats\n");
149         return DDHAL_DRIVER_NOTHANDLED;
150     }
151 
152     DPRINT("Calling dxg.sys pfnDdGetMoCompFormats\n");
153     return pfnDdGetMoCompFormats(hDirectDraw, puGetMoCompFormatsData);
154 }
155 
156 /************************************************************************/
157 /* NtGdiDdGetMoCompGuids                                                */
158 /************************************************************************/
159 DWORD
160 APIENTRY
NtGdiDdGetMoCompGuids(HANDLE hDirectDraw,PDD_GETMOCOMPGUIDSDATA puGetMoCompGuidsData)161 NtGdiDdGetMoCompGuids(HANDLE hDirectDraw,
162                       PDD_GETMOCOMPGUIDSDATA puGetMoCompGuidsData)
163 {
164     PGD_DXDDGETMOCOMPGUIDS pfnDdGetMoCompGuids = (PGD_DXDDGETMOCOMPGUIDS)gpDxFuncs[DXG_INDEX_DxDdGetMoCompGuids].pfn;
165 
166     if (pfnDdGetMoCompGuids == NULL)
167     {
168         DPRINT1("Warning: no pfnDdGetMoCompGuids\n");
169         return DDHAL_DRIVER_NOTHANDLED;
170     }
171 
172     DPRINT("Calling dxg.sys pfnDdGetMoCompGuids\n");
173     return pfnDdGetMoCompGuids(hDirectDraw, puGetMoCompGuidsData);
174 }
175 
176 /************************************************************************/
177 /* NtGdiDdQueryMoCompStatus                                             */
178 /************************************************************************/
179 DWORD
180 APIENTRY
NtGdiDdQueryMoCompStatus(HANDLE hMoComp,PDD_QUERYMOCOMPSTATUSDATA puQueryMoCompStatusData)181 NtGdiDdQueryMoCompStatus(HANDLE hMoComp,
182                          PDD_QUERYMOCOMPSTATUSDATA puQueryMoCompStatusData)
183 {
184     PGD_DXDDQUERYMOCOMPSTATUS pfnDdQueryMoCompStatus = (PGD_DXDDQUERYMOCOMPSTATUS)gpDxFuncs[DXG_INDEX_DxDdQueryMoCompStatus].pfn;
185 
186     if (pfnDdQueryMoCompStatus == NULL)
187     {
188         DPRINT1("Warning: no pfnDdQueryMoCompStatus\n");
189         return DDHAL_DRIVER_NOTHANDLED;
190     }
191 
192     DPRINT("Calling dxg.sys pfnDdQueryMoCompStatus\n");
193     return pfnDdQueryMoCompStatus(hMoComp, puQueryMoCompStatusData);
194 }
195 
196 /************************************************************************/
197 /* NtGdiDdRenderMoComp                                                  */
198 /************************************************************************/
199 DWORD
200 APIENTRY
NtGdiDdRenderMoComp(HANDLE hMoComp,PDD_RENDERMOCOMPDATA puRenderMoCompData)201 NtGdiDdRenderMoComp(HANDLE hMoComp,
202                     PDD_RENDERMOCOMPDATA puRenderMoCompData)
203 {
204     PGD_DXDDRENDERMOCOMP pfnDdRenderMoComp = (PGD_DXDDRENDERMOCOMP)gpDxFuncs[DXG_INDEX_DxDdRenderMoComp].pfn;
205 
206     if (pfnDdRenderMoComp == NULL)
207     {
208         DPRINT1("Warning: no pfnDdRenderMoComp\n");
209         return DDHAL_DRIVER_NOTHANDLED;
210     }
211 
212     DPRINT("Calling dxg.sys pfnDdRenderMoComp\n");
213     return pfnDdRenderMoComp(hMoComp, puRenderMoCompData);
214 }
215