适于fasm的DirectDraw头文件定义

来源:互联网 发布:大数据平台开发面试 编辑:程序博客网 时间:2024/05/17 04:04

接上两节,可以将ddraw.h定义为ddraw.inc,如下:

;==========================================================================; *; *  Copyright (C) Microsoft Corporation.  All Rights Reserved.; *; *  File:       ddraw.h; *  Content:    DirectDraw include file [typedef macro by G-Spider @2013]  ; *; **************************************************************************macro DEFINE_GUID def {     match comid=,d1=,d2=,d3=,d4, def     \{         comid:        .Data1 dd d1         .Data2 dw d2         .Data3 dw d3         .Data4 db d4     \} } ; --for example--:; DEFINE_GUID < CLSID_DirectDraw,            0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35 >; DEFINE_GUID < CLSID_DirectDraw7,           0x3c305196,0x50db,0x11d3,0x9c,0xfe,0x00,0xc0,0x4f,0xd9,0x30,0xc5 >; DEFINE_GUID < CLSID_DirectDrawClipper,     0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xb9,0x33,0x56 >; DEFINE_GUID < IID_IDirectDraw,             0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 >; DEFINE_GUID < IID_IDirectDraw2,            0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 >; DEFINE_GUID < IID_IDirectDraw4,            0x9c59509a,0x39bd,0x11d1,0x8c,0x4a,0x00,0xc0,0x4f,0xd9,0x30,0xc5 >; DEFINE_GUID < IID_IDirectDraw7,            0x15e65ec0,0x3b9c,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b >; DEFINE_GUID < IID_IDirectDrawSurface,      0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 >; DEFINE_GUID < IID_IDirectDrawSurface2,     0x57805885,0x6eec,0x11cf,0x94,0x41,0xa8,0x23,0x03,0xc1,0x0e,0x27 >; DEFINE_GUID < IID_IDirectDrawSurface3,     0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB >; DEFINE_GUID < IID_IDirectDrawSurface4,     0x0B2B8630,0xAD35,0x11D0,0x8E,0xA6,0x00,0x60,0x97,0x97,0xEA,0x5B >; DEFINE_GUID < IID_IDirectDrawSurface7,     0x06675a80,0x3b9b,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b >; DEFINE_GUID < IID_IDirectDrawPalette,      0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 >; DEFINE_GUID < IID_IDirectDrawClipper,      0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 >; DEFINE_GUID < IID_IDirectDrawColorControl, 0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8 >; DEFINE_GUID < IID_IDirectDrawGammaControl, 0x69C11C3E,0xB46B,0x11D1,0xAD,0x7A,0x00,0xC0,0x4F,0xC2,0x9B,0x4E >; DirectDraw interfaceinterface DirectDraw,\    QueryInterface,\    AddRef,\    Release,\    Compact,\    CreateClipper,\    CreatePalette,\    CreateSurface,\    DuplicateSurface,\    EnumDisplayModes,\    EnumSurfaces,\    FlipToGDISurface,\    GetCaps,\    GetDisplayMode,\    GetFourCCCodes,\    GetGDISurface,\    GetMonitorFrequency,\    GetScanLine,\    GetVerticalBlankStatus,\    Initialize,\    RestoreDisplayMode,\    SetCooperativeLevel,\    SetDisplayMode,\    WaitForVerticalBlank,\    GetAvailableVidMem,\    GetSurfaceFromDC,\    RestoreAllSurfaces,\    TestCooperativeLevel,\    GetDeviceIdentifier,\    StartModeTest,\    EvaluateModeinterface DirectDrawSurface,\    QueryInterface,\    AddRef,\    Release,\    AddAttachedSurface,\    AddOverlayDirtyRect,\    Blt,\    BltBatch,\    BltFast,\    DeleteAttachedSurface,\    EnumAttachedSurfaces,\    EnumOverlayZOrders,\    Flip,\    GetAttachedSurface,\    GetBltStatus,\    GetCaps,\    GetClipper,\    GetColorKey,\    GetDC,\    GetFlipStatus,\    GetOverlayPosition,\    GetPalette,\    GetPixelFormat,\    GetSurfaceDesc,\    Initialize,\    IsLost,\    Lock,\    ReleaseDC,\    Restore,\    SetClipper,\    SetColorKey,\    SetOverlayPosition,\    SetPalette,\    Unlock,\    UpdateOverlay,\    UpdateOverlayDisplay,\    UpdateOverlayZOrder,\    GetDDInterface,\    PageLock,\    PageUnlock,\    SetSurfaceDesc,\    SetPrivateData,\    GetPrivateData,\    FreePrivateData,\    GetUniquenessValue,\    ChangeUniquenessValue,\    SetPriority,\    GetPriority,\    SetLOD,\    GetLODinterface DirectDrawPalette,\    QueryInterface,\    AddRef,\    Release,\    GetCaps,\    GetEntries,\    Initialize,\    SetEntriesinterface DirectDrawClipper,\    QueryInterface,\    AddRef,\    Release,\    GetClipList,\    GetHWnd,\    Initialize,\    IsClipListChanged,\    SetClipList,\    SetHWndinterface DirectDrawColorControl,\    QueryInterface,\    AddRef,\    Release,\    GetColorControls,\    SetColorControlsinterface DirectDrawGammaControl,\    QueryInterface,\    AddRef,\    Release,\    GetGammaRamp,\    SetGammaRampstruct GUID    Data1     DWORD    Data2     WORD    Data3     WORD    Data4     BYTE 8 dup(?)endsstruct DDARGB    blue  BYTE    green BYTE    red   BYTE    alpha BYTEendsstruct DDRGBA    red   BYTE    green BYTE    blue  BYTE    alpha BYTEendsstruct DDCOLORKEY    dwColorSpaceLowValue  DWORD    dwColorSpaceHighValue DWORDendsstruct DDBLTFX    dwSize                  DWORD    dwDDFX                  DWORD    dwROP                   DWORD    dwDDROP                 DWORD    dwRotationAngle         DWORD    dwZBufferOpCode         DWORD    dwZBufferLow            DWORD    dwZBufferHigh           DWORD    dwZBufferBaseDest       DWORD    dwZDestConstBitDepth    DWORD    union            dwZDestConst        DWORD        lpDDSZBufferDest    PVOID    ends    dwZSrcConstBitDepth     DWORD    union            dwZSrcConst         DWORD        lpDDSZBufferSrc     PVOID    ends    dwAlphaEdgeBlendBitDepth    DWORD    dwAlphaEdgeBlend            DWORD    dwReserved                  DWORD    dwAlphaDestConstBitDepth    DWORD    union            dwAlphaDestConst    DWORD        lpDDSAlphaDest      PVOID    ends    dwAlphaSrcConstBitDepth DWORD    union            dwAlphaSrcConst     DWORD        lpDDSAlphaSrc       PVOID    ends    union        dwFillColor         DWORD        dwFillDepth         DWORD        dwFillPixel         DWORD        lpDDSPattern        PVOID    ends    ddckDestColorkey        DDCOLORKEY    ddckSrcColorkey         DDCOLORKEYendsstruct DDSCAPS  dwCaps    DWORDendsstruct DDOSCAPS    dwCaps  DWORDendsstruct DDSCAPSEX    dwCaps2 DWORD    dwCaps3 DWORD    union            dwCaps4         DWORD        dwVolumeDepth   DWORD    endsendsstruct DDSCAPS2   dwCaps    DWORD  dwCaps2   DWORD  dwCaps3   DWORD  union     dwCaps4         DWORD    dwVolumeDepth   DWORD  endsendsDD_ROP_SPACE = 8struct DDCAPS        dwSize                      DWORD        dwCaps                      DWORD        dwCaps2                     DWORD        dwCKeyCaps                  DWORD        dwFXCaps                    DWORD        dwFXAlphaCaps               DWORD        dwPalCaps                   DWORD        dwSVCaps                    DWORD        dwAlphaBltConstBitDepths    DWORD        dwAlphaBltPixelBitDepths    DWORD        dwAlphaBltSurfaceBitDepths  DWORD        dwAlphaOverlayConstBitDepths    DWORD        dwAlphaOverlayPixelBitDepths    DWORD        dwAlphaOverlaySurfaceBitDepths  DWORD        dwZBufferBitDepths          DWORD        dwVidMemTotal               DWORD        dwVidMemFree                DWORD        dwMaxVisibleOverlays        DWORD        dwCurrVisibleOverlays       DWORD        dwNumFourCCCodes            DWORD        dwAlignBoundarySrc          DWORD        dwAlignSizeSrc              DWORD        dwAlignBoundaryDest         DWORD        dwAlignSizeDest             DWORD        dwAlignStrideAlign          DWORD        dwRops                      DWORD DD_ROP_SPACE dup(?)        ddsOldCaps                  DDSCAPS        dwMinOverlayStretch         DWORD        dwMaxOverlayStretch         DWORD        dwMinLiveVideoStretch       DWORD        dwMaxLiveVideoStretch       DWORD        dwMinHwCodecStretch         DWORD        dwMaxHwCodecStretch         DWORD        dwReserved1                 DWORD        dwReserved2                 DWORD        dwReserved3                 DWORD        dwSVBCaps                   DWORD        dwSVBCKeyCaps               DWORD        dwSVBFXCaps                 DWORD        dwSVBRops                   DWORD DD_ROP_SPACE dup(?)        dwVSBCaps                   DWORD        dwVSBCKeyCaps               DWORD        dwVSBFXCaps                 DWORD        dwVSBRops                   DWORD DD_ROP_SPACE dup(?)        dwSSBCaps                   DWORD        dwSSBCKeyCaps               DWORD        dwSSBFXCaps                 DWORD        dwSSBRops                   DWORD DD_ROP_SPACE dup(?)        dwMaxVideoPorts             DWORD        dwCurrVideoPorts            DWORD        dwSVBCaps2                  DWORD        dwNLVBCaps                  DWORD        dwNLVBCaps2                 DWORD        dwNLVBCKeyCaps              DWORD        dwNLVBFXCaps                DWORD        dwNLVBRops                  DWORD DD_ROP_SPACE dup(?);  Members added for DX6 release        ddsCaps                     DDSCAPS2endsstruct DDPIXELFORMAT    dwSize          DWORD    dwFlags         DWORD    dwFourCC        DWORD    union            dwRGBBitCount           DWORD        dwYUVBitCount           DWORD        dwZBufferBitDepth       DWORD        dwAlphaBitDepth         DWORD        dwLuminanceBitCount     DWORD        dwBumpBitCount          DWORD        dwPrivateFormatBitCount DWORD    ends    union            dwRBitMask          DWORD        dwYBitMask          DWORD        dwStencilBitDepth   DWORD        dwLuminanceBitMask  DWORD        dwBumpDuBitMask     DWORD        dwOperations        DWORD    ends    union            dwGBitMask      DWORD        dwUBitMask      DWORD        dwZBitMask      DWORD        dwBumpDvBitMask DWORD    ends    union            dwBBitMask              DWORD        dwVBitMask              DWORD        dwStencilBitMask        DWORD        dwBumpLuminanceBitMask  DWORD    ends    union            dwRGBAlphaBitMask       DWORD        dwYUVAlphaBitMask       DWORD        dwLuminanceAlphaBitMask DWORD        dwRGBZBitMask           DWORD        dwYUVZBitMask           DWORD    endsendsstruct DDOVERLAYFX    dwSize                      DWORD    dwAlphaEdgeBlendBitDepth    DWORD    dwAlphaEdgeBlend            DWORD    dwReserved                  DWORD    dwAlphaDestConstBitDepth    DWORD    union            dwAlphaDestConst        DWORD        lpDDSAlphaDest          PVOID    ends    dwAlphaSrcConstBitDepth     DWORD    union            dwAlphaSrcConst         DWORD        lpDDSAlphaSrc           PVOID    ends    dckDestColorkey             DDCOLORKEY    dckSrcColorkey              DDCOLORKEY    dwDDFX                      DWORD    dwFlags                     DWORDendsstruct DDBLTBATCH    lprDest     PVOID    lpDDSSrc    PVOID    lprSrc      PVOID    dwFlags     DWORD    lpDDBltFx   PVOIDendsstruct DDGAMMARAMP    red         WORD 256 dup(?)    green       WORD 256 dup(?)    blue        WORD 256 dup(?)endsstruct LARGE_INTEGER    union         struct             LowPart     DWORD            HighPart    LONG        ends        QuadPart        LONGLONG    endsendsMAX_DDDEVICEID_STRING = 512struct DDDEVICEIDENTIFIER    szDriver            BYTE MAX_DDDEVICEID_STRING dup(?)    szDescription       BYTE MAX_DDDEVICEID_STRING dup(?)    liDriverVersion     LARGE_INTEGER    dwVendorId          DWORD    dwDeviceId          DWORD    dwSubSysId          DWORD    dwRevision          DWORD    guidDeviceIdentifier GUIDendsstruct DDDEVICEIDENTIFIER2    szDriver            BYTE MAX_DDDEVICEID_STRING dup(?)    szDescription       BYTE MAX_DDDEVICEID_STRING dup(?)    liDriverVersion     LARGE_INTEGER    dwVendorId          DWORD    dwDeviceId          DWORD    dwSubSysId          DWORD    dwRevision          DWORD    guidDeviceIdentifier GUID    dwWHQLLevel         DWORDendsstruct DDSURFACEDESC    dwSize              DWORD    dwFlags             DWORD    dwHeight            DWORD    dwWidth             DWORD    union            lPitch          LONG        dwLinearSize    DWORD    ends    union            dwBackBufferCount DWORD        dwDepth         DWORD    ends    union        dwZBufferBitDepth DWORD        dwMipMapCount   DWORD        dwRefreshRate   DWORD        dwSrcVBHandle   DWORD    ends    dwAlphaBitDepth     DWORD    dwReserved          DWORD    lpSurface           PVOID    union            ddckCKDestOverlay   DDCOLORKEY        dwEmptyFaceColor    DWORD    ends    ddckCKDestBlt       DDCOLORKEY    ddckCKSrcOverlay    DDCOLORKEY    ddckCKSrcBlt        DDCOLORKEY    union            ddpfPixelFormat DDPIXELFORMAT        dwFVF           DWORD    ends    ddsCaps             DDSCAPSendsstruct DDSURFACEDESC2    dwSize              DWORD    dwFlags             DWORD    dwHeight            DWORD    dwWidth             DWORD    union            lPitch          LONG        dwLinearSize    DWORD    ends    union            dwBackBufferCount DWORD        dwDepth         DWORD    ends    union        dwZBufferBitDepth DWORD        dwMipMapCount   DWORD        dwRefreshRate   DWORD        dwSrcVBHandle   DWORD    ends    dwAlphaBitDepth     DWORD    dwReserved          DWORD    lpSurface           PVOID    union            ddckCKDestOverlay   DDCOLORKEY        dwEmptyFaceColor    DWORD    ends    ddckCKDestBlt       DDCOLORKEY    ddckCKSrcOverlay    DDCOLORKEY    ddckCKSrcBlt        DDCOLORKEY    union            ddpfPixelFormat DDPIXELFORMAT        dwFVF           DWORD    ends    ddsCaps             DDSCAPS2    dwTextureStage      DWORDends; ddsCaps field is valid.DDSD_CAPS               =0x00000001; dwHeight field is valid.DDSD_HEIGHT             =0x00000002; dwWidth field is valid.DDSD_WIDTH              =0x00000004; lPitch is valid.DDSD_PITCH              =0x00000008; dwBackBufferCount is valid.DDSD_BACKBUFFERCOUNT    =0x00000020; dwZBufferBitDepth is valid.  (shouldnt be used in DDSURFACEDESC2)DDSD_ZBUFFERBITDEPTH    =0x00000040; dwAlphaBitDepth is valid.DDSD_ALPHABITDEPTH      =0x00000080; lpSurface is valid.DDSD_LPSURFACE          =0x00000800; ddpfPixelFormat is valid.DDSD_PIXELFORMAT        =0x00001000; ddckCKDestOverlay is valid.DDSD_CKDESTOVERLAY      =0x00002000; ddckCKDestBlt is valid.DDSD_CKDESTBLT          =0x00004000; ddckCKSrcOverlay is valid.DDSD_CKSRCOVERLAY       =0x00008000; ddckCKSrcBlt is valid.DDSD_CKSRCBLT           =0x00010000; dwMipMapCount is valid.DDSD_MIPMAPCOUNT        =0x00020000  ; dwRefreshRate is valid DDSD_REFRESHRATE        =0x00040000; dwLinearSize is validDDSD_LINEARSIZE         =0x00080000; dwTextureStage is validDDSD_TEXTURESTAGE       =0x00100000; dwFVF is validDDSD_FVF                =0x00200000; dwSrcVBHandle is validDDSD_SRCVBHANDLE        =0x00400000; dwDepth is validDDSD_DEPTH              =0x00800000; All input fields are valid.DDSD_ALL                =0x00fff9eestruct DDOPTSURFACEDESC    dwSize              DWORD    dwFlags             DWORD    ddSCaps             DDSCAPS2    ddOSCaps            DDOSCAPS    guid                GUID    dwCompressionRatio  DWORDends; guid field is valid.DDOSD_GUID                 =0x00000001; dwCompressionRatio field is valid.DDOSD_COMPRESSION_RATIO    =0x00000002; ddSCaps field is valid.DDOSD_SCAPS                =0x00000004; ddOSCaps field is valid.DDOSD_OSCAPS               =0x00000008; All input fields are valid.DDOSD_ALL                  =0x0000000f; The surface's optimized pixelformat is compressedDDOSDCAPS_OPTCOMPRESSED    =0x00000001; The surface's optimized pixelformat is reorderedDDOSDCAPS_OPTREORDERED     =0x00000002; The opt surface is a monolithic mipmapDDOSDCAPS_MONOLITHICMIPMAP =0x00000004DDOSDCAPS_VALIDSCAPS       =0x30004800; The valid OptSurf capsDDOSDCAPS_VALIDOSCAPS      =0x00000007struct DDCOLORCONTROL    dwSize               DWORD    dwFlags              DWORD    lBrightness          LONG    lContrast            LONG    lHue                 LONG    lSaturation          LONG    lSharpness           LONG    lGamma               LONG    lColorEnable         LONG    dwReserved1          DWORDends; lBrightness field is valid.DDCOLOR_BRIGHTNESS              =0x00000001; lContrast field is valid.DDCOLOR_CONTRAST                =0x00000002; lHue field is valid.DDCOLOR_HUE                     =0x00000004; lSaturation field is valid.DDCOLOR_SATURATION              =0x00000008; lSharpness field is valid.DDCOLOR_SHARPNESS               =0x00000010; lGamma field is valid.DDCOLOR_GAMMA                   =0x00000020; lColorEnable field is valid.DDCOLOR_COLORENABLE             =0x00000040;==========================================================================;; Direct Draw Capability Flags;; These flags are used to describe the capabilities of a given Surface.; All flags are bit flags.;;==========================================================================;; DIRECTDRAWSURFACE CAPABILITY FLAGS;; This bit is reserved. It should not be specified.DDSCAPS_RESERVED1                      =0x00000001; Indicates that this surface contains alpha-only information.; (To determine if a surface is RGBA/YUVA, the pixel format must be; interrogated.)DDSCAPS_ALPHA                          =0x00000002; Indicates that this surface is a backbuffer.  It is generally; set by CreateSurface when the DDSCAPS_FLIP capability bit is set.; It indicates that this surface is THE back buffer of a surface; flipping structure.  DirectDraw supports N surfaces in a; surface flipping structure.  Only the surface that immediately; precedeces the DDSCAPS_FRONTBUFFER has this capability bit set.; The other surfaces are identified as back buffers by the presence; of the DDSCAPS_FLIP capability, their attachment order, and the; absence of the DDSCAPS_FRONTBUFFER and DDSCAPS_BACKBUFFER; capabilities.  The bit is sent to CreateSurface when a standalone; back buffer is being created.  This surface could be attached to; a front buffer and/or back buffers to form a flipping surface; structure after the CreateSurface call.  See AddAttachments for; a detailed description of the behaviors in this case.DDSCAPS_BACKBUFFER                     =0x00000004; Indicates a complex surface structure is being described.  A; complex surface structure results in the creation of more than; one surface.  The additional surfaces are attached to the root; surface.  The complex structure can only be destroyed by; destroying the root.DDSCAPS_COMPLEX                        =0x00000008; Indicates that this surface is a part of a surface flipping structure.; When it is passed to CreateSurface the DDSCAPS_FRONTBUFFER and; DDSCAP_BACKBUFFER bits are not set.  They are set by CreateSurface; on the resulting creations.  The dwBackBufferCount field in the; DDSURFACEDESC structure must be set to at least 1 in order for; the CreateSurface call to succeed.  The DDSCAPS_COMPLEX capability; must always be set with creating multiple surfaces through CreateSurface.DDSCAPS_FLIP                           =0x00000010; Indicates that this surface is THE front buffer of a surface flipping; structure.  It is generally set by CreateSurface when the DDSCAPS_FLIP; capability bit is set.; If this capability is sent to CreateSurface then a standalonw front buffer; is created.  This surface will not have the DDSCAPS_FLIP capability.; It can be attached to other back buffers to form a flipping structure.; See AddAttachments for a detailed description of the behaviors in this; case.DDSCAPS_FRONTBUFFER                    =0x00000020; Indicates that this surface is any offscreen surface that is not an overlay,; texture, zbuffer, front buffer, back buffer, or alpha surface.  It is used; to identify plain vanilla surfaces.DDSCAPS_OFFSCREENPLAIN                 =0x00000040; Indicates that this surface is an overlay.  It may or may not be directly visible; depending on whether or not it is currently being overlayed onto the primary; surface.  DDSCAPS_VISIBLE can be used to determine whether or not it is being; overlayed at the moment.DDSCAPS_OVERLAY                        =0x00000080; Indicates that unique DirectDrawPalette objects can be created and; attached to this surface.DDSCAPS_PALETTE                        =0x00000100; Indicates that this surface is the primary surface.  The primary; surface represents what the user is seeing at the moment.DDSCAPS_PRIMARYSURFACE                 =0x00000200; This flag used to be DDSCAPS_PRIMARYSURFACELEFT, which is now; obsolete.DDSCAPS_RESERVED3                      =0x00000400DDSCAPS_PRIMARYSURFACELEFT             =0x00000000; Indicates that this surface memory was allocated in system memoryDDSCAPS_SYSTEMMEMORY                   =0x00000800; Indicates that this surface can be used as a 3D texture.  It does not; indicate whether or not the surface is being used for that purpose.DDSCAPS_TEXTURE                        =0x00001000; Indicates that a surface may be a destination for 3D rendering.  This; bit must be set in order to query for a Direct3D Device Interface; from this surface.DDSCAPS_3DDEVICE                       =0x00002000; Indicates that this surface exists in video memory.DDSCAPS_VIDEOMEMORY                    =0x00004000; Indicates that changes made to this surface are immediately visible.; It is always set for the primary surface and is set for overlays while; they are being overlayed and texture maps while they are being textured.DDSCAPS_VISIBLE                        =0x00008000; Indicates that only writes are permitted to the surface.  Read accesses; from the surface may or may not generate a protection fault, but the; results of a read from this surface will not be meaningful.  READ ONLY.DDSCAPS_WRITEONLY                      =0x00010000; Indicates that this surface is a z buffer. A z buffer does not contain; displayable information.  Instead it contains bit depth information that is; used to determine which pixels are visible and which are obscured.DDSCAPS_ZBUFFER                        =0x00020000; Indicates surface will have a DC associated long termDDSCAPS_OWNDC                          =0x00040000; Indicates surface should be able to receive live videoDDSCAPS_LIVEVIDEO                      =0x00080000; Indicates surface should be able to have a stream decompressed; to it by the hardware.DDSCAPS_HWCODEC                        =0x00100000; Surface is a ModeX surface.;DDSCAPS_MODEX                          =0x00200000; Indicates surface is one level of a mip-map. This surface will; be attached to other DDSCAPS_MIPMAP surfaces to form the mip-map.; This can be done explicitly, by creating a number of surfaces and; attaching them with AddAttachedSurface or by implicitly by CreateSurface.; If this bit is set then DDSCAPS_TEXTURE must also be set.DDSCAPS_MIPMAP                         =0x00400000; This bit is reserved. It should not be specified.DDSCAPS_RESERVED2                      =0x00800000; Indicates that memory for the surface is not allocated until the surface; is loaded (via the Direct3D texture Load() function).DDSCAPS_ALLOCONLOAD                    =0x04000000; Indicates that the surface will recieve data from a video port.DDSCAPS_VIDEOPORT                      =0x08000000; Indicates that a video memory surface is resident in true, local video; memory rather than non-local video memory. If this flag is specified then; so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with; DDSCAPS_NONLOCALVIDMEM.DDSCAPS_LOCALVIDMEM                    =0x10000000; Indicates that a video memory surface is resident in non-local video; memory rather than true, local video memory. If this flag is specified; then so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with; DDSCAPS_LOCALVIDMEM.DDSCAPS_NONLOCALVIDMEM                 =0x20000000; Indicates that this surface is a standard VGA mode surface, and not a; ModeX surface. (This flag will never be set in combination with the; DDSCAPS_MODEX flag).DDSCAPS_STANDARDVGAMODE                =0x40000000; Indicates that this surface will be an optimized surface. This flag is; currently only valid in conjunction with the DDSCAPS_TEXTURE flag. The surface; will be created without any underlying video memory until loaded.DDSCAPS_OPTIMIZED                      =0x80000000; This bit is reservedDDSCAPS2_RESERVED4                     =0x00000002DDSCAPS2_HARDWAREDEINTERLACE           =0x00000000; Indicates to the driver that this surface will be locked very frequently; (for procedural textures, dynamic lightmaps, etc). Surfaces with this cap; set must also have DDSCAPS_TEXTURE. This cap cannot be used with; DDSCAPS2_HINTSTATIC and DDSCAPS2_OPAQUE.DDSCAPS2_HINTDYNAMIC                   =0x00000004; Indicates to the driver that this surface can be re-ordered/retiled on; load. This operation will not change the size of the texture. It is; relatively fast and symmetrical, since the application may lock these; bits (although it will take a performance hit when doing so). Surfaces; with this cap set must also have DDSCAPS_TEXTURE. This cap cannot be; used with DDSCAPS2_HINTDYNAMIC and DDSCAPS2_OPAQUE.DDSCAPS2_HINTSTATIC                    =0x00000008; Indicates that the client would like this texture surface to be managed by the; DirectDraw/Direct3D runtime. Surfaces with this cap set must also have; DDSCAPS_TEXTURE set.DDSCAPS2_TEXTUREMANAGE                 =0x00000010; These bits are reserved for internal useDDSCAPS2_RESERVED1                     =0x00000020DDSCAPS2_RESERVED2                     =0x00000040; Indicates to the driver that this surface will never be locked again.; The driver is free to optimize this surface via retiling and actual compression.; All calls to Lock() or Blts from this surface will fail. Surfaces with this; cap set must also have DDSCAPS_TEXTURE. This cap cannot be used with; DDSCAPS2_HINTDYNAMIC and DDSCAPS2_HINTSTATIC.DDSCAPS2_OPAQUE                        =0x00000080; Applications should set this bit at CreateSurface time to indicate that they; intend to use antialiasing. Only valid if DDSCAPS_3DDEVICE is also set.DDSCAPS2_HINTANTIALIASING              =0x00000100; This flag is used at CreateSurface time to indicate that this set of; surfaces is a cubic environment mapDDSCAPS2_CUBEMAP                       =0x00000200; These flags preform two functions:; - At CreateSurface time, they define which of the six cube faces are;   required by the application.; - After creation, each face in the cubemap will have exactly one of these;   bits set.DDSCAPS2_CUBEMAP_POSITIVEX             =0x00000400DDSCAPS2_CUBEMAP_NEGATIVEX             =0x00000800DDSCAPS2_CUBEMAP_POSITIVEY             =0x00001000DDSCAPS2_CUBEMAP_NEGATIVEY             =0x00002000DDSCAPS2_CUBEMAP_POSITIVEZ             =0x00004000DDSCAPS2_CUBEMAP_NEGATIVEZ             =0x00008000; This macro may be used to specify all faces of a cube map at CreateSurface timeDDSCAPS2_CUBEMAP_ALLFACES           =(DDSCAPS2_CUBEMAP_POSITIVEX or\                                        DDSCAPS2_CUBEMAP_NEGATIVEX or\                                        DDSCAPS2_CUBEMAP_POSITIVEY or\                                        DDSCAPS2_CUBEMAP_NEGATIVEY or\                                        DDSCAPS2_CUBEMAP_POSITIVEZ or\                                        DDSCAPS2_CUBEMAP_NEGATIVEZ ); This flag is an additional flag which is present on mipmap sublevels from DX7 onwards; It enables easier use of GetAttachedSurface rather than EnumAttachedSurfaces for surface; constructs such as Cube Maps, wherein there are more than one mipmap surface attached; to the root surface.; This caps bit is ignored by CreateSurfaceDDSCAPS2_MIPMAPSUBLEVEL                =0x00010000; This flag indicates that the texture should be managed by D3D onlyDDSCAPS2_D3DTEXTUREMANAGE              =0x00020000; This flag indicates that the managed surface can be safely lostDDSCAPS2_DONOTPERSIST                  =0x00040000; indicates that this surface is part of a stereo flipping chainDDSCAPS2_STEREOSURFACELEFT             =0x00080000; Indicates that the surface is a volume.; Can be combined with DDSCAPS_MIPMAP to indicate a multi-level volumeDDSCAPS2_VOLUME                        =0x00200000; Indicates that the surface may be locked multiple times by the application.; This cap cannot be used with DDSCAPS2_OPAQUE.DDSCAPS2_NOTUSERLOCKABLE               =0x00400000; Indicates that the vertex buffer data can be used to render points and; point sprites.DDSCAPS2_POINTS                        =0x00800000; Indicates that the vertex buffer data can be used to render rt pactches.DDSCAPS2_RTPATCHES                     =0x01000000; Indicates that the vertex buffer data can be used to render n patches.DDSCAPS2_NPATCHES                      =0x02000000; This bit is reserved for internal use DDSCAPS2_RESERVED3                     =0x04000000; Indicates that the contents of the backbuffer do not have to be preserved; the contents of the backbuffer after they are presented.DDSCAPS2_DISCARDBACKBUFFER             =0x10000000; Indicates that all surfaces in this creation chain should be given an alpha channel.; This flag will be set on primary surface chains that may have no explicit pixel format; (and thus take on the format of the current display mode).; The driver should infer that all these surfaces have a format having an alpha channel.; (e.g. assume D3DFMT_A8R8G8B8 if the display mode is x888.)DDSCAPS2_ENABLEALPHACHANNEL            =0x20000000; Indicates that all surfaces in this creation chain is extended primary surface format.; This flag will be set on extended primary surface chains that always have explicit pixel; format and the pixel format is typically GDI (Graphics Device Interface) couldn't handle,; thus only used with fullscreen application. (e.g. D3DFMT_A2R10G10B10 format)DDSCAPS2_EXTENDEDFORMATPRIMARY         =0x40000000; Indicates that all surfaces in this creation chain is additional primary surface.; This flag will be set on primary surface chains which must present on the adapter; id provided on dwCaps4. Typically this will be used to create secondary primary surface; on DualView display adapter.DDSCAPS2_ADDITIONALPRIMARY             =0x80000000; This is a mask that indicates the set of bits that may be set; at createsurface time to indicate number of samples per pixel; when multisamplingDDSCAPS3_MULTISAMPLE_MASK              =0x0000001F; This is a mask that indicates the set of bits that may be set; at createsurface time to indicate the quality level of rendering; for the current number of samples per pixelDDSCAPS3_MULTISAMPLE_QUALITY_MASK      =0x000000E0DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT     =5; This bit is reserved for internal use DDSCAPS3_RESERVED1                     =0x00000100; This bit is reserved for internal use DDSCAPS3_RESERVED2                     =0x00000200; This indicates whether this surface has light-weight miplevelsDDSCAPS3_LIGHTWEIGHTMIPMAP             =0x00000400; This indicates that the mipsublevels for this surface are auto-generatedDDSCAPS3_AUTOGENMIPMAP                 =0x00000800; This indicates that the mipsublevels for this surface are auto-generatedDDSCAPS3_DMAP                          =0x00001000;**************************************************************************;; DIRECTDRAW DRIVER CAPABILITY FLAGS;;**************************************************************************; Display hardware has 3D acceleration.DDCAPS_3D                      =0x00000001; Indicates that DirectDraw will support only dest rectangles that are aligned; on DIRECTDRAWCAPS.dwAlignBoundaryDest boundaries of the surface, respectively.; READ ONLY.DDCAPS_ALIGNBOUNDARYDEST       =0x00000002; Indicates that DirectDraw will support only source rectangles  whose sizes in; BYTEs are DIRECTDRAWCAPS.dwAlignSizeDest multiples, respectively.  READ ONLY.DDCAPS_ALIGNSIZEDEST           =0x00000004; Indicates that DirectDraw will support only source rectangles that are aligned; on DIRECTDRAWCAPS.dwAlignBoundarySrc boundaries of the surface, respectively.; READ ONLY.DDCAPS_ALIGNBOUNDARYSRC        =0x00000008; Indicates that DirectDraw will support only source rectangles  whose sizes in; BYTEs are DIRECTDRAWCAPS.dwAlignSizeSrc multiples, respectively.  READ ONLY.DDCAPS_ALIGNSIZESRC            =0x00000010; Indicates that DirectDraw will create video memory surfaces that have a stride; alignment equal to DIRECTDRAWCAPS.dwAlignStride.  READ ONLY.DDCAPS_ALIGNSTRIDE             =0x00000020; Display hardware is capable of blt operations.DDCAPS_BLT                     =0x00000040; Display hardware is capable of asynchronous blt operations.DDCAPS_BLTQUEUE                =0x00000080; Display hardware is capable of color space conversions during the blt operation.DDCAPS_BLTFOURCC               =0x00000100; Display hardware is capable of stretching during blt operations.DDCAPS_BLTSTRETCH              =0x00000200; Display hardware is shared with GDI.DDCAPS_GDI                     =0x00000400; Display hardware can overlay.DDCAPS_OVERLAY                 =0x00000800; Set if display hardware supports overlays but can not clip them.DDCAPS_OVERLAYCANTCLIP         =0x00001000; Indicates that overlay hardware is capable of color space conversions during; the overlay operation.DDCAPS_OVERLAYFOURCC           =0x00002000; Indicates that stretching can be done by the overlay hardware.DDCAPS_OVERLAYSTRETCH          =0x00004000; Indicates that unique DirectDrawPalettes can be created for DirectDrawSurfaces; other than the primary surface.DDCAPS_PALETTE                 =0x00008000; Indicates that palette changes can be syncd with the veritcal refresh.DDCAPS_PALETTEVSYNC            =0x00010000; Display hardware can return the current scan line.DDCAPS_READSCANLINE            =0x00020000; This flag used to bo DDCAPS_STEREOVIEW, which is now obsoleteDDCAPS_RESERVED1               =0x00040000; Display hardware is capable of generating a vertical blank interrupt.DDCAPS_VBI                     =0x00080000; Supports the use of z buffers with blt operations.DDCAPS_ZBLTS                   =0x00100000; Supports Z Ordering of overlays.DDCAPS_ZOVERLAYS               =0x00200000; Supports color keyDDCAPS_COLORKEY                =0x00400000; Supports alpha surfacesDDCAPS_ALPHA                   =0x00800000; colorkey is hardware assisted(DDCAPS_COLORKEY will also be set)DDCAPS_COLORKEYHWASSIST        =0x01000000; no hardware support at allDDCAPS_NOHARDWARE              =0x02000000; Display hardware is capable of color fill with bltterDDCAPS_BLTCOLORFILL            =0x04000000; Display hardware is bank switched, and potentially very slow at; random access to VRAM.DDCAPS_BANKSWITCHED            =0x08000000; Display hardware is capable of depth filling Z-buffers with bltterDDCAPS_BLTDEPTHFILL            =0x10000000; Display hardware is capable of clipping while bltting.DDCAPS_CANCLIP                 =0x20000000; Display hardware is capable of clipping while stretch bltting.DDCAPS_CANCLIPSTRETCHED        =0x40000000; Display hardware is capable of bltting to or from system memoryDDCAPS_CANBLTSYSMEM            =0x80000000;**************************************************************************;; MORE DIRECTDRAW DRIVER CAPABILITY FLAGS (dwCaps2);;**************************************************************************; Display hardware is certifiedDDCAPS2_CERTIFIED             =0x00000001; Driver cannot interleave 2D operations (lock and blt) to surfaces with; Direct3D rendering operations between calls to BeginScene() and EndScene()DDCAPS2_NO2DDURING3DSCENE      =0x00000002; Display hardware contains a video portDDCAPS2_VIDEOPORT              =0x00000004; The overlay can be automatically flipped according to the video port; VSYNCs, providing automatic doubled buffered display of video port; data using an overlayDDCAPS2_AUTOFLIPOVERLAY        =0x00000008; Overlay can display each field of interlaced data individually while; it is interleaved in memory without causing jittery artifacts.DDCAPS2_CANBOBINTERLEAVED      =0x00000010; Overlay can display each field of interlaced data individually while; it is not interleaved in memory without causing jittery artifacts.DDCAPS2_CANBOBNONINTERLEAVED   =0x00000020; The overlay surface contains color controls (brightness, sharpness, etc.)DDCAPS2_COLORCONTROLOVERLAY    =0x00000040; The primary surface contains color controls (gamma, etc.)DDCAPS2_COLORCONTROLPRIMARY    =0x00000080; RGBZ -> RGB supported for 16:16 RGB:ZDDCAPS2_CANDROPZ16BIT          =0x00000100; Driver supports non-local video memory.DDCAPS2_NONLOCALVIDMEM         =0x00000200; Dirver supports non-local video memory but has different capabilities for; non-local video memory surfaces. If this bit is set then so must; DDCAPS2_NONLOCALVIDMEM.DDCAPS2_NONLOCALVIDMEMCAPS     =0x00000400; Driver neither requires nor prefers surfaces to be pagelocked when performing; blts involving system memory surfacesDDCAPS2_NOPAGELOCKREQUIRED     =0x00000800; Driver can create surfaces which are wider than the primary surfaceDDCAPS2_WIDESURFACES           =0x00001000; Driver supports bob without using a video port by handling the; DDFLIP_ODD and DDFLIP_EVEN flags specified in Flip.DDCAPS2_CANFLIPODDEVEN         =0x00002000; Driver supports bob using hardwareDDCAPS2_CANBOBHARDWARE         =0x00004000; Driver supports bltting any FOURCC surface to another surface of the same FOURCCDDCAPS2_COPYFOURCC             =0x00008000; Driver supports loadable gamma ramps for the primary surfaceDDCAPS2_PRIMARYGAMMA           =0x00020000; Driver can render in windowed mode.DDCAPS2_CANRENDERWINDOWED      =0x00080000; A calibrator is available to adjust the gamma ramp according to the; physical display properties so that the result will be identical on; all calibrated systems.DDCAPS2_CANCALIBRATEGAMMA      =0x00100000; Indicates that the driver will respond to DDFLIP_INTERVALn flagsDDCAPS2_FLIPINTERVAL           =0x00200000; Indicates that the driver will respond to DDFLIP_NOVSYNCDDCAPS2_FLIPNOVSYNC            =0x00400000; Driver supports management of video memory, if this flag is ON,; driver manages the texture if requested with DDSCAPS2_TEXTUREMANAGE on; DirectX manages the texture if this flag is OFF and surface has DDSCAPS2_TEXTUREMANAGE onDDCAPS2_CANMANAGETEXTURE       =0x00800000; The Direct3D texture manager uses this cap to decide whether to put managed; surfaces in non-local video memory. If the cap is set, the texture manager will; put managed surfaces in non-local vidmem. Drivers that cannot texture from; local vidmem SHOULD NOT set this cap.DDCAPS2_TEXMANINNONLOCALVIDMEM =0x01000000; Indicates that the driver supports DX7 type of stereo in at least one mode (which may; not necessarily be the current mode). Applications should use IDirectDraw7 (or higher); ::EnumDisplayModes and check the DDSURFACEDESC.ddsCaps.dwCaps2 field for the presence of; DDSCAPS2_STEREOSURFACELEFT to check if a particular mode supports stereo. The application; can also use IDirectDraw7(or higher)::GetDisplayMode to check the current mode.DDCAPS2_STEREO                 =0x02000000; This caps bit is intended for internal DirectDraw use.; -It is only valid if DDCAPS2_NONLOCALVIDMEMCAPS is set.; -If this bit is set, then DDCAPS_CANBLTSYSMEM MUST be set by the driver (and;  all the assoicated system memory blt caps must be correct).; -It implies that the system->video blt caps in DDCAPS also apply to system to;  nonlocal blts. I.e. the dwSVBCaps, dwSVBCKeyCaps, dwSVBFXCaps and dwSVBRops;  members of DDCAPS (DDCORECAPS) are filled in correctly.; -Any blt from system to nonlocal memory that matches these caps bits will;  be passed to the driver.;; NOTE: This is intended to enable the driver itself to do efficient reordering; of textures. This is NOT meant to imply that hardware can write into AGP memory.; This operation is not currently supported.DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL  =0x04000000; was DDCAPS2_PUREHALDDCAPS2_RESERVED1                    =0x08000000; Driver supports management of video memory, if this flag is ON,; driver manages the resource if requested with DDSCAPS2_TEXTUREMANAGE on; DirectX manages the resource if this flag is OFF and surface has DDSCAPS2_TEXTUREMANAGE onDDCAPS2_CANMANAGERESOURCE            =0x10000000; Driver supports dynamic textures. This will allow the application to set; D3DUSAGE_DYNAMIC (DDSCAPS2_HINTDYNAMIC for drivers) at texture create time.; Video memory dynamic textures WILL be lockable by applications. It is; expected that these locks will be very efficient (which implies that the; driver should always maintain a linear copy, a pointer to which can be; quickly handed out to the application).DDCAPS2_DYNAMICTEXTURES              =0x20000000; Driver supports auto-generation of mipmaps.DDCAPS2_CANAUTOGENMIPMAP             =0x40000000;; DIRECTDRAW FX ALPHA CAPABILITY FLAGS;; Supports alpha blending around the edge of a source color keyed surface.; For Blt.DDFXALPHACAPS_BLTALPHAEDGEBLEND        =0x00000001; Supports alpha information in the pixel format.  The bit depth of alpha; information in the pixel format can be 1,2,4, or 8.  The alpha value becomes; more opaque as the alpha value increases.  (0 is transparent.); For Blt.DDFXALPHACAPS_BLTALPHAPIXELS           =0x00000002; Supports alpha information in the pixel format.  The bit depth of alpha; information in the pixel format can be 1,2,4, or 8.  The alpha value; becomes more transparent as the alpha value increases.  (0 is opaque.); This flag can only be set if DDCAPS_ALPHA is set.; For Blt.DDFXALPHACAPS_BLTALPHAPIXELSNEG        =0x00000004; Supports alpha only surfaces.  The bit depth of an alpha only surface can be; 1,2,4, or 8.  The alpha value becomes more opaque as the alpha value increases.; (0 is transparent.); For Blt.DDFXALPHACAPS_BLTALPHASURFACES         =0x00000008; The depth of the alpha channel data can range can be 1,2,4, or 8.; The NEG suffix indicates that this alpha channel becomes more transparent; as the alpha value increases. (0 is opaque.)  This flag can only be set if; DDCAPS_ALPHA is set.; For Blt.DDFXALPHACAPS_BLTALPHASURFACESNEG      =0x00000010; Supports alpha blending around the edge of a source color keyed surface.; For Overlays.DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND    =0x00000020; Supports alpha information in the pixel format.  The bit depth of alpha; information in the pixel format can be 1,2,4, or 8.  The alpha value becomes; more opaque as the alpha value increases.  (0 is transparent.); For Overlays.DDFXALPHACAPS_OVERLAYALPHAPIXELS       =0x00000040; Supports alpha information in the pixel format.  The bit depth of alpha; information in the pixel format can be 1,2,4, or 8.  The alpha value; becomes more transparent as the alpha value increases.  (0 is opaque.); This flag can only be set if DDCAPS_ALPHA is set.; For Overlays.DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG    =0x00000080; Supports alpha only surfaces.  The bit depth of an alpha only surface can be; 1,2,4, or 8.  The alpha value becomes more opaque as the alpha value increases.; (0 is transparent.); For Overlays.DDFXALPHACAPS_OVERLAYALPHASURFACES     =0x00000100; The depth of the alpha channel data can range can be 1,2,4, or 8.; The NEG suffix indicates that this alpha channel becomes more transparent; as the alpha value increases. (0 is opaque.)  This flag can only be set if; DDCAPS_ALPHA is set.; For Overlays.DDFXALPHACAPS_OVERLAYALPHASURFACESNEG  =0x00000200;; DIRECTDRAW FX CAPABILITY FLAGS;; Uses arithmetic operations to stretch and shrink surfaces during blt; rather than pixel doubling techniques.  Along the Y axis.DDFXCAPS_BLTARITHSTRETCHY      =0x00000020; Uses arithmetic operations to stretch during blt; rather than pixel doubling techniques.  Along the Y axis. Only; works for x1, x2, etc.DDFXCAPS_BLTARITHSTRETCHYN     =0x00000010; Supports mirroring left to right in blt.DDFXCAPS_BLTMIRRORLEFTRIGHT    =0x00000040; Supports mirroring top to bottom in blt.DDFXCAPS_BLTMIRRORUPDOWN       =0x00000080; Supports arbitrary rotation for blts.DDFXCAPS_BLTROTATION           =0x00000100; Supports 90 degree rotations for blts.DDFXCAPS_BLTROTATION90         =0x00000200; DirectDraw supports arbitrary shrinking of a surface along the; x axis (horizontal direction) for blts.DDFXCAPS_BLTSHRINKX            =0x00000400; DirectDraw supports integer shrinking (1x,2x,) of a surface; along the x axis (horizontal direction) for blts.DDFXCAPS_BLTSHRINKXN           =0x00000800; DirectDraw supports arbitrary shrinking of a surface along the; y axis (horizontal direction) for blts.DDFXCAPS_BLTSHRINKY            =0x00001000; DirectDraw supports integer shrinking (1x,2x,) of a surface; along the y axis (vertical direction) for blts.DDFXCAPS_BLTSHRINKYN           =0x00002000; DirectDraw supports arbitrary stretching of a surface along the; x axis (horizontal direction) for blts.DDFXCAPS_BLTSTRETCHX           =0x00004000; DirectDraw supports integer stretching (1x,2x,) of a surface; along the x axis (horizontal direction) for blts.DDFXCAPS_BLTSTRETCHXN          =0x00008000; DirectDraw supports arbitrary stretching of a surface along the; y axis (horizontal direction) for blts.DDFXCAPS_BLTSTRETCHY           =0x00010000; DirectDraw supports integer stretching (1x,2x,) of a surface; along the y axis (vertical direction) for blts.DDFXCAPS_BLTSTRETCHYN          =0x00020000; Uses arithmetic operations to stretch and shrink surfaces during; overlay rather than pixel doubling techniques.  Along the Y axis; for overlays.DDFXCAPS_OVERLAYARITHSTRETCHY  =0x00040000; Uses arithmetic operations to stretch surfaces during; overlay rather than pixel doubling techniques.  Along the Y axis; for overlays. Only works for x1, x2, etc.DDFXCAPS_OVERLAYARITHSTRETCHYN =0x00000008; DirectDraw supports arbitrary shrinking of a surface along the; x axis (horizontal direction) for overlays.DDFXCAPS_OVERLAYSHRINKX        =0x00080000; DirectDraw supports integer shrinking (1x,2x,) of a surface; along the x axis (horizontal direction) for overlays.DDFXCAPS_OVERLAYSHRINKXN       =0x00100000; DirectDraw supports arbitrary shrinking of a surface along the; y axis (horizontal direction) for overlays.DDFXCAPS_OVERLAYSHRINKY        =0x00200000; DirectDraw supports integer shrinking (1x,2x,) of a surface; along the y axis (vertical direction) for overlays.DDFXCAPS_OVERLAYSHRINKYN       =0x00400000; DirectDraw supports arbitrary stretching of a surface along the; x axis (horizontal direction) for overlays.DDFXCAPS_OVERLAYSTRETCHX       =0x00800000; DirectDraw supports integer stretching (1x,2x,) of a surface; along the x axis (horizontal direction) for overlays.DDFXCAPS_OVERLAYSTRETCHXN      =0x01000000; DirectDraw supports arbitrary stretching of a surface along the; y axis (horizontal direction) for overlays.DDFXCAPS_OVERLAYSTRETCHY       =0x02000000; DirectDraw supports integer stretching (1x,2x,) of a surface; along the y axis (vertical direction) for overlays.DDFXCAPS_OVERLAYSTRETCHYN      =0x04000000; DirectDraw supports mirroring of overlays across the vertical axisDDFXCAPS_OVERLAYMIRRORLEFTRIGHT=0x08000000; DirectDraw supports mirroring of overlays across the horizontal axisDDFXCAPS_OVERLAYMIRRORUPDOWN   =0x10000000; DirectDraw supports deinterlacing of overlay surfacesDDFXCAPS_OVERLAYDEINTERLACE   =0x20000000; Driver can do alpha blending for blits.DDFXCAPS_BLTALPHA              =0x0000000; Driver can do surface-reconstruction filtering for warped blits.DDFXCAPS_BLTFILTER             =DDFXCAPS_BLTARITHSTRETCHY; Driver can do alpha blending for overlays.DDFXCAPS_OVERLAYALPHA          =0x00000004; Driver can do surface-reconstruction filtering for warped overlays.DDFXCAPS_OVERLAYFILTER         =DDFXCAPS_OVERLAYARITHSTRETCHY;; DIRECTDRAW STEREO VIEW CAPABILITIES;; This flag used to be DDSVCAPS_ENIGMA, which is now obsoleteDDSVCAPS_RESERVED1             =0x00000001; This flag used to be DDSVCAPS_FLICKER, which is now obsoleteDDSVCAPS_RESERVED2             =0x00000002; This flag used to be DDSVCAPS_REDBLUE, which is now obsoleteDDSVCAPS_RESERVED3             =0x00000004; This flag used to be DDSVCAPS_SPLIT, which is now obsoleteDDSVCAPS_RESERVED4             =0x00000008; The stereo view is accomplished with switching technologyDDSVCAPS_STEREOSEQUENTIAL      =0x00000010;; DIRECTDRAWPALETTE CAPABILITIES;; Index is 4 bits.  There are sixteen color entries in the palette table.DDPCAPS_4BIT                   =0x00000001; Index is onto a 8 bit color index.  This field is only valid with the; DDPCAPS_1BIT, DDPCAPS_2BIT or DDPCAPS_4BIT capability and the target; surface is in 8bpp. Each color entry is one byte long and is an index; into destination surface's 8bpp palette.DDPCAPS_8BITENTRIES            =0x00000002; Index is 8 bits.  There are 256 color entries in the palette table.DDPCAPS_8BIT                   =0x00000004; Indicates that this DIRECTDRAWPALETTE should use the palette color array; passed into the lpDDColorArray parameter to initialize the DIRECTDRAWPALETTE; object.; This flag is obsolete. DirectDraw always initializes the color array from; the lpDDColorArray parameter. The definition remains for source-level; compatibility.DDPCAPS_INITIALIZE             =0x00000000; This palette is the one attached to the primary surface.  Changing this; table has immediate effect on the display unless DDPSETPAL_VSYNC is specified; and supported.DDPCAPS_PRIMARYSURFACE         =0x00000010; This palette is the one attached to the primary surface left.  Changing; this table has immediate effect on the display for the left eye unless; DDPSETPAL_VSYNC is specified and supported.DDPCAPS_PRIMARYSURFACELEFT     =0x00000020; This palette can have all 256 entries definedDDPCAPS_ALLOW256               =0x00000040; This palette can have modifications to it synced with the monitors; refresh rate.DDPCAPS_VSYNC                  =0x00000080; Index is 1 bit.  There are two color entries in the palette table.DDPCAPS_1BIT                   =0x00000100; Index is 2 bit.  There are four color entries in the palette table.DDPCAPS_2BIT                   =0x00000200; The peFlags member of PALETTEENTRY denotes an 8 bit alpha valueDDPCAPS_ALPHA                  =0x00000400;; DIRECTDRAWPALETTE SETENTRY CONSTANTS;;; DIRECTDRAWPALETTE GETENTRY CONSTANTS;;; DIRECTDRAWSURFACE SETPRIVATEDATA CONSTANTS;; The passed pointer is an IUnknown ptr. The cbData argument to SetPrivateData; must be set to sizeof(IUnknown*). DirectDraw will call AddRef through this; pointer and Release when the private data is destroyed. This includes when; the surface or palette is destroyed before such priovate data is destroyed.DDSPD_IUNKNOWNPOINTER          =0x00000001; Private data is only valid for the current state of the object,; as determined by the uniqueness value.DDSPD_VOLATILE                 =0x00000002;; DIRECTDRAWSURFACE SETPALETTE CONSTANTS;;; DIRECTDRAW BITDEPTH CONSTANTS;; NOTE:  These are only used to indicate supported bit depths.   These; are flags only, they are not to be used as an actual bit depth.   The; absolute numbers 1, 2, 4, 8, 16, 24 and 32 are used to indicate actual; bit depths in a surface or for changing the display mode.;; 1 bit per pixel.DDBD_1                 =0x00004000; 2 bits per pixel.DDBD_2                 =0x00002000; 4 bits per pixel.DDBD_4                 =0x00001000; 8 bits per pixel.DDBD_8                 =0x00000800; 16 bits per pixel.DDBD_16                =0x00000400; 24 bits per pixel.DDBD_24                =0x00000200; 32 bits per pixel.DDBD_32                =0x00000100;; DIRECTDRAWSURFACE SET/GET COLOR KEY FLAGS;; Set if the structure contains a color space.  Not set if the structure; contains a single color key.DDCKEY_COLORSPACE      =0x00000001; Set if the structure specifies a color key or color space which is to be; used as a destination color key for blt operations.DDCKEY_DESTBLT         =0x00000002; Set if the structure specifies a color key or color space which is to be; used as a destination color key for overlay operations.DDCKEY_DESTOVERLAY     =0x00000004; Set if the structure specifies a color key or color space which is to be; used as a source color key for blt operations.DDCKEY_SRCBLT          =0x00000008; Set if the structure specifies a color key or color space which is to be; used as a source color key for overlay operations.DDCKEY_SRCOVERLAY      =0x00000010;; DIRECTDRAW COLOR KEY CAPABILITY FLAGS;; Supports transparent blting using a color key to identify the replaceable; bits of the destination surface for RGB colors.DDCKEYCAPS_DESTBLT                     =0x00000001; Supports transparent blting using a color space to identify the replaceable; bits of the destination surface for RGB colors.DDCKEYCAPS_DESTBLTCLRSPACE             =0x00000002; Supports transparent blting using a color space to identify the replaceable; bits of the destination surface for YUV colors.DDCKEYCAPS_DESTBLTCLRSPACEYUV          =0x00000004; Supports transparent blting using a color key to identify the replaceable; bits of the destination surface for YUV colors.DDCKEYCAPS_DESTBLTYUV                  =0x00000008; Supports overlaying using colorkeying of the replaceable bits of the surface; being overlayed for RGB colors.DDCKEYCAPS_DESTOVERLAY                 =0x00000010; Supports a color space as the color key for the destination for RGB colors.DDCKEYCAPS_DESTOVERLAYCLRSPACE         =0x00000020; Supports a color space as the color key for the destination for YUV colors.DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV      =0x00000040; Supports only one active destination color key value for visible overlay; surfaces.DDCKEYCAPS_DESTOVERLAYONEACTIVE        =0x00000080; Supports overlaying using colorkeying of the replaceable bits of the; surface being overlayed for YUV colors.DDCKEYCAPS_DESTOVERLAYYUV              =0x00000100; Supports transparent blting using the color key for the source with; this surface for RGB colors.DDCKEYCAPS_SRCBLT                      =0x00000200; Supports transparent blting using a color space for the source with; this surface for RGB colors.DDCKEYCAPS_SRCBLTCLRSPACE              =0x00000400; Supports transparent blting using a color space for the source with; this surface for YUV colors.DDCKEYCAPS_SRCBLTCLRSPACEYUV           =0x00000800; Supports transparent blting using the color key for the source with; this surface for YUV colors.DDCKEYCAPS_SRCBLTYUV                   =0x00001000; Supports overlays using the color key for the source with this; overlay surface for RGB colors.DDCKEYCAPS_SRCOVERLAY                  =0x00002000; Supports overlays using a color space as the source color key for; the overlay surface for RGB colors.DDCKEYCAPS_SRCOVERLAYCLRSPACE          =0x00004000; Supports overlays using a color space as the source color key for; the overlay surface for YUV colors.DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV       =0x00008000; Supports only one active source color key value for visible; overlay surfaces.DDCKEYCAPS_SRCOVERLAYONEACTIVE         =0x00010000; Supports overlays using the color key for the source with this; overlay surface for YUV colors.DDCKEYCAPS_SRCOVERLAYYUV               =0x00020000; there are no bandwidth trade-offs for using colorkey with an overlayDDCKEYCAPS_NOCOSTOVERLAY               =0x00040000;; DIRECTDRAW PIXELFORMAT FLAGS;; The surface has alpha channel information in the pixel format.DDPF_ALPHAPIXELS                       =0x00000001; The pixel format contains alpha only informationDDPF_ALPHA                             =0x00000002; The FourCC code is valid.DDPF_FOURCC                            =0x00000004; The surface is 4-bit color indexed.DDPF_PALETTEINDEXED4                   =0x00000008; The surface is indexed into a palette which stores indices; into the destination surface's 8-bit palette.DDPF_PALETTEINDEXEDTO8                 =0x00000010; The surface is 8-bit color indexed.DDPF_PALETTEINDEXED8                   =0x00000020; The RGB data in the pixel format structure is valid.DDPF_RGB                               =0x00000040; The surface will accept pixel data in the format specified; and compress it during the write.DDPF_COMPRESSED                        =0x00000080; The surface will accept RGB data and translate it during; the write to YUV data.  The format of the data to be written; will be contained in the pixel format structure.  The DDPF_RGB; flag will be set.DDPF_RGBTOYUV                          =0x00000100; pixel format is YUV - YUV data in pixel format struct is validDDPF_YUV                               =0x00000200; pixel format is a z buffer only surfaceDDPF_ZBUFFER                           =0x00000400; The surface is 1-bit color indexed.DDPF_PALETTEINDEXED1                   =0x00000800; The surface is 2-bit color indexed.DDPF_PALETTEINDEXED2                   =0x00001000; The surface contains Z information in the pixelsDDPF_ZPIXELS                           =0x00002000; The surface contains stencil information along with ZDDPF_STENCILBUFFER                     =0x00004000; Premultiplied alpha format -- the color components have been; premultiplied by the alpha component.DDPF_ALPHAPREMULT                      =0x00008000; Luminance data in the pixel format is valid.; Use this flag for luminance-only or luminance+alpha surfaces,; the bit depth is then ddpf.dwLuminanceBitCount.DDPF_LUMINANCE                         =0x00020000; Luminance data in the pixel format is valid.; Use this flag when hanging luminance off bumpmap surfaces,; the bit mask for the luminance portion of the pixel is then; ddpf.dwBumpLuminanceBitMaskDDPF_BUMPLUMINANCE                     =0x00040000; Bump map dUdV data in the pixel format is valid.DDPF_BUMPDUDV                          =0x00080000;===========================================================================;;; DIRECTDRAW CALLBACK FLAGS;;;==========================================================================;; DIRECTDRAW ENUMSURFACES FLAGS;; Enumerate all of the surfaces that meet the search criterion.DDENUMSURFACES_ALL              =0x00000001; A search hit is a surface that matches the surface description.DDENUMSURFACES_MATCH            =0x00000002; A search hit is a surface that does not match the surface description.DDENUMSURFACES_NOMATCH          =0x00000004; Enumerate the first surface that can be created which meets the search criterion.DDENUMSURFACES_CANBECREATED     =0x00000008; Enumerate the surfaces that already exist that meet the search criterion.DDENUMSURFACES_DOESEXIST        =0x00000010;; DIRECTDRAW SETDISPLAYMODE FLAGS;; The desired mode is a standard VGA modeDDSDM_STANDARDVGAMODE           =0x0000000;; DIRECTDRAW ENUMDISPLAYMODES FLAGS;; Enumerate Modes with different refresh rates.  EnumDisplayModes guarantees; that a particular mode will be enumerated only once.  This flag specifies whether; the refresh rate is taken into account when determining if a mode is unique.DDEDM_REFRESHRATES              =0x00000001; Enumerate VGA modes. Specify this flag if you wish to enumerate supported VGA; modes such as mode=0x13 in addition to the usual ModeX modes (which are always; enumerated if the application has previously called SetCooperativeLevel with the; DDSCL_ALLOWMODEX flag set).DDEDM_STANDARDVGAMODES          =0x00000002;; DIRECTDRAW SETCOOPERATIVELEVEL FLAGS;; Exclusive mode owner will be responsible for the entire primary surface.; GDI can be ignored. used with DDDDSCL_FULLSCREEN                =0x00000001; allow CTRL_ALT_DEL to work while in fullscreen exclusive modeDDSCL_ALLOWREBOOT               =0x00000002; prevents DDRAW from modifying the application window.; prevents DDRAW from minimize/restore the application window on activation.DDSCL_NOWINDOWCHANGES           =0x00000004; app wants to work as a regular Windows applicationDDSCL_NORMAL                    =0x00000008; app wants exclusive accessDDSCL_EXCLUSIVE                 =0x00000010; app can deal with non-windows display modesDDSCL_ALLOWMODEX                =0x00000040; this window will receive the focus messagesDDSCL_SETFOCUSWINDOW            =0x00000080; this window is associated with the DDRAW object and will; cover the screen in fullscreen modeDDSCL_SETDEVICEWINDOW           =0x00000100; app wants DDRAW to create a window to be associated with the; DDRAW objectDDSCL_CREATEDEVICEWINDOW        =0x00000200; App explicitly asks DDRAW/D3D to be multithread safe. This makes D3D; take the global crtisec more frequently.DDSCL_MULTITHREADED             =0x00000400; App specifies that it would like to keep the FPU set up for optimal Direct3D; performance (single precision and exceptions disabled) so Direct3D; does not need to explicitly set the FPU each time. This is assumed by; default in DirectX 7. See also DDSCL_FPUPRESERVEDDSCL_FPUSETUP                  =0x00000800; App specifies that it needs either double precision FPU or FPU exceptions; enabled. This makes Direct3D explicitly set the FPU state eah time it is; called. Setting the flag will reduce Direct3D performance. The flag is; assumed by default in DirectX 6 and earlier. See also DDSCL_FPUSETUPDDSCL_FPUPRESERVE               =0x00001000;; DIRECTDRAW BLT FLAGS;; Use the alpha information in the pixel format or the alpha channel surface; attached to the destination surface as the alpha channel for this blt.DDBLT_ALPHADEST                 =0x00000001; Use the dwConstAlphaDest field in the DDBLTFX structure as the alpha channel; for the destination surface for this blt.DDBLT_ALPHADESTCONSTOVERRIDE    =0x00000002; The NEG suffix indicates that the destination surface becomes more; transparent as the alpha value increases. (0 is opaque)DDBLT_ALPHADESTNEG              =0x00000004; Use the lpDDSAlphaDest field in the DDBLTFX structure as the alpha; channel for the destination for this blt.DDBLT_ALPHADESTSURFACEOVERRIDE  =0x00000008; Use the dwAlphaEdgeBlend field in the DDBLTFX structure as the alpha channel; for the edges of the image that border the color key colors.DDBLT_ALPHAEDGEBLEND            =0x00000010; Use the alpha information in the pixel format or the alpha channel surface; attached to the source surface as the alpha channel for this blt.DDBLT_ALPHASRC                  =0x00000020; Use the dwConstAlphaSrc field in the DDBLTFX structure as the alpha channel; for the source for this blt.DDBLT_ALPHASRCCONSTOVERRIDE     =0x00000040; The NEG suffix indicates that the source surface becomes more transparent; as the alpha value increases. (0 is opaque)DDBLT_ALPHASRCNEG               =0x00000080; Use the lpDDSAlphaSrc field in the DDBLTFX structure as the alpha channel; for the source for this blt.DDBLT_ALPHASRCSURFACEOVERRIDE   =0x00000100; Do this blt asynchronously through the FIFO in the order received.  If; there is no room in the hardware FIFO fail the call.DDBLT_ASYNC                     =0x00000200; Uses the dwFillColor field in the DDBLTFX structure as the RGB color; to fill the destination rectangle on the destination surface with.DDBLT_COLORFILL                 =0x00000400; Uses the dwDDFX field in the DDBLTFX structure to specify the effects; to use for the blt.DDBLT_DDFX                      =0x00000800; Uses the dwDDROPS field in the DDBLTFX structure to specify the ROPS; that are not part of the Win32 API.DDBLT_DDROPS                    =0x00001000; Use the color key associated with the destination surface.DDBLT_KEYDEST                   =0x00002000; Use the dckDestColorkey field in the DDBLTFX structure as the color key; for the destination surface.DDBLT_KEYDESTOVERRIDE           =0x00004000; Use the color key associated with the source surface.DDBLT_KEYSRC                    =0x00008000; Use the dckSrcColorkey field in the DDBLTFX structure as the color key; for the source surface.DDBLT_KEYSRCOVERRIDE            =0x00010000; Use the dwROP field in the DDBLTFX structure for the raster operation; for this blt.  These ROPs are the same as the ones defined in the Win32 API.DDBLT_ROP                       =0x00020000; Use the dwRotationAngle field in the DDBLTFX structure as the angle; (specified in 1/100th of a degree) to rotate the surface.DDBLT_ROTATIONANGLE             =0x00040000; Z-buffered blt using the z-buffers attached to the source and destination; surfaces and the dwZBufferOpCode field in the DDBLTFX structure as the; z-buffer opcode.DDBLT_ZBUFFER                   =0x00080000; Z-buffered blt using the dwConstDest Zfield and the dwZBufferOpCode field; in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively; for the destination.DDBLT_ZBUFFERDESTCONSTOVERRIDE  =0x00100000; Z-buffered blt using the lpDDSDestZBuffer field and the dwZBufferOpCode; field in the DDBLTFX structure as the z-buffer and z-buffer opcode; respectively for the destination.DDBLT_ZBUFFERDESTOVERRIDE       =0x00200000; Z-buffered blt using the dwConstSrcZ field and the dwZBufferOpCode field; in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively; for the source.DDBLT_ZBUFFERSRCCONSTOVERRIDE   =0x00400000; Z-buffered blt using the lpDDSSrcZBuffer field and the dwZBufferOpCode; field in the DDBLTFX structure as the z-buffer and z-buffer opcode; respectively for the source.DDBLT_ZBUFFERSRCOVERRIDE        =0x00800000; wait until the device is ready to handle the blt; this will cause blt to not return DDERR_WASSTILLDRAWINGDDBLT_WAIT                      =0x01000000; Uses the dwFillDepth field in the DDBLTFX structure as the depth value; to fill the destination rectangle on the destination Z-buffer surface; with.DDBLT_DEPTHFILL                 =0x02000000; Return immediately (with DDERR_WASSTILLDRAWING) if the device is not; ready to schedule the blt at the time Blt() is called.DDBLT_DONOTWAIT                 =0x08000000; These flags indicate a presentation blt (i.e. a blt; that moves surface contents from an offscreen back buffer to the primary; surface). The driver is not allowed to "queue"  more than three such blts.; The "end" of the presentation blt is indicated, since the; blt may be clipped, in which case the runtime will call the driver with ; several blts. All blts (even if not clipped) are tagged with DDBLT_PRESENTATION; and the last (even if not clipped) additionally with DDBLT_LAST_PRESENTATION.; Thus the true rule is that the driver must not schedule a DDBLT_PRESENTATION; blt if there are 3 or more DDBLT_PRESENTLAST blts in the hardware pipe.; If there are such blts in the pipe, the driver should return DDERR_WASSTILLDRAWING; until the oldest queued DDBLT_LAST_PRESENTATION blts has been retired (i.e. the; pixels have been actually written to the primary surface). Once the oldest blt; has been retired, the driver is free to schedule the current blt.; The goal is to provide a mechanism whereby the device's hardware queue never; gets more than 3 frames ahead of the frames being generated by the application.; When excessive queueing occurs, applications become unusable because the application; visibly lags user input, and such problems make windowed interactive applications impossible.; Some drivers may not have sufficient knowledge of their hardware's FIFO to know; when a certain blt has been retired. Such drivers should code cautiously, and ; simply not allow any frames to be queued at all. DDBLT_LAST_PRESENTATION should cause; such drivers to return DDERR_WASSTILLDRAWING until the accelerator is completely; finished- exactly as if the application had called Lock on the source surface; before calling Blt. ; In other words, the driver is allowed and encouraged to ; generate as much latency as it can, but never more than 3 frames worth.; Implementation detail: Drivers should count blts against the SOURCE surface, not; against the primary surface. This enables multiple parallel windowed application; to function more optimally.; This flag is passed only to DX8 or higher drivers.;; APPLICATIONS DO NOT SET THESE FLAGS. THEY ARE SET BY THE DIRECTDRAW RUNTIME.; DDBLT_PRESENTATION              =0x10000000DDBLT_LAST_PRESENTATION         =0x20000000; If DDBLT_EXTENDED_FLAGS is set, then the driver should re-interpret; other flags according to the definitions that follow.; For example, bit 0 (0x00000001L) means DDBLT_ALPHADEST, unless; DDBLT_EXTENDED_FLAGS is also set, in which case bit 0 means; DDBLT_EXTENDED_LINEAR_CONTENT.; Only DirectX9 and higher drivers will be given extended blt flags.; Only flags explicitly mentioned here should be re-interpreted.; All other flags retain their original meanings.;; List of re-interpreted flags:;; Bit Hex value   New meaning                                  old meaning; ---------------------------------------------------------------;  2 =0x00000004  DDBLT_EXTENDED_LINEAR_CONTENT                DDBLT_ALPHADESTNEG;  4 =0x00000010  DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR    DDBLT_ALPHAEDGEBLEND;;; NOTE: APPLICATIONS SHOULD NOT SET THIS FLAG. THIS FLAG IS INTENDED; FOR USE BY THE DIRECT3D RUNTIME.DDBLT_EXTENDED_FLAGS            =0x40000000; EXTENDED FLAG. SEE DEFINITION OF DDBLT_EXTENDED_FLAGS.; This flag indidcates that the source surface contains content in a; linear color space. The driver may perform gamma correction to the; desktop color space (i.e. sRGB, gamma 2.2) as part of this blt.; If the device can perform such a conversion as part of the copy,; the driver should also set D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION;; NOTE: APPLICATIONS SHOULD NOT SET THIS FLAG. THIS FLAG IS INTENDED; FOR USE BY THE DIRECT3D RUNTIME. Use IDirect3DSwapChain9::Present; and specify D3DPRESENT_LINEAR_CONTENT in order to use this functionality. DDBLT_EXTENDED_LINEAR_CONTENT   =0x00000004;; BLTFAST FLAGS;DDBLTFAST_NOCOLORKEY            =0x00000000DDBLTFAST_SRCCOLORKEY           =0x00000001DDBLTFAST_DESTCOLORKEY          =0x00000002DDBLTFAST_WAIT                  =0x00000010DDBLTFAST_DONOTWAIT             =0x00000020;; FLIP FLAGS;DDFLIP_WAIT                     =0x00000001; Indicates that the target surface contains the even field of video data.; This flag is only valid with an overlay surface.DDFLIP_EVEN                     =0x00000002; Indicates that the target surface contains the odd field of video data.; This flag is only valid with an overlay surface.DDFLIP_ODD                      =0x00000004; Causes DirectDraw to perform the physical flip immediately and return; to the application. Typically, what was the front buffer but is now the back; buffer will still be visible (depending on timing) until the next vertical; retrace. Subsequent operations involving the two flipped surfaces will; not check to see if the physical flip has finished (i.e. will not return; DDERR_WASSTILLDRAWING for that reason (but may for other reasons)).; This allows an application to perform Flips at a higher frequency than the; monitor refresh rate, but may introduce visible artifacts.; Only effective if DDCAPS2_FLIPNOVSYNC is set. If that bit is not set,; DDFLIP_NOVSYNC has no effect.DDFLIP_NOVSYNC                  =0x00000008; Flip Interval Flags. These flags indicate how many vertical retraces to wait between; each flip. The default is one. DirectDraw will return DDERR_WASSTILLDRAWING for each; surface involved in the flip until the specified number of vertical retraces has; ocurred. Only effective if DDCAPS2_FLIPINTERVAL is set. If that bit is not set,; DDFLIP_INTERVALn has no effect.; DirectDraw will flip on every other vertical syncDDFLIP_INTERVAL2                =0x02000000; DirectDraw will flip on every third vertical syncDDFLIP_INTERVAL3                =0x03000000; DirectDraw will flip on every fourth vertical syncDDFLIP_INTERVAL4                =0x04000000; DirectDraw will flip and display a main stereo surfaceDDFLIP_STEREO                   =0x00000010; On IDirectDrawSurface7 and higher interfaces, the default is DDFLIP_WAIT. If you wish; to override the default and use time when the accelerator is busy (as denoted by; the DDERR_WASSTILLDRAWING return code) then use DDFLIP_DONOTWAIT.DDFLIP_DONOTWAIT                =0x00000020;; DIRECTDRAW SURFACE OVERLAY FLAGS;; Use the alpha information in the pixel format or the alpha channel surface; attached to the destination surface as the alpha channel for the; destination overlay.DDOVER_ALPHADEST                =0x00000001; Use the dwConstAlphaDest field in the DDOVERLAYFX structure as the; destination alpha channel for this overlay.DDOVER_ALPHADESTCONSTOVERRIDE   =0x00000002; The NEG suffix indicates that the destination surface becomes more; transparent as the alpha value increases.DDOVER_ALPHADESTNEG             =0x00000004; Use the lpDDSAlphaDest field in the DDOVERLAYFX structure as the alpha; channel destination for this overlay.DDOVER_ALPHADESTSURFACEOVERRIDE =0x00000008; Use the dwAlphaEdgeBlend field in the DDOVERLAYFX structure as the alpha; channel for the edges of the image that border the color key colors.DDOVER_ALPHAEDGEBLEND           =0x00000010; Use the alpha information in the pixel format or the alpha channel surface; attached to the source surface as the source alpha channel for this overlay.DDOVER_ALPHASRC                 =0x00000020; Use the dwConstAlphaSrc field in the DDOVERLAYFX structure as the source; alpha channel for this overlay.DDOVER_ALPHASRCCONSTOVERRIDE    =0x00000040; The NEG suffix indicates that the source surface becomes more transparent; as the alpha value increases.DDOVER_ALPHASRCNEG              =0x00000080; Use the lpDDSAlphaSrc field in the DDOVERLAYFX structure as the alpha channel; source for this overlay.DDOVER_ALPHASRCSURFACEOVERRIDE  =0x00000100; Turn this overlay off.DDOVER_HIDE                     =0x00000200; Use the color key associated with the destination surface.DDOVER_KEYDEST                  =0x00000400; Use the dckDestColorkey field in the DDOVERLAYFX structure as the color key; for the destination surfaceDDOVER_KEYDESTOVERRIDE          =0x00000800; Use the color key associated with the source surface.DDOVER_KEYSRC                   =0x00001000; Use the dckSrcColorkey field in the DDOVERLAYFX structure as the color key; for the source surface.DDOVER_KEYSRCOVERRIDE           =0x00002000; Turn this overlay on.DDOVER_SHOW                     =0x00004000; Add a dirty rect to an emulated overlayed surface.DDOVER_ADDDIRTYRECT             =0x00008000; Redraw all dirty rects on an emulated overlayed surface.DDOVER_REFRESHDIRTYRECTS        =0x00010000; Redraw the entire surface on an emulated overlayed surface.DDOVER_REFRESHALL               =0x00020000; Use the overlay FX flags to define special overlay FXDDOVER_DDFX                     =0x00080000; Autoflip the overlay when ever the video port autoflipsDDOVER_AUTOFLIP                 =0x00100000; Display each field of video port data individually without; causing any jittery artifactsDDOVER_BOB                      =0x00200000; Indicates that bob/weave decisions should not be overridden by other; interfaces.DDOVER_OVERRIDEBOBWEAVE         =0x00400000; Indicates that the surface memory is composed of interleaved fields.DDOVER_INTERLEAVED              =0x00800000; Indicates that bob will be performed using hardware rather than; software or emulated.DDOVER_BOBHARDWARE              =0x01000000; Indicates that overlay FX structure contains valid ARGB scaling factors.DDOVER_ARGBSCALEFACTORS         =0x02000000; Indicates that ARGB scaling factors can be degraded to fit driver capabilities.DDOVER_DEGRADEARGBSCALING       =0x04000000;; DIRECTDRAWSURFACE LOCK FLAGS;; The default.  Set to indicate that Lock should return a valid memory pointer; to the top of the specified rectangle.  If no rectangle is specified then a; pointer to the top of the surface is returned.DDLOCK_SURFACEMEMORYPTR         =0x00000000; Set to indicate that Lock should wait until it can obtain a valid memory; pointer before returning.  If this bit is set, Lock will never return; DDERR_WASSTILLDRAWING.DDLOCK_WAIT                     =0x00000001; Set if an event handle is being passed to Lock.  Lock will trigger the event; when it can return the surface memory pointer requested.DDLOCK_EVENT                    =0x00000002; Indicates that the surface being locked will only be read from.DDLOCK_READONLY                 =0x00000010; Indicates that the surface being locked will only be written toDDLOCK_WRITEONLY                =0x00000020; Indicates that a system wide lock should not be taken when this surface; is locked. This has several advantages (cursor responsiveness, ability; to call more Windows functions, easier debugging) when locking video; memory surfaces. However, an application specifying this flag must; comply with a number of conditions documented in the help file.; Furthermore, this flag cannot be specified when locking the primary.DDLOCK_NOSYSLOCK                =0x00000800; Used only with Direct3D Vertex Buffer Locks. Indicates that no vertices; that were referred to in Draw*PrimtiveVB calls since the start of the; frame (or the last lock without this flag) will be modified during the; lock. This can be useful when one is only appending data to the vertex; bufferDDLOCK_NOOVERWRITE              =0x00001000; Indicates that no assumptions will be made about the contents of the; surface or vertex buffer during this lock.; This enables two things:; -    Direct3D or the driver may provide an alternative memory;      area as the vertex buffer. This is useful when one plans to clear the;      contents of the vertex buffer and fill in new data.; -    Drivers sometimes store surface data in a re-ordered format.;      When the application locks the surface, the driver is forced to un-re-order;      the surface data before allowing the application to see the surface contents.;      This flag is a hint to the driver that it can skip the un-re-ordering process;      since the application plans to overwrite every single pixel in the surface;      or locked rectangle (and so erase any un-re-ordered pixels anyway).;      Applications should always set this flag when they intend to overwrite the entire;      surface or locked rectangle.DDLOCK_DISCARDCONTENTS          =0x00002000 ; DDLOCK_OKTOSWAP is an older, less informative name for DDLOCK_DISCARDCONTENTS DDLOCK_OKTOSWAP                 =0x00002000; On IDirectDrawSurface7 and higher interfaces, the default is DDLOCK_WAIT. If you wish; to override the default and use time when the accelerator is busy (as denoted by; the DDERR_WASSTILLDRAWING return code) then use DDLOCK_DONOTWAIT.DDLOCK_DONOTWAIT                =0x00004000; This indicates volume texture lock with front and back specified.DDLOCK_HASVOLUMETEXTUREBOXRECT  =0x00008000; This indicates that the driver should not update dirty rect information for this lock.DDLOCK_NODIRTYUPDATE            =0x00010000;; DIRECTDRAWSURFACE BLT FX FLAGS;; If stretching, use arithmetic stretching along the Y axis for this blt.DDBLTFX_ARITHSTRETCHY           =0x00000001; Do this blt mirroring the surface left to right.  Spin the; surface around its y-axis.DDBLTFX_MIRRORLEFTRIGHT         =0x00000002; Do this blt mirroring the surface up and down.  Spin the surface; around its x-axis.DDBLTFX_MIRRORUPDOWN            =0x00000004; Schedule this blt to avoid tearing.DDBLTFX_NOTEARING               =0x00000008; Do this blt rotating the surface one hundred and eighty degrees.DDBLTFX_ROTATE180               =0x00000010; Do this blt rotating the surface two hundred and seventy degrees.DDBLTFX_ROTATE270               =0x00000020; Do this blt rotating the surface ninety degrees.DDBLTFX_ROTATE90                =0x00000040; Do this z blt using dwZBufferLow and dwZBufferHigh as  range values; specified to limit the bits copied from the source surface.DDBLTFX_ZBUFFERRANGE            =0x00000080; Do this z blt adding the dwZBufferBaseDest to each of the sources z values; before comparing it with the desting z values.DDBLTFX_ZBUFFERBASEDEST         =0x00000100;; DIRECTDRAWSURFACE OVERLAY FX FLAGS;; If stretching, use arithmetic stretching along the Y axis for this overlay.DDOVERFX_ARITHSTRETCHY          =0x00000001; Mirror the overlay across the vertical axisDDOVERFX_MIRRORLEFTRIGHT        =0x00000002; Mirror the overlay across the horizontal axisDDOVERFX_MIRRORUPDOWN           =0x00000004; Deinterlace the overlay, if possibleDDOVERFX_DEINTERLACE            =0x00000008;; DIRECTDRAW WAITFORVERTICALBLANK FLAGS;; return when the vertical blank interval beginsDDWAITVB_BLOCKBEGIN             =0x00000001; set up an event to trigger when the vertical blank beginsDDWAITVB_BLOCKBEGINEVENT        =0x00000002; return when the vertical blank interval ends and display beginsDDWAITVB_BLOCKEND               =0x00000004;; DIRECTDRAW GETFLIPSTATUS FLAGS;; is it OK to flip now?DDGFS_CANFLIP                   =0x00000001; is the last flip finished?DDGFS_ISFLIPDONE                =0x00000002;; DIRECTDRAW GETBLTSTATUS FLAGS;; is it OK to blt now?DDGBS_CANBLT                    =0x00000001; is the blt to the surface finished?DDGBS_ISBLTDONE                 =0x00000002;; DIRECTDRAW ENUMOVERLAYZORDER FLAGS;; Enumerate overlays back to front.DDENUMOVERLAYZ_BACKTOFRONT      =0x00000000; Enumerate overlays front to backDDENUMOVERLAYZ_FRONTTOBACK      =0x00000001;; DIRECTDRAW UPDATEOVERLAYZORDER FLAGS;; Send overlay to frontDDOVERZ_SENDTOFRONT             =0x00000000; Send overlay to backDDOVERZ_SENDTOBACK              =0x00000001; Move Overlay forwardDDOVERZ_MOVEFORWARD             =0x00000002; Move Overlay backwardDDOVERZ_MOVEBACKWARD            =0x00000003; Move Overlay in front of relative surfaceDDOVERZ_INSERTINFRONTOF         =0x00000004; Move Overlay in back of relative surfaceDDOVERZ_INSERTINBACKOF          =0x00000005;; DIRECTDRAW SETGAMMARAMP FLAGS;; Request calibrator to adjust the gamma ramp according to the physical; properties of the display so that the result should appear identical; on all systems.DDSGR_CALIBRATE                 =0x00000001;; DIRECTDRAW STARTMODETEST FLAGS;; Indicates that the mode being tested has passedDDSMT_ISTESTREQUIRED            =0x00000001;; DIRECTDRAW EVALUATEMODE FLAGS;; Indicates that the mode being tested has passed;DDEM_MODEPASSED                 =0x00000001; Indicates that the mode being tested has failedDDEM_MODEFAILED                 =0x00000002;===========================================================================;;; DIRECTDRAW RETURN CODES;; The return values from DirectDraw Commands and Surface that return an HRESULT; are codes from DirectDraw concerning the results of the action; requested by DirectDraw.;;==========================================================================S_OK                            =0S_FALSE                         =1; Status is OK;; Issued by: DirectDraw Commands and all callbacks;DD_OK                           =S_OKDD_FALSE                        =S_FALSE; stop the enumerationDDENUMRET_CANCEL                =0; continue the enumerationDDENUMRET_OK                    =1; DirectDraw errorsDDERR_ALREADYINITIALIZED        =088760000h+5DDERR_CANNOTATTACHSURFACE       =088760000h+10DDERR_CANNOTDETACHSURFACE       =088760000h+20DDERR_CURRENTLYNOTAVAIL         =088760000h+40DDERR_EXCEPTION                 =088760000h+55DDERR_HEIGHTALIGN               =088760000h+90DDERR_INCOMPATIBLEPRIMARY       =088760000h+95DDERR_INVALIDCAPS               =088760000h+100DDERR_INVALIDCLIPLIST           =088760000h+110DDERR_INVALIDMODE               =088760000h+120DDERR_INVALIDOBJECT             =088760000h+130DDERR_INVALIDPIXELFORMAT        =088760000h+145DDERR_INVALIDRECT               =088760000h+150DDERR_LOCKEDSURFACES            =088760000h+160DDERR_NO3D                      =088760000h+170DDERR_NOALPHAHW                 =088760000h+180DDERR_NOCLIPLIST                =088760000h+205DDERR_NOCOLORCONVHW             =088760000h+210DDERR_NOCOOPERATIVELEVELSET     =088760000h+212DDERR_NOCOLORKEY                =088760000h+215DDERR_NOCOLORKEYHW              =088760000h+220DDERR_NODIRECTDRAWSUPPORT       =088760000h+222DDERR_NOEXCLUSIVEMODE           =088760000h+225DDERR_NOFLIPHW                  =088760000h+230DDERR_NOGDI                     =088760000h+240DDERR_NOMIRRORHW                =088760000h+250DDERR_NOTFOUND                  =088760000h+255DDERR_NOOVERLAYHW               =088760000h+260DDERR_NORASTEROPHW              =088760000h+280DDERR_NOROTATIONHW              =088760000h+290DDERR_NOSTRETCHHW               =088760000h+310DDERR_NOT4BITCOLOR              =088760000h+316DDERR_NOT4BITCOLORINDEX         =088760000h+317DDERR_NOT8BITCOLOR              =088760000h+320DDERR_NOTEXTUREHW               =088760000h+330DDERR_NOVSYNCHW                 =088760000h+335DDERR_NOZBUFFERHW               =088760000h+340DDERR_NOZOVERLAYHW              =088760000h+350DDERR_OUTOFCAPS                 =088760000h+360DDERR_OUTOFVIDEOMEMORY          =088760000h+380DDERR_OVERLAYCANTCLIP           =088760000h+382DDERR_OVERLAYCOLORKEYONLYONEACTI =088760000h+384DDERR_PALETTEBUSY               =088760000h+387DDERR_COLORKEYNOTSET            =088760000h+400DDERR_SURFACEALREADYATTACHED    =088760000h+410DDERR_SURFACEALREADYDEPENDENT   =088760000h+420DDERR_SURFACEBUSY               =088760000h+430DDERR_CANTLOCKSURFACE           =088760000h+435DDERR_SURFACEISOBSCURED         =088760000h+440DDERR_SURFACELOST               =088760000h+450DDERR_SURFACENOTATTACHED        =088760000h+460DDERR_TOOBIGHEIGHT              =088760000h+470DDERR_TOOBIGSIZE                =088760000h+480DDERR_TOOBIGWIDTH               =088760000h+490DDERR_UNSUPPORTEDFORMAT         =088760000h+510DDERR_UNSUPPORTEDMASK           =088760000h+520DDERR_VERTICALBLANKINPROGRESS   =088760000h+537DDERR_WASSTILLDRAWING           =088760000h+540DDERR_XALIGN                    =088760000h+560DDERR_INVALIDDIRECTDRAWGUID     =088760000h+561DDERR_DIRECTDRAWALREADYCREATED  =088760000h+562DDERR_NODIRECTDRAWHW            =088760000h+563DDERR_PRIMARYSURFACEALREADYEXIST =088760000h+564DDERR_NOEMULATION               =088760000h+565DDERR_REGIONTOOSMALL            =088760000h+566DDERR_CLIPPERISUSINGHWND        =088760000h+567DDERR_NOCLIPPERATTACHED         =088760000h+568DDERR_NOHWND                    =088760000h+569DDERR_HWNDSUBCLASSED            =088760000h+570DDERR_HWNDALREADYSET            =088760000h+571DDERR_NOPALETTEATTACHED         =088760000h+572DDERR_NOPALETTEHW               =088760000h+573DDERR_BLTFASTCANTCLIP           =088760000h+574DDERR_NOBLTHW                   =088760000h+575DDERR_NODDROPSHW                =088760000h+576DDERR_OVERLAYNOTVISIBLE         =088760000h+577DDERR_NOOVERLAYDEST             =088760000h+578DDERR_INVALIDPOSITION           =088760000h+579DDERR_NOTAOVERLAYSURFACE        =088760000h+580DDERR_EXCLUSIVEMODEALREADYSET   =088760000h+581DDERR_NOTFLIPPABLE              =088760000h+582DDERR_CANTDUPLICATE             =088760000h+583DDERR_NOTLOCKED                 =088760000h+584DDERR_CANTCREATEDC              =088760000h+585DDERR_NODC                      =088760000h+586DDERR_WRONGMODE                 =088760000h+587DDERR_IMPLICITLYCREATED         =088760000h+588DDERR_NOTPALETTIZED             =088760000h+589DDERR_UNSUPPORTEDMODE           =088760000h+590DDERR_NOMIPMAPHW                =088760000h+591DDERR_INVALIDSURFACETYPE        =088760000h+592DDERR_NOOPTIMIZEHW              =088760000h+600DDERR_NOTLOADED                 =088760000h+601DDERR_DCALREADYCREATED          =088760000h+620DDERR_NONONLOCALVIDMEM          =088760000h+630DDERR_CANTPAGELOCK              =088760000h+640DDERR_CANTPAGEUNLOCK            =088760000h+660DDERR_NOTPAGELOCKED             =088760000h+680DDERR_MOREDATA                  =088760000h+690DDERR_VIDEONOTACTIVE            =088760000h+695DDERR_DEVICEDOESNTOWNSURFACE    =088760000h+699


 

原创粉丝点击