📄 direct3d9.pas
字号:
{$EXTERNALSYM D3DSIO_TEXM3x3VSPEC}
D3DSIO_EXPP = 78;
{$EXTERNALSYM D3DSIO_EXPP}
D3DSIO_LOGP = 79;
{$EXTERNALSYM D3DSIO_LOGP}
D3DSIO_CND = 80;
{$EXTERNALSYM D3DSIO_CND}
D3DSIO_DEF = 81;
{$EXTERNALSYM D3DSIO_DEF}
D3DSIO_TEXREG2RGB = 82;
{$EXTERNALSYM D3DSIO_TEXREG2RGB}
D3DSIO_TEXDP3TEX = 83;
{$EXTERNALSYM D3DSIO_TEXDP3TEX}
D3DSIO_TEXM3x2DEPTH = 84;
{$EXTERNALSYM D3DSIO_TEXM3x2DEPTH}
D3DSIO_TEXDP3 = 85;
{$EXTERNALSYM D3DSIO_TEXDP3}
D3DSIO_TEXM3x3 = 86;
{$EXTERNALSYM D3DSIO_TEXM3x3}
D3DSIO_TEXDEPTH = 87;
{$EXTERNALSYM D3DSIO_TEXDEPTH}
D3DSIO_CMP = 88;
{$EXTERNALSYM D3DSIO_CMP}
D3DSIO_BEM = 89;
{$EXTERNALSYM D3DSIO_BEM}
D3DSIO_DP2ADD = 90;
{$EXTERNALSYM D3DSIO_DP2ADD}
D3DSIO_DSX = 91;
{$EXTERNALSYM D3DSIO_DSX}
D3DSIO_DSY = 92;
{$EXTERNALSYM D3DSIO_DSY}
D3DSIO_TEXLDD = 93;
{$EXTERNALSYM D3DSIO_TEXLDD}
D3DSIO_SETP = 94;
{$EXTERNALSYM D3DSIO_SETP}
D3DSIO_TEXLDL = 95;
{$EXTERNALSYM D3DSIO_TEXLDL}
D3DSIO_BREAKP = 96;
{$EXTERNALSYM D3DSIO_BREAKP}
D3DSIO_PHASE = $FFFD;
{$EXTERNALSYM D3DSIO_PHASE}
D3DSIO_COMMENT = $FFFE;
{$EXTERNALSYM D3DSIO_COMMENT}
D3DSIO_END = $FFFF;
{$EXTERNALSYM D3DSIO_END}
//---------------------------------------------------------------------
// Use these constants with D3DSIO_SINCOS macro as SRC2, SRC3
//
//#define D3DSINCOSCONST1 -1.5500992e-006f, -2.1701389e-005f, 0.0026041667f, 0.00026041668f
//#define D3DSINCOSCONST2 -0.020833334f, -0.12500000f, 1.0f, 0.50000000f
//---------------------------------------------------------------------
// 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.
//
D3DSI_COISSUE = $40000000;
{$EXTERNALSYM D3DSI_COISSUE}
//---------------------------------------------------------------------
// Opcode specific controls
D3DSP_OPCODESPECIFICCONTROL_MASK = $00ff0000;
{$EXTERNALSYM D3DSP_OPCODESPECIFICCONTROL_MASK}
D3DSP_OPCODESPECIFICCONTROL_SHIFT = 16;
{$EXTERNALSYM D3DSP_OPCODESPECIFICCONTROL_SHIFT}
// ps_2_0 texld controls
D3DSI_TEXLD_PROJECT = ($01 shl D3DSP_OPCODESPECIFICCONTROL_SHIFT);
{$EXTERNALSYM D3DSI_TEXLD_PROJECT}
D3DSI_TEXLD_BIAS = ($02 shl D3DSP_OPCODESPECIFICCONTROL_SHIFT);
{$EXTERNALSYM D3DSI_TEXLD_BIAS}
type
// Comparison for dynamic conditional instruction opcodes (i.e. if, breakc)
{$MINENUMSIZE 1} // Forces TD3DShaderComparison be 1 byte enum
_D3DSHADER_COMPARISON = (
// < = >
D3DSPC_RESERVED0= 0, // 0 0 0
D3DSPC_GT = 1, // 0 0 1
D3DSPC_EQ = 2, // 0 1 0
D3DSPC_GE = 3, // 0 1 1
D3DSPC_LT = 4, // 1 0 0
D3DSPC_NE = 5, // 1 0 1
D3DSPC_LE = 6, // 1 1 0
D3DSPC_RESERVED1= 7 // 1 1 1
);
{$EXTERNALSYM _D3DSHADER_COMPARISON}
D3DSHADER_COMPARISON = _D3DSHADER_COMPARISON;
{$EXTERNALSYM D3DSHADER_COMPARISON}
TD3DShaderComparison = _D3DSHADER_COMPARISON;
{$MINENUMSIZE 4} // Restores enums to be 4 byte in size
const
// Comparison is part of instruction opcode token:
D3DSHADER_COMPARISON_SHIFT = D3DSP_OPCODESPECIFICCONTROL_SHIFT;
{$EXTERNALSYM D3DSHADER_COMPARISON_SHIFT}
D3DSHADER_COMPARISON_MASK = ($7 shl D3DSHADER_COMPARISON_SHIFT);
{$EXTERNALSYM D3DSHADER_COMPARISON_MASK}
//---------------------------------------------------------------------
// Predication flags on instruction token
D3DSHADER_INSTRUCTION_PREDICATED = ($1 shl 28);
{$EXTERNALSYM D3DSHADER_INSTRUCTION_PREDICATED}
//---------------------------------------------------------------------
// DCL Info Token Controls
// For dcl info tokens requiring a semantic (usage + index)
D3DSP_DCL_USAGE_SHIFT = 0;
{$EXTERNALSYM D3DSP_DCL_USAGE_SHIFT}
D3DSP_DCL_USAGE_MASK = $0000000f;
{$EXTERNALSYM D3DSP_DCL_USAGE_MASK}
D3DSP_DCL_USAGEINDEX_SHIFT = 16;
{$EXTERNALSYM D3DSP_DCL_USAGEINDEX_SHIFT}
D3DSP_DCL_USAGEINDEX_MASK = $000f0000;
{$EXTERNALSYM D3DSP_DCL_USAGEINDEX_MASK}
// DCL pixel shader sampler info token.
D3DSP_TEXTURETYPE_SHIFT = 27;
{$EXTERNALSYM D3DSP_TEXTURETYPE_SHIFT}
D3DSP_TEXTURETYPE_MASK = $78000000;
{$EXTERNALSYM D3DSP_TEXTURETYPE_MASK}
type
_D3DSAMPLER_TEXTURE_TYPE = (
D3DSTT_UNKNOWN = 0 shl D3DSP_TEXTURETYPE_SHIFT, // uninitialized value
D3DSTT_2D = 2 shl D3DSP_TEXTURETYPE_SHIFT, // dcl_2d s# (for declaring a 2-D texture)
D3DSTT_CUBE = 3 shl D3DSP_TEXTURETYPE_SHIFT, // dcl_cube s# (for declaring a cube texture)
D3DSTT_VOLUME = 4 shl D3DSP_TEXTURETYPE_SHIFT, // dcl_volume s# (for declaring a volume texture)
D3DSTT_FORCE_DWORD = $7fffffff // force 32-bit size enum
);
{$EXTERNALSYM _D3DSAMPLER_TEXTURE_TYPE}
D3DSAMPLER_TEXTURE_TYPE = _D3DSAMPLER_TEXTURE_TYPE;
{$EXTERNALSYM D3DSAMPLER_TEXTURE_TYPE}
TD3DSamplerTextureType = _D3DSAMPLER_TEXTURE_TYPE;
const
//---------------------------------------------------------------------
// Parameter Token Bit Definitions
//
D3DSP_REGNUM_MASK = $000007FF;
{$EXTERNALSYM D3DSP_REGNUM_MASK}
// destination parameter write mask
D3DSP_WRITEMASK_0 = $00010000; // Component 0 (X;Red)
{$EXTERNALSYM D3DSP_WRITEMASK_0}
D3DSP_WRITEMASK_1 = $00020000; // Component 1 (Y;Green)
{$EXTERNALSYM D3DSP_WRITEMASK_1}
D3DSP_WRITEMASK_2 = $00040000; // Component 2 (Z;Blue)
{$EXTERNALSYM D3DSP_WRITEMASK_2}
D3DSP_WRITEMASK_3 = $00080000; // Component 3 (W;Alpha)
{$EXTERNALSYM D3DSP_WRITEMASK_3}
D3DSP_WRITEMASK_ALL = $000F0000; // All Components
{$EXTERNALSYM D3DSP_WRITEMASK_ALL}
// destination parameter modifiers
D3DSP_DSTMOD_SHIFT = 20;
{$EXTERNALSYM D3DSP_DSTMOD_SHIFT}
D3DSP_DSTMOD_MASK = $00F00000;
{$EXTERNALSYM D3DSP_DSTMOD_MASK}
// Bit masks for destination parameter modifiers
D3DSPDM_NONE = (0 shl D3DSP_DSTMOD_SHIFT); // nop
{$EXTERNALSYM D3DSPDM_NONE}
D3DSPDM_SATURATE = (1 shl D3DSP_DSTMOD_SHIFT); // clamp to 0. to 1. range
{$EXTERNALSYM D3DSPDM_SATURATE}
D3DSPDM_PARTIALPRECISION = (2 shl D3DSP_DSTMOD_SHIFT); // Partial precision hint
{$EXTERNALSYM D3DSPDM_PARTIALPRECISION}
D3DSPDM_MSAMPCENTROID = (4 shl D3DSP_DSTMOD_SHIFT); // Relevant to multisampling only:
{$EXTERNALSYM D3DSPDM_MSAMPCENTROID}
// 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;
{$EXTERNALSYM D3DSP_DSTSHIFT_SHIFT}
D3DSP_DSTSHIFT_MASK = $0F000000;
{$EXTERNALSYM D3DSP_DSTSHIFT_MASK}
// destination/source parameter register type
D3DSP_REGTYPE_SHIFT = 28;
{$EXTERNALSYM D3DSP_REGTYPE_SHIFT}
D3DSP_REGTYPE_SHIFT2 = 8;
{$EXTERNALSYM D3DSP_REGTYPE_SHIFT2}
D3DSP_REGTYPE_MASK = $70000000;
{$EXTERNALSYM D3DSP_REGTYPE_MASK}
D3DSP_REGTYPE_MASK2 = $00001800;
{$EXTERNALSYM D3DSP_REGTYPE_MASK2}
type
_D3DSHADER_PARAM_REGISTER_TYPE = (
D3DSPR_TEMP = 0, // Temporary Register File
D3DSPR_INPUT = 1, // Input Register File
D3DSPR_CONST = 2, // Constant Register File
D3DSPR_ADDR = 3, // Address Register (VS)
D3DSPR_TEXTURE = 3, // Texture Register File (PS)
D3DSPR_RASTOUT = 4, // Rasterizer Register File
D3DSPR_ATTROUT = 5, // Attribute Output Register File
D3DSPR_TEXCRDOUT = 6, // Texture Coordinate Output Register File
D3DSPR_OUTPUT = 6, // Output register file for VS3.0+
D3DSPR_CONSTINT = 7, // Constant Integer Vector Register File
D3DSPR_COLOROUT = 8, // Color Output Register File
D3DSPR_DEPTHOUT = 9, // Depth Output Register File
D3DSPR_SAMPLER = 10, // Sampler State Register File
D3DSPR_CONST2 = 11, // Constant Register File 2048 - 4095
D3DSPR_CONST3 = 12, // Constant Register File 4096 - 6143
D3DSPR_CONST4 = 13, // Constant Register File 6144 - 8191
D3DSPR_CONSTBOOL = 14, // Constant Boolean register file
D3DSPR_LOOP = 15, // Loop counter register file
D3DSPR_TEMPFLOAT16 = 16, // 16-bit float temp register file
D3DSPR_MISCTYPE = 17, // Miscellaneous (single) registers.
D3DSPR_LABEL = 18, // Label
D3DSPR_PREDICATE = 19 // Predicate register
);
{$EXTERNALSYM _D3DSHADER_PARAM_REGISTER_TYPE}
D3DSHADER_PARAM_REGISTER_TYPE = _D3DSHADER_PARAM_REGISTER_TYPE;
{$EXTERNALSYM D3DSHADER_PARAM_REGISTER_TYPE}
TD3DShaderParamRegisterType = _D3DSHADER_PARAM_REGISTER_TYPE;
// 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} // Forces TD3DShaderMiscTypeOffsets be 1 byte enum
_D3DSHADER_MISCTYPE_OFFSETS = (
D3DSMO_POSITION = 0, // Input position x,y,z,rhw (PS)
D3DSMO_FACE = 1 // Floating point primitive area (PS)
);
{$EXTERNALSYM _D3DSHADER_MISCTYPE_OFFSETS}
D3DSHADER_MISCTYPE_OFFSETS = _D3DSHADER_MISCTYPE_OFFSETS;
{$EXTERNALSYM D3DSHADER_MISCTYPE_OFFSETS}
TD3DShaderMiscTypeOffsets = _D3DSHADER_MISCTYPE_OFFSETS;
{$MINENUMSIZE 4} // Restores enums to be 4 byte in size
// Register offsets in the Rasterizer Register File
//
_D3DVS_RASTOUT_OFFSETS = (
D3DSRO_POSITION, // = 0,
D3DSRO_FOG,
D3DSRO_POINT_SIZE
);
{$EXTERNALSYM _D3DVS_RASTOUT_OFFSETS}
D3DVS_RASTOUT_OFFSETS = _D3DVS_RASTOUT_OFFSETS;
{$EXTERNALSYM D3DVS_RASTOUT_OFFSETS}
TD3DVSRastoutOffsets = _D3DVS_RASTOUT_OFFSETS;
// Source operand addressing modes
const
D3DVS_ADDRESSMODE_SHIFT = 13;
{$EXTERNALSYM D3DVS_ADDRESSMODE_SHIFT}
D3DVS_ADDRESSMODE_MASK = 1 shl D3DVS_ADDRESSMODE_SHIFT;
{$EXTERNALSYM D3DVS_ADDRESSMODE_MASK}
type
_D3DVS_ADDRESSMODE_TYPE = type DWord;
{$EXTERNALSYM _D3DVS_ADDRESSMODE_TYPE}
D3DVS_ADDRESSMODE_TYPE = _D3DVS_ADDRESSMODE_TYPE;
{$EXTERNALSYM D3DVS_ADDRESSMODE_TYPE}
TD3DVSAddressModeType = _D3DVS_ADDRESSMODE_TYPE;
const
D3DVS_ADDRMODE_ABSOLUTE = 0 shl D3DVS_ADDRESSMODE_SHIFT;
{$EXTERNALSYM D3DVS_ADDRMODE_ABSOLUTE}
D3DVS_ADDRMODE_RELATIVE = 1 shl D3DVS_ADDRESSMODE_SHIFT;
{$EXTERNALSYM D3DVS_ADDRMODE_RELATIVE}
D3DVS_ADDRMODE_FORCE_DWORD = $7fffffff; // force 32-bit size enum
{$EXTERNALSYM D3DVS_ADDRMODE_FORCE_DWORD}
const
D3DSHADER_ADDRESSMODE_SHIFT = 13;
{$EXTERNALSYM D3DSHADER_ADDRESSMODE_SHIFT}
D3DSHADER_ADDRESSMODE_MASK = (1 shl D3DSHADER_ADDRESSMODE_SHIFT);
{$EXTERNALSYM D3DSHADER_ADDRESSMODE_MASK}
type
_D3DSHADER_ADDRESSMODE_TYPE = type DWord;
{$EXTERNALSYM _D3DSHADER_ADDRESSMODE_TYPE}
D3DSHADER_ADDRESSMODE_TYPE = _D3DSHADER_ADDRESSMODE_TYPE;
{$EXTERNALSYM D3DSHADER_ADDRESSMODE_TYPE}
TD3DShaderAddressModeType = _D3DSHADER_ADDRESSMODE_TYPE;
const
D3DSHADER_ADDRMODE_ABSOLUTE = (0 shl D3DSHADER_ADDRESSMODE_SHIFT);
{$EXTERNALSYM D3DSHADER_ADDRMODE_ABSOLUTE}
D3DSHADER_ADDRMODE_RELATIVE = (1 shl D3DSHADER_ADDRESSMODE_SHIFT);
{$EXTERNALSYM D3DSHADER_ADDRMODE_RELATIVE}
D3DSHADER_ADDRMODE_FORCE_DWORD = $7fffffff; // force 32-bit size enum
{$EXTERNALSYM D3DSHADER_ADDRMODE_FORCE_DWORD}
// Source operand swizzle definitions
//
D3DVS_SWIZZLE_SHIFT = 16;
{$EXTERNALSYM D3DVS_SWIZZLE_SHIFT}
D3DVS_SWIZZLE_MASK = $00FF0000;
{$EXTERNALSYM D3DVS_SWIZZLE_MASK}
// The following bits define where to take component X from:
D3DVS_X_X = 0 shl D3DVS_SWIZZLE_SHIFT;
{$EXTERNALSYM D3DVS_X_X}
D3DVS_X_Y = 1 shl D3DVS_SWIZZLE_SHIFT;
{$EXTERNALSYM D3DVS_X_Y}
D3DVS_X_Z = 2 shl D3DVS_SWIZZLE_SHIFT;
{$EXTERNALSYM D3DVS_X_Z}
D3DVS_X_W = 3 shl D3DVS_SWIZZLE_SHIFT;
{$EXTERNALSYM D3DVS_X_W}
// The following bits define where to take component Y from:
D3DVS_Y_X = 0 shl (D3DVS_SWIZZLE_SHIFT + 2);
{$EXTERNALSYM D3DVS_Y_X}
D3DVS_Y_Y = 1 shl (D3DVS_SWIZZLE_SHIFT + 2);
{$EXTERNALSYM D3DVS_Y_Y}
D3DVS_Y_Z = 2 shl (D3DVS_SWIZZLE_SHIFT + 2);
{$EXTERNALSYM D3DVS_Y_Z}
D3DVS_Y_W = 3 shl (D3DVS_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -