📄 direct3d9.pas.svn-base
字号:
D3DDECLMETHOD_UV = 4{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DDECLMETHOD_LOOKUP = 5{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Lookup a displacement map D3DDECLMETHOD_LOOKUPPRESAMPLED = 6{$IFNDEF NOENUMS}){$ENDIF}; // Lookup a pre-sampled displacement map{$MINENUMSIZE 4}const MAXD3DDECLMETHOD = D3DDECLMETHOD_LOOKUPPRESAMPLED;// Declarations for _Type fields//{$MINENUMSIZE 1}type TD3DDeclType = {$IFNDEF NOENUMS}({$ELSE}Byte;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DDECLTYPE_FLOAT1 = 0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 1D float expanded to (value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} 0.{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} 0.{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} 1.) D3DDECLTYPE_FLOAT2 = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 2D float expanded to (value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} 0.{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} 1.) D3DDECLTYPE_FLOAT3 = 2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 3D float expanded to (value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} 1.) D3DDECLTYPE_FLOAT4 = 3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 4D float D3DDECLTYPE_D3DCOLOR = 4{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 4D packed unsigned bytes mapped to 0. to 1. range // Input is in D3DCOLOR format (ARGB) expanded to (R{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} G{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} B{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} A) D3DDECLTYPE_UBYTE4 = 5{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 4D unsigned byte D3DDECLTYPE_SHORT2 = 6{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 2D signed short expanded to (value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} 0.{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} 1.) D3DDECLTYPE_SHORT4 = 7{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 4D signed short // The following types are valid only with vertex shaders >= 2.0 D3DDECLTYPE_UBYTE4N = 8{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Each of 4 bytes is normalized by dividing to 255.0 D3DDECLTYPE_SHORT2N = 9{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 2D signed short normalized (v[0]/32767.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}v[1]/32767.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}1) D3DDECLTYPE_SHORT4N = 10{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 4D signed short normalized (v[0]/32767.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}v[1]/32767.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}v[2]/32767.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}v[3]/32767.0) D3DDECLTYPE_USHORT2N = 11{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 2D unsigned short normalized (v[0]/65535.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}v[1]/65535.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}1) D3DDECLTYPE_USHORT4N = 12{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 4D unsigned short normalized (v[0]/65535.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}v[1]/65535.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}v[2]/65535.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}v[3]/65535.0) D3DDECLTYPE_UDEC3 = 13{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 3D unsigned 10 10 10 format expanded to (value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} 1) D3DDECLTYPE_DEC3N = 14{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 3D signed 10 10 10 format normalized and expanded to (v[0]/511.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} v[1]/511.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} v[2]/511.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} 1) D3DDECLTYPE_FLOAT16_2 = 15{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Two 16-bit floating point values{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} expanded to (value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} value{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} 0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} 1) D3DDECLTYPE_FLOAT16_4 = 16{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // Four 16-bit floating point values D3DDECLTYPE_UNUSED = 17{$IFNDEF NOENUMS}){$ENDIF}; // When the type field in a decl is unused.{$MINENUMSIZE 4}const MAXD3DDECLTYPE = D3DDECLTYPE_UNUSED;type PD3DVertexElement9 = ^TD3DVertexElement9; TD3DVertexElement9 = packed record Stream : Word; // Stream index Offset : Word; // Offset in the stream in bytes _Type : TD3DDeclType; // Data type Method : TD3DDeclMethod; // Processing method Usage : TD3DDeclUsage; // Semantics UsageIndex : Byte; // Semantic index end;// This is used to initialize the last vertex element in a vertex declaration// array//const D3DDECL_END : TD3DVertexElement9 = (Stream : $FF; Offset : 0; _Type : D3DDECLTYPE_UNUSED; Method : D3DDECLMETHOD_DEFAULT; Usage : D3DDECLUSAGE_POSITION; UsageIndex : 0);// Maximum supported number of texture coordinate setsconst D3DDP_MAXTEXCOORD = 8;//---------------------------------------------------------------------//// The internal format of Pixel Shader (PS) & Vertex Shader (VS)// Instruction Tokens is defined in the Direct3D Device Driver Kit////---------------------------------------------------------------------//// Instruction Token Bit Definitions//const D3DSI_OPCODE_MASK = $0000FFFF; D3DSI_INSTLENGTH_MASK = $0F000000; D3DSI_INSTLENGTH_SHIFT = 24;type TD3DShaderInstructionOpcodeType = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DSIO_NOP = 00{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_MOV = 01{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_ADD = 02{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_SUB = 03{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_MAD = 04{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_MUL = 05{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_RCP = 06{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_RSQ = 07{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_DP3 = 08{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_DP4 = 09{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_MIN = 10{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_MAX = 11{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_SLT = 12{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_SGE = 13{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_EXP = 14{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_LOG = 15{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_LIT = 16{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_DST = 17{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_LRP = 18{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_FRC = 19{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_M4x4 = 20{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_M4x3 = 21{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_M3x4 = 22{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_M3x3 = 23{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_M3x2 = 24{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_CALL = 25{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_CALLNZ = 26{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_LOOP = 27{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_RET = 28{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_ENDLOOP = 29{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_LABEL = 30{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_DCL = 31{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_POW = 32{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_CRS = 33{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_SGN = 34{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_ABS = 35{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_NRM = 36{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_SINCOS = 37{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_REP = 38{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_ENDREP = 39{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_IF = 40{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_IFC = 41{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_ELSE = 42{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_ENDIF = 43{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_BREAK = 44{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_BREAKC = 45{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_MOVA = 46{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_DEFB = 47{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_DEFI = 48{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXCOORD = 64{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXKILL = 65{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEX = 66{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXBEM = 67{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXBEML = 68{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXREG2AR = 69{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXREG2GB = 70{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXM3x2PAD = 71{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXM3x2TEX = 72{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXM3x3PAD = 73{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXM3x3TEX = 74{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_RESERVED0 = 75{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXM3x3SPEC = 76{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXM3x3VSPEC = 77{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_EXPP = 78{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_LOGP = 79{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_CND = 80{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_DEF = 81{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXREG2RGB = 82{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXDP3TEX = 83{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXM3x2DEPTH = 84{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXDP3 = 85{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXM3x3 = 86{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXDEPTH = 87{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_CMP = 88{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_BEM = 89{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_DP2ADD = 90{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_DSX = 91{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_DSY = 92{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXLDD = 93{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_SETP = 94{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_TEXLDL = 95{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_BREAKP = 96{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_PHASE = $FFFD{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_COMMENT = $FFFE{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} D3DSIO_END = $FFFF{$IFNDEF NOENUMS}){$ENDIF};type TD3DShader_Instruction_Opcode_Type = TD3DShaderInstructionOpcodeType;//---------------------------------------------------------------------// Use these constants with D3DSIO_SINCOS macro as SRC2, SRC3//const D3DSINCOSCONST1 : array[0..3] of Single = (-1.5500992e-006, -2.1701389e-005, 0.0026041667, 0.00026041668); D3DSINCOSCONST2 : array[0..3] of Single = (-0.020833334, -0.12500000, 1.0, 0.50000000);//---------------------------------------------------------------------// Co-Issue Instruction Modifier - if set then this instruction is to be// issued in parallel with the previous instruction(s) for which this bit// is not set.//const D3DSI_COISSUE = $40000000;//---------------------------------------------------------------------// Opcode specific controlsconst D3DSP_OPCODESPECIFICCONTROL_MASK = $00ff0000; D3DSP_OPCODESPECIFICCONTROL_SHIFT = 16;// ps_2_0 texld controls D3DSI_TEXLD_PROJECT = ($01 shl D3DSP_OPCODESPECIFICCONTROL_SHIFT); D3DSI_TEXLD_BIAS = ($02 shl D3DSP_OPCODESPECIFICCONTROL_SHIFT);{$MINENUMSIZE 1}type TD3DShaderComparison = {$IFNDEF NOENUMS}({$ELSE}Byte;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} // < = > D3DSPC_RESERVED0 = 0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 0 0 0 D3DSPC_GT = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 0 0 1 D3DSPC_EQ = 2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 0 1 0 D3DSPC_GE = 3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 0 1 1 D3DSPC_LT = 4{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 1 0 0 D3DSPC_NE = 5{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 1 0 1 D3DSPC_LE = 6{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // 1 1 0 D3DSPC_RESERVED1 = 7{$IFNDEF NOENUMS}){$ENDIF}; // 1 1 1{$MINENUMSIZE 4}type TD3DShader_Comparison = TD3DShaderComparison;const// Comparison is part of instruction opcode token: D3DSHADER_COMPARISON_SHIFT = D3DSP_OPCODESPECIFICCONTROL_SHIFT; D3DSHADER_COMPARISON_MASK = ($7 shl D3DSHADER_COMPARISON_SHIFT);//---------------------------------------------------------------------// Predication flags on instruction token D3DSHADER_INSTRUCTION_PREDICATED = ($1 shl 28);//---------------------------------------------------------------------// DCL Info Token Controlsconst// For dcl info tokens requiring a semantic (usage + index) D3DSP_DCL_USAGE_SHIFT = 0; D3DSP_DCL_USAGE_MASK = $0000000F; D3DSP_DCL_USAGEINDEX_SHIFT = 16; D3DSP_DCL_USAGEINDEX_MASK = $000F0000;const// DCL pixel shader sampler info token. D3DSP_TEXTURETYPE_SHIFT = 27; D3DSP_TEXTURETYPE_MASK = $78000000;type TD3DSamplerTextureType = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}{$IFDEF NOENUMS}const{$ENDIF} D3DSTT_UNKNOWN = 0 shl D3DSP_TEXTURETYPE_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // uninitialized value D3DSTT_2D = 2 shl D3DSP_TEXTURETYPE_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // dcl_2d s# (for declaring a 2-D texture) D3DSTT_CUBE = 3 shl D3DSP_TEXTURETYPE_SHIFT{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} // dcl_cube s# (for declaring a cube texture) D3DSTT_VOLUME = 4 shl D3DSP_TEXTURETYPE_SHIFT{$IFNDEF NOENUMS}){$ENDIF}; // dcl_volume s# (for declaring a volume texture)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -