📄 direct3drm.pas
字号:
dvPosition: TD3DVector;
tu, tv: TD3DValue;
dvNormal: TD3DVector;
dcColor: TD3DColor;
end;
(*
* Base class
*)
{$IFDEF D2COM}
IDirect3DRMObject = class (IUnknown)
{$ELSE}
IDirect3DRMObject = interface (IUnknown)
['{eb16cb00-d271-11ce-ac48-0000c03825a1}']
{$ENDIF}
(*
* The methods for IDirect3DRMObject
*)
function Clone (pUnkOuter: IUnknown; riid: TGUID;
var ppvObj: Pointer) : HResult; stdcall;
function AddDestroyCallback (lpCallback: TD3DRMObjectCallback;
lpArg: Pointer) : HResult; stdcall;
function DeleteDestroyCallback (d3drmObjProc: TD3DRMObjectCallback;
lpArg: Pointer) : HResult; stdcall;
function SetAppData (ulData: DWORD) : HResult; stdcall;
function GetAppData: DWORD; stdcall;
function SetName (lpName: PAnsiChar) : HResult; stdcall;
function GetName (var lpdwSize: DWORD; lpName: PAnsiChar) : HResult; stdcall;
function GetClassName (var lpdwSize: DWORD; lpName: PAnsiChar) : HResult; stdcall;
end;
IDirect3DRMVisual = interface (IDirect3DRMObject)
end;
IDirect3DRMDevice = interface (IDirect3DRMObject)
['{e9e19280-6e05-11cf-ac4a-0000c03825a1}']
(*
* IDirect3DRMDevice methods
*)
function Init (width: LongInt; height: LongInt) : HResult; stdcall;
function InitFromD3D (lpD3D: IDirect3D; lpD3DIMDev: IDirect3DDevice) : HResult; stdcall;
function InitFromClipper (lpDDClipper: IDirectDrawClipper; lpGUID: PGUID;
width: Integer; height: Integer) : HResult; stdcall;
function Update: HResult; stdcall;
function AddUpdateCallback (d3drmUpdateProc: TD3DRMUpdateCallback;
arg: Pointer) : HResult; stdcall;
function DeleteUpdateCallback (d3drmUpdateProc: TD3DRMUpdateCallback;
arg: Pointer) : HResult; stdcall;
function SetBufferCount (dwCount: DWORD) : HResult; stdcall;
function GetBufferCount: DWORD; stdcall;
function SetDither (bDither: BOOL) : HResult; stdcall;
function SetShades (ulShades: DWORD) : HResult; stdcall;
function SetQuality (rqQuality: TD3DRMRenderQuality) : HResult; stdcall;
function SetTextureQuality (tqTextureQuality: TD3DRMTextureQuality) : HResult; stdcall;
function GetViewports (out lplpViewports: IDirect3DRMViewportArray) : HResult; stdcall;
function GetDither: BOOL; stdcall;
function GetShades: DWORD; stdcall;
function GetHeight: DWORD; stdcall;
function GetWidth: DWORD; stdcall;
function GetTrianglesDrawn: DWORD; stdcall;
function GetWireframeOptions: DWORD; stdcall;
function GetQuality: TD3DRMRenderQuality; stdcall;
function GetColorModel: TD3DColorModel; stdcall;
function GetTextureQuality: TD3DRMTextureQuality; stdcall;
function GetDirect3DDevice (out lplpD3DDevice: IDirect3DDevice) : HResult; stdcall;
end;
IDirect3DRMDevice2 = interface (IDirect3DRMDevice)
['{4516ec78-8f20-11d0-9b6d-0000c0781bc3}']
(*
* IDirect3DRMDevice2 methods
*)
function InitFromD3D2(lpD3D: IDirect3D2; lpD3DIMDev: IDirect3DDevice2) : HResult; stdcall;
function InitFromSurface(const lpGUID: TGUID; lpDD: IDirectDraw; lpDDSBack: IDirectDrawSurface) : HResult; stdcall;
function SetRenderMode(dwFlags: DWORD ) : HResult; stdcall;
function GetRenderMode : DWORD; stdcall;
function GetDirect3DDevice2(out lplpD3DDevice: IDirect3DDevice2) : HResult; stdcall;
end;
IDirect3DRMDevice3 = interface (IDirect3DRMObject)
['{549f498b-bfeb-11d1-8ed8-00a0c967a482}']
(*
* IDirect3DRMDevice methods
*)
function Init (width: LongInt; height: LongInt) : HResult; stdcall;
function InitFromD3D (lpD3D: IDirect3D2; lpD3DIMDev: IDirect3DDevice2) : HResult; stdcall;
function InitFromClipper (lpDDClipper: IDirectDrawClipper; lpGUID: PGUID;
width: Integer; height: Integer) : HResult; stdcall;
function Update: HResult; stdcall;
function AddUpdateCallback (d3drmUpdateProc: TD3DRMDevice3UpdateCallback;
arg: Pointer) : HResult; stdcall;
function DeleteUpdateCallback (d3drmUpdateProc: TD3DRMDevice3UpdateCallback;
arg: Pointer) : HResult; stdcall;
function SetBufferCount (dwCount: DWORD) : HResult; stdcall;
function GetBufferCount: DWORD; stdcall;
function SetDither (bDither: BOOL) : HResult; stdcall;
function SetShades (ulShades: DWORD) : HResult; stdcall;
function SetQuality (rqQuality: TD3DRMRenderQuality) : HResult; stdcall;
function SetTextureQuality (tqTextureQuality: TD3DRMTextureQuality) : HResult; stdcall;
function GetViewports (out lplpViewports: IDirect3DRMViewportArray) : HResult; stdcall;
function GetDither: BOOL; stdcall;
function GetShades: DWORD; stdcall;
function GetHeight: DWORD; stdcall;
function GetWidth: DWORD; stdcall;
function GetTrianglesDrawn: DWORD; stdcall;
function GetWireframeOptions: DWORD; stdcall;
function GetQuality: TD3DRMRenderQuality; stdcall;
function GetColorModel: TD3DColorModel; stdcall;
function GetTextureQuality: TD3DRMTextureQuality; stdcall;
function GetDirect3DDevice (out lplpD3DDevice: IDirect3DDevice) : HResult; stdcall;
(*
* IDirect3DRMDevice2 methods
*)
function InitFromD3D2(lpD3D: IDirect3D2; lpD3DIMDev: IDirect3DDevice2) : HResult; stdcall;
function InitFromSurface(const lpGUID: TGUID; lpDD: IDirectDraw;
lpDDSBack: IDirectDrawSurface) : HResult; stdcall;
function SetRenderMode(dwFlags: DWORD ) : HResult; stdcall;
function GetRenderMode : DWORD; stdcall;
function GetDirect3DDevice2(out lplpD3DDevice: IDirect3DDevice2) : HResult; stdcall;
(*
* IDirect3DRMDevice3 methods
*)
function FindPreferredTextureFormat (dwBitDepths, dwFlags: DWORD;
out lpDDPF: TDDPixelFormat) : HResult; stdcall;
function RenderStateChange (dwStateNum, dwVal, dwFlags: DWORD) : HResult; stdcall;
function LightStateChange (drsType: TD3DLightStateType; // defined different in header and help
dwVal, dwFlags: DWORD) : HResult; stdcall;
function GetStateChangeOptions (dwStateClass, dwStateNum: DWORD;
var pdwFlags: DWORD) : HResult; stdcall;
function SetStateChangeOptions ( dwStateClass, dwStateNum, dwFlags: DWORD) : HResult; stdcall;
end;
IDirect3DRMViewport = interface (IDirect3DRMObject)
['{eb16cb02-d271-11ce-ac48-0000c03825a1}']
(*
* IDirect3DRMViewport methods
*)
function Init (lpD3DRMDevice: IDirect3DRMDevice;
lpD3DRMFrameCamera: IDirect3DRMFrame; xpos, ypos,
width, height: DWORD) : HResult; stdcall;
function Clear: HResult; stdcall;
function Render (lpD3DRMFrame: IDirect3DRMFrame) : HResult; stdcall;
function SetFront (rvFront: TD3DValue) : HResult; stdcall;
function SetBack (rvBack: TD3DValue) : HResult; stdcall;
function SetField (rvField: TD3DValue) : HResult; stdcall;
function SetUniformScaling (bScale: BOOL) : HResult; stdcall;
function SetCamera (lpCamera: IDirect3DRMFrame) : HResult; stdcall;
function SetProjection (rptType: TD3DRMProjectionType) : HResult; stdcall;
function Transform (out lprvDst: TD3DRMVector4D; const lprvSrc: TD3DVector) : HResult; stdcall;
function InverseTransform (out lprvDst: TD3DVector;
const lprvSrc: TD3DRMVector4D) : HResult; stdcall;
function Configure (lX, lY: LongInt; dwWidth, dwHeight: DWORD) : HResult; stdcall;
function ForceUpdate (dwX1, dwY1, dwX2, dwY2: DWORD) : HResult; stdcall;
function SetPlane (rvLeft, rvRight, rvBottom, rvTop: TD3DValue) : HResult; stdcall;
function GetCamera (out lpCamera: IDirect3DRMFrame) : HResult; stdcall;
function GetDevice (out lpD3DRMDevice: IDirect3DRMDevice) : HResult; stdcall;
function GetPlane (out lpd3dvLeft, lpd3dvRight, lpd3dvBottom, lpd3dvTop:
TD3DValue) : HResult; stdcall;
function Pick (lX, lY: LongInt; var lplpVisuals: IDirect3DRMPickedArray) : HResult; stdcall;
function GetUniformScaling: BOOL; stdcall;
function GetX: LongInt; stdcall;
function GetY: LongInt; stdcall;
function GetWidth: DWORD; stdcall;
function GetHeight: DWORD; stdcall;
function GetField: TD3DValue; stdcall;
function GetBack: TD3DValue; stdcall;
function GetFront: TD3DValue; stdcall;
function GetProjection: TD3DRMProjectionType; stdcall;
function GetDirect3DViewport (out lplpD3DViewport: IDirect3DViewport) : HResult; stdcall;
end;
IDirect3DRMViewport2 = interface (IDirect3DRMObject)
['{4a1b1be6-bfed-11d1-8ed8-00a0c967a482}']
(*
* IDirect3DRMViewport2 methods
*)
function Init (lpD3DRMDevice: IDirect3DRMDevice3;
lpD3DRMFrameCamera: IDirect3DRMFrame3; xpos, ypos,
width, height: DWORD) : HResult; stdcall;
function Clear (dwFlags: DWORD): HResult; stdcall;
function Render (lpD3DRMFrame: IDirect3DRMFrame3) : HResult; stdcall;
function SetFront (rvFront: TD3DValue) : HResult; stdcall;
function SetBack (rvBack: TD3DValue) : HResult; stdcall;
function SetField (rvField: TD3DValue) : HResult; stdcall;
function SetUniformScaling (bScale: BOOL) : HResult; stdcall;
function SetCamera (lpCamera: IDirect3DRMFrame3) : HResult; stdcall;
function SetProjection (rptType: TD3DRMProjectionType) : HResult; stdcall;
function Transform (out lprvDst: TD3DRMVector4D; const lprvSrc: TD3DVector) : HResult; stdcall;
function InverseTransform (out lprvDst: TD3DVector;
const lprvSrc: TD3DRMVector4D) : HResult; stdcall;
function Configure (lX, lY: LongInt; dwWidth, dwHeight: DWORD) : HResult; stdcall;
function ForceUpdate (dwX1, dwY1, dwX2, dwY2: DWORD) : HResult; stdcall;
function SetPlane (rvLeft, rvRight, rvBottom, rvTop: TD3DValue) : HResult; stdcall;
function GetCamera (out lpCamera: IDirect3DRMFrame3) : HResult; stdcall;
function GetDevice (out lpD3DRMDevice: IDirect3DRMDevice3) : HResult; stdcall;
function GetPlane (out lpd3dvLeft, lpd3dvRight, lpd3dvBottom, lpd3dvTop:
TD3DValue) : HResult; stdcall;
function Pick (lX, lY: LongInt; var lplpVisuals: IDirect3DRMPickedArray) : HResult; stdcall;
function GetUniformScaling: BOOL; stdcall;
function GetX: LongInt; stdcall;
function GetY: LongInt; stdcall;
function GetWidth: DWORD; stdcall;
function GetHeight: DWORD; stdcall;
function GetField: TD3DValue; stdcall;
function GetBack: TD3DValue; stdcall;
function GetFront: TD3DValue; stdcall;
function GetProjection: TD3DRMProjectionType; stdcall;
function GetDirect3DViewport (var lplpD3DViewport: IDirect3DViewport) : HResult; stdcall;
function TransformVectors (dwNumVectors: DWORD; out lpDstVectors:
TD3DRMVector4D; const lpSrcVectors: TD3DVector) : HResult; stdcall;
function InverseTransformVectors (dwNumVectors: DWORD; out lpDstVectors:
TD3DRMVector4D; const lpSrcVectors: TD3DVector) : HResult; stdcall;
end;
IDirect3DRMFrame = interface (IDirect3DRMVisual)
['{eb16cb03-d271-11ce-ac48-0000c03825a1}']
(*
* IDirect3DRMFrame methods
*)
function AddChild (lpD3DRMFrameChild: IDirect3DRMFrame) : HResult; stdcall;
function AddLight (lpD3DRMLight: IDirect3DRMLight) : HResult; stdcall;
function AddMoveCallback (d3drmFMC: TD3DRMFrameMoveCallback;
lpArg: Pointer) : HResult; stdcall;
function AddTransform (rctCombine: TD3DRMCombineType;
rmMatrix: TD3DRMMatrix4D) : HResult; stdcall;
function AddTranslation (rctCombine: TD3DRMCombineType; rvX, rvY, rvZ:
TD3DValue) : HResult; stdcall;
function AddScale (rctCombine: TD3DRMCombineType; rvX, rvY, rvZ: TD3DValue) : HResult; stdcall;
function AddRotation (rctCombine: TD3DRMCombineType; rvX, rvY, rvZ,
rvTheta: TD3DValue) : HResult; stdcall;
function AddVisual (lpD3DRMVisual: IDirect3DRMVisual) : HResult; stdcall;
function GetChildren (out lplpChildren: IDirect3DRMFrameArray) : HResult; stdcall;
function GetColor: TD3DColor; stdcall;
function GetLights (out lplpLights: IDirect3DRMLightArray) : HResult; stdcall;
function GetMaterialMode: TD3DRMMaterialMode; stdcall;
function GetParent (out lplpParent: IDirect3DRMFrame) : HResult; stdcall;
function GetPosition (lpRef: IDirect3DRMFrame; out lprvPos: TD3DVector) : HResult; stdcall;
function GetRotation (lpRef: IDirect3DRMFrame; out lprvAxis: TD3DVector;
out lprvTheta: TD3DValue) : HResult; stdcall;
function GetScene (out lplpRoot: IDirect3DRMFrame) : HResult; stdcall;
function GetSortMode: TD3DRMSortMode; stdcall;
function GetTexture (out lplpTexture: IDirect3DRMTexture) : HResult; stdcall;
function GetTransform (out rmMatrix: TD3DRMMatrix4D) : HResult; stdcall;
function GetVelocity (lpRef: IDirect3DRMFrame; var lprvVel: TD3DVector;
fRotVel: BOOL) : HResult; stdcall;
function GetOrientation (lpRef: IDirect3DRMFrame; var lprvDir: TD3DVector;
var lprvUp: TD3DVector) : HResult; stdcall;
function GetVisuals (out lplpVisuals: IDirect3DRMVisualArray) : HResult; stdcall;
function GetTextureTopology (out lpU, lpV: BOOL) : HResult; stdcall;
function InverseTransform (out lprvDst: TD3DVector; const lprvSrc: TD3DVector) : HResult; stdcall;
function Load (lpvObjSource: Pointer; lpvObjID: Pointer;
d3drmLOFlags: TD3DRMLoadOptions; d3drmLoadTextureProc:
TD3DRMLoadTextureCallback; lpArgLTP: Pointer) : HResult; stdcall;
function LookAt (lpTarget, lpRef: IDirect3DRMFrame;
rfcConstraint: TD3DRMFrameConstraint ) : HResult; stdcall;
function Move (delta: TD3DValue) : HResult; stdcall;
function DeleteChild (lpChild: IDirect3DRMFrame) : HResult; stdcall;
function DeleteLight (lpD3DRMLight: IDirect3DRMLight) : HResult; stdcall;
function DeleteMoveCallback (d3drmFMC: TD3DRMFrameMoveCallback;
lpArg: Pointer) : HResult; stdcall;
function DeleteVisual (lpD3DRMVisual: IDirect3DRMVisual) : HResult; stdcall;
function GetSceneBackground: TD3DColor; stdcall;
function GetSceneBackgroundDepth (out lplpDDSurface: IDirectDrawSurface) : HResult; stdcall;
function GetSceneFogColor: TD3DColor; stdcall;
function GetSceneFogEnable: BOOL; stdcall;
function GetSceneFogMode: TD3DRMFogMode; stdcall;
function GetSceneFogParams (out lprvStart, lprvEnd, lprvDensity: TD3DValue) : HResult; stdcall;
function SetSceneBackground (rcColor: TD3DColor) : HResult; stdcall;
function SetSceneBackgroundRGB (rvRed, rvGreen, rvBlue: TD3DValue) : HResult; stdcall;
function SetSceneBackgroundDepth (lpImage: IDirectDrawSurface) : HResult; stdcall;
function SetSceneBackgroundImage (lpTexture: IDirect3DRMTexture) : HResult; stdcall;
function SetSceneFogEnable (bEnable: BOOL) : HResult; stdcall;
function SetSceneFogColor (rcColor: TD3DColor) : HResult; stdcall;
function SetSceneFogMode (rfMode: TD3DRMFogMode) : HResult; stdcall;
function SetSceneFogParams (rvStart, rvEnd, rvDensity: TD3DValue) : HResult; stdcall;
function SetColor (rcColor: TD3DColor) : HResult; stdcall;
function SetColorRGB (rvRed, rvGreen, rvBlue: TD3DValue) : HResult; stdcall;
function GetZbufferMode: TD3DRMZBufferMode; stdcall;
function SetMaterialMode (rmmMode: TD3DRMMaterialMode) : HResult; stdcall;
function SetOrientation (lpRef: IDirect3DRMFrame; rvDx, rvDy, rvDz, rvUx,
rvUy, rvUz: TD3DValue) : HResult; stdcall;
function SetPosition (lpRef: IDirect3DRMFrame; rvX, rvY, rvZ: TD3DValue) : HResult; stdcall;
function SetRotation (lpRef: IDirect3DRMFrame; rvX, rvY, rvZ,
rvTheta: TD3DValue) : HResult; stdcall;
function SetSortMode (d3drmSM: TD3DRMSortMode) : HResult; stdcall;
function SetTexture (lpD3DRMTexture: IDirect3DRMTexture) : HResult; stdcall;
function SetTextureTopology (cylU, cylV: BOOL) : HResult; stdcall;
function SetVelocity (lpRef: IDirect3DRMFrame; rvX, rvY, rvZ: TD3DValue;
fRotVel: BOOL) : HResult; stdcall;
function SetZbufferMode (d3drmZBM: TD3DRMZBufferMode) : HResult; stdcall;
function Transform (out lpd3dVDst: TD3DVector; const lpd3dVSrc: TD3DVector) : HResult; stdcall;
end;
IDirect3DRMFrame2 = interface (IDirect3DRMFrame)
['{c3dfbd60-3988-11d0-9ec2-0000c0291ac3}']
(*
* IDirect3DRMFrame2 methods
*)
function AddMoveCallback2 (d3drmFMC: TD3DRMFrameMoveCallback; lpArg:
Pointer; dwFlags: DWORD) : HResult; stdcall;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -