📄 direct3d9.pas.svn-base
字号:
(*) * 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 TD3DTextureStageStateType = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DTSS_COLOROP = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTEXTUREOP - per-stage blending controls for color channels *) D3DTSS_COLORARG1 = 2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTA_* (texture arg) *) D3DTSS_COLORARG2 = 3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTA_* (texture arg) *) D3DTSS_ALPHAOP = 4{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTEXTUREOP - per-stage blending controls for alpha channel *) D3DTSS_ALPHAARG1 = 5{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTA_* (texture arg) *) D3DTSS_ALPHAARG2 = 6{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTA_* (texture arg) *) D3DTSS_BUMPENVMAT00 = 7{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* float (bump mapping matrix) *) D3DTSS_BUMPENVMAT01 = 8{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* float (bump mapping matrix) *) D3DTSS_BUMPENVMAT10 = 9{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* float (bump mapping matrix) *) D3DTSS_BUMPENVMAT11 = 10{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* float (bump mapping matrix) *) D3DTSS_TEXCOORDINDEX = 11{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* identifies which set of texture coordinates index this texture *) D3DTSS_BUMPENVLSCALE = 22{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* float scale for bump map luminance *) D3DTSS_BUMPENVLOFFSET = 23{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* float offset for bump map luminance *) D3DTSS_TEXTURETRANSFORMFLAGS = 24{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTEXTURETRANSFORMFLAGS controls texture transform *) D3DTSS_COLORARG0 = 26{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTA_* third arg for triadic ops *) D3DTSS_ALPHAARG0 = 27{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTA_* third arg for triadic ops *) D3DTSS_RESULTARG = 28{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTA_* arg for result (CURRENT or TEMP) *) D3DTSS_CONSTANT = 32{$IFNDEF NOENUMS}){$ENDIF}; (* Per-stage constant D3DTA_CONSTANT *)(*) * State enumerants for per-sampler texture processing.(*)type TD3DSamplerStateType = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DSAMP_ADDRESSU = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTEXTUREADDRESS for U coordinate *) D3DSAMP_ADDRESSV = 2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTEXTUREADDRESS for V coordinate *) D3DSAMP_ADDRESSW = 3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTEXTUREADDRESS for W coordinate *) D3DSAMP_BORDERCOLOR = 4{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DCOLOR *) D3DSAMP_MAGFILTER = 5{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTEXTUREFILTER filter to use for magnification *) D3DSAMP_MINFILTER = 6{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTEXTUREFILTER filter to use for minification *) D3DSAMP_MIPFILTER = 7{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* D3DTEXTUREFILTER filter to use between mipmaps during minification *) D3DSAMP_MIPMAPLODBIAS = 8{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* float Mipmap LOD bias *) D3DSAMP_MAXMIPLEVEL = 9{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* DWORD 0..(n-1) LOD index of largest map to use (0 == largest) *) D3DSAMP_MAXANISOTROPY = 10{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* DWORD maximum anisotropy *) D3DSAMP_SRGBTEXTURE = 11{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* Default = 0 (which means Gamma 1.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} no correction required.) else correct for Gamma = 2.2 *) D3DSAMP_ELEMENTINDEX = 12{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* When multi-element texture is assigned to sampler{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} this indicates which element index to use. Default = 0. *) D3DSAMP_DMAPOFFSET = 13{$IFNDEF NOENUMS}){$ENDIF}; (* Offset in vertices in the pre-sampled displacement map. Only valid for D3DDMAPSAMPLER sampler *) (* Special sampler which is used in the tesselator *)const D3DDMAPSAMPLER = 256;// Samplers used in vertex shaders D3DVERTEXTEXTURESAMPLER0 = (D3DDMAPSAMPLER + 1); D3DVERTEXTEXTURESAMPLER1 = (D3DDMAPSAMPLER + 2); D3DVERTEXTEXTURESAMPLER2 = (D3DDMAPSAMPLER + 3); D3DVERTEXTEXTURESAMPLER3 = (D3DDMAPSAMPLER + 4);// 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; D3DTSS_TCI_CAMERASPACENORMAL = $00010000; D3DTSS_TCI_CAMERASPACEPOSITION = $00020000; D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = $00030000; D3DTSS_TCI_SPHEREMAP = $00040000;(*) * Enumerations for COLOROP and ALPHAOP texture blending operations set in * texture processing stage controls in D3DTSS.(*)type TD3DTextureOp = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} // Control D3DTOP_DISABLE = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // disables stage D3DTOP_SELECTARG1 = 2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // the default D3DTOP_SELECTARG2 = 3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Modulate D3DTOP_MODULATE = 4{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // multiply args together D3DTOP_MODULATE2X = 5{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // multiply and 1 bit D3DTOP_MODULATE4X = 6{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // multiply and 2 bits // Add D3DTOP_ADD = 7{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // add arguments together D3DTOP_ADDSIGNED = 8{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // add with -0.5 bias D3DTOP_ADDSIGNED2X = 9{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // as above but left 1 bit D3DTOP_SUBTRACT = 10{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Arg1 - Arg2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} with no saturation D3DTOP_ADDSMOOTH = 11{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // add 2 args{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} subtract product // Arg1 + Arg2 - Arg1*Arg2 // = Arg1 + (1-Arg1)*Arg2 // Linear alpha blend: Arg1*(Alpha) + Arg2*(1-Alpha) D3DTOP_BLENDDIFFUSEALPHA = 12{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // iterated alpha D3DTOP_BLENDTEXTUREALPHA = 13{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // texture alpha D3DTOP_BLENDFACTORALPHA = 14{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // alpha from D3DRS_TEXTUREFACTOR // Linear alpha blend with pre-multiplied arg1 input: Arg1 + Arg2*(1-Alpha) D3DTOP_BLENDTEXTUREALPHAPM = 15{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // texture alpha D3DTOP_BLENDCURRENTALPHA = 16{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // by alpha of current color // Specular mapping D3DTOP_PREMODULATE = 17{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // modulate with next texture before use D3DTOP_MODULATEALPHA_ADDCOLOR = 18{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Arg1.RGB + Arg1.A*Arg2.RGB // COLOROP only D3DTOP_MODULATECOLOR_ADDALPHA = 19{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Arg1.RGB*Arg2.RGB + Arg1.A // COLOROP only D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // (1-Arg1.A)*Arg2.RGB + Arg1.RGB // COLOROP only D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // (1-Arg1.RGB)*Arg2.RGB + Arg1.A // COLOROP only // Bump mapping D3DTOP_BUMPENVMAP = 22{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // per pixel env map perturbation D3DTOP_BUMPENVMAPLUMINANCE = 23{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // with luminance channel // 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{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Triadic ops D3DTOP_MULTIPLYADD = 25{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Arg0 + Arg1*Arg2 D3DTOP_LERP = 26{$IFNDEF NOENUMS}){$ENDIF}; // (Arg0)*Arg1 + (1-Arg0)*Arg2const(*) * Values for COLORARG0;1;2; ALPHAARG0;1;2; and RESULTARG texture blending * operations set in texture processing stage controls in D3DRENDERSTATE.(*) D3DTA_SELECTMASK = $0000000f; // mask for arg selector D3DTA_DIFFUSE = $00000000; // select diffuse color (read only) D3DTA_CURRENT = $00000001; // select stage destination register (read/write) D3DTA_TEXTURE = $00000002; // select texture color (read only) D3DTA_TFACTOR = $00000003; // select D3DRS_TEXTUREFACTOR (read only) D3DTA_SPECULAR = $00000004; // select specular color (read only) D3DTA_TEMP = $00000005; // select temporary register color (read/write) D3DTA_CONSTANT = $00000006; // select texture stage constant D3DTA_COMPLEMENT = $00000010; // take 1.0 - x (read modifier) D3DTA_ALPHAREPLICATE = $00000020; // replicate alpha to color components (read modifier)// Values for D3DTSS_***FILTER texture stage statestype TD3DTextureFilterType = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DTEXF_NONE = 0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // filtering disabled (valid for mip filter only) D3DTEXF_POINT = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // nearest D3DTEXF_LINEAR = 2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // linear interpolation D3DTEXF_ANISOTROPIC = 3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // anisotropic D3DTEXF_PYRAMIDALQUAD = 6{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 4-sample tent D3DTEXF_GAUSSIANQUAD = 7{$IFNDEF NOENUMS}){$ENDIF}; // 4-sample gaussianconst(* Bits for Flags in ProcessVertices call *) D3DPV_DONOTCOPYDATA = 1 shl 0;//-------------------------------------------------------------------// Flexible vertex format bits// D3DFVF_RESERVED0 = $001; D3DFVF_POSITION_MASK = $400E; D3DFVF_XYZ = $002; D3DFVF_XYZRHW = $004; D3DFVF_XYZB1 = $006; D3DFVF_XYZB2 = $008; D3DFVF_XYZB3 = $00a; D3DFVF_XYZB4 = $00c; D3DFVF_XYZB5 = $00e; D3DFVF_XYZW = $4002; D3DFVF_NORMAL = $010; D3DFVF_PSIZE = $020; D3DFVF_DIFFUSE = $040; D3DFVF_SPECULAR = $080; D3DFVF_TEXCOUNT_MASK = $f00; D3DFVF_TEXCOUNT_SHIFT = 8; D3DFVF_TEX0 = $000; D3DFVF_TEX1 = $100; D3DFVF_TEX2 = $200; D3DFVF_TEX3 = $300; D3DFVF_TEX4 = $400; D3DFVF_TEX5 = $500; D3DFVF_TEX6 = $600; D3DFVF_TEX7 = $700; D3DFVF_TEX8 = $800; D3DFVF_LASTBETA_UBYTE4 = $1000; D3DFVF_LASTBETA_D3DCOLOR = $8000; D3DFVF_RESERVED2 = $6000; // 2 reserved bits//---------------------------------------------------------------------// Vertex Shaders//// Vertex shader declaration// Vertex element semantics//{$MINENUMSIZE 1}type TD3DDeclUsage = {$IFNDEF NOENUMS}({$ELSE}Byte;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DDECLUSAGE_POSITION = 0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_BLENDWEIGHT = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_BLENDINDICES = 2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_NORMAL = 3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_PSIZE = 4{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_TEXCOORD = 5{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_TANGENT = 6{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_BINORMAL = 7{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_TESSFACTOR = 8{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_POSITIONT = 9{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_COLOR = 10{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_FOG = 11{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_DEPTH = 12{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLUSAGE_SAMPLE = 13{$IFNDEF NOENUMS}){$ENDIF};{$MINENUMSIZE 4}const MAXD3DDECLUSAGE = D3DDECLUSAGE_SAMPLE; MAXD3DDECLUSAGEINDEX = 15; MAXD3DDECLLENGTH = 64; // does not include "end" marker vertex element{$MINENUMSIZE 1}type TD3DDeclMethod = {$IFNDEF NOENUMS}({$ELSE}Byte;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DDECLMETHOD_DEFAULT = 0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLMETHOD_PARTIALU = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLMETHOD_PARTIALV = 2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLMETHOD_CROSSUV = 3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Normal
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -