1 #ifndef _INT_W32k_DDRAW
2 #define _INT_W32k_DDRAW
6 #include <reactos/drivers/directx/dxg.h>
7 #include <reactos/drivers/directx/dxeng.h>
10 extern PDRVFN gpDxFuncs
;
12 typedef BOOL (NTAPI
* PGD_DDSETGAMMARAMP
)(HANDLE
, HDC
, LPVOID
);
13 typedef BOOL (NTAPI
* PGD_DDRELEASEDC
)(HANDLE
);
14 typedef BOOL (NTAPI
* PGD_DDRESTVISRGN
)(HANDLE
, HWND
);
15 typedef HANDLE (NTAPI
* PGD_DDGETDXHANDLE
)(HANDLE
, HANDLE
, BOOL
);
16 typedef HDC (NTAPI
*PGD_DDGETDC
)(HANDLE
, PALETTEENTRY
*);
17 typedef DWORD (NTAPI
*PGD_DXGENERICTRUNK
)(ULONG_PTR
, ULONG_PTR
, SIZE_T
*, PVOID
, SIZE_T
*, PVOID
);
18 typedef DWORD (NTAPI
*PGD_DXDDREENABLEDIRECTDRAWOBJECT
)(HANDLE
, BOOL
*);
19 typedef DWORD (NTAPI
*PGD_DXDDGETDRIVERINFO
)(HANDLE
, PDD_GETDRIVERINFODATA
);
20 typedef DWORD (NTAPI
*PGD_DXDDSETEXCLUSIVEMODE
)(HANDLE
, PDD_SETEXCLUSIVEMODEDATA
);
21 typedef NTSTATUS (NTAPI
*PGD_DXDDSTARTUPDXGRAPHICS
) (ULONG
, PDRVENABLEDATA
, ULONG
, PDRVENABLEDATA
, PULONG
, PEPROCESS
);
22 typedef NTSTATUS (NTAPI
*PGD_DXDDCLEANUPDXGRAPHICS
) (VOID
);
23 typedef HANDLE (NTAPI
*PGD_DDCREATEDIRECTDRAWOBJECT
) (HDC hdc
);
24 typedef DWORD (NTAPI
*PGD_DDGETDRIVERSTATE
)(PDD_GETDRIVERSTATEDATA
);
25 typedef DWORD (NTAPI
*PGD_DDCOLORCONTROL
)(HANDLE hSurface
,PDD_COLORCONTROLDATA puColorControlData
);
26 typedef HANDLE (NTAPI
*PGD_DXDDCREATESURFACEOBJECT
)(HANDLE
, HANDLE
, PDD_SURFACE_LOCAL
, PDD_SURFACE_MORE
, PDD_SURFACE_GLOBAL
, BOOL
);
27 typedef BOOL (NTAPI
*PGD_DXDDDELETEDIRECTDRAWOBJECT
)(HANDLE
);
28 typedef BOOL (NTAPI
*PGD_DXDDDELETESURFACEOBJECT
)(HANDLE
);
29 typedef DWORD (NTAPI
*PGD_DXDDFLIPTOGDISURFACE
)(HANDLE
, PDD_FLIPTOGDISURFACEDATA
);
30 typedef DWORD (NTAPI
*PGD_DXDDGETAVAILDRIVERMEMORY
)(HANDLE
, PDD_GETAVAILDRIVERMEMORYDATA
);
31 typedef BOOL (NTAPI
*PGD_DXDDQUERYDIRECTDRAWOBJECT
)(HANDLE
, DD_HALINFO
*, DWORD
*, LPD3DNTHAL_CALLBACKS
, LPD3DNTHAL_GLOBALDRIVERDATA
,
32 PDD_D3DBUFCALLBACKS
, LPDDSURFACEDESC
, DWORD
*, VIDEOMEMORY
*, DWORD
*, DWORD
*);
36 typedef DWORD (NTAPI
*PGD_DXDDDESTROYD3DBUFFER
)(HANDLE
);
37 typedef DWORD (NTAPI
*PGD_DDCANCREATED3DBUFFER
)(HANDLE
, PDD_CANCREATESURFACEDATA
);
38 typedef DWORD (NTAPI
*PGD_DXDDUNLOCKD3D
)(HANDLE
, PDD_UNLOCKDATA
);
39 typedef DWORD (NTAPI
*PGD_DXDDLOCKD3D
)(HANDLE
, PDD_LOCKDATA
);
40 typedef DWORD (NTAPI
*PGD_D3DVALIDATETEXTURESTAGESTATE
)(LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
);
41 typedef DWORD (NTAPI
*PGD_D3DDRAWPRIMITIVES2
)(HANDLE
, HANDLE
, LPD3DNTHAL_DRAWPRIMITIVES2DATA
, FLATPTR
*, DWORD
*, FLATPTR
*, DWORD
*);
42 typedef DWORD (NTAPI
*PGD_DDCREATED3DBUFFER
)(HANDLE
, HANDLE
*, DDSURFACEDESC
*, DD_SURFACE_GLOBAL
*, DD_SURFACE_LOCAL
*, DD_SURFACE_MORE
*, PDD_CREATESURFACEDATA
, HANDLE
*);
43 typedef BOOL (NTAPI
*PGD_D3DCONTEXTCREATE
)(HANDLE
, HANDLE
, HANDLE
, LPD3DNTHAL_CONTEXTCREATEDATA
);
44 typedef DWORD (NTAPI
*PGD_D3DCONTEXTDESTROY
)(LPD3DNTHAL_CONTEXTDESTROYDATA
);
45 typedef DWORD (NTAPI
*PGD_D3DCONTEXTDESTROYALL
)(LPD3DNTHAL_CONTEXTDESTROYALLDATA
);
48 typedef DWORD (NTAPI
* PGD_DVPCANCREATEVIDEOPORT
)(HANDLE
, PDD_CANCREATEVPORTDATA
);
49 typedef DWORD (NTAPI
* PGD_DVPCOLORCONTROL
)(HANDLE
, PDD_VPORTCOLORDATA
);
50 typedef DWORD (NTAPI
* PGD_DVPCREATEVIDEOPORT
)(HANDLE
, PDD_CREATEVPORTDATA
);
51 typedef DWORD (NTAPI
* PGD_DVPDESTROYVIDEOPORT
)(HANDLE
, PDD_DESTROYVPORTDATA
);
52 typedef DWORD (NTAPI
* PGD_DVPFLIPVIDEOPORT
)(HANDLE
,HANDLE
,HANDLE
,PDD_FLIPVPORTDATA
);
53 typedef DWORD (NTAPI
* PGD_DVPGETVIDEOPORTBANDWITH
)(HANDLE
, PDD_GETVPORTBANDWIDTHDATA
);
54 typedef DWORD (NTAPI
*PGD_DXDVPGETVIDEOPORTFLIPSTATUS
)(HANDLE
, PDD_GETVPORTFLIPSTATUSDATA
);
55 typedef DWORD (NTAPI
*PGD_DXDVPGETVIDEOPORTINPUTFORMATS
)(HANDLE
, PDD_GETVPORTINPUTFORMATDATA
);
56 typedef DWORD (NTAPI
*PGD_DXDVPGETVIDEOPORTLINE
)(HANDLE
, PDD_GETVPORTLINEDATA
);
57 typedef DWORD (NTAPI
*PGD_DXDVPGETVIDEOPORTOUTPUTFORMATS
)(HANDLE
, PDD_GETVPORTOUTPUTFORMATDATA
);
58 typedef DWORD (NTAPI
*PGD_DXDVPGETVIDEOPORTCONNECTINFO
)(HANDLE
, PDD_GETVPORTCONNECTDATA
);
59 typedef DWORD (NTAPI
*PGD_DXDVPGETVIDEOSIGNALSTATUS
)(HANDLE
, PDD_GETVPORTSIGNALDATA
);
60 typedef DWORD (NTAPI
*PGD_DXDVPUPDATEVIDEOPORT
)(HANDLE
, HANDLE
*, HANDLE
*, PDD_UPDATEVPORTDATA
);
61 typedef DWORD (NTAPI
*PGD_DXDVPWAITFORVIDEOPORTSYNC
)(HANDLE
, PDD_WAITFORVPORTSYNCDATA
);
62 typedef DWORD (NTAPI
*PGD_DXDVPACQUIRENOTIFICATION
)(HANDLE
, HANDLE
*, LPDDVIDEOPORTNOTIFY
);
63 typedef DWORD (NTAPI
*PGD_DXDVPRELEASENOTIFICATION
)(HANDLE
, HANDLE
);
64 typedef DWORD (NTAPI
*PGD_DXDVPGETVIDEOPORTFIELD
)(HANDLE
, PDD_GETVPORTFIELDDATA
);
67 typedef DWORD (NTAPI
*PGD_DDBEGINMOCOMPFRAME
)(HANDLE
, PDD_BEGINMOCOMPFRAMEDATA
);
68 typedef HANDLE (NTAPI
*PGD_DXDDCREATEMOCOMP
)(HANDLE
, PDD_CREATEMOCOMPDATA
);
69 typedef DWORD (NTAPI
*PGD_DXDDDESTROYMOCOMP
)(HANDLE
, BOOL
);
70 typedef DWORD (NTAPI
*PGD_DXDDENDMOCOMPFRAME
)(HANDLE
, PDD_ENDMOCOMPFRAMEDATA
);
71 typedef DWORD (NTAPI
*PGD_DXDDGETINTERNALMOCOMPINFO
)(HANDLE
, PDD_GETINTERNALMOCOMPDATA
);
72 typedef DWORD (NTAPI
*PGD_DXDDGETMOCOMPBUFFINFO
)(HANDLE
, PDD_GETMOCOMPCOMPBUFFDATA
);
73 typedef DWORD (NTAPI
*PGD_DXDDGETMOCOMPGUIDS
)(HANDLE
, PDD_GETMOCOMPGUIDSDATA
);
74 typedef DWORD (NTAPI
*PGD_DXDDGETMOCOMPFORMATS
)(HANDLE
, PDD_GETMOCOMPFORMATSDATA
);
75 typedef DWORD (NTAPI
*PGD_DXDDQUERYMOCOMPSTATUS
)(HANDLE
, PDD_QUERYMOCOMPSTATUSDATA
);
76 typedef DWORD (NTAPI
*PGD_DXDDRENDERMOCOMP
)(HANDLE
, PDD_RENDERMOCOMPDATA
);
79 typedef DWORD (NTAPI
*PGD_DDCREATESURFACE
)(HANDLE
, HANDLE
*, DDSURFACEDESC
*, DD_SURFACE_GLOBAL
*, DD_SURFACE_LOCAL
*, DD_SURFACE_MORE
*, PDD_CREATESURFACEDATA
, HANDLE
*);
80 typedef DWORD (NTAPI
*PGD_DXDDWAITFORVERTICALBLANK
)(HANDLE
, PDD_WAITFORVERTICALBLANKDATA
);
81 typedef DWORD (NTAPI
*PGD_DDCANCREATESURFACE
)(HANDLE hDirectDrawLocal
, PDD_CANCREATESURFACEDATA puCanCreateSurfaceData
);
82 typedef DWORD (NTAPI
*PGD_DXDDGETSCANLINE
)(HANDLE
, PDD_GETSCANLINEDATA
);
83 typedef DWORD (NTAPI
*PGD_DXDDCREATESURFACEEX
)(HANDLE
,HANDLE
,DWORD
);
86 typedef DWORD (NTAPI
*PGD_DDALPHABLT
)(HANDLE
, HANDLE
, PDD_BLTDATA
);
87 typedef BOOL (NTAPI
*PGD_DDATTACHSURFACE
)(HANDLE
, HANDLE
);
88 typedef DWORD (NTAPI
*PGD_DXDDUNATTACHSURFACE
)(HANDLE
, HANDLE
);
89 typedef DWORD (NTAPI
*PGD_DXDDDESTROYSURFACE
)(HANDLE
, BOOL
);
90 typedef DWORD (NTAPI
*PGD_DXDDFLIP
)(HANDLE
, HANDLE
, HANDLE
, HANDLE
, PDD_FLIPDATA
);
91 typedef DWORD (NTAPI
*PGD_DXDDLOCK
)(HANDLE
, PDD_LOCKDATA
, HDC
);
92 typedef DWORD (NTAPI
*PGD_DXDDUNLOCK
)(HANDLE
, PDD_UNLOCKDATA
);
93 typedef DWORD (NTAPI
*PGD_DDBLT
)(HANDLE
, HANDLE
, PDD_BLTDATA
);
94 typedef DWORD (NTAPI
*PGD_DXDDSETCOLORKEY
)(HANDLE
, PDD_SETCOLORKEYDATA
);
95 typedef DWORD (NTAPI
*PGD_DDADDATTACHEDSURFACE
)(HANDLE
, HANDLE
,PDD_ADDATTACHEDSURFACEDATA
);
96 typedef DWORD (NTAPI
*PGD_DXDDGETBLTSTATUS
)(HANDLE
, PDD_GETBLTSTATUSDATA
);
97 typedef DWORD (NTAPI
*PGD_DXDDGETFLIPSTATUS
)(HANDLE
, PDD_GETFLIPSTATUSDATA
);
98 typedef DWORD (NTAPI
*PGD_DXDDUPDATEOVERLAY
)(HANDLE
, HANDLE
, PDD_UPDATEOVERLAYDATA
);
99 typedef DWORD (NTAPI
*PGD_DXDDSETOVERLAYPOSITION
)(HANDLE
, HANDLE
, PDD_SETOVERLAYPOSITIONDATA
);
103 #define DXG_GET_INDEX_FUNCTION(INDEX, FUNCTION) \
106 for (i = 0; i <= DXG_INDEX_DxDdIoctl; i++) \
108 if (gpDxFuncs[i].iFunc == INDEX) \
110 FUNCTION = (VOID *)gpDxFuncs[i].pfn; \
117 BOOL INTERNAL_CALL
DD_Cleanup(PVOID pDD
);
118 BOOL INTERNAL_CALL
DDSURF_Cleanup(PVOID pDDSurf
);
120 #endif /* _INT_W32k_DDRAW */