📄 direct3drm.pas
字号:
D3DRMZBUFFER_ENABLE, (* enable zbuffering *)
D3DRMZBUFFER_DISABLE (* disable zbuffering *)
);
PD3DRMSortMode = ^TD3DRMSortMode;
TD3DRMSortMode = (
D3DRMSORT_FROMPARENT, (* default *)
D3DRMSORT_NONE, (* don't sort child frames *)
D3DRMSORT_FRONTTOBACK, (* sort child frames front-to-back *)
D3DRMSORT_BACKTOFRONT (* sort child frames back-to-front *)
);
TD3DRMMaterialOverride = packed record
dwSize : DWORD; (* Size of this structure *)
dwFlags : DWORD; (* Indicate which fields are valid *)
dcDiffuse : TD3DColorValue; (* RGBA *)
dcAmbient : TD3DColorValue; (* RGB *)
dcEmissive : TD3DColorValue; (* RGB *)
dcSpecular : TD3DColorValue; (* RGB *)
dvPower : TD3DValue;
lpD3DRMTex : IUnknown;
end;
const
D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAONLY = $00000001;
D3DRMMATERIALOVERRIDE_DIFFUSE_RGBONLY = $00000002;
D3DRMMATERIALOVERRIDE_DIFFUSE = $00000003;
D3DRMMATERIALOVERRIDE_AMBIENT = $00000004;
D3DRMMATERIALOVERRIDE_EMISSIVE = $00000008;
D3DRMMATERIALOVERRIDE_SPECULAR = $00000010;
D3DRMMATERIALOVERRIDE_POWER = $00000020;
D3DRMMATERIALOVERRIDE_TEXTURE = $00000040;
D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAMULTIPLY = $00000080;
D3DRMMATERIALOVERRIDE_ALL = $000000FF;
D3DRMFPTF_ALPHA = $00000001;
D3DRMFPTF_NOALPHA = $00000002;
D3DRMFPTF_PALETTIZED = $00000004;
D3DRMFPTF_NOTPALETTIZED = $00000008;
D3DRMSTATECHANGE_UPDATEONLY = $000000001;
D3DRMSTATECHANGE_VOLATILE = $000000002;
D3DRMSTATECHANGE_NONVOLATILE = $000000004;
D3DRMSTATECHANGE_RENDER = $000000020;
D3DRMSTATECHANGE_LIGHT = $000000040;
(*
* Values for flags in RM3::CreateDeviceFromSurface
*)
D3DRMDEVICE_NOZBUFFER = $00000001;
(*
* Values for flags in Object2::SetClientData
*)
D3DRMCLIENTDATA_NONE = $00000001;
D3DRMCLIENTDATA_LOCALFREE = $00000002;
D3DRMCLIENTDATA_IUNKNOWN = $00000004;
(*
* Values for flags in Frame2::AddMoveCallback.
*)
D3DRMCALLBACK_PREORDER = 0;
D3DRMCALLBACK_POSTORDER = 1;
(*
* Values for flags in MeshBuilder2::RayPick.
*)
D3DRMRAYPICK_ONLYBOUNDINGBOXES = 1;
D3DRMRAYPICK_IGNOREFURTHERPRIMITIVES = 2;
D3DRMRAYPICK_INTERPOLATEUV = 4;
D3DRMRAYPICK_INTERPOLATECOLOR = 8;
D3DRMRAYPICK_INTERPOLATENORMAL = $10;
(*
* Values for flags in MeshBuilder3::AddFacesIndexed.
*)
D3DRMADDFACES_VERTICESONLY = 1;
(*
* Values for flags in MeshBuilder2::GenerateNormals.
*)
D3DRMGENERATENORMALS_PRECOMPACT = 1;
D3DRMGENERATENORMALS_USECREASEANGLE = 2;
(*
* Values for MeshBuilder3::GetParentMesh
*)
D3DRMMESHBUILDER_DIRECTPARENT = 1;
D3DRMMESHBUILDER_ROOTMESH = 2;
(*
* Flags for MeshBuilder3::Enable
*)
D3DRMMESHBUILDER_RENDERENABLE = $00000001;
D3DRMMESHBUILDER_PICKENABLE = $00000002;
(*
* Flags for Object2::GetAge when used with MeshBuilders
*)
D3DRMMESHBUILDERAGE_GEOMETRY = $00000001;
D3DRMMESHBUILDERAGE_MATERIALS = $00000002;
D3DRMMESHBUILDERAGE_TEXTURES = $00000004;
(*
* Format flags for MeshBuilder3::AddTriangles.
*)
D3DRMFVF_TYPE = $00000001;
D3DRMFVF_NORMAL = $00000002;
D3DRMFVF_COLOR = $00000004;
D3DRMFVF_TEXTURECOORDS = $00000008;
D3DRMVERTEX_STRIP = $00000001;
D3DRMVERTEX_FAN = $00000002;
D3DRMVERTEX_LIST = $00000004;
(*
* Values for flags in Viewport2::Clear2
*)
D3DRMCLEAR_TARGET = $00000001;
D3DRMCLEAR_ZBUFFER = $00000002;
D3DRMCLEAR_DIRTYRECTS = $00000004;
D3DRMCLEAR_ALL = (D3DRMCLEAR_TARGET or
D3DRMCLEAR_ZBUFFER or
D3DRMCLEAR_DIRTYRECTS);
(*
* Values for flags in Frame3::SetSceneFogMethod
*)
D3DRMFOGMETHOD_VERTEX = $00000001;
D3DRMFOGMETHOD_TABLE = $00000002;
D3DRMFOGMETHOD_ANY = $00000004;
(*
* Values for flags in Frame3::SetTraversalOptions
*)
D3DRMFRAME_RENDERENABLE = $00000001;
D3DRMFRAME_PICKENABLE = $00000002;
type
TD3DRMAnimationOptions = DWORD;
const
D3DRMANIMATION_OPEN = $01;
D3DRMANIMATION_CLOSED = $02;
D3DRMANIMATION_LINEARPOSITION = $04;
D3DRMANIMATION_SPLINEPOSITION = $08;
D3DRMANIMATION_SCALEANDROTATION = $00000010;
D3DRMANIMATION_POSITION = $00000020;
type
TD3DRMInterpolationOptions = DWORD;
const
D3DRMINTERPOLATION_OPEN = $01;
D3DRMINTERPOLATION_CLOSED = $02;
D3DRMINTERPOLATION_NEAREST = $0100;
D3DRMINTERPOLATION_LINEAR = $04;
D3DRMINTERPOLATION_SPLINE = $08;
D3DRMINTERPOLATION_VERTEXCOLOR = $40;
D3DRMINTERPOLATION_SLERPNORMALS = $80;
type
TD3DRMLoadOptions = DWORD;
const
D3DRMLOAD_FROMFILE = $00;
D3DRMLOAD_FROMRESOURCE = $01;
D3DRMLOAD_FROMMEMORY = $02;
D3DRMLOAD_FROMSTREAM = $04;
D3DRMLOAD_FROMURL = $08;
D3DRMLOAD_BYNAME = $10;
D3DRMLOAD_BYPOSITION = $20;
D3DRMLOAD_BYGUID = $40;
D3DRMLOAD_FIRST = $80;
D3DRMLOAD_INSTANCEBYREFERENCE = $100;
D3DRMLOAD_INSTANCEBYCOPYING = $200;
D3DRMLOAD_ASYNCHRONOUS = $400;
type
PD3DRMLoadResource = ^TD3DRMLoadResource;
TD3DRMLoadResource = packed record
hModule: HMODULE;
lpName: PAnsiChar;
lpType: PAnsiChar;
end;
PD3DRMLoadMemory = ^TD3DRMLoadMemory;
TD3DRMLoadMemory = packed record
lpMemory: Pointer;
dwSize: DWORD;
end;
const
D3DRMPMESHSTATUS_VALID = $01;
D3DRMPMESHSTATUS_INTERRUPTED = $02;
D3DRMPMESHSTATUS_BASEMESHCOMPLETE = $04;
D3DRMPMESHSTATUS_COMPLETE = $08;
D3DRMPMESHSTATUS_RENDERABLE = $10;
D3DRMPMESHEVENT_BASEMESH = $01;
D3DRMPMESHEVENT_COMPLETE = $02;
type
PD3DRMPMeshLoadStatus = ^TD3DRMPMeshLoadStatus;
TD3DRMPMeshLoadStatus = packed record
dwSize, // Size of this structure
dwPMeshSize, // Total Size (bytes)
dwBaseMeshSize, // Total Size of the Base Mesh
dwBytesLoaded, // Total bytes loaded
dwVerticesLoaded, // Number of vertices loaded
dwFacesLoaded : DWORD; // Number of faces loaded
dwLoadResult : HResult; // Result of the load operation
dwFlags : DWORD;
end;
PD3DRMUserVisualReason = ^TD3DRMUserVisualReason;
TD3DRMUserVisualReason = (
D3DRMUSERVISUAL_CANSEE,
D3DRMUSERVISUAL_RENDER
);
PD3DRMAnimationKey = ^TD3DRMAnimationKey;
TD3DRMAnimationKey = packed record
dwSize : DWORD;
dwKeyType : DWORD;
dvTime : TD3DValue;
dwID : DWORD;
case integer of
0 : (dqRotateKey : TD3DRMQuaternion);
1 : (dvScaleKey : TD3DVector);
2 : (dvPositionKey : TD3DVector);
3 : (dvK : array [0..3] of TD3DValue);
end;
procedure D3DRMAnimationGetRotateKey
(var rmKey: TD3DRMAnimationKey; var rmQuat: TD3DRMQuaternion);
procedure D3DRMAnimationGetScaleKey
(var rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector);
procedure D3DRMAnimationGetPositionKey
(var rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector);
procedure D3DRMAnimatioSetRotateKey
(var rmKey: TD3DRMAnimationKey; var rmQuat: TD3DRMQuaternion);
procedure D3DRMAnimationSetScaleKey
(var rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector);
procedure D3DRMAnimationSetPositionKey
(var rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector);
const
D3DRMANIMATION_ROTATEKEY = 01;
D3DRMANIMATION_SCALEKEY = 02;
D3DRMANIMATION_POSITIONKEY = 03;
type
TD3DRMMapping = DWORD;
PD3DRMMappingFlag = ^TD3DRMMappingFlag;
TD3DRMMappingFlag = DWORD;
const
D3DRMMAP_WRAPU = 1;
D3DRMMAP_WRAPV = 2;
D3DRMMAP_PERSPCORRECT = 4;
type
PD3DRMVertex = ^TD3DRMVertex;
TD3DRMVertex = packed record
position: TD3DVector;
normal: TD3DVector;
tu, tv: TD3DValue;
color: TD3DColor;
end;
TD3DRMGroupIndex = LongInt; (* group indexes begin a 0 *)
const
D3DRMGROUP_ALLGROUPS = -1;
var
(*
* Create a color from three components in the range 0-1 inclusive.
*)
D3DRMCreateColorRGB : function (red, green, blue: TD3DValue) : TD3DColor;
stdcall;
(*
* Create a color from four components in the range 0-1 inclusive.
*)
D3DRMCreateColorRGBA : function (red, green, blue, alpha: TD3DValue)
: TD3DColor; stdcall;
(*
* Get the red component of a color.
*)
D3DRMColorGetRed : function (d3drmc: TD3DColor) : TD3DValue; stdcall;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -