📄 direct3drm.pas
字号:
(*
* Get the green component of a color.
*)
D3DRMColorGetGreen : function (d3drmc: TD3DColor) : TD3DValue; stdcall;
(*
* Get the blue component of a color.
*)
D3DRMColorGetBlue : function (d3drmc: TD3DColor) : TD3DValue; stdcall;
(*
* Get the alpha component of a color.
*)
D3DRMColorGetAlpha : function (d3drmc: TD3DColor) : TD3DValue; stdcall;
(*
* Add two vectors. Returns its first argument.
*)
D3DRMVectorAdd : function (var d, s1, s2: TD3DVector) : PD3DVector; stdcall;
(*
* Subtract two vectors. Returns its first argument.
*)
D3DRMVectorSubtract : function (var d, s1, s2: TD3DVector) : PD3DVector;
stdcall;
(*
* Reflect a ray about a given normal. Returns its first argument.
*)
D3DRMVectorReflect : function (var d, ray, norm: TD3DVector) : PD3DVector;
stdcall;
(*
* Calculate the vector cross product. Returns its first argument.
*)
D3DRMVectorCrossProduct : function (var d, s1, s2: TD3DVector) : PD3DVector;
stdcall;
(*
* Return the vector dot product.
*)
D3DRMVectorDotProduct : function (var s1, s2: TD3DVector) : TD3DValue;
stdcall;
(*
* Scale a vector so that its modulus is 1. Returns its argument or
* NULL if there was an error (e.g. a zero vector was passed).
*)
D3DRMVectorNormalize : function (var lpv: TD3DVector) : PD3DVector; stdcall;
(*
* Return the length of a vector (e.g. sqrt(x*x + y*y + z*z)).
*)
D3DRMVectorModulus : function (var v: TD3DVector) : TD3DValue; stdcall;
(*
* Set the rotation part of a matrix to be a rotation of theta radians
* around the given axis.
*)
D3DRMVectorRotate : function (var r, v, axis: TD3DVector; theta: TD3DValue) :
PD3DVector; stdcall;
(*
* Scale a vector uniformly in all three axes
*)
D3DRMVectorScale : function (var d, s: TD3DVector; factor: TD3DValue) :
PD3DVector; stdcall;
(*
* Return a random unit vector
*)
D3DRMVectorRandom : function (var d: TD3DVector) : PD3DVector; stdcall;
(*
* Returns a unit quaternion that represents a rotation of theta radians
* around the given axis.
*)
D3DRMQuaternionFromRotation : function (var quat: TD3DRMQuaternion;
var v: TD3DVector; theta: TD3DValue) : PD3DRMQuaternion; stdcall;
(*
* Calculate the product of two quaternions
*)
D3DRMQuaternionMultiply : function (var q, a, b: TD3DRMQuaternion) :
PD3DRMQuaternion; stdcall;
(*
* Interpolate between two quaternions
*)
D3DRMQuaternionSlerp : function (var q, a, b: TD3DRMQuaternion;
alpha: TD3DValue) : PD3DRMQuaternion; stdcall;
(*
* Calculate the matrix for the rotation that a unit quaternion represents
*)
D3DRMMatrixFromQuaternion : procedure (dmMat: TD3DRMMatrix4D; var lpDqQuat:
TD3DRMQuaternion); stdcall;
(*
* Calculate the quaternion that corresponds to a rotation matrix
*)
D3DRMQuaternionFromMatrix : function (var lpQuat: TD3DRMQuaternion;
Mat: TD3DRMMatrix4D) : PD3DRMQuaternion; stdcall;
(*==========================================================================;
*
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved.
*
* File: d3drmobj.h
* Content: Direct3DRM include file
*
***************************************************************************)
(*
* Direct3DRM Object classes
*)
const
CLSID_CDirect3DRMDevice: TGUID =
(D1:$4fa3568e;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMViewport: TGUID =
(D1:$4fa3568f;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMFrame: TGUID =
(D1:$4fa35690;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMMesh: TGUID =
(D1:$4fa35691;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMMeshBuilder: TGUID =
(D1:$4fa35692;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMFace: TGUID =
(D1:$4fa35693;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMLight: TGUID =
(D1:$4fa35694;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMTexture: TGUID =
(D1:$4fa35695;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMWrap: TGUID =
(D1:$4fa35696;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMMaterial: TGUID =
(D1:$4fa35697;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMAnimation: TGUID =
(D1:$4fa35698;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMAnimationSet: TGUID =
(D1:$4fa35699;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMUserVisual: TGUID =
(D1:$4fa3569a;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMShadow: TGUID =
(D1:$4fa3569b;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1));
CLSID_CDirect3DRMViewportInterpolator: TGUID =
(D1:$0de9eaa1;D2:$3b84;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3));
CLSID_CDirect3DRMFrameInterpolator: TGUID =
(D1:$0de9eaa2;D2:$3b84;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3));
CLSID_CDirect3DRMMeshInterpolator: TGUID =
(D1:$0de9eaa3;D2:$3b84;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3));
CLSID_CDirect3DRMLightInterpolator: TGUID =
(D1:$0de9eaa6;D2:$3b84;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3));
CLSID_CDirect3DRMMaterialInterpolator: TGUID =
(D1:$0de9eaa7;D2:$3b84;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3));
CLSID_CDirect3DRMTextureInterpolator: TGUID =
(D1:$0de9eaa8;D2:$3b84;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3));
CLSID_CDirect3DRMProgressiveMesh: TGUID =
(D1:$4516ec40;D2:$8f20;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3));
CLSID_CDirect3DRMClippedVisual: TGUID =
(D1:$5434e72d;D2:$6d66;D3:$11d1;D4:($bb,$0b,$00,$00,$f8,$75,$86,$5a));
type
IDirect3DRMObject = interface;
IDirect3DRMDevice = interface;
IDirect3DRMDevice2 = interface;
IDirect3DRMDevice3 = interface;
IDirect3DRMViewport = interface;
IDirect3DRMViewport2 = interface;
IDirect3DRMFrame = interface;
IDirect3DRMFrame2 = interface;
IDirect3DRMFrame3 = interface;
IDirect3DRMVisual = interface;
IDirect3DRMMesh = interface;
IDirect3DRMMeshBuilder = interface;
IDirect3DRMMeshBuilder2 = interface;
IDirect3DRMMeshBuilder3 = interface;
IDirect3DRMFace = interface;
IDirect3DRMFace2 = interface;
IDirect3DRMLight = interface;
IDirect3DRMTexture = interface;
IDirect3DRMTexture2 = interface;
IDirect3DRMTexture3 = interface;
IDirect3DRMWrap = interface;
IDirect3DRMMaterial = interface;
IDirect3DRMMaterial2 = interface;
IDirect3DRMAnimation = interface;
IDirect3DRMAnimation2 = interface;
IDirect3DRMAnimationSet = interface;
IDirect3DRMAnimationSet2 = interface;
IDirect3DRMArray = interface;
IDirect3DRMObjectArray = interface;
IDirect3DRMDeviceArray = interface;
IDirect3DRMViewportArray = interface;
IDirect3DRMFrameArray = interface;
IDirect3DRMVisualArray = interface;
IDirect3DRMLightArray = interface;
IDirect3DRMPickedArray = interface;
IDirect3DRMFaceArray = interface;
IDirect3DRMAnimationArray = interface;
IDirect3DRMUserVisual = interface;
IDirect3DRMShadow = interface;
IDirect3DRMShadow2 = interface;
IDirect3DRMInterpolator = interface;
IDirect3DRMProgressiveMesh = interface;
IDirect3DRMPicked2Array = interface;
IDirect3DRMClippedVisual = interface;
(*
* Direct3DRM Object interfaces
*)
IID_IDirect3DRMObject = IDirect3DRMObject;
IID_IDirect3DRMDevice = IDirect3DRMDevice;
IID_IDirect3DRMDevice2 = IDirect3DRMDevice2;
IID_IDirect3DRMDevice3 = IDirect3DRMDevice3;
IID_IDirect3DRMViewport = IDirect3DRMViewport;
IID_IDirect3DRMViewport2 = IDirect3DRMViewport2;
IID_IDirect3DRMFrame = IDirect3DRMFrame;
IID_IDirect3DRMFrame2 = IDirect3DRMFrame2;
IID_IDirect3DRMFrame3 = IDirect3DRMFrame3;
IID_IDirect3DRMVisual = IDirect3DRMVisual;
IID_IDirect3DRMMesh = IDirect3DRMMesh;
IID_IDirect3DRMMeshBuilder = IDirect3DRMMeshBuilder;
IID_IDirect3DRMMeshBuilder2 = IDirect3DRMMeshBuilder2;
IID_IDirect3DRMMeshBuilder3 = IDirect3DRMMeshBuilder3;
IID_IDirect3DRMFace = IDirect3DRMFace;
IID_IDirect3DRMFace2 = IDirect3DRMFace2;
IID_IDirect3DRMLight = IDirect3DRMLight;
IID_IDirect3DRMTexture = IDirect3DRMTexture;
IID_IDirect3DRMTexture2 = IDirect3DRMTexture2;
IID_IDirect3DRMTexture3 = IDirect3DRMTexture3;
IID_IDirect3DRMWrap = IDirect3DRMWrap;
IID_IDirect3DRMMaterial = IDirect3DRMMaterial;
IID_IDirect3DRMMaterial2 = IDirect3DRMMaterial2;
IID_IDirect3DRMAnimation = IDirect3DRMAnimation;
IID_IDirect3DRMAnimation2 = IDirect3DRMAnimation2;
IID_IDirect3DRMAnimationSet = IDirect3DRMAnimationSet;
IID_IDirect3DRMAnimationSet2 = IDirect3DRMAnimationSet2;
IID_IDirect3DRMObjectArray = IDirect3DRMObjectArray;
IID_IDirect3DRMDeviceArray = IDirect3DRMDeviceArray;
IID_IDirect3DRMViewportArray = IDirect3DRMViewportArray;
IID_IDirect3DRMFrameArray = IDirect3DRMFrameArray;
IID_IDirect3DRMVisualArray = IDirect3DRMVisualArray;
IID_IDirect3DRMLightArray = IDirect3DRMLightArray;
IID_IDirect3DRMPickedArray = IDirect3DRMPickedArray;
IID_IDirect3DRMFaceArray = IDirect3DRMFaceArray;
IID_IDirect3DRMAnimationArray = IDirect3DRMAnimationArray;
IID_IDirect3DRMUserVisual = IDirect3DRMUserVisual;
IID_IDirect3DRMShadow = IDirect3DRMShadow;
IID_IDirect3DRMShadow2 = IDirect3DRMShadow2;
IID_IDirect3DRMInterpolator = IDirect3DRMInterpolator;
IID_IDirect3DRMProgressiveMesh = IDirect3DRMProgressiveMesh;
IID_IDirect3DRMPicked2Array = IDirect3DRMPicked2Array;
IID_IDirect3DRMClippedVisual = IDirect3DRMClippedVisual;
PIDirect3DRMFaceArray = ^IDirect3DRMFaceArray;
TD3DRMObjectCallback = procedure (lpD3DRMobj: IDirect3DRMObject;
lpArg: Pointer); cdecl;
TD3DRMFrameMoveCallback = procedure (lpD3DRMFrame: IDirect3DRMFrame;
lpArg: Pointer; delta: TD3DValue); cdecl;
TD3DRMFrame3MoveCallback = procedure (lpD3DRMFrame: IDirect3DRMFrame3;
lpArg: Pointer; delta: TD3DValue); cdecl;
TD3DRMUpdateCallback = procedure (lpobj: IDirect3DRMDevice; lpArg: Pointer;
iRectCount: Integer; const d3dRectUpdate: TD3DRect); cdecl;
TD3DRMDevice3UpdateCallback = procedure (lpobj: IDirect3DRMDevice3;
lpArg: Pointer; iRectCount: Integer; const d3dRectUpdate: TD3DRect);cdecl;
TD3DRMUserVisualCallback = function (lpD3DRMUV: IDirect3DRMUserVisual;
lpArg: Pointer; lpD3DRMUVreason: TD3DRMUserVisualReason;
lpD3DRMDev: IDirect3DRMDevice;
lpD3DRMview: IDirect3DRMViewport) : Integer; cdecl;
TD3DRMLoadTextureCallback = function (tex_name: PAnsiChar; lpArg: Pointer;
out lpD3DRMTex: IDirect3DRMTexture) : HResult; cdecl;
TD3DRMLoadTexture3Callback = function (tex_name: PAnsiChar; lpArg: Pointer;
out lpD3DRMTex: IDirect3DRMTexture3) : HResult; cdecl;
TD3DRMLoadCallback = procedure (lpObject: IDirect3DRMObject;
const ObjectGuid: TGUID; lpArg: Pointer); cdecl;
TD3DRMDownSampleCallback = function (lpDirect3DRMTexture: IDirect3DRMTexture3;
pArg: pointer; pDDSSrc, pDDSDst: IDirectDrawSurface) : HResult; cdecl;
TD3DRMValidationCallback = function (lpDirect3DRMTexture: IDirect3DRMTexture3;
pArg: pointer; dwFlags, DWcRects: DWORD; const pRects: TRect) : HResult; cdecl;
PD3DRMPickDesc = ^TD3DRMPickDesc;
TD3DRMPickDesc = packed record
ulFaceIdx: DWORD;
lGroupIdx: LongInt;
vPosition: TD3DVector;
end;
PD3DRMPickDesc2 = ^TD3DRMPickDesc2;
TD3DRMPickDesc2 = packed record
ulFaceIdx: DWORD;
lGroupIdx: LongInt;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -