📄 directdraw.pas
字号:
end;
IDirectDraw4 = interface(IUnknown)
['{9c59509a-39bd-11d1-8c4a-00c04fd930c5}']
(*** IDirectDraw methods ***)
function Compact : HResult; stdcall;
function CreateClipper(dwFlags : LongWord; out lplpDDClipper : IDirectDrawClipper; pUnkOuter : IUnknown) : HResult; stdcall;
function CreatePalette(dwFlags : LongWord; lpColorTable : Pointer; out lplpDDPalette : IDirectDrawPalette; pUnkOuter : IUnknown) : HResult; stdcall;
function CreateSurface(const lpDDSurfaceDesc : TDDSurfaceDesc2; out lplpDDSurface : IDirectDrawSurface4; pUnkOuter : IUnknown) : HResult; stdcall;
function DuplicateSurface(lpDDSurface : IDirectDrawSurface4; out lplpDupDDSurface : IDirectDrawSurface4) : HResult; stdcall;
function EnumDisplayModes(dwFlags : LongWord; lpDDSurfaceDesc : PDDSurfaceDesc2; lpContext : Pointer; lpEnumModesCallback : TDDEnumModesCallback2) : HResult; stdcall;
function EnumSurfaces(dwFlags : LongWord; const lpDDSD : TDDSurfaceDesc2; lpContext : Pointer; lpEnumCallback : TDDEnumSurfacesCallback2) : HResult; stdcall;
function FlipToGDISurface : HResult; stdcall;
function GetCaps(lpDDDriverCaps : PDDCaps; lpDDHELCaps : PDDCaps) : HResult; stdcall;
function GetDisplayMode(out lpDDSurfaceDesc : TDDSurfaceDesc2) : HResult; stdcall;
function GetFourCCCodes(var lpNumCodes : LongWord; lpCodes : PDWORD) : HResult; stdcall;
function GetGDISurface(out lplpGDIDDSSurface : IDirectDrawSurface4) : HResult; stdcall;
function GetMonitorFrequency(out lpdwFrequency : LongWord) : HResult; stdcall;
function GetScanLine(out lpdwScanLine : LongWord) : HResult; stdcall;
function GetVerticalBlankStatus(out lpbIsInVB : BOOL) : HResult; stdcall;
function Initialize(lpGUID : PGUID) : HResult; stdcall;
function RestoreDisplayMode : HResult; stdcall;
function SetCooperativeLevel(hWnd : HWND; dwFlags : LongWord) : HResult; stdcall;
(*** Warning! SetDisplayMode differs between DirectDraw 1 and DirectDraw 2 ***)
function SetDisplayMode(dwWidth : LongWord; dwHeight : LongWord; dwBPP : LongWord; dwRefreshRate : LongWord; dwFlags : LongWord) : HResult; stdcall;
function WaitForVerticalBlank(dwFlags : LongWord; hEvent : THandle) : HResult; stdcall;
(*** Added in the v2 interface ***)
function GetAvailableVidMem(const lpDDSCaps : TDDSCaps2; out lpdwTotal, lpdwFree : LongWord) : HResult; stdcall;
(*** Added in the V4 Interface ***)
function GetSurfaceFromDC(hdc : Windows.HDC; out lpDDS4 : IDirectDrawSurface4) : HResult; stdcall;
function RestoreAllSurfaces : HResult; stdcall;
function TestCooperativeLevel : HResult; stdcall;
function GetDeviceIdentifier(out lpdddi : TDDDeviceIdentifier; dwFlags : LongWord) : HResult; stdcall;
end;
IDirectDraw7 = interface(IUnknown)
['{15e65ec0-3b9c-11d2-b92f-00609797ea5b}']
(*** IDirectDraw methods ***)
function Compact : HResult; stdcall;
function CreateClipper(dwFlags : LongWord; out lplpDDClipper : IDirectDrawClipper; pUnkOuter : IUnknown) : HResult; stdcall;
function CreatePalette(dwFlags : LongWord; lpColorTable : Pointer; out lplpDDPalette : IDirectDrawPalette; pUnkOuter : IUnknown) : HResult; stdcall;
function CreateSurface(const lpDDSurfaceDesc : TDDSurfaceDesc2; out lplpDDSurface : IDirectDrawSurface7; pUnkOuter : IUnknown) : HResult; stdcall;
function DuplicateSurface(lpDDSurface : IDirectDrawSurface7; out lplpDupDDSurface : IDirectDrawSurface7) : HResult; stdcall;
function EnumDisplayModes(dwFlags : LongWord; lpDDSurfaceDesc : PDDSurfaceDesc2; lpContext : Pointer; lpEnumModesCallback : TDDEnumModesCallback2) : HResult; stdcall;
function EnumSurfaces(dwFlags : LongWord; const lpDDSD : TDDSurfaceDesc2;lpContext : Pointer; lpEnumCallback : TDDEnumSurfacesCallback7) : HResult; stdcall;
function FlipToGDISurface : HResult; stdcall;
function GetCaps(lpDDDriverCaps : PDDCaps; lpDDHELCaps : PDDCaps) : HResult; stdcall;
function GetDisplayMode(out lpDDSurfaceDesc : TDDSurfaceDesc2) : HResult; stdcall;
function GetFourCCCodes(var lpNumCodes : LongWord; lpCodes : PDWORD) : HResult; stdcall;
function GetGDISurface(out lplpGDIDDSSurface : IDirectDrawSurface7) : HResult; stdcall;
function GetMonitorFrequency(out lpdwFrequency : LongWord) : HResult; stdcall;
function GetScanLine(out lpdwScanLine : LongWord) : HResult; stdcall;
function GetVerticalBlankStatus(out lpbIsInVB : BOOL) : HResult; stdcall;
function Initialize(lpGUID : PGUID) : HResult; stdcall;
function RestoreDisplayMode : HResult; stdcall;
function SetCooperativeLevel(hWnd : HWND; dwFlags : LongWord) : HResult; stdcall;
function SetDisplayMode(dwWidth : LongWord; dwHeight : LongWord; dwBPP : LongWord; dwRefreshRate : LongWord; dwFlags : LongWord) : HResult; stdcall;
function WaitForVerticalBlank(dwFlags : LongWord; hEvent : THandle) : HResult; stdcall;
(*** Added in the v2 interface ***)
function GetAvailableVidMem(const lpDDSCaps : TDDSCaps2; out lpdwTotal, lpdwFree : LongWord) : HResult; stdcall;
(*** Added in the V4 Interface ***)
function GetSurfaceFromDC(hdc : Windows.HDC; out lpDDS : IDirectDrawSurface7) : HResult; stdcall;
function RestoreAllSurfaces : HResult; stdcall;
function TestCooperativeLevel : HResult; stdcall;
function GetDeviceIdentifier(out lpdddi : TDDDeviceIdentifier2; dwFlags : LongWord) : HResult; stdcall;
function StartModeTest(const lpModesToTest; dwNumEntries, dwFlags : LongWord) : HResult; stdcall;
function EvaluateMode(dwFlags : LongWord; out pSecondsUntilTimeout : LongWord) : HResult; stdcall;
end;
(*
* IDirectDrawPalette
*)
IDirectDrawPalette = interface (IUnknown)
['{6C14DB84-A733-11CE-A521-0020AF0BE560}']
(*** IDirectDrawPalette methods ***)
function GetCaps(out lpdwCaps : LongWord) : HResult; stdcall;
function GetEntries(dwFlags : LongWord; dwBase : LongWord; dwNumEntries : LongWord; lpEntries : Pointer) : HResult; stdcall;
function Initialize(lpDD : IDirectDraw; dwFlags : LongWord; lpDDColorTable : Pointer) : HResult; stdcall;
function SetEntries(dwFlags : LongWord; dwStartingEntry : LongWord; dwCount : LongWord; lpEntries : Pointer) : HResult; stdcall;
end;
(*
* IDirectDrawClipper
*)
IDirectDrawClipper = interface (IUnknown)
['{6C14DB85-A733-11CE-A521-0020AF0BE560}']
(*** IDirectDrawClipper methods ***)
function GetClipList(lpRect : PRect; lpClipList : PRgnData; var lpdwSize : LongWord) : HResult; stdcall;
function GetHWnd(out lphWnd : HWND) : HResult; stdcall;
function Initialize (lpDD : IDirectDraw; dwFlags : LongWord) : HResult; stdcall;
function IsClipListChanged(out lpbChanged : BOOL) : HResult; stdcall;
function SetClipList(lpClipList: PRgnData; dwFlags : LongWord) : HResult; stdcall;
function SetHWnd(dwFlags : LongWord; hWnd : HWND) : HResult; stdcall;
end;
(*
* IDirectDrawSurface and related interfaces
*)
IDirectDrawSurface = interface (IUnknown)
['{6C14DB81-A733-11CE-A521-0020AF0BE560}']
(*** IDirectDrawSurface methods ***)
function AddAttachedSurface(lpDDSAttachedSurface : IDirectDrawSurface) : HResult; stdcall;
function AddOverlayDirtyRect(const lpRect : TRect) : HResult; stdcall;
function Blt(lpDestRect : PRect; lpDDSrcSurface : IDirectDrawSurface; lpSrcRect : PRect; dwFlags : LongWord; lpDDBltFx : PDDBltFX) : HResult; stdcall;
function BltBatch(const lpDDBltBatch : TDDBltBatch; dwCount : LongWord; dwFlags : LongWord) : HResult; stdcall;
function BltFast(dwX : LongWord; dwY : LongWord; lpDDSrcSurface : IDirectDrawSurface; lpSrcRect : PRect; dwTrans : LongWord) : HResult; stdcall;
function DeleteAttachedSurface(dwFlags : LongWord; lpDDSAttachedSurface : IDirectDrawSurface) : HResult; stdcall;
function EnumAttachedSurfaces(lpContext : Pointer; lpEnumSurfacesCallback : TDDEnumSurfacesCallback) : HResult; stdcall;
function EnumOverlayZOrders(dwFlags : LongWord; lpContext : Pointer; lpfnCallback : TDDEnumSurfacesCallback) : HResult; stdcall;
function Flip(lpDDSurfaceTargetOverride : IDirectDrawSurface; dwFlags : LongWord) : HResult; stdcall;
function GetAttachedSurface(var lpDDSCaps : TDDSCaps;(*out*)var lplpDDAttachedSurface : IDirectDrawSurface) : HResult; stdcall;
function GetBltStatus(dwFlags : LongWord) : HResult; stdcall;
function GetCaps(out lpDDSCaps : TDDSCaps) : HResult; stdcall;
function GetClipper(out lplpDDClipper : IDirectDrawClipper) : HResult; stdcall;
function GetColorKey(dwFlags : LongWord; out lpDDColorKey : TDDColorKey) : HResult; stdcall;
function GetDC(out lphDC : HDC) : HResult; stdcall;
function GetFlipStatus(dwFlags : LongWord) : HResult; stdcall;
function GetOverlayPosition(out lplX, lplY : LongInt) : HResult; stdcall;
function GetPalette(out lplpDDPalette : IDirectDrawPalette) : HResult; stdcall;
function GetPixelFormat(out lpDDPixelFormat : TDDPixelFormat) : HResult; stdcall;
function GetSurfaceDesc(out lpDDSurfaceDesc : TDDSurfaceDesc) : HResult; stdcall;
function Initialize(lpDD : IDirectDraw; out lpDDSurfaceDesc : TDDSurfaceDesc) : HResult; stdcall;
function IsLost : HResult; stdcall; function Lock(lpDestRect : PRect; out lpDDSurfaceDesc : TDDSurfaceDesc; dwFlags : LongWord; hEvent : THandle) : HResult; stdcall;
function ReleaseDC(hDC : Windows.HDC) : HResult; stdcall;
function _Restore : HResult; stdcall;
function SetClipper(lpDDClipper : IDirectDrawClipper) : HResult; stdcall;
function SetColorKey(dwFlags : LongWord; lpDDColorKey : PDDColorKey) : HResult; stdcall;
function SetOverlayPosition(lX, lY : LongInt) : HResult; stdcall;
function SetPalette(lpDDPalette : IDirectDrawPalette) : HResult; stdcall;
function Unlock(lpSurfaceData : Pointer) : HResult; stdcall;
function UpdateOverlay(lpSrcRect : PRect; lpDDDestSurface : IDirectDrawSurface; lpDestRect : PRect; dwFlags : LongWord; lpDDOverlayFx : PDDOverlayFX) : HResult; stdcall;
function UpdateOverlayDisplay(dwFlags : LongWord) : HResult; stdcall;
function UpdateOverlayZOrder(dwFlags : LongWord; lpDDSReference : IDirectDrawSurface) : HResult; stdcall;
end;
(*
* IDirectDrawSurface2 and related interfaces
*)
IDirectDrawSurface2 = interface (IUnknown)
['{57805885-6eec-11cf-9441-a82303c10e27}']
(*** IDirectDrawSurface methods ***)
function AddAttachedSurface(lpDDSAttachedSurface : IDirectDrawSurface2) : HResult; stdcall;
function AddOverlayDirtyRect(const lpRect : TRect) : HResult; stdcall;
function Blt(lpDestRect : PRect; lpDDSrcSurface : IDirectDrawSurface2; lpSrcRect : PRect; dwFlags : LongWord; lpDDBltFx : PDDBltFX) : HResult; stdcall;
function BltBatch(const lpDDBltBatch : TDDBltBatch; dwCount : LongWord; dwFlags : LongWord) : HResult; stdcall;
function BltFast(dwX : LongWord; dwY : LongWord; lpDDSrcSurface : IDirectDrawSurface2; lpSrcRect : PRect; dwTrans : LongWord) : HResult; stdcall;
function DeleteAttachedSurface(dwFlags : LongWord; lpDDSAttachedSurface : IDirectDrawSurface2) : HResult; stdcall;
function EnumAttachedSurfaces(lpContext : Pointer; lpEnumSurfacesCallback : TDDEnumSurfacesCallback) : HResult; stdcall;
function EnumOverlayZOrders(dwFlags : LongWord; lpContext : Pointer; lpfnCallback : TDDEnumSurfacesCallback) : HResult; stdcall;
function Flip(lpDDSurfaceTargetOverride : IDirectDrawSurface2; dwFlags : LongWord) : HResult; stdcall;
function GetAttachedSurface(var lpDDSCaps : TDDSCaps; out lplpDDAttachedSurface : IDirectDrawSurface2) : HResult; stdcall;
function GetBltStatus(dwFlags : LongWord) : HResult; stdcall;
function GetCaps(out lpDDSCaps : TDDSCaps) : HResult; stdcall;
function GetClipper(out lplpDDClipper : IDirectDrawClipper) : HResult; stdcall;
function GetColorKey(dwFlags : LongWord; out lpDDColorKey : TDDColorKey) : HResult; stdcall;
function GetDC(out lphDC : HDC) : HResult; stdcall;
function GetFlipStatus(dwFlags : LongWord) : HResult; stdcall;
function GetOverlayPosition(out lplX, lplY : LongInt) : HResult; stdcall;
function GetPalette(out lplpDDPalette : IDirectDrawPalette) : HResult; stdcall;
function GetPixelFormat(out lpDDPixelFormat : TDDPixelFormat) : HResult; stdcall;
function GetSurfaceDesc(out lpDDSurfaceDesc : TDDSurfaceDesc) : HResult; stdcall;
function Initialize(lpDD : IDirectDraw; out lpDDSurfaceDesc : TDDSurfaceDesc) : HResult; stdcall;
function IsLost : HResult; stdcall;
function Lock(lpDestRect : PRect; out lpDDSurfaceDesc : TDDSurfaceDesc; dwFlags : LongWord; hEvent : THandle) : HResult; stdcall;
function ReleaseDC(hDC : Windows.HDC) : HResult; stdcall;
function _Restore : HResult; stdcall;
function SetClipper(lpDDClipper : IDirectDrawClipper) : HResult; stdcall;
function SetColorKey(dwFlags : LongWord; lpDDColorKey : PDDColorKey) : HResult; stdcall;
function SetOverlayPosition(lX, lY : LongInt) : HResult; stdcall;
function SetPalette(lpDDPalette : IDirectDrawPalette) : HResult; stdcall;
function Unlock(lpSurfaceData : Pointer) : HResult; stdcall;
function UpdateOverlay(lpSrcRect : PRect; lpDDDestSurface : IDirectDrawSurface2; lpDestRect : PRect; dwFlags : LongWord; lpDDOverlayFx : PDDOverlayFX) : HResult; stdcall;
function UpdateOverlayDisplay(dwFlags : LongWord) : HResult; stdcall;
function UpdateOverlayZOrder(dwFlags : LongWord; lpDDSReference : IDirectDrawSurface2) : HResult; stdcall;
(*** Added in the v2 interface ***)
function GetDDInterface(var lplpDD : IDirectDraw) : HResult; stdcall;
function PageLock(dwFlags : LongWord) : HResult; stdcall;
function PageUnlock(dwFlags : LongWord) : HResult; stdcall;
end;
IDirectDrawSurface3 = interface (IUnknown)
['{DA044E00-69B2-11D0-A1D5-00AA00B8DFBB}']
(*** IDirectDrawSurface methods ***)
function AddAttachedSurface(lpDDSAttachedSurface : IDirectDrawSurface3) : HResult; stdcall;
function AddOverlayDirtyRect(const lpRect : TRect) : HResult; stdcall;
function Blt(lpDestRect : PRect; lpDDSrcSurface : IDirectDrawSurface3; lpSrcRect : PRect; dwFlags : LongWord; lpDDBltFx : PDDBltFX) : HResult; stdcall;
function BltBatch(const lpDDBltBatch : TDDBltBatch; dwCount : LongWord; dwFlags : LongWord) : HResult; stdcall;
function BltFast(dwX : LongWord; dwY : LongWord; lpDDSrcSurface : IDirectDrawSurface3; lpSrcRect : PRect; dwTrans : LongWord) : HResult; stdcall;
function DeleteAttachedSurface(dwFlags : LongWord; lpDDSAttachedSurface : IDirectDrawSurface3) : HResult; stdcall;
function EnumAttachedSurfaces(lpContext : Pointer; lpEnumSurfacesCallback : TDDEnumSurfacesCallback) : HResult; stdcall;
function EnumOverlayZOrders(dwFlags : LongWord; lpContext : Pointer; lpfnCallback : TDDEnumSurfacesCallback) : HResult; stdcall;
function Flip(lpDDSurfaceTargetOverride : IDirectDrawSurface3; dwFlags : LongWord) : HResult; stdcall;
function GetAttachedSurface(var lpDDSCaps : TDDSCaps; out lplpDDAttachedSurface : IDirectDrawSurface3) : HResult; stdcall;
function GetBltStatus(dwFlags : LongWord) : HResult; stdcall;
function GetCaps(out lpDDSCaps : TDDSCaps) : HResult; stdcall;
function GetClipper(out lplpDDClipper : IDirectDrawClipper) : HResult; stdcall;
function GetColorKey(dwFlags : LongWord; out lpDDColorKey : TDDColorKey) : HResult; stdcall;
function GetDC(out lphDC : HDC) : HResult; stdcall;
function GetFlipStatus(dwFlags : LongWord) : HResult; stdcall;
function GetOverlayPosition(out lplX, lplY : LongInt) : HResult; stdcall;
function GetPalette(out lplpDDPalette : IDirectDrawPalette) : HResult; stdcall;
function GetPixelFormat(out lpDDPixelFormat : TDDPixelFormat) : HResult; stdcall;
function GetSurfaceDesc(out lpDDSurfaceDesc : TDDSurfaceDesc) : HResult; stdcall;
function Initialize(lpDD : IDirectDraw; out lpDDSurfaceDesc : TDDSurfaceDesc) : HResult; stdcall;
function IsLost : HResult; stdcall;
function Lock(lpDestRect : PRect; out lpDDSurfaceDesc : TDDSurfaceDesc; dwFlags : LongWord; hEvent : THandle) : HResult; stdcall;
function ReleaseDC(hDC : Windows.HDC) : HResult; stdcall;
function _Restore : HResult; stdcall;
function SetClipper(lpDDClipper : IDirectDrawClipper) : HResult; stdcall;
function SetColorKey(dwFlags : LongWord; lpDDColorKey : PDDColorKey) : HResult; stdcall;
function SetOverlayPosition(lX, lY : LongInt) : HResult; stdcall;
function SetPalette(lpDDPalette : IDirectDrawPalette) : HResult; stdcall;
function Unlock(lpSurfaceData : Pointer) : HResult; stdcall;
function UpdateOverlay(lpSrcRect : PRect; lpDDDestSurface : IDirectDrawSurface3; lpDestRect : PRect; dwFlags : LongWord; lpDDOverlayFx : PDDOverlayFX) : HResult; stdcall;
function UpdateOverlayDisplay(dwFlags : LongWord) : HResult; stdcall;
function UpdateOverlayZOrder(dwFlags : LongWord; lpDDSReference : IDirectDrawSurface3) : HResult; stdcall;
(*** Added in the v2 interface ***)
function GetDDInterface(out lplpDD : IDirectDraw) : HResult; stdcall;
function PageLock(dwFlags : LongWord) : HResult; stdcall;
function PageUnlock(dwFlags : LongWord) : HResult; stdcall;
(*** Added in the V3 interface ***)
function SetSurfaceDesc(const lpddsd : TDDSurfaceDesc; dwFlags : LongWord) : HResult; stdcall;
end;
(*
* IDirectDrawSurface4 and related interfaces
*)
IDirectDrawSurface4 = interface (IUnknown)
['{0B2B8630-AD35-11D0-8EA6-00609797EA5B}']
(*** IDirectDrawSurface methods ***)
function AddAttachedSurface(lpDDSAttachedSurface : IDirectDrawSurface4) : HResult; stdcall;
function AddOverlayDirtyRect(const lpRect : TRect) : HResult; stdcall;
function Blt(lpDestRect : PRect; lpDDSrcSurface : IDirectDrawSurface4; lpSrcRect : PRect; dwFlags : LongWord; lpDDBltFx : PDDBltFX) : HResult; stdcall;
function BltBatch(const lpDDBltBatch : TDDBltBatch; dwCount : Lon
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -