master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6#ifndef _INC_DCIDDI
  7#define _INC_DCIDDI
  8
  9#ifdef __cplusplus
 10extern "C" {
 11#endif
 12
 13#define DCICOMMAND 3075
 14#define DCI_VERSION 0x0100
 15
 16#define DCICREATEPRIMARYSURFACE 1
 17#define DCICREATEOFFSCREENSURFACE 2
 18#define DCICREATEOVERLAYSURFACE 3
 19#define DCIENUMSURFACE 4
 20#define DCIESCAPE 5
 21
 22#define DCI_OK 0
 23#define DCI_FAIL_GENERIC -1
 24#define DCI_FAIL_UNSUPPORTEDVERSION -2
 25#define DCI_FAIL_INVALIDSURFACE -3
 26#define DCI_FAIL_UNSUPPORTED -4
 27
 28#define DCI_ERR_CURRENTLYNOTAVAIL -5
 29#define DCI_ERR_INVALIDRECT -6
 30#define DCI_ERR_UNSUPPORTEDFORMAT -7
 31#define DCI_ERR_UNSUPPORTEDMASK -8
 32#define DCI_ERR_TOOBIGHEIGHT -9
 33#define DCI_ERR_TOOBIGWIDTH -10
 34#define DCI_ERR_TOOBIGSIZE -11
 35#define DCI_ERR_OUTOFMEMORY -12
 36#define DCI_ERR_INVALIDPOSITION -13
 37#define DCI_ERR_INVALIDSTRETCH -14
 38#define DCI_ERR_INVALIDCLIPLIST -15
 39#define DCI_ERR_SURFACEISOBSCURED -16
 40#define DCI_ERR_XALIGN -17
 41#define DCI_ERR_YALIGN -18
 42#define DCI_ERR_XYALIGN -19
 43#define DCI_ERR_WIDTHALIGN -20
 44#define DCI_ERR_HEIGHTALIGN -21
 45
 46#define DCI_STATUS_POINTERCHANGED 1
 47#define DCI_STATUS_STRIDECHANGED 2
 48#define DCI_STATUS_FORMATCHANGED 4
 49#define DCI_STATUS_SURFACEINFOCHANGED 8
 50#define DCI_STATUS_CHROMAKEYCHANGED 16
 51#define DCI_STATUS_WASSTILLDRAWING 32
 52
 53#define DCI_SUCCESS(error) (((DCIRVAL)error) >= 0)
 54
 55#define DCI_SURFACE_TYPE 0x0000000F
 56#define DCI_PRIMARY 0x00000000
 57#define DCI_OFFSCREEN 0x00000001
 58#define DCI_OVERLAY 0x00000002
 59#define DCI_VISIBLE 0x00000010
 60#define DCI_CHROMAKEY 0x00000020
 61#define DCI_1632_ACCESS 0x00000040
 62#define DCI_DWORDSIZE 0x00000080
 63#define DCI_DWORDALIGN 0x00000100
 64#define DCI_WRITEONLY 0x00000200
 65#define DCI_ASYNC 0x00000400
 66
 67#define DCI_CAN_STRETCHX 0x00001000
 68#define DCI_CAN_STRETCHY 0x00002000
 69#define DCI_CAN_STRETCHXY (DCI_CAN_STRETCHX | DCI_CAN_STRETCHY)
 70
 71#define DCI_CAN_STRETCHXN 0x00004000
 72#define DCI_CAN_STRETCHYN 0x00008000
 73#define DCI_CAN_STRETCHXYN (DCI_CAN_STRETCHXN | DCI_CAN_STRETCHYN)
 74
 75#define DCI_CANOVERLAY 0x00010000
 76
 77  typedef int DCIRVAL;
 78
 79  typedef struct _DCICMD {
 80    DWORD dwCommand;
 81    DWORD dwParam1;
 82    DWORD dwParam2;
 83    DWORD dwVersion;
 84    DWORD dwReserved;
 85  } DCICMD;
 86
 87  typedef struct _DCICREATEINPUT {
 88    DCICMD cmd;
 89    DWORD dwCompression;
 90    DWORD dwMask[3];
 91    DWORD dwWidth;
 92    DWORD dwHeight;
 93    DWORD dwDCICaps;
 94    DWORD dwBitCount;
 95    LPVOID lpSurface;
 96  } DCICREATEINPUT,*LPDCICREATEINPUT;
 97
 98  typedef struct _DCISURFACEINFO {
 99    DWORD dwSize;
100    DWORD dwDCICaps;
101    DWORD dwCompression;
102    DWORD dwMask[3];
103    DWORD dwWidth;
104    DWORD dwHeight;
105    LONG lStride;
106    DWORD dwBitCount;
107    ULONG_PTR dwOffSurface;
108    WORD wSelSurface;
109    WORD wReserved;
110    DWORD dwReserved1;
111    DWORD dwReserved2;
112    DWORD dwReserved3;
113    DCIRVAL (CALLBACK *BeginAccess) (LPVOID,LPRECT);
114    void (CALLBACK *EndAccess) (LPVOID);
115    void (CALLBACK *DestroySurface) (LPVOID);
116  } DCISURFACEINFO,*LPDCISURFACEINFO;
117
118  typedef void (*ENUM_CALLBACK)(LPDCISURFACEINFO lpSurfaceInfo,LPVOID lpContext);
119
120  typedef struct _DCIENUMINPUT {
121    DCICMD cmd;
122    RECT rSrc;
123    RECT rDst;
124    void (CALLBACK *EnumCallback)(LPDCISURFACEINFO,LPVOID);
125    LPVOID lpContext;
126  } DCIENUMINPUT,*LPDCIENUMINPUT;
127
128  typedef DCISURFACEINFO DCIPRIMARY,*LPDCIPRIMARY;
129
130  typedef struct _DCIOFFSCREEN {
131    DCISURFACEINFO dciInfo;
132    DCIRVAL (CALLBACK *Draw) (LPVOID);
133    DCIRVAL (CALLBACK *SetClipList) (LPVOID,LPRGNDATA);
134    DCIRVAL (CALLBACK *SetDestination) (LPVOID,LPRECT,LPRECT);
135  } DCIOFFSCREEN,*LPDCIOFFSCREEN;
136
137  typedef struct _DCIOVERLAY {
138    DCISURFACEINFO dciInfo;
139    DWORD dwChromakeyValue;
140    DWORD dwChromakeyMask;
141  } DCIOVERLAY,*LPDCIOVERLAY;
142
143#ifndef YVU9
144#define YVU9 mmioFOURCC('Y','V','U','9')
145#endif
146#ifndef Y411
147#define Y411 mmioFOURCC('Y','4','1','1')
148#endif
149#ifndef YUY2
150#define YUY2 mmioFOURCC('Y','U','Y','2')
151#endif
152#ifndef YVYU
153#define YVYU mmioFOURCC('Y','V','Y','U')
154#endif
155#ifndef UYVY
156#define UYVY mmioFOURCC('U','Y','V','Y')
157#endif
158#ifndef Y211
159#define Y211 mmioFOURCC('Y','2','1','1')
160#endif
161
162#ifdef __cplusplus
163}
164#endif
165#endif