📄 mmd3dtyp.pas
字号:
D3DSTATUS_DEFAULT =
D3DSTATUS_CLIPINTERSECTIONALL or
D3DSTATUS_ZNOTVISIBLE
;
{-- Options for direct transform calls ---------------------------------------}
D3DTRANSFORM_CLIPPED = $00000001;
D3DTRANSFORM_UNCLIPPED = $00000002;
type
PD3DTRANSFORMDATA = ^TD3DTRANSFORMDATA;
TD3DTRANSFORMDATA = record
dwSize : DWORD;
lpIn : PVOID; // Input vertices
dwInSize : DWORD; // Stride of input vertices
lpOut : PVOID; // Output vertices
dwOutSize : DWORD; // Stride of output vertices
lpHOut : PD3DHVERTEX; // Output homogeneous vertices
dwClip : DWORD; // Clipping hint
dwClipIntersection : DWORD;
dwClipUnion : DWORD; // Union of all clip flags
drExtent : TD3DRECT; // Extent of transformed vertices
end;
{-- Structure defining position and direction properties for lightning -------}
PD3DLIGHTINGELEMENT = ^TD3DLIGHTINGELEMENT;
TD3DLIGHTINGELEMENT = record
dvPosition : TD3DVECTOR; // Lightable point in model space
dvNormal : TD3DVECTOR; // Normalised unit vector
end;
{-- Structure defining material properties for lightning ---------------------}
PD3DMATERIAL = ^TD3DMATERIAL;
TD3DMATERIAL = record
dwSize : DWORD;
case Byte of
0: (diffuse : TD3DCOLORVALUE; // Diffuse color RGBA
ambient : TD3DCOLORVALUE; // Ambient color RGB
specular : TD3DCOLORVALUE; // Specular 'shininess'
emissive : TD3DCOLORVALUE; // Emissive color RGB
power : D3DVALUE; // Sharpness if specular highlight
);
1: (dcvDiffuse : TD3DCOLORVALUE;
dcvAmbient : TD3DCOLORVALUE;
dcvSpecular : TD3DCOLORVALUE;
dcvEmissive : TD3DCOLORVALUE;
dvPower : D3DVALUE;
hTexture : D3DTEXTUREHANDLE; // Handle to texture map
dwRampSize : DWORD;
);
end;
type
D3DLIGHTTYPE = D3DENUM;
const
D3DLIGHT_POINT = 1;
D3DLIGHT_SPOT = 2;
D3DLIGHT_DIRECTIONAL = 3;
D3DLIGHT_PARALLELPOINT = 4;
D3DLIGHT_GLSPOT = 5;
{-- Structure defining a light source and its properties ---------------------}
type
PD3DLIGHT = ^TD3DLIGHT;
TD3DLIGHT = record
dwSize : DWORD;
dltType : D3DLIGHTTYPE; // Type of light source
dcvColor : TD3DCOLORVALUE; // Color of light
dvPosition : TD3DVECTOR; // Position in world space
dvDirection : TD3DVECTOR; // Direction in world space
dvRange : D3DVALUE; // Cutoff range
dvFalloff : D3DVALUE; // Falloff
dvAttenuation0 : D3DVALUE; // Constant attenuation
dvAttenuation1 : D3DVALUE; // Linear attenuation
dvAttenuation2 : D3DVALUE; // Quadratic attenuation
dvTheta : D3DVALUE; // Inner angle of spotlight cone
dvPhi : D3DVALUE; // Outer angle of spotlight cone
end;
PD3DLIGHTDATA = ^TD3DLIGHTDATA;
TD3DLIGHTDATA = record
dwSize : DWORD;
lpIn : PD3DLIGHTINGELEMENT; // Input positions and normals
dwInSize : DWORD; // Stride of input elements
lpOut : PD3DTLVERTEX; // Output colors
dwOutSize : DWORD; // Stride of output colors
end;
D3DCOLORMODEL = D3DENUM;
const
D3DCOLOR_MONO = 1;
D3DCOLOR_RGB = 2;
{-- Options for clearing -----------------------------------------------------}
D3DCLEAR_TARGET = $00000001; // Clear target surface
D3DCLEAR_ZBUFFER = $00000002; // Clear target z buffer
//
// Execute buffers are allocated via Direct3D. These buffers may then
// be filled by the application with instructions to execute along with
// vertex data.
//
//
// Supported op codes for execute instructions.
//
type
D3DOPCODE = D3DENUM;
const
D3DOP_POINT = 1;
D3DOP_LINE = 2;
D3DOP_TRIANGLE = 3;
D3DOP_MATRIXLOAD = 4;
D3DOP_MATRIXMULTIPLY = 5;
D3DOP_STATETRANSFORM = 6;
D3DOP_STATELIGHT = 7;
D3DOP_STATERENDER = 8;
D3DOP_PROCESSVERTICES = 9;
D3DOP_TEXTURELOAD = 10;
D3DOP_EXIT = 11;
D3DOP_BRANCHFORWARD = 12;
D3DOP_SPAN = 13;
D3DOP_SETSTATUS = 14;
type
PD3DINSTRUCTION = ^TD3DINSTRUCTION;
TD3DINSTRUCTION = record
bOpcode : BYTE; // Instruction opcode
bSize : BYTE; // Size of each instruction data unit
wCount : WORD; // Count of instruction data units to follow
end;
{-- Structure for texture loads ----------------------------------------------}
PD3DTEXTURELOAD = ^TD3DTEXTURELOAD;
TD3DTEXTURELOAD = record
hDestTexture : D3DTEXTUREHANDLE;
hSrcTexture : D3DTEXTUREHANDLE;
end;
{-- Structure for picking ----------------------------------------------------}
PD3DPICKRECORD = ^TD3DPICKRECORD;
TD3DPICKRECORD = record
bOpcode : BYTE;
bPad : BYTE;
dwOffset : DWORD;
dvZ : D3DVALUE;
end;
{-- Following defines the rendering states which can be set in execute buf ---}
type
D3DSHADEMODE = D3DENUM;
const
D3DSHADE_FLAT = 1;
D3DSHADE_GOURAUD = 2;
D3DSHADE_PHONG = 3;
type
D3DFILLMODE = D3DENUM;
const
D3DFILL_POINT = 1;
D3DFILL_WIREFRAME = 2;
D3DFILL_SOLID = 3;
type
PD3DLINEPATTERN = ^TD3DLINEPATTERN;
TD3DLINEPATTERN = record
wRepeatFactor : WORD;
wLinePattern : WORD;
end;
D3DTEXTUREFILTER = D3DENUM;
const
D3DFILTER_NEAREST = 1;
D3DFILTER_LINEAR = 2;
D3DFILTER_MIPNEAREST = 3;
D3DFILTER_MIPLINEAR = 4;
D3DFILTER_LINEARMIPNEAREST = 5;
D3DFILTER_LINEARMIPLINEAR = 6;
type
D3DBLEND = D3DENUM;
const
D3DBLEND_ZERO = 1;
D3DBLEND_ONE = 2;
D3DBLEND_SRCCOLOR = 3;
D3DBLEND_INVSRCCOLOR = 4;
D3DBLEND_SRCALPHA = 5;
D3DBLEND_INVSRCALPHA = 6;
D3DBLEND_DESTALPHA = 7;
D3DBLEND_INVDESTALPHA = 8;
D3DBLEND_DESTCOLOR = 9;
D3DBLEND_INVDESTCOLOR = 10;
D3DBLEND_SRCALPHASAT = 11;
D3DBLEND_BOTHSRCALPHA = 12;
D3DBLEND_BOTHINVSRCALPHA = 13;
type
D3DTEXTUREBLEND = D3DENUM;
const
D3DTBLEND_DECAL = 1;
D3DTBLEND_MODULATE = 2;
D3DTBLEND_DECALALPHA = 3;
D3DTBLEND_MODULATEALPHA = 4;
D3DTBLEND_DECALMASK = 5;
D3DTBLEND_MODULATEMASK = 6;
D3DTBLEND_COPY = 7;
type
D3DTEXTUREADDRESS = D3DENUM;
const
D3DTADDRESS_WRAP = 1;
D3DTADDRESS_MIRROR = 2;
D3DTADDRESS_CLAMP = 3;
type
D3DCULL = D3DENUM;
const
D3DCULL_NONE = 1;
D3DCULL_CW = 2;
D3DCULL_CCW = 3;
type
D3DCMPFUNC = D3DENUM;
const
D3DCMP_NEVER = 1;
D3DCMP_LESS = 2;
D3DCMP_EQUAL = 3;
D3DCMP_LESSEQUAL = 4;
D3DCMP_GREATER = 5;
D3DCMP_NOTEQUAL = 6;
D3DCMP_GREATEREQUAL = 7;
D3DCMP_ALWAYS = 8;
type
D3DFOGMODE = D3DENUM;
const
D3DFOG_NONE = 0;
D3DFOG_EXP = 1;
D3DFOG_EXP2 = 2;
D3DFOG_LINEAR = 3;
{-- Amount to add to a state to generate the override for that state ---------}
const
D3DSTATE_OVERRIDE_BIAS = 256;
{-- A state which sets the override flag for the specified state type --------}
function D3DSTATE_OVERRIDE(_type: DWORD): DWORD;
type
D3DTRANSFORMSTATETYPE = D3DENUM;
const
D3DTRANSFORMSTATE_WORLD = 1;
D3DTRANSFORMSTATE_VIEW = 2;
D3DTRANSFORMSTATE_PROJECTION = 3;
type
D3DLIGHTSTATETYPE = D3DENUM;
const
D3DLIGHTSTATE_MATERIAL = 1;
D3DLIGHTSTATE_AMBIENT = 2;
D3DLIGHTSTATE_COLORMODEL = 3;
D3DLIGHTSTATE_FOGMODE = 4;
D3DLIGHTSTATE_FOGSTART = 5;
D3DLIGHTSTATE_FOGEND = 6;
D3DLIGHTSTATE_FOGDENSITY = 7;
type
D3DRENDERSTATETYPE = D3DENUM;
const
D3DRENDERSTATE_TEXTUREHANDLE = 1; // Texture handle
D3DRENDERSTATE_ANTIALIAS = 2; // Antialiasing prim edges
D3DRENDERSTATE_TEXTUREADDRESS = 3; // D3DTEXTUREADDRESS
D3DRENDERSTATE_TEXTUREPERSPECTIVE = 4; // TRUE for perspective correction
D3DRENDERSTATE_WRAPU = 5; // TRUE for wrapping in u
D3DRENDERSTATE_WRAPV = 6; // TRUE for wrapping in v
D3DRENDERSTATE_ZENABLE = 7; // TRUE to enable z test
D3DRENDERSTATE_FILLMODE = 8; // D3DFILL_MODE
D3DRENDERSTATE_SHADEMODE = 9; // D3DSHADEMODE
D3DRENDERSTATE_LINEPATTERN = 10; // D3DLINEPATTERN
D3DRENDERSTATE_MONOENABLE = 11; // TRUE to enable mono rasterization
D3DRENDERSTATE_ROP2 = 12; // ROP2
D3DRENDERSTATE_PLANEMASK = 13; // DWORD physical plane mask
D3DRENDERSTATE_ZWRITEENABLE = 14; // TRUE to enable z writes
D3DRENDERSTATE_ALPHATESTENABLE = 15; // TRUE to enable alpha tests
D3DRENDERSTATE_LASTPIXEL = 16; // TRUE for last-pixel on lines
D3DRENDERSTATE_TEXTUREMAG = 17; // D3DTEXTUREFILTER
D3DRENDERSTATE_TEXTUREMIN = 18; // D3DTEXTUREFILTER
D3DRENDERSTATE_SRCBLEND = 19; // D3DBLEND
D3DRENDERSTATE_DESTBLEND = 20; // D3DBLEND
D3DRENDERSTATE_TEXTUREMAPBLEND = 21; // D3DTEXTUREBLEND
D3DRENDERSTATE_CULLMODE = 22; // D3DCULL
D3DRENDERSTATE_ZFUNC = 23; // D3DCMPFUNC
D3DRENDERSTATE_ALPHAREF = 24; // D3DFIXED
D3DRENDERSTATE_ALPHAFUNC = 25; // D3DCMPFUNC
D3DRENDERSTATE_DITHERENABLE = 26; // TRUE to enable dithering
D3DRENDERSTATE_BLENDENABLE = 27; // TRUE to enable alpha blending
D3DRENDERSTATE_FOGENABLE = 28; // TRUE to enable fog
D3DRENDERSTATE_SPECULARENABLE = 29; // TRUE to enable specular
D3DRENDERSTATE_ZVISIBLE = 30; // TRUE to enable z checking
D3DRENDERSTATE_SUBPIXEL = 31; // TRUE to enable subpixel correction
D3DRENDERSTATE_SUBPIXELX = 32; // TRUE to enable correction in X only
D3DRENDERSTATE_STIPPLEDALPHA = 33; // TRUE to enable stippled alpha
D3DRENDERSTATE_FOGCOLOR = 34; // D3DCOLOR
D3DRENDERSTATE_FOGTABLEMODE = 35; // D3DFOGMODE
D3DRENDERSTATE_FOGTABLESTART = 36; // Fog table start
D3DRENDERSTATE_FOGTABLEEND = 37; // Fog table end
D3DRENDERSTATE_FOGTABLEDENSITY = 38; // Fog table density
D3DRENDERSTATE_STIPPLEENABLE = 39; // TRUE to enable stippling
D3DRENDERSTATE_STIPPLEPATTERN00 = 64; // Stipple pattern 01...
D3DRENDERSTATE_STIPPLEPATTERN01 = 65;
D3DRENDERSTATE_STIPPLEPATTERN02 = 66;
D3DRENDERSTATE_STIPPLEPATTERN03 = 67;
D3DRENDERSTATE_STIPPLEPATTERN04 = 68;
D3DRENDERSTATE_STIPPLEPATTERN05 = 69;
D3DRENDERSTATE_STIPPLEPATTERN06 = 70;
D3DRENDERSTATE_STIPPLEPATTERN07 = 71;
D3DRENDERSTATE_STIPPLEPATTERN08 = 72;
D3DRENDERSTATE_STIPPLEPATTERN09 = 73;
D3DRENDERSTATE_STIPPLEPATTERN10 = 74;
D3DRENDERSTATE_STIPPLEPATTERN11 = 75;
D3DRENDERSTATE_STIPPLEPATTERN12 = 76;
D3DRENDERSTATE_STIPPLEPATTERN13 = 77;
D3DRENDERSTATE_STIPPLEPATTERN14 = 78;
D3DRENDERSTATE_STIPPLEPATTERN15 = 79;
D3DRENDERSTATE_STIPPLEPATTERN16 = 80;
D3DRENDERSTATE_STIPPLEPATTERN17 = 81;
D3DRENDERSTATE_STIPPLEPATTERN18 = 82;
D3DRENDERSTATE_STIPPLEPATTERN19 = 83;
D3DRENDERSTATE_STIPPLEPATTERN20 = 84;
D3DRENDERSTATE_STIPPLEPATTERN21 = 85;
D3DRENDERSTATE_STIPPLEPATTERN22 = 86;
D3DRENDERSTATE_STIPPLEPATTERN23 = 87;
D3DRENDERSTATE_STIPPLEPATTERN24 = 88;
D3DRENDERSTATE_STIPPLEPATTERN25 = 89;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -