📄 ddrawint.h
字号:
*/
typedef DWORD (APIENTRY *PDD_MOCOMPCB_GETGUIDS)( PDD_GETMOCOMPGUIDSDATA);
typedef DWORD (APIENTRY *PDD_MOCOMPCB_GETFORMATS)( PDD_GETMOCOMPFORMATSDATA);
typedef DWORD (APIENTRY *PDD_MOCOMPCB_CREATE)( PDD_CREATEMOCOMPDATA);
typedef DWORD (APIENTRY *PDD_MOCOMPCB_GETCOMPBUFFINFO)( PDD_GETMOCOMPCOMPBUFFDATA);
typedef DWORD (APIENTRY *PDD_MOCOMPCB_GETINTERNALINFO)( PDD_GETINTERNALMOCOMPDATA);
typedef DWORD (APIENTRY *PDD_MOCOMPCB_BEGINFRAME)( PDD_BEGINMOCOMPFRAMEDATA);
typedef DWORD (APIENTRY *PDD_MOCOMPCB_ENDFRAME)( PDD_ENDMOCOMPFRAMEDATA);
typedef DWORD (APIENTRY *PDD_MOCOMPCB_RENDER)( PDD_RENDERMOCOMPDATA);
typedef DWORD (APIENTRY *PDD_MOCOMPCB_QUERYSTATUS)( PDD_QUERYMOCOMPSTATUSDATA);
typedef DWORD (APIENTRY *PDD_MOCOMPCB_DESTROY)( PDD_DESTROYMOCOMPDATA);
typedef struct DD_MOTIONCOMPCALLBACKS
{
DWORD dwSize;
DWORD dwFlags;
PDD_MOCOMPCB_GETGUIDS GetMoCompGuids;
PDD_MOCOMPCB_GETFORMATS GetMoCompFormats;
PDD_MOCOMPCB_CREATE CreateMoComp;
PDD_MOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
PDD_MOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
PDD_MOCOMPCB_BEGINFRAME BeginMoCompFrame;
PDD_MOCOMPCB_ENDFRAME EndMoCompFrame;
PDD_MOCOMPCB_RENDER RenderMoComp;
PDD_MOCOMPCB_QUERYSTATUS QueryMoCompStatus;
PDD_MOCOMPCB_DESTROY DestroyMoComp;
} DD_MOTIONCOMPCALLBACKS;
typedef DD_MOTIONCOMPCALLBACKS *PDD_MOTIONCOMPCALLBACKS;
#define DDHAL_MOCOMP32_GETGUIDS 0x00000001
#define DDHAL_MOCOMP32_GETFORMATS 0x00000002
#define DDHAL_MOCOMP32_CREATE 0x00000004
#define DDHAL_MOCOMP32_GETCOMPBUFFINFO 0x00000008
#define DDHAL_MOCOMP32_GETINTERNALINFO 0x00000010
#define DDHAL_MOCOMP32_BEGINFRAME 0x00000020
#define DDHAL_MOCOMP32_ENDFRAME 0x00000040
#define DDHAL_MOCOMP32_RENDER 0x00000080
#define DDHAL_MOCOMP32_QUERYSTATUS 0x00000100
#define DDHAL_MOCOMP32_DESTROY 0x00000200
/*
* CALLBACK RETURN VALUES
*
* these are values returned by the driver from the above callback routines
*/
/*
* indicates that the display driver didn't do anything with the call
*/
#define DDHAL_DRIVER_NOTHANDLED 0x00000000l
/*
* indicates that the display driver handled the call; HRESULT value is valid
*/
#define DDHAL_DRIVER_HANDLED 0x00000001l
/*
* indicates that the display driver couldn't handle the call because it
* ran out of color key hardware resources
*/
#define DDHAL_DRIVER_NOCKEYHW 0x00000002l
/*
* Capabilities structure for non-local video memory
*/
typedef struct _DD_NONLOCALVIDMEMCAPS
{
DWORD dwSize;
DWORD dwNLVBCaps; // driver specific capabilities for non-local->local vidmem blts
DWORD dwNLVBCaps2; // more driver specific capabilities non-local->local vidmem blts
DWORD dwNLVBCKeyCaps; // driver color key capabilities for non-local->local vidmem blts
DWORD dwNLVBFXCaps; // driver FX capabilities for non-local->local blts
DWORD dwNLVBRops[DD_ROP_SPACE]; // ROPS supported for non-local->local blts
} DD_NONLOCALVIDMEMCAPS;
typedef struct _DD_NONLOCALVIDMEMCAPS *PDD_NONLOCALVIDMEMCAPS;
/*
* DDRAW internal version of DIRECTDRAWPALETTE object; it has data after the vtable
*/
typedef struct _DD_PALETTE_GLOBAL
{
ULONG_PTR dwReserved1; // reserved for use by display driver
} DD_PALETTE_GLOBAL;
typedef struct _DD_PALETTE_LOCAL
{
ULONG dwReserved0; // reserved for future expansion
ULONG_PTR dwReserved1; // reserved for use by display driver
} DD_PALETTE_LOCAL;
/*
* DDRAW internal version of DIRECTDRAWCLIPPER object; it has data after the vtable
*/
typedef struct _DD_CLIPPER_GLOBAL
{
ULONG_PTR dwReserved1; // reserved for use by display driver
} DD_CLIPPER_GLOBAL;
typedef struct _DD_CLIPPER_LOCAL
{
ULONG_PTR dwReserved1; // reserved for use by display driver
} DD_CLIPPER_LOCAL;
typedef struct _DD_ATTACHLIST *PDD_ATTACHLIST;
typedef struct _DD_ATTACHLIST
{
PDD_ATTACHLIST lpLink; // link to next attached surface
PDD_SURFACE_LOCAL lpAttached; // attached surface local object
} DD_ATTACHLIST;
/*
* DDRAW surface interface struct
*/
typedef struct _DD_SURFACE_INT
{
PDD_SURFACE_LOCAL lpLcl; // pointer to interface data
} DD_SURFACE_INT;
/*
* DDRAW internal version of DIRECTDRAWSURFACE struct
*
* the GBL structure is global data for all duplicate objects
*/
typedef struct _DD_SURFACE_GLOBAL
{
union
{
DWORD dwBlockSizeY; // block size that display driver requested (return)
LONG lSlicePitch; // slice pitch for volume textures
};
union
{
LPVIDEOMEMORY lpVidMemHeap; // heap vidmem was alloc'ed from
DWORD dwBlockSizeX; // block size that display driver requested (return)
DWORD dwUserMemSize; // user-mode memory size that display driver requested (return)
};
FLATPTR fpVidMem; // pointer to video memory
union
{
LONG lPitch; // pitch of surface
DWORD dwLinearSize; // linear size of non-rectangular surface
};
LONG yHint; // y-coordinate of surface
LONG xHint; // x-coordinate of surface
DWORD wHeight; // height of surface
DWORD wWidth; // width of surface
ULONG_PTR dwReserved1; // reserved for use by display driver
DDPIXELFORMAT ddpfSurface; // pixel format of surface
FLATPTR fpHeapOffset; // raw offset in source heap
HANDLE hCreatorProcess;// opaque identifier for creating process
} DD_SURFACE_GLOBAL;
/*
* a structure holding additional LCL surface information (to maintain some
* compatibility with Win95).
*/
typedef struct _DD_SURFACE_MORE
{
DWORD dwMipMapCount; // number of mip-map levels
PDD_VIDEOPORT_LOCAL lpVideoPort; // video port currently writing data to this surface
DWORD dwOverlayFlags; // current overlay flags
DDSCAPSEX ddsCapsEx; // more surface capabilities
DWORD dwSurfaceHandle; // cookie for use with CreateSurfaceEx DDI
} DD_SURFACE_MORE, *PDD_SURFACE_MORE;
/*
* the LCL structure is local data for each individual surface object
*/
typedef struct _DD_SURFACE_LOCAL
{
PDD_SURFACE_GLOBAL lpGbl; // pointer to surface shared data
DWORD dwFlags; // flags
DDSCAPS ddsCaps; // capabilities of surface
ULONG_PTR dwReserved1; // reserved for use by display driver
union
{
DDCOLORKEY ddckCKSrcOverlay; // color key for source overlay use
DDCOLORKEY ddckCKSrcBlt; // color key for source blt and texture use
};
union
{
DDCOLORKEY ddckCKDestOverlay;// color key for destination overlay use
DDCOLORKEY ddckCKDestBlt; // color key for destination blt
};
PDD_SURFACE_MORE lpSurfMore; // pointer to additional local data
PDD_ATTACHLIST lpAttachList; // link to surfaces we attached to
PDD_ATTACHLIST lpAttachListFrom; // link to surfaces that attached to us
RECT rcOverlaySrc; // Overlay source rectangle relative to surface
} DD_SURFACE_LOCAL;
#define DDRAWISURF_HASCKEYSRCBLT 0x00000800L // surface has CKSrcBlt
#define DDRAWISURF_HASPIXELFORMAT 0x00002000L // surface structure has pixel format data
#define DDRAWISURF_HASOVERLAYDATA 0x00004000L // surface structure has overlay data
#define DDRAWISURF_FRONTBUFFER 0x04000000L // surface was originally a front buffer
#define DDRAWISURF_BACKBUFFER 0x08000000L // surface was originally backbuffer
#define DDRAWISURF_INVALID 0x10000000L // surface has been invalidated by mode set
#define DDRAWISURF_DRIVERMANAGED 0x40000000L // surface is a driver managed texture (D3D)
/*
* More driver capabilities (in addition to those described in DDCORECAPS).
* This struct contains the caps bits added to the DDCAPS structure in DX6.
*/
typedef struct _DD_MORECAPS
{
DWORD dwSize; // size of DDMORECAPS structure
DWORD dwAlphaCaps; // driver-specific alpha caps for overlays & Vmem->Vmem blts
DWORD dwSVBAlphaCaps; // driver-specific alpha capabilities for System->Vmem blts
DWORD dwVSBAlphaCaps; // driver-specific alpha capabilities for Vmem->System blts
DWORD dwSSBAlphaCaps; // driver-specific alpha capabilities for System->System blts
DWORD dwFilterCaps; // driver-specific filter caps for overlays & Vmem->Vmem blts
DWORD dwSVBFilterCaps; // driver-specific filter capabilities for System->Vmem blts
DWORD dwVSBFilterCaps; // driver-specific filter capabilities for Vmem->System blts
DWORD dwSSBFilterCaps; // driver-specific filter capabilities for System->System blts
} DD_MORECAPS;
typedef DD_MORECAPS *PDD_MORECAPS;
/*
* rop stuff
*/
#define ROP_HAS_SOURCE 0x00000001l
#define ROP_HAS_PATTERN 0x00000002l
#define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN
/*
* This structure mirrors the first entries of the DDCAPS but is of a fixed
* size and will not grow as DDCAPS grows. This is the structure your driver
* returns in DDCOREINFO. Additional caps will be requested via a GetDriverInfo
* call.
*/
typedef struct _DDNTCORECAPS
{
DWORD dwSize; // size of the DDDRIVERCAPS structure
DWORD dwCaps; // driver specific capabilities
DWORD dwCaps2; // more driver specific capabilites
DWORD dwCKeyCaps; // color key capabilities of the surface
DWORD dwFXCaps; // driver specific stretching and effects capabilites
DWORD dwFXAlphaCaps; // alpha driver specific capabilities
DWORD dwPalCaps; // palette capabilities
DWORD dwSVCaps; // stereo vision capabilities
DWORD dwAlphaBltConstBitDepths; // DDBD_2,4,8
DWORD dwAlphaBltPixelBitDepths; // DDBD_1,2,4,8
DWORD dwAlphaBltSurfaceBitDepths; // DDBD_1,2,4,8
DWORD dwAlphaOverlayConstBitDepths; // DDBD_2,4,8
DWORD dwAlphaOverlayPixelBitDepths; // DDBD_1,2,4,8
DWORD dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8
DWORD dwZBufferBitDepths; // DDBD_8,16,24,32
DWORD dwVidMemTotal; // total amount of video memory
DWORD dwVidMemFree; // amount of free video memory
DWORD dwMaxVisibleOverlays; // maximum number of visible overlays
DWORD dwCurrVisibleOverlays; // current number of visible overlays
DWORD dwNumFourCCCodes; // number of four cc codes
DWORD dwAlignBoundarySrc; // source rectangle alignment
DWORD dwAlignSizeSrc; // source rectangle byte size
DWORD dwAlignBoundaryDest; // dest rectangle alignment
DWORD dwAlignSizeDest; // dest rectangle byte size
DWORD dwAlignStrideAlign; // stride alignment
DWORD dwRops[DD_ROP_SPACE]; // ROPS supported
DDSCAPS ddsCaps; // DDSCAPS structure has all the general capabilities
DWORD dwMinOverlayStretch; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
DWORD dwMaxOverlayStretch; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
DWORD dwMinLiveVideoStretch; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
DWORD dwMaxLiveVideoStretch; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
DWORD dwMinHwCodecStretch; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
DWORD dwMaxHwCodecStretch; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
DWORD dwReserved1; // reserved
DWORD dwReserved2; // reserved
DWORD dwReserved3; // reserved
DWORD dwSVBCaps; // driver specific capabilities for System->Vmem blts
DWORD dwSVBCKeyCaps; // driver color key capabilities for System->Vmem blts
DWORD dwSVBFXCaps; // driver FX capabilities for System->Vmem blts
DWORD dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts
DWORD dwVSBCaps; // driver specific capabilities for Vmem->System blts
DWORD dwVSBCKeyCaps; // driver color key capabilities for Vmem->System blts
DWORD dwVSBFXCaps; // driver FX capabilities for Vmem->System blts
DWORD dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts
DWORD dwSSBCaps; // driver specific capabilities for System->System blts
DWORD dwSSBCKeyCaps; // driver color key capabilities for System->System blts
DWORD dwSSBFXCaps; // driver FX capabilities for System->System blts
DWORD dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts
DWORD dwMaxVideoPorts; // maximum number of usable video ports
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -