Home | History | Annotate | Download | only in include
      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
     10 extern "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
    166