📄 ddrawi.h
字号:
typedef DWORD (FAR PASCAL *LPDDHAL_FLIPTOGDISURFACE)(LPDDHAL_FLIPTOGDISURFACEDATA);
typedef DWORD (FAR PASCAL *LPDDHAL_GETDRIVERINFO)(LPDDHAL_GETDRIVERINFODATA);
typedef struct _DDHAL_DDCALLBACKS
{
DWORD dwSize;
DWORD dwFlags;
LPDDHAL_DESTROYDRIVER DestroyDriver;
LPDDHAL_CREATESURFACE CreateSurface;
LPDDHAL_SETCOLORKEY SetColorKey;
LPDDHAL_SETMODE SetMode;
LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank;
LPDDHAL_CANCREATESURFACE CanCreateSurface;
LPDDHAL_CREATEPALETTE CreatePalette;
LPDDHAL_GETSCANLINE GetScanLine;
// *** New fields for DX2 *** //
LPDDHAL_SETEXCLUSIVEMODE SetExclusiveMode;
LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface;
} DDHAL_DDCALLBACKS;
typedef DDHAL_DDCALLBACKS FAR *LPDDHAL_DDCALLBACKS;
#define DDCALLBACKSSIZE_V1 ( offsetof( DDHAL_DDCALLBACKS, SetExclusiveMode ) )
#define DDCALLBACKSSIZE sizeof( DDHAL_DDCALLBACKS )
#define DDHAL_CB32_DESTROYDRIVER 0x00000001l
#define DDHAL_CB32_CREATESURFACE 0x00000002l
#define DDHAL_CB32_SETCOLORKEY 0x00000004l
#define DDHAL_CB32_SETMODE 0x00000008l
#define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l
#define DDHAL_CB32_CANCREATESURFACE 0x00000020l
#define DDHAL_CB32_CREATEPALETTE 0x00000040l
#define DDHAL_CB32_GETSCANLINE 0x00000080l
#define DDHAL_CB32_SETEXCLUSIVEMODE 0x00000100l
#define DDHAL_CB32_FLIPTOGDISURFACE 0x00000200l
/*
* DIRECTDRAWPALETTE object callbacks
*/
typedef DWORD (FAR PASCAL *LPDDHALPALCB_DESTROYPALETTE)(LPDDHAL_DESTROYPALETTEDATA );
typedef DWORD (FAR PASCAL *LPDDHALPALCB_SETENTRIES)(LPDDHAL_SETENTRIESDATA );
typedef struct _DDHAL_DDPALETTECALLBACKS
{
DWORD dwSize;
DWORD dwFlags;
LPDDHALPALCB_DESTROYPALETTE DestroyPalette;
LPDDHALPALCB_SETENTRIES SetEntries;
} DDHAL_DDPALETTECALLBACKS;
typedef DDHAL_DDPALETTECALLBACKS FAR *LPDDHAL_DDPALETTECALLBACKS;
#define DDPALETTECALLBACKSSIZE sizeof( DDHAL_DDPALETTECALLBACKS )
#define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l
#define DDHAL_PALCB32_SETENTRIES 0x00000002l
/*
* DIRECTDRAWSURFACE object callbacks
*/
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_LOCK)(LPDDHAL_LOCKDATA);
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_UNLOCK)(LPDDHAL_UNLOCKDATA);
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_BLT)(LPDDHAL_BLTDATA);
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_UPDATEOVERLAY)(LPDDHAL_UPDATEOVERLAYDATA);
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_SETOVERLAYPOSITION)(LPDDHAL_SETOVERLAYPOSITIONDATA);
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_SETPALETTE)(LPDDHAL_SETPALETTEDATA);
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_FLIP)(LPDDHAL_FLIPDATA);
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_DESTROYSURFACE)(LPDDHAL_DESTROYSURFACEDATA);
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_SETCLIPLIST)(LPDDHAL_SETCLIPLISTDATA);
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_ADDATTACHEDSURFACE)(LPDDHAL_ADDATTACHEDSURFACEDATA);
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_SETCOLORKEY)(LPDDHAL_SETCOLORKEYDATA);
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_GETBLTSTATUS)(LPDDHAL_GETBLTSTATUSDATA);
typedef DWORD (FAR PASCAL *LPDDHALSURFCB_GETFLIPSTATUS)(LPDDHAL_GETFLIPSTATUSDATA);
typedef struct _DDHAL_DDSURFACECALLBACKS
{
DWORD dwSize;
DWORD dwFlags;
LPDDHALSURFCB_DESTROYSURFACE DestroySurface;
LPDDHALSURFCB_FLIP Flip;
LPDDHALSURFCB_SETCLIPLIST SetClipList;
LPDDHALSURFCB_LOCK Lock;
LPDDHALSURFCB_UNLOCK Unlock;
LPDDHALSURFCB_BLT Blt;
LPDDHALSURFCB_SETCOLORKEY SetColorKey;
LPDDHALSURFCB_ADDATTACHEDSURFACE AddAttachedSurface;
LPDDHALSURFCB_GETBLTSTATUS GetBltStatus;
LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus;
LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay;
LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition;
LPVOID reserved4;
LPDDHALSURFCB_SETPALETTE SetPalette;
} DDHAL_DDSURFACECALLBACKS;
typedef DDHAL_DDSURFACECALLBACKS FAR *LPDDHAL_DDSURFACECALLBACKS;
#define DDSURFACECALLBACKSSIZE sizeof( DDHAL_DDSURFACECALLBACKS )
#define DDHAL_SURFCB32_DESTROYSURFACE 0x00000001l
#define DDHAL_SURFCB32_FLIP 0x00000002l
#define DDHAL_SURFCB32_SETCLIPLIST 0x00000004l
#define DDHAL_SURFCB32_LOCK 0x00000008l
#define DDHAL_SURFCB32_UNLOCK 0x00000010l
#define DDHAL_SURFCB32_BLT 0x00000020l
#define DDHAL_SURFCB32_SETCOLORKEY 0x00000040l
#define DDHAL_SURFCB32_ADDATTACHEDSURFACE 0x00000080l
#define DDHAL_SURFCB32_GETBLTSTATUS 0x00000100l
#define DDHAL_SURFCB32_GETFLIPSTATUS 0x00000200l
#define DDHAL_SURFCB32_UPDATEOVERLAY 0x00000400l
#define DDHAL_SURFCB32_SETOVERLAYPOSITION 0x00000800l
#define DDHAL_SURFCB32_RESERVED4 0x00001000l
#define DDHAL_SURFCB32_SETPALETTE 0x00002000l
// This structure can be queried from the driver from DX5 onward
// using GetDriverInfo with GUID_MiscellaneousCallbacks
typedef DWORD (FAR PASCAL *LPDDHAL_GETAVAILDRIVERMEMORY)(LPDDHAL_GETAVAILDRIVERMEMORYDATA);
typedef DWORD (FAR PASCAL *LPDDHAL_UPDATENONLOCALHEAP)(LPDDHAL_UPDATENONLOCALHEAPDATA);
typedef DWORD (FAR PASCAL *LPDDHAL_GETHEAPALIGNMENT)(LPDDHAL_GETHEAPALIGNMENTDATA);
/*
* This prototype is identical to that of GetBltStatus
*/
typedef struct _DDHAL_DDMISCELLANEOUSCALLBACKS {
DWORD dwSize;
DWORD dwFlags;
LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
LPDDHAL_UPDATENONLOCALHEAP UpdateNonLocalHeap;
LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment;
/*
* The GetSysmemBltStatus callback uses the same prototype as GetBltStatus.
* It is legal to point both pointers to the same driver routine.
*/
LPDDHALSURFCB_GETBLTSTATUS GetSysmemBltStatus;
} DDHAL_DDMISCELLANEOUSCALLBACKS, *LPDDHAL_DDMISCELLANEOUSCALLBACKS;
#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001l
#define DDHAL_MISCCB32_UPDATENONLOCALHEAP 0x00000002l
#define DDHAL_MISCCB32_GETHEAPALIGNMENT 0x00000004l
#define DDHAL_MISCCB32_GETSYSMEMBLTSTATUS 0x00000008l
#define DDMISCELLANEOUSCALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS)
// DDHAL_DDMISCELLANEOUS2CALLBACKS:
// This structure can be queried from the driver from DX7 onward
// using GetDriverInfo with GUID_Miscellaneous2Callbacks
typedef DWORD (FAR PASCAL *LPDDHAL_CREATESURFACEEX)(LPDDHAL_CREATESURFACEEXDATA);
typedef DWORD (FAR PASCAL *LPDDHAL_GETDRIVERSTATE)(LPDDHAL_GETDRIVERSTATEDATA);
typedef DWORD (FAR PASCAL *LPDDHAL_DESTROYDDLOCAL)(LPDDHAL_DESTROYDDLOCALDATA);
typedef struct _DDHAL_DDMISCELLANEOUS2CALLBACKS {
DWORD dwSize;
DWORD dwFlags;
LPVOID Reserved;
LPDDHAL_CREATESURFACEEX CreateSurfaceEx;
LPDDHAL_GETDRIVERSTATE GetDriverState;
LPDDHAL_DESTROYDDLOCAL DestroyDDLocal;
} DDHAL_DDMISCELLANEOUS2CALLBACKS, *LPDDHAL_DDMISCELLANEOUS2CALLBACKS;
#define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002l
#define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004l
#define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008l
#define DDMISCELLANEOUS2CALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUS2CALLBACKS)
/*
* DIRECTDRAWEXEBUF pseudo object callbacks
*
* NOTE: Execute buffers are not a distinct object type, they piggy back off
* the surface data structures and high level API. However, they have their
* own HAL callbacks as they may have different driver semantics from "normal"
* surfaces. They also piggy back off the HAL data structures.
*
* !!! NOTE: Need to resolve whether we export execute buffer copying as a
* blit or some other from of copy instruction.
*/
typedef DWORD (FAR PASCAL *LPDDHALEXEBUFCB_CANCREATEEXEBUF)(LPDDHAL_CANCREATESURFACEDATA );
typedef DWORD (FAR PASCAL *LPDDHALEXEBUFCB_CREATEEXEBUF)(LPDDHAL_CREATESURFACEDATA);
typedef DWORD (FAR PASCAL *LPDDHALEXEBUFCB_DESTROYEXEBUF)(LPDDHAL_DESTROYSURFACEDATA);
typedef DWORD (FAR PASCAL *LPDDHALEXEBUFCB_LOCKEXEBUF)(LPDDHAL_LOCKDATA);
typedef DWORD (FAR PASCAL *LPDDHALEXEBUFCB_UNLOCKEXEBUF)(LPDDHAL_UNLOCKDATA);
typedef struct _DDHAL_DDEXEBUFCALLBACKS
{
DWORD dwSize;
DWORD dwFlags;
LPDDHALEXEBUFCB_CANCREATEEXEBUF CanCreateExecuteBuffer;
LPDDHALEXEBUFCB_CREATEEXEBUF CreateExecuteBuffer;
LPDDHALEXEBUFCB_DESTROYEXEBUF DestroyExecuteBuffer;
LPDDHALEXEBUFCB_LOCKEXEBUF LockExecuteBuffer;
LPDDHALEXEBUFCB_UNLOCKEXEBUF UnlockExecuteBuffer;
} DDHAL_DDEXEBUFCALLBACKS;
typedef DDHAL_DDEXEBUFCALLBACKS FAR *LPDDHAL_DDEXEBUFCALLBACKS;
#define DDEXEBUFCALLBACKSSIZE sizeof( DDHAL_DDEXEBUFCALLBACKS )
#define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001l
#define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002l
#define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004l
#define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008l
#define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010l
/*
* DIRECTVIDEOPORT object callbacks
*/
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_CANCREATEVIDEOPORT)(LPDDHAL_CANCREATEVPORTDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_CREATEVIDEOPORT)(LPDDHAL_CREATEVPORTDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_FLIP)(LPDDHAL_FLIPVPORTDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_GETBANDWIDTH)(LPDDHAL_GETVPORTBANDWIDTHDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_GETINPUTFORMATS)(LPDDHAL_GETVPORTINPUTFORMATDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_GETOUTPUTFORMATS)(LPDDHAL_GETVPORTOUTPUTFORMATDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_GETFIELD)(LPDDHAL_GETVPORTFIELDDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_GETLINE)(LPDDHAL_GETVPORTLINEDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_GETVPORTCONNECT)(LPDDHAL_GETVPORTCONNECTDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_DESTROYVPORT)(LPDDHAL_DESTROYVPORTDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_GETFLIPSTATUS)(LPDDHAL_GETVPORTFLIPSTATUSDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_UPDATE)(LPDDHAL_UPDATEVPORTDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_WAITFORSYNC)(LPDDHAL_WAITFORVPORTSYNCDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_GETSIGNALSTATUS)(LPDDHAL_GETVPORTSIGNALDATA);
typedef DWORD (FAR PASCAL *LPDDHALVPORTCB_COLORCONTROL)(LPDDHAL_VPORTCOLORDATA);
typedef struct _DDHAL_DDVIDEOPORTCALLBACKS
{
DWORD dwSize;
DWORD dwFlags;
LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
LPDDHALVPORTCB_CREATEVIDEOPORT CreateVideoPort;
LPDDHALVPORTCB_FLIP FlipVideoPort;
LPDDHALVPORTCB_GETBANDWIDTH GetVideoPortBandwidth;
LPDDHALVPORTCB_GETINPUTFORMATS GetVideoPortInputFormats;
LPDDHALVPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats;
LPVOID lpReserved1;
LPDDHALVPORTCB_GETFIELD GetVideoPortField;
LPDDHALVPORTCB_GETLINE GetVideoPortLine;
LPDDHALVPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo;
LPDDHALVPORTCB_DESTROYVPORT DestroyVideoPort;
LPDDHALVPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus;
LPDDHALVPORTCB_UPDATE UpdateVideoPort;
LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync;
LPDDHALVPORTCB_GETSIGNALSTATUS GetVideoSignalStatus;
LPDDHALVPORTCB_COLORCONTROL ColorControl;
} DDHAL_DDVIDEOPORTCALLBACKS;
typedef DDHAL_DDVIDEOPORTCALLBACKS FAR *LPDDHAL_DDVIDEOPORTCALLBACKS;
#define DDVIDEOPORTCALLBACKSSIZE sizeof( DDHAL_DDVIDEOPORTCALLBACKS )
#define DDHAL_VPORT32_CANCREATEVIDEOPORT 0x00000001l
#define DDHAL_VPORT32_CREATEVIDEOPORT 0x00000002l
#define DDHAL_VPORT32_FLIP 0x00000004l
#define DDHAL_VPORT32_GETBANDWIDTH 0x00000008l
#define DDHAL_VPORT32_GETINPUTFORMATS 0x00000010l
#define DDHAL_VPORT32_GETOUTPUTFORMATS 0x00000020l
#define DDHAL_VPORT32_GETFIELD 0x00000080l
#define DDHAL_VPORT32_GETLINE 0x00000100l
#define DDHAL_VPORT32_GETCONNECT 0x00000200l
#define DDHAL_VPORT32_DESTROY 0x00000400l
#define DDHAL_VPORT32_GETFLIPSTATUS 0x00000800l
#define DDHAL_VPORT32_UPDATE 0x00001000l
#define DDHAL_VPORT32_WAITFORSYNC 0x00002000l
#define DDHAL_VPORT32_GETSIGNALSTATUS 0x00004000l
#define DDHAL_VPORT32_COLORCONTROL 0x00008000l
/*
* DIRECTDRAWCOLORCONTROL object callbacks
*/
typedef DWORD (FAR PASCAL *LPDDHALCOLORCB_COLORCONTROL)(LPDDHAL_COLORCONTROLDATA);
typedef struct _DDHAL_DDCOLORCONTROLCALLBACKS
{
DWORD dwSize;
DWORD dwFlags;
LPDDHALCOLORCB_COLORCONTROL ColorControl;
} DDHAL_DDCOLORCONTROLCALLBACKS;
typedef DDHAL_DDCOLORCONTROLCALLBACKS FAR *LPDDHAL_DDCOLORCONTROLCALLBACKS;
#define DDCOLORCONTROLCALLBACKSSIZE sizeof( DDHAL_DDCOLORCONTROLCALLBACKS )
#define DDHAL_COLOR_COLORCONTROL 0x00000001l
/*
* DIRECTDRAWSURFACEKERNEL object callbacks
* This structure can be queried from the driver from DX5 onward
* using GetDriverInfo with GUID_KernelCallbacks
*/
typedef DWORD (FAR PASCAL *LPDDHALKERNELCB_SYNCSURFACE)(LPDDHAL_SYNCSURFACEDATA);
typedef DWORD (FAR PASCAL *LPDDHALKERNELCB_SYNCVIDEOPORT)(LPDDHAL_SYNCVIDEOPORTDATA);
typedef struct _DDHAL_DDKERNELCALLBACKS
{
DWORD dwSize;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -