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