📄 direct3d9.pas.svn-base
字号:
type TD3DSampler_Texture_Type = TD3DSamplerTextureType;//// Parameter Token Bit Definitions//const D3DSP_REGNUM_MASK = $000007FF;// destination parameter write mask D3DSP_WRITEMASK_0 = $00010000; // Component 0 (X;Red) D3DSP_WRITEMASK_1 = $00020000; // Component 1 (Y;Green) D3DSP_WRITEMASK_2 = $00040000; // Component 2 (Z;Blue) D3DSP_WRITEMASK_3 = $00080000; // Component 3 (W;Alpha) D3DSP_WRITEMASK_ALL = $000F0000; // All Components// destination parameter modifiers D3DSP_DSTMOD_SHIFT = 20; D3DSP_DSTMOD_MASK = $00F00000;// Bit masks for destination parameter modifiers D3DSPDM_NONE = (0 shl D3DSP_DSTMOD_SHIFT); // nop D3DSPDM_SATURATE = (1 shl D3DSP_DSTMOD_SHIFT); // clamp to 0. to 1. range D3DSPDM_PARTIALPRECISION = (2 shl D3DSP_DSTMOD_SHIFT); // Partial precision hint D3DSPDM_MSAMPCENTROID = (4 shl D3DSP_DSTMOD_SHIFT); // Relevant to multisampling only: // When the pixel center is not covered, sample // attribute or compute gradients/LOD // using multisample "centroid" location. // "Centroid" is some location within the covered // region of the pixel.// destination parameter D3DSP_DSTSHIFT_SHIFT = 24; D3DSP_DSTSHIFT_MASK = $0F000000;// destination/source parameter register type D3DSP_REGTYPE_SHIFT = 28; D3DSP_REGTYPE_SHIFT2 = 8; D3DSP_REGTYPE_MASK = $70000000; D3DSP_REGTYPE_MASK2 = $00001800;type TD3DShaderParamRegisterType = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DSPR_TEMP = 00{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Temporary Register File D3DSPR_INPUT = 01{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Input Register File D3DSPR_CONST = 02{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Constant Register File D3DSPR_ADDR = 03{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Address Register (VS) D3DSPR_TEXTURE = 03{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Texture Register File (PS) D3DSPR_RASTOUT = 04{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Rasterizer Register File D3DSPR_ATTROUT = 05{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Attribute Output Register File D3DSPR_TEXCRDOUT = 06{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Texture Coordinate Output Register File D3DSPR_OUTPUT = 06{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Output register file for VS3.0+ D3DSPR_CONSTINT = 07{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Constant Integer Vector Register File D3DSPR_COLOROUT = 08{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Color Output Register File D3DSPR_DEPTHOUT = 09{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Depth Output Register File D3DSPR_SAMPLER = 10{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Sampler State Register File D3DSPR_CONST2 = 11{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Constant Register File 2048 - 4095 D3DSPR_CONST3 = 12{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Constant Register File 4096 - 6143 D3DSPR_CONST4 = 13{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Constant Register File 6144 - 8191 D3DSPR_CONSTBOOL = 14{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Constant Boolean register file D3DSPR_LOOP = 15{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Loop counter register file D3DSPR_TEMPFLOAT16 = 16{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 16-bit float temp register file D3DSPR_MISCTYPE = 17{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Miscellaneous (single) registers. D3DSPR_LABEL = 18{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Label D3DSPR_PREDICATE = 19{$IFNDEF NOENUMS}){$ENDIF}; // Predicate registertype TD3DShader_Param_Register_Type = TD3DShaderParamRegisterType;// The miscellaneous register file (D3DSPR_MISCTYPES)// contains register types for which there is only ever one// register (i.e. the register # is not needed).// Rather than use up additional register types for such// registers, they are defined// as particular offsets into the misc. register file:{$MINENUMSIZE 1}type TD3DShaderMisctypeOffsets = {$IFNDEF NOENUMS}({$ELSE}Byte;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DSMO_POSITION = 0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Input position x,y,z,rhw (PS) D3DSMO_FACE = 1{$IFNDEF NOENUMS}){$ENDIF}; // Floating point primitive area (PS){$MINENUMSIZE 4}type TD3DShader_Misctype_Offsets = TD3DShaderMisctypeOffsets;// Register offsets in the Rasterizer Register Filetype TD3DVSRastOutOffsets = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DSRO_POSITION = 0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSRO_FOG = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSRO_POINT_SIZE = 2{$IFNDEF NOENUMS}){$ENDIF};type TD3DVS_RastOut_Offsets = TD3DVSRastOutOffsets;// Source operand addressing modesconst D3DSHADER_ADDRESSMODE_SHIFT = 13; D3DSHADER_ADDRESSMODE_MASK = 1 shl D3DSHADER_ADDRESSMODE_SHIFT;type TD3DSHADERAddressModeType = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DSHADER_ADDRMODE_ABSOLUTE = 0 shl D3DSHADER_ADDRESSMODE_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSHADER_ADDRMODE_RELATIVE = 1 shl D3DSHADER_ADDRESSMODE_SHIFT{$IFNDEF NOENUMS}){$ENDIF}; // Relative to register A0type TD3DSHADER_AddressMode_Type = TD3DSHADERAddressModeType;const// Source operand swizzle definitions// D3DVS_SWIZZLE_SHIFT = 16; D3DVS_SWIZZLE_MASK = $00FF0000;// The following bits define where to take component X from: D3DVS_X_X = 0 shl D3DVS_SWIZZLE_SHIFT; D3DVS_X_Y = 1 shl D3DVS_SWIZZLE_SHIFT; D3DVS_X_Z = 2 shl D3DVS_SWIZZLE_SHIFT; D3DVS_X_W = 3 shl D3DVS_SWIZZLE_SHIFT;// The following bits define where to take component Y from: D3DVS_Y_X = 0 shl (D3DVS_SWIZZLE_SHIFT + 2); D3DVS_Y_Y = 1 shl (D3DVS_SWIZZLE_SHIFT + 2); D3DVS_Y_Z = 2 shl (D3DVS_SWIZZLE_SHIFT + 2); D3DVS_Y_W = 3 shl (D3DVS_SWIZZLE_SHIFT + 2);// The following bits define where to take component Z from: D3DVS_Z_X = 0 shl (D3DVS_SWIZZLE_SHIFT + 4); D3DVS_Z_Y = 1 shl (D3DVS_SWIZZLE_SHIFT + 4); D3DVS_Z_Z = 2 shl (D3DVS_SWIZZLE_SHIFT + 4); D3DVS_Z_W = 3 shl (D3DVS_SWIZZLE_SHIFT + 4);// The following bits define where to take component W from: D3DVS_W_X = 0 shl (D3DVS_SWIZZLE_SHIFT + 6); D3DVS_W_Y = 1 shl (D3DVS_SWIZZLE_SHIFT + 6); D3DVS_W_Z = 2 shl (D3DVS_SWIZZLE_SHIFT + 6); D3DVS_W_W = 3 shl (D3DVS_SWIZZLE_SHIFT + 6);// Value when there is no swizzle (X is taken from X; Y is taken from Y;// Z is taken from Z; W is taken from W// D3DVS_NOSWIZZLE = D3DVS_X_X or D3DVS_Y_Y or D3DVS_Z_Z or D3DVS_W_W;// source parameter swizzle D3DSP_SWIZZLE_SHIFT = 16; D3DSP_SWIZZLE_MASK = $00FF0000; D3DSP_NOSWIZZLE = (0 shl (D3DSP_SWIZZLE_SHIFT + 0)) or (1 shl (D3DSP_SWIZZLE_SHIFT + 2)) or (2 shl (D3DSP_SWIZZLE_SHIFT + 4)) or (3 shl (D3DSP_SWIZZLE_SHIFT + 6));// pixel-shader swizzle ops D3DSP_REPLICATERED = (0 shl (D3DSP_SWIZZLE_SHIFT + 0)) or (0 shl (D3DSP_SWIZZLE_SHIFT + 2)) or (0 shl (D3DSP_SWIZZLE_SHIFT + 4)) or (0 shl (D3DSP_SWIZZLE_SHIFT + 6)); D3DSP_REPLICATEGREEN = (1 shl (D3DSP_SWIZZLE_SHIFT + 0)) or (1 shl (D3DSP_SWIZZLE_SHIFT + 2)) or (1 shl (D3DSP_SWIZZLE_SHIFT + 4)) or (1 shl (D3DSP_SWIZZLE_SHIFT + 6)); D3DSP_REPLICATEBLUE = (2 shl (D3DSP_SWIZZLE_SHIFT + 0)) or (2 shl (D3DSP_SWIZZLE_SHIFT + 2)) or (2 shl (D3DSP_SWIZZLE_SHIFT + 4)) or (2 shl (D3DSP_SWIZZLE_SHIFT + 6)); D3DSP_REPLICATEALPHA = (3 shl (D3DSP_SWIZZLE_SHIFT + 0)) or (3 shl (D3DSP_SWIZZLE_SHIFT + 2)) or (3 shl (D3DSP_SWIZZLE_SHIFT + 4)) or (3 shl (D3DSP_SWIZZLE_SHIFT + 6));// source parameter modifiers D3DSP_SRCMOD_SHIFT = 24; D3DSP_SRCMOD_MASK = $0F000000;type TD3DShaderParamSRCModType = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DSPSM_NONE = 0 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // nop D3DSPSM_NEG = 1 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // negate D3DSPSM_BIAS = 2 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // bias D3DSPSM_BIASNEG = 3 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // bias and negate D3DSPSM_SIGN = 4 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // sign D3DSPSM_SIGNNEG = 5 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // sign and negate D3DSPSM_COMP = 6 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // complement D3DSPSM_X2 = 7 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // *2 D3DSPSM_X2NEG = 8 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // *2 and negate D3DSPSM_DZ = 9 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // divide through by z component D3DSPSM_DW = 10 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // divide through by w component D3DSPSM_ABS = 11 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // abs() D3DSPSM_ABSNEG = 12 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // -abs() D3DSPSM_NOT = 13 shl D3DSP_SRCMOD_SHIFT{$IFNDEF NOENUMS}){$ENDIF}; // for predicate register: "!p0"type TD3DShader_Param_SRCMod_Type = TD3DShaderParamSRCModType;// pixel shader version token function D3DPS_VERSION(_Major, _Minor : LongWord) : LongWord;// vertex shader version token function D3DVS_VERSION(_Major, _Minor : LongWord) : LongWord;// extract major/minor from version cap function D3DSHADER_VERSION_MAJOR(_Version : LongWord) : LongWord; function D3DSHADER_VERSION_MINOR(_Version : LongWord) : LongWord;// destination/source parameter register typeconst D3DSI_COMMENTSIZE_SHIFT = 16; D3DSI_COMMENTSIZE_MASK = $7FFF0000; function D3DSHADER_COMMENT(_DWordSize : LongWord) : LongWord;// pixel/vertex shader end tokenconst D3DPS_END = $0000FFFF; D3DVS_END = $0000FFFF;//---------------------------------------------------------------------// High order surfaces//type TD3DBasisType = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DBASIS_BEZIER = 0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DBASIS_BSPLINE = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DBASIS_INTERPOLATE = 2{$IFNDEF NOENUMS}){$ENDIF};type TD3DDegreeType = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DDEGREE_LINEAR = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDEGREE_QUADRATIC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -