📄 direct3d9.pas
字号:
D3DRS_SEPARATEALPHABLENDENABLE = 206, (* TRUE to enable a separate blending function for the alpha channel *)
D3DRS_SRCBLENDALPHA = 207, (* SRC blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE *)
D3DRS_DESTBLENDALPHA = 208, (* DST blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE *)
D3DRS_BLENDOPALPHA = 209 (* Blending operation for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE *)
);
{$EXTERNALSYM _D3DRENDERSTATETYPE}
D3DRENDERSTATETYPE = _D3DRENDERSTATETYPE;
{$EXTERNALSYM D3DRENDERSTATETYPE}
TD3DRenderStateType = _D3DRENDERSTATETYPE;
const
// Maximum number of simultaneous render targets D3D supports
D3D_MAX_SIMULTANEOUS_RENDERTARGETS = 4;
{$EXTERNALSYM D3D_MAX_SIMULTANEOUS_RENDERTARGETS}
type
// Values for material source
_D3DMATERIALCOLORSOURCE = type DWord;
{$EXTERNALSYM _D3DMATERIALCOLORSOURCE}
D3DMATERIALCOLORSOURCE = _D3DMATERIALCOLORSOURCE;
{$EXTERNALSYM D3DMATERIALCOLORSOURCE}
TD3DMaterialSource = _D3DMATERIALCOLORSOURCE;
const
D3DMCS_MATERIAL = TD3DMaterialSource(0); // Color from material is used
{$EXTERNALSYM D3DMCS_MATERIAL}
D3DMCS_COLOR1 = TD3DMaterialSource(1); // Diffuse vertex color is used
{$EXTERNALSYM D3DMCS_COLOR1}
D3DMCS_COLOR2 = TD3DMaterialSource(2); // Specular vertex color is used
{$EXTERNALSYM D3DMCS_COLOR2}
D3DMCS_FORCE_DWORD = TD3DMaterialSource($7fffffff); // force 32-bit size enum
{$EXTERNALSYM D3DMCS_FORCE_DWORD}
// Bias to apply to the texture coordinate set to apply a wrap to.
D3DRENDERSTATE_WRAPBIAS = DWORD(128);
{$EXTERNALSYM D3DRENDERSTATE_WRAPBIAS}
{ Flags to construct the WRAP render states }
D3DWRAP_U = $00000001;
{$EXTERNALSYM D3DWRAP_U}
D3DWRAP_V = $00000002;
{$EXTERNALSYM D3DWRAP_V}
D3DWRAP_W = $00000004;
{$EXTERNALSYM D3DWRAP_W}
{ Flags to construct the WRAP render states for 1D thru 4D texture coordinates }
D3DWRAPCOORD_0 = $00000001; // same as D3DWRAP_U
{$EXTERNALSYM D3DWRAPCOORD_0}
D3DWRAPCOORD_1 = $00000002; // same as D3DWRAP_V
{$EXTERNALSYM D3DWRAPCOORD_1}
D3DWRAPCOORD_2 = $00000004; // same as D3DWRAP_W
{$EXTERNALSYM D3DWRAPCOORD_2}
D3DWRAPCOORD_3 = $00000008;
{$EXTERNALSYM D3DWRAPCOORD_3}
{ Flags to construct D3DRS_COLORWRITEENABLE }
D3DCOLORWRITEENABLE_RED = (1 shl 0);
{$EXTERNALSYM D3DCOLORWRITEENABLE_RED}
D3DCOLORWRITEENABLE_GREEN = (1 shl 1);
{$EXTERNALSYM D3DCOLORWRITEENABLE_GREEN}
D3DCOLORWRITEENABLE_BLUE = (1 shl 2);
{$EXTERNALSYM D3DCOLORWRITEENABLE_BLUE}
D3DCOLORWRITEENABLE_ALPHA = (1 shl 3);
{$EXTERNALSYM D3DCOLORWRITEENABLE_ALPHA}
(*
* State enumerants for per-stage processing of fixed function pixel processing
* Two of these affect fixed function vertex processing as well: TEXTURETRANSFORMFLAGS and TEXCOORDINDEX.
*)
type
_D3DTEXTURESTAGESTATETYPE = (
D3DTSS_COLOROP = 1, { D3DTEXTUREOP - per-stage blending controls for color channels }
D3DTSS_COLORARG1 = 2, { D3DTA_* (texture arg) }
D3DTSS_COLORARG2 = 3, { D3DTA_* (texture arg) }
D3DTSS_ALPHAOP = 4, { D3DTEXTUREOP - per-stage blending controls for alpha channel }
D3DTSS_ALPHAARG1 = 5, { D3DTA_* (texture arg) }
D3DTSS_ALPHAARG2 = 6, { D3DTA_* (texture arg) }
D3DTSS_BUMPENVMAT00 = 7, { float (bump mapping matrix) }
D3DTSS_BUMPENVMAT01 = 8, { float (bump mapping matrix) }
D3DTSS_BUMPENVMAT10 = 9, { float (bump mapping matrix) }
D3DTSS_BUMPENVMAT11 = 10, { float (bump mapping matrix) }
D3DTSS_TEXCOORDINDEX = 11, { identifies which set of texture coordinates index this texture }
D3DTSS_BUMPENVLSCALE = 22, { float scale for bump map luminance }
D3DTSS_BUMPENVLOFFSET = 23, { float offset for bump map luminance }
D3DTSS_TEXTURETRANSFORMFLAGS = 24, { D3DTEXTURETRANSFORMFLAGS controls texture transform }
D3DTSS_COLORARG0 = 26, { D3DTA_* third arg for triadic ops }
D3DTSS_ALPHAARG0 = 27, { D3DTA_* third arg for triadic ops }
D3DTSS_RESULTARG = 28, { D3DTA_* arg for result (CURRENT or TEMP) }
D3DTSS_CONSTANT = 32 { Per-stage constant D3DTA_CONSTANT }
);
{$EXTERNALSYM _D3DTEXTURESTAGESTATETYPE}
D3DTEXTURESTAGESTATETYPE = _D3DTEXTURESTAGESTATETYPE;
{$EXTERNALSYM D3DTEXTURESTAGESTATETYPE}
TD3DTextureStageStateType = _D3DTEXTURESTAGESTATETYPE;
type
(*
* State enumerants for per-sampler texture processing.
*)
_D3DSAMPLERSTATETYPE = (
D3DSAMP_ADDRESSU = 1, { D3DTEXTUREADDRESS for U coordinate }
D3DSAMP_ADDRESSV = 2, { D3DTEXTUREADDRESS for V coordinate }
D3DSAMP_ADDRESSW = 3, { D3DTEXTUREADDRESS for W coordinate }
D3DSAMP_BORDERCOLOR = 4, { D3DCOLOR }
D3DSAMP_MAGFILTER = 5, { D3DTEXTUREFILTER filter to use for magnification }
D3DSAMP_MINFILTER = 6, { D3DTEXTUREFILTER filter to use for minification }
D3DSAMP_MIPFILTER = 7, { D3DTEXTUREFILTER filter to use between mipmaps during minification }
D3DSAMP_MIPMAPLODBIAS = 8, { float Mipmap LOD bias }
D3DSAMP_MAXMIPLEVEL = 9, { DWORD 0..(n-1) LOD index of largest map to use (0 == largest) }
D3DSAMP_MAXANISOTROPY = 10, { DWORD maximum anisotropy }
D3DSAMP_SRGBTEXTURE = 11, { Default = 0 (which means Gamma 1.0,
no correction required.) else correct for
Gamma = 2.2 }
D3DSAMP_ELEMENTINDEX = 12, { When multi-element texture is assigned to sampler, this
indicates which element index to use. Default = 0. }
D3DSAMP_DMAPOFFSET = 13 { Offset in vertices in the pre-sampled displacement map.
Only valid for D3DDMAPSAMPLER sampler }
);
{$EXTERNALSYM _D3DSAMPLERSTATETYPE}
D3DSAMPLERSTATETYPE = _D3DSAMPLERSTATETYPE;
{$EXTERNALSYM D3DSAMPLERSTATETYPE}
TD3DSamplerStateType = _D3DSAMPLERSTATETYPE;
const
{ Special sampler which is used in the tesselator }
D3DDMAPSAMPLER = 256;
{$EXTERNALSYM D3DDMAPSAMPLER}
// Samplers used in vertex shaders
D3DVERTEXTEXTURESAMPLER0 = (D3DDMAPSAMPLER+1);
{$EXTERNALSYM D3DVERTEXTEXTURESAMPLER0}
D3DVERTEXTEXTURESAMPLER1 = (D3DDMAPSAMPLER+2);
{$EXTERNALSYM D3DVERTEXTEXTURESAMPLER1}
D3DVERTEXTEXTURESAMPLER2 = (D3DDMAPSAMPLER+3);
{$EXTERNALSYM D3DVERTEXTEXTURESAMPLER2}
D3DVERTEXTEXTURESAMPLER3 = (D3DDMAPSAMPLER+4);
{$EXTERNALSYM D3DVERTEXTEXTURESAMPLER3}
// Values, used with D3DTSS_TEXCOORDINDEX, to specify that the vertex data(position
// and normal in the camera space) should be taken as texture coordinates
// Low 16 bits are used to specify texture coordinate index, to take the WRAP mode from
//
D3DTSS_TCI_PASSTHRU = $00000000;
{$EXTERNALSYM D3DTSS_TCI_PASSTHRU}
D3DTSS_TCI_CAMERASPACENORMAL = $00010000;
{$EXTERNALSYM D3DTSS_TCI_CAMERASPACENORMAL}
D3DTSS_TCI_CAMERASPACEPOSITION = $00020000;
{$EXTERNALSYM D3DTSS_TCI_CAMERASPACEPOSITION}
D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = $00030000;
{$EXTERNALSYM D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR}
D3DTSS_TCI_SPHEREMAP = $00040000;
{$EXTERNALSYM D3DTSS_TCI_SPHEREMAP}
(*
* Enumerations for COLOROP and ALPHAOP texture blending operations set in
* texture processing stage controls in D3DTSS.
*)
type
_D3DTEXTUREOP = type DWord;
{$EXTERNALSYM _D3DTEXTUREOP}
D3DTEXTUREOP = _D3DTEXTUREOP;
{$EXTERNALSYM D3DTEXTUREOP}
TD3DTextureOp = _D3DTEXTUREOP;
const
// Control
D3DTOP_DISABLE = 1; // disables stage
{$EXTERNALSYM D3DTOP_DISABLE}
D3DTOP_SELECTARG1 = 2; // the default
{$EXTERNALSYM D3DTOP_SELECTARG1}
D3DTOP_SELECTARG2 = 3;
{$EXTERNALSYM D3DTOP_SELECTARG2}
// Modulate
D3DTOP_MODULATE = 4; // multiply args together
{$EXTERNALSYM D3DTOP_MODULATE}
D3DTOP_MODULATE2X = 5; // multiply and 1 bit
{$EXTERNALSYM D3DTOP_MODULATE2X}
D3DTOP_MODULATE4X = 6; // multiply and 2 bits
{$EXTERNALSYM D3DTOP_MODULATE4X}
// Add
D3DTOP_ADD = 7; // add arguments together
{$EXTERNALSYM D3DTOP_ADD}
D3DTOP_ADDSIGNED = 8; // add with -0.5 bias
{$EXTERNALSYM D3DTOP_ADDSIGNED}
D3DTOP_ADDSIGNED2X = 9; // as above but left 1 bit
{$EXTERNALSYM D3DTOP_ADDSIGNED2X}
D3DTOP_SUBTRACT = 10; // Arg1 - Arg2, with no saturation
{$EXTERNALSYM D3DTOP_SUBTRACT}
D3DTOP_ADDSMOOTH = 11; // add 2 args, subtract product
// Arg1 + Arg2 - Arg1*Arg2
// = Arg1 + (1-Arg1)*Arg2
{$EXTERNALSYM D3DTOP_ADDSMOOTH}
// Linear alpha blend: Arg1*(Alpha) + Arg2*(1-Alpha)
D3DTOP_BLENDDIFFUSEALPHA = 12; // iterated alpha
{$EXTERNALSYM D3DTOP_BLENDDIFFUSEALPHA}
D3DTOP_BLENDTEXTUREALPHA = 13; // texture alpha
{$EXTERNALSYM D3DTOP_BLENDTEXTUREALPHA}
D3DTOP_BLENDFACTORALPHA = 14; // alpha from D3DRS_TEXTUREFACTOR
{$EXTERNALSYM D3DTOP_BLENDFACTORALPHA}
// Linear alpha blend with pre-multiplied arg1 input: Arg1 + Arg2*(1-Alpha)
D3DTOP_BLENDTEXTUREALPHAPM = 15; // texture alpha
{$EXTERNALSYM D3DTOP_BLENDTEXTUREALPHAPM}
D3DTOP_BLENDCURRENTALPHA = 16; // by alpha of current color
{$EXTERNALSYM D3DTOP_BLENDCURRENTALPHA}
// Specular mapping
D3DTOP_PREMODULATE = 17; // modulate with next texture before use
{$EXTERNALSYM D3DTOP_PREMODULATE}
D3DTOP_MODULATEALPHA_ADDCOLOR = 18; // Arg1.RGB + Arg1.A*Arg2.RGB
// COLOROP only
{$EXTERNALSYM D3DTOP_MODULATEALPHA_ADDCOLOR}
D3DTOP_MODULATECOLOR_ADDALPHA = 19; // Arg1.RGB*Arg2.RGB + Arg1.A
// COLOROP only
{$EXTERNALSYM D3DTOP_MODULATECOLOR_ADDALPHA}
D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20; // (1-Arg1.A)*Arg2.RGB + Arg1.RGB
// COLOROP only
{$EXTERNALSYM D3DTOP_MODULATEINVALPHA_ADDCOLOR}
D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21; // (1-Arg1.RGB)*Arg2.RGB + Arg1.A
// COLOROP only
{$EXTERNALSYM D3DTOP_MODULATEINVCOLOR_ADDALPHA}
// Bump mapping
D3DTOP_BUMPENVMAP = 22; // per pixel env map perturbation
{$EXTERNALSYM D3DTOP_BUMPENVMAP}
D3DTOP_BUMPENVMAPLUMINANCE = 23; // with luminance channel
{$EXTERNALSYM D3DTOP_BUMPENVMAPLUMINANCE}
// This can do either diffuse or specular bump mapping with correct input.
// Performs the function (Arg1.R*Arg2.R + Arg1.G*Arg2.G + Arg1.B*Arg2.B)
// where each component has been scaled and offset to make it signed.
// The result is replicated into all four (including alpha) channels.
// This is a valid COLOROP only.
D3DTOP_DOTPRODUCT3 = 24;
{$EXTERNALSYM D3DTOP_DOTPRODUCT3}
// Triadic ops
D3DTOP_MULTIPLYADD = 25; // Arg0 + Arg1*Arg2
{$EXTERNALSYM D3DTOP_MULTIPLYADD}
D3DTOP_LERP = 26; // (Arg0)*Arg1 + (1-Arg0)*Arg2
{$EXTERNALSYM D3DTOP_LERP}
(*
* Values for COLORARG0,1,2, ALPHAARG0,1,2, and RESULTARG texture blending
* operations set in texture processing stage controls in D3DRENDERSTATE.
*)
const
D3DTA_SELECTMASK = $0000000f; // mask for arg selector
{$EXTERNALSYM D3DTA_SELECTMASK}
D3DTA_DIFFUSE = $00000000; // select diffuse color (read only)
{$EXTERNALSYM D3DTA_DIFFUSE}
D3DTA_CURRENT = $00000001; // select stage destination register (read/write)
{$EXTERNALSYM D3DTA_CURRENT}
D3DTA_TEXTURE = $00000002; // select texture color (read only)
{$EXTERNALSYM D3DTA_TEXTURE}
D3DTA_TFACTOR = $00000003; // select D3DRS_TEXTUREFACTOR (read only)
{$EXTERNALSYM D3DTA_TFACTOR}
D3DTA_SPECULAR = $00000004; // select specular color (read only)
{$EXTERNALSYM D3DTA_SPECULAR}
D3DTA_TEMP = $00000005; // select temporary register color (read/write)
{$EXTERNALSYM D3DTA_TEMP}
D3DTA_CONSTANT = $00000006; // select texture stage constant
{$EXTERNALSYM D3DTA_CONSTANT}
D3DTA_COMPLEMENT = $00000010; // take 1.0 - x (read modifier)
{$EXTERNALSYM D3DTA_COMPLEMENT}
D3DTA_ALPHAREPLICATE = $00000020; // replicate alpha to color components (read modifier)
{$EXTERNALSYM D3DTA_ALPHAREPLICATE}
type
//
// Values for D3DSAMP_***FILTER texture stage states
//
_D3DTEXTUREFILTERTYPE = type DWord;
{$EXTERNALSYM _D3DTEXTUREFILTERTYPE}
D3DTEXTUREFILTERTYPE = _D3DTEXTUREFILTERTYPE;
{$EXTERNALSYM D3DTEXTUREFILTERTYPE}
TD3DTextureFilterType = _D3DTEXTUREFILTERTYPE;
const
D3DTEXF_NONE = 0; // filtering disabled (valid for mip filter only)
{$EXTERNALSYM D3DTEXF_NONE}
D3DTEXF_POINT = 1; // nearest
{$EXTERNALSYM D3DTEXF_POINT}
D3DTEXF_LINEAR = 2; // linear interpolation
{$EXTERNALSYM D3DTEXF_LINEAR}
D3DTEXF_ANISOTROPIC = 3; // anisotropic
{$EXTERNALSYM D3DTEXF_ANISOTROPIC}
D3DTEXF_PYRAMIDALQUAD = 6; // 4-sample tent
{$EXTERNALSYM D3DTEXF_PYRAMIDALQUAD}
D3DTEXF_GAUSSIANQUAD = 7; // 4-sample gaussian
{$EXTERNALSYM D3DTEXF_GAUSSIANQUAD}
const
{ Bits for Flags in ProcessVertices call }
D3DPV_DONOTCOPYDATA = (1 shl 0);
{$EXTERNALSYM D3DPV_DONOTCOPYDATA}
//-------------------------------------------------------------------
// Flexible vertex format bits
//
D3DFVF_RESERVED0 = $001;
{$EXTERNALSYM D3DFVF_RESERVED0}
D3DFVF_POSITION_MASK = $400E;
{$EXTERNALSYM D3DFVF_POSITION_MASK}
D3DFVF_XYZ = $002;
{$EXTERNALSYM D3DFVF_XYZ}
D3DFVF_XYZRHW = $004;
{$EXTERNALSYM D3DFVF_XYZRHW}
D3DFVF_XYZB1 = $006;
{$EXTERNALSYM D3DFVF_XYZB1}
D3DFVF_XYZB2 = $008;
{$EXTERNALSYM D3DFVF_XYZB2}
D3DFVF_XYZB3 = $00a;
{$EXTERNALSYM D3DFVF_XYZB3}
D3DFVF_XYZB4 = $00c;
{$EXTERNALSYM D3DFVF_XYZB4}
D3DFVF_XYZB5 = $00e;
{$EXTERNALSYM D3DFVF_XYZB5}
D3DFVF_XYZW = $4002;
{$EXTERNALSYM D3DFVF_XYZW}
D3DFVF_NORMAL = $010;
{$EXTERNALSYM D3DFVF_NORMAL}
D3DFVF_PSIZE = $020;
{$EXTERNALSYM D3DFVF_PSIZE}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -