e26f5f71e88b70f4ae653c5baf6db2d1d46b46da
[reactos.git] / reactos / subsys / win32k / include / intddraw.h
1 #ifndef _INT_W32k_DDRAW
2 #define _INT_W32k_DDRAW
3
4 #define GDI_OBJECT_TYPE_DIRECTDRAW 0x00600000
5 #define GDI_OBJECT_TYPE_DD_SURFACE 0x00610000
6 #define GDI_OBJECT_TYPE_DD_VIDEOPORT 0x00620000
7 #define GDI_OBJECT_TYPE_DD_PALETTE 0x00630000
8 #define GDI_OBJECT_TYPE_DD_CLIPPER 0x00640000
9 #define GDI_OBJECT_TYPE_DD_MOTIONCOMP 0x00650000
10
11
12 typedef struct
13 {
14 DD_SURFACE_LOCAL Local;
15 DD_SURFACE_MORE More;
16 DD_SURFACE_GLOBAL Global;
17 DD_ATTACHLIST AttachList;
18 DD_ATTACHLIST AttachListFrom;
19 BOOL bComplete;
20 } DD_SURFACE, *PDD_SURFACE;
21
22 typedef struct
23 {
24 DD_DIRECTDRAW_LOCAL Local;
25 DD_DIRECTDRAW_GLOBAL Global;
26 // Drv callbacks
27 PGD_GETDIRECTDRAWINFO DrvGetDirectDrawInfo;
28 PGD_DISABLEDIRECTDRAW DrvDisableDirectDraw;
29 PDD_GETDRIVERINFO DdGetDriverInfo;
30
31 // DD callbacks
32 DD_CALLBACKS DD;
33
34 // Surface callbacks
35 DD_SURFACECALLBACKS Surf;
36
37 // Palette callbacks
38 DD_PALETTECALLBACKS Pal;
39
40 // Color Control Callback
41 PDD_COLORCB_COLORCONTROL DdControlColor;
42 // Miscellaneous Callback
43 PDD_GETAVAILDRIVERMEMORY DdGetAvailDriverMemory;
44 // Kernel Callback
45 PDD_KERNELCB_SYNCSURFACE DdSyncSurfaceData;
46 PDD_KERNELCB_SYNCVIDEOPORT DdSyncVideoPortData;
47 // NT-based Callback
48 PDD_FLIPTOGDISURFACE DdFlipToGDISurface;
49 PDD_FREEDRIVERMEMORY DdFreeDriverMemory;
50 PDD_SETEXCLUSIVEMODE DdSetExclusiveMode;
51 // Motion Compensation
52 PDD_MOCOMPCB_BEGINFRAME DdMoCompBeginFrame;
53 PDD_MOCOMPCB_CREATE DdMoCompCreate;
54 PDD_MOCOMPCB_DESTROY DdMoCompDestroy;
55 PDD_MOCOMPCB_ENDFRAME DdMoCompEndFrame;
56 PDD_MOCOMPCB_GETCOMPBUFFINFO DdMoCompGetBuffInfo;
57 PDD_MOCOMPCB_GETFORMATS DdMoCompGetFormats;
58 PDD_MOCOMPCB_GETGUIDS DdMoCompGetGuids;
59 PDD_MOCOMPCB_GETINTERNALINFO DdMoCompGetInternalInfo;
60 PDD_MOCOMPCB_QUERYSTATUS DdMoCompQueryStatus;
61 PDD_MOCOMPCB_RENDER DdMoCompRender;
62 // Video Port Callback
63 PDD_VPORTCB_CANCREATEVIDEOPORT DdVideoPortCanCreate;
64 PDD_VPORTCB_COLORCONTROL DdVideoPortColorControl;
65 PDD_VPORTCB_CREATEVIDEOPORT DdVideoPortCreate;
66 PDD_VPORTCB_DESTROYVPORT DdVideoPortDestroy;
67 PDD_VPORTCB_FLIP DdVideoPortFlip;
68 PDD_VPORTCB_GETBANDWIDTH DdVideoPortGetBandwidth;
69 PDD_VPORTCB_GETVPORTCONNECT DdVideoPortGetConnectInfo;
70 PDD_VPORTCB_GETFIELD DdVideoPortGetField;
71 PDD_VPORTCB_GETFLIPSTATUS DdVideoPortGetFlipStatus;
72 PDD_VPORTCB_GETINPUTFORMATS DdVideoPortGetInputFormats;
73 PDD_VPORTCB_GETLINE DdVideoPortGetLine;
74 PDD_VPORTCB_GETOUTPUTFORMATS DdVideoPortGetOutputFormats;
75 PDD_VPORTCB_GETSIGNALSTATUS DdVideoPortGetSignalStatus;
76 PDD_VPORTCB_UPDATE DdVideoPortUpdate;
77 PDD_VPORTCB_WAITFORSYNC DdVideoPortWaitForSync;
78 // Notify Callback
79 //LPDD_NOTIFYCALLBACK NotifyCallback
80
81
82 // D3D Device context callbacks
83 PD3DNTHAL_CONTEXTCREATECB D3dContextCreate;
84 PD3DNTHAL_CONTEXTDESTROYCB D3dContextDestroy;
85 // D3D Buffer callbacks
86 PDD_CANCREATESURFACE DdCanCreateD3DBuffer;
87 PDD_CREATESURFACE DdCreateD3DBuffer;
88 PDD_SURFCB_DESTROYSURFACE DdDestroyD3DBuffer;
89 PDD_SURFCB_LOCK DdLockD3DBuffer;
90 PDD_SURFCB_UNLOCK DdUnlockD3DBuffer;
91
92
93
94 } DD_DIRECTDRAW, *PDD_DIRECTDRAW;
95
96 BOOL INTERNAL_CALL DD_Cleanup(PVOID pDD);
97 BOOL INTERNAL_CALL DDSURF_Cleanup(PVOID pDDSurf);
98
99 #endif /* _INT_W32k_DDRAW */