📄 direct3d9.pas
字号:
D3DFVF_DIFFUSE = $040;
{$EXTERNALSYM D3DFVF_DIFFUSE}
D3DFVF_SPECULAR = $080;
{$EXTERNALSYM D3DFVF_SPECULAR}
D3DFVF_TEXCOUNT_MASK = $f00;
{$EXTERNALSYM D3DFVF_TEXCOUNT_MASK}
D3DFVF_TEXCOUNT_SHIFT = 8;
{$EXTERNALSYM D3DFVF_TEXCOUNT_SHIFT}
D3DFVF_TEX0 = $000;
{$EXTERNALSYM D3DFVF_TEX0}
D3DFVF_TEX1 = $100;
{$EXTERNALSYM D3DFVF_TEX1}
D3DFVF_TEX2 = $200;
{$EXTERNALSYM D3DFVF_TEX2}
D3DFVF_TEX3 = $300;
{$EXTERNALSYM D3DFVF_TEX3}
D3DFVF_TEX4 = $400;
{$EXTERNALSYM D3DFVF_TEX4}
D3DFVF_TEX5 = $500;
{$EXTERNALSYM D3DFVF_TEX5}
D3DFVF_TEX6 = $600;
{$EXTERNALSYM D3DFVF_TEX6}
D3DFVF_TEX7 = $700;
{$EXTERNALSYM D3DFVF_TEX7}
D3DFVF_TEX8 = $800;
{$EXTERNALSYM D3DFVF_TEX8}
D3DFVF_LASTBETA_UBYTE4 = $1000;
{$EXTERNALSYM D3DFVF_LASTBETA_UBYTE4}
D3DFVF_LASTBETA_D3DCOLOR = $8000;
{$EXTERNALSYM D3DFVF_LASTBETA_D3DCOLOR}
D3DFVF_RESERVED2 = $6000; // 2 reserved bits
{$EXTERNALSYM D3DFVF_RESERVED2}
//---------------------------------------------------------------------
// Vertex Shaders
//
// Vertex shader declaration
// Forces TD3DDeclUsage, TD3DDeclMethod, TD3DDeclType be 1 byte enums
{$MINENUMSIZE 1}
type
// Vertex element semantics
//
_D3DDECLUSAGE = (
D3DDECLUSAGE_POSITION, // = 0
D3DDECLUSAGE_BLENDWEIGHT, // 1
D3DDECLUSAGE_BLENDINDICES, // 2
D3DDECLUSAGE_NORMAL, // 3
D3DDECLUSAGE_PSIZE, // 4
D3DDECLUSAGE_TEXCOORD, // 5
D3DDECLUSAGE_TANGENT, // 6
D3DDECLUSAGE_BINORMAL, // 7
D3DDECLUSAGE_TESSFACTOR, // 8
D3DDECLUSAGE_POSITIONT, // 9
D3DDECLUSAGE_COLOR, // 10
D3DDECLUSAGE_FOG, // 11
D3DDECLUSAGE_DEPTH, // 12
D3DDECLUSAGE_SAMPLE // 13
);
{$EXTERNALSYM _D3DDECLUSAGE}
D3DDECLUSAGE = _D3DDECLUSAGE;
{$EXTERNALSYM D3DDECLUSAGE}
TD3DDeclUsage = _D3DDECLUSAGE;
const
MAXD3DDECLUSAGE = DWORD(D3DDECLUSAGE_SAMPLE);
{$EXTERNALSYM MAXD3DDECLUSAGE}
MAXD3DDECLUSAGEINDEX = 15;
{$EXTERNALSYM MAXD3DDECLUSAGEINDEX}
MAXD3DDECLLENGTH = 64; // does not include "end" marker vertex element
{$EXTERNALSYM MAXD3DDECLLENGTH}
type
_D3DDECLMETHOD = (
D3DDECLMETHOD_DEFAULT, // = 0,
D3DDECLMETHOD_PARTIALU,
D3DDECLMETHOD_PARTIALV,
D3DDECLMETHOD_CROSSUV, // Normal
D3DDECLMETHOD_UV,
D3DDECLMETHOD_LOOKUP, // Lookup a displacement map
D3DDECLMETHOD_LOOKUPPRESAMPLED // Lookup a pre-sampled displacement map
);
{$EXTERNALSYM _D3DDECLMETHOD}
D3DDECLMETHOD = _D3DDECLMETHOD;
{$EXTERNALSYM D3DDECLMETHOD}
TD3DDeclMethod = _D3DDECLMETHOD;
const
MAXD3DDECLMETHOD = DWORD(D3DDECLMETHOD_LOOKUPPRESAMPLED);
{$EXTERNALSYM MAXD3DDECLMETHOD}
type
// Declarations for _Type fields
//
_D3DDECLTYPE = (
D3DDECLTYPE_FLOAT1 = 0, // 1D float expanded to (value, 0., 0., 1.)
D3DDECLTYPE_FLOAT2 = 1, // 2D float expanded to (value, value, 0., 1.)
D3DDECLTYPE_FLOAT3 = 2, // 3D float expanded to (value, value, value, 1.)
D3DDECLTYPE_FLOAT4 = 3, // 4D float
D3DDECLTYPE_D3DCOLOR = 4, // 4D packed unsigned bytes mapped to 0. to 1. range
// Input is in D3DCOLOR format (ARGB) expanded to (R, G, B, A)
D3DDECLTYPE_UBYTE4 = 5, // 4D unsigned byte
D3DDECLTYPE_SHORT2 = 6, // 2D signed short expanded to (value, value, 0., 1.)
D3DDECLTYPE_SHORT4 = 7, // 4D signed short
// The following types are valid only with vertex shaders >= 2.0
D3DDECLTYPE_UBYTE4N = 8, // Each of 4 bytes is normalized by dividing to 255.0
D3DDECLTYPE_SHORT2N = 9, // 2D signed short normalized (v[0]/32767.0,v[1]/32767.0,0,1)
D3DDECLTYPE_SHORT4N = 10, // 4D signed short normalized (v[0]/32767.0,v[1]/32767.0,v[2]/32767.0,v[3]/32767.0)
D3DDECLTYPE_USHORT2N = 11, // 2D unsigned short normalized (v[0]/65535.0,v[1]/65535.0,0,1)
D3DDECLTYPE_USHORT4N = 12, // 4D unsigned short normalized (v[0]/65535.0,v[1]/65535.0,v[2]/65535.0,v[3]/65535.0)
D3DDECLTYPE_UDEC3 = 13, // 3D unsigned 10 10 10 format expanded to (value, value, value, 1)
D3DDECLTYPE_DEC3N = 14, // 3D signed 10 10 10 format normalized and expanded to (v[0]/511.0, v[1]/511.0, v[2]/511.0, 1)
D3DDECLTYPE_FLOAT16_2 = 15, // Two 16-bit floating point values, expanded to (value, value, 0, 1)
D3DDECLTYPE_FLOAT16_4 = 16, // Four 16-bit floating point values
D3DDECLTYPE_UNUSED = 17 // When the type field in a decl is unused.
);
{$EXTERNALSYM _D3DDECLTYPE}
D3DDECLTYPE = _D3DDECLTYPE;
{$EXTERNALSYM D3DDECLTYPE}
TD3DDeclType = _D3DDECLTYPE;
// Restores enums to be 4 byte in size
{$MINENUMSIZE 4}
const
MAXD3DDECLTYPE = DWORD(D3DDECLTYPE_UNUSED);
{$EXTERNALSYM MAXD3DDECLTYPE}
type
PD3DVertexElement9 = ^TD3DVertexElement9;
_D3DVERTEXELEMENT9 = packed record
Stream: Word; // Stream index
Offset: Word; // Offset in the stream in bytes
_Type: TD3DDeclType{Byte}; // Data type
Method: TD3DDeclMethod{Byte}; // Processing method
Usage: TD3DDeclUsage{Byte}; // Semantics
UsageIndex: Byte; // Semantic index
end;
{$EXTERNALSYM _D3DVERTEXELEMENT9}
D3DVERTEXELEMENT9 = _D3DVERTEXELEMENT9;
{$EXTERNALSYM D3DVERTEXELEMENT9}
TD3DVertexElement9 = _D3DVERTEXELEMENT9;
// 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 : TD3DDeclMethod(0);
Usage : TD3DDeclUsage(0);
UsageIndex : 0);
{$EXTERNALSYM D3DDECL_END}
// Maximum supported number of texture coordinate sets
const
D3DDP_MAXTEXCOORD = 8;
{$EXTERNALSYM D3DDP_MAXTEXCOORD}
//---------------------------------------------------------------------
// Values for IDirect3DDevice9::SetStreamSourceFreq's Setting parameter
//---------------------------------------------------------------------
D3DSTREAMSOURCE_INDEXEDDATA = LongWord(1 shl 30);
{$EXTERNALSYM D3DSTREAMSOURCE_INDEXEDDATA}
D3DSTREAMSOURCE_INSTANCEDATA = LongWord(2 shl 30);
{$EXTERNALSYM D3DSTREAMSOURCE_INSTANCEDATA}
//---------------------------------------------------------------------
//
// The internal format of Pixel Shader (PS) & Vertex Shader (VS)
// Instruction Tokens is defined in the Direct3D Device Driver Kit
//
//---------------------------------------------------------------------
//
// Instruction Token Bit Definitions
//
D3DSI_OPCODE_MASK = $0000FFFF;
{$EXTERNALSYM D3DSI_OPCODE_MASK}
D3DSI_INSTLENGTH_MASK = $0F000000;
{$EXTERNALSYM D3DSI_INSTLENGTH_MASK}
D3DSI_INSTLENGTH_SHIFT = 24;
{$EXTERNALSYM D3DSI_INSTLENGTH_SHIFT}
type
_D3DSHADER_INSTRUCTION_OPCODE_TYPE = type DWord;
{$EXTERNALSYM _D3DSHADER_INSTRUCTION_OPCODE_TYPE}
D3DSHADER_INSTRUCTION_OPCODE_TYPE = _D3DSHADER_INSTRUCTION_OPCODE_TYPE;
{$EXTERNALSYM D3DSHADER_INSTRUCTION_OPCODE_TYPE}
TD3DShaderInstructionOpcodeType = _D3DSHADER_INSTRUCTION_OPCODE_TYPE;
const
D3DSIO_NOP = 0;
{$EXTERNALSYM D3DSIO_NOP}
D3DSIO_MOV = 1;
{$EXTERNALSYM D3DSIO_MOV}
D3DSIO_ADD = 2;
{$EXTERNALSYM D3DSIO_ADD}
D3DSIO_SUB = 3;
{$EXTERNALSYM D3DSIO_SUB}
D3DSIO_MAD = 4;
{$EXTERNALSYM D3DSIO_MAD}
D3DSIO_MUL = 5;
{$EXTERNALSYM D3DSIO_MUL}
D3DSIO_RCP = 6;
{$EXTERNALSYM D3DSIO_RCP}
D3DSIO_RSQ = 7;
{$EXTERNALSYM D3DSIO_RSQ}
D3DSIO_DP3 = 8;
{$EXTERNALSYM D3DSIO_DP3}
D3DSIO_DP4 = 9;
{$EXTERNALSYM D3DSIO_DP4}
D3DSIO_MIN = 10;
{$EXTERNALSYM D3DSIO_MIN}
D3DSIO_MAX = 11;
{$EXTERNALSYM D3DSIO_MAX}
D3DSIO_SLT = 12;
{$EXTERNALSYM D3DSIO_SLT}
D3DSIO_SGE = 13;
{$EXTERNALSYM D3DSIO_SGE}
D3DSIO_EXP = 14;
{$EXTERNALSYM D3DSIO_EXP}
D3DSIO_LOG = 15;
{$EXTERNALSYM D3DSIO_LOG}
D3DSIO_LIT = 16;
{$EXTERNALSYM D3DSIO_LIT}
D3DSIO_DST = 17;
{$EXTERNALSYM D3DSIO_DST}
D3DSIO_LRP = 18;
{$EXTERNALSYM D3DSIO_LRP}
D3DSIO_FRC = 19;
{$EXTERNALSYM D3DSIO_FRC}
D3DSIO_M4x4 = 20;
{$EXTERNALSYM D3DSIO_M4x4}
D3DSIO_M4x3 = 21;
{$EXTERNALSYM D3DSIO_M4x3}
D3DSIO_M3x4 = 22;
{$EXTERNALSYM D3DSIO_M3x4}
D3DSIO_M3x3 = 23;
{$EXTERNALSYM D3DSIO_M3x3}
D3DSIO_M3x2 = 24;
{$EXTERNALSYM D3DSIO_M3x2}
D3DSIO_CALL = 25;
{$EXTERNALSYM D3DSIO_CALL}
D3DSIO_CALLNZ = 26;
{$EXTERNALSYM D3DSIO_CALLNZ}
D3DSIO_LOOP = 27;
{$EXTERNALSYM D3DSIO_LOOP}
D3DSIO_RET = 28;
{$EXTERNALSYM D3DSIO_RET}
D3DSIO_ENDLOOP = 29;
{$EXTERNALSYM D3DSIO_ENDLOOP}
D3DSIO_LABEL = 30;
{$EXTERNALSYM D3DSIO_LABEL}
D3DSIO_DCL = 31;
{$EXTERNALSYM D3DSIO_DCL}
D3DSIO_POW = 32;
{$EXTERNALSYM D3DSIO_POW}
D3DSIO_CRS = 33;
{$EXTERNALSYM D3DSIO_CRS}
D3DSIO_SGN = 34;
{$EXTERNALSYM D3DSIO_SGN}
D3DSIO_ABS = 35;
{$EXTERNALSYM D3DSIO_ABS}
D3DSIO_NRM = 36;
{$EXTERNALSYM D3DSIO_NRM}
D3DSIO_SINCOS = 37;
{$EXTERNALSYM D3DSIO_SINCOS}
D3DSIO_REP = 38;
{$EXTERNALSYM D3DSIO_REP}
D3DSIO_ENDREP = 39;
{$EXTERNALSYM D3DSIO_ENDREP}
D3DSIO_IF = 40;
{$EXTERNALSYM D3DSIO_IF}
D3DSIO_IFC = 41;
{$EXTERNALSYM D3DSIO_IFC}
D3DSIO_ELSE = 42;
{$EXTERNALSYM D3DSIO_ELSE}
D3DSIO_ENDIF = 43;
{$EXTERNALSYM D3DSIO_ENDIF}
D3DSIO_BREAK = 44;
{$EXTERNALSYM D3DSIO_BREAK}
D3DSIO_BREAKC = 45;
{$EXTERNALSYM D3DSIO_BREAKC}
D3DSIO_MOVA = 46;
{$EXTERNALSYM D3DSIO_MOVA}
D3DSIO_DEFB = 47;
{$EXTERNALSYM D3DSIO_DEFB}
D3DSIO_DEFI = 48;
{$EXTERNALSYM D3DSIO_DEFI}
D3DSIO_TEXCOORD = 64;
{$EXTERNALSYM D3DSIO_TEXCOORD}
D3DSIO_TEXKILL = 65;
{$EXTERNALSYM D3DSIO_TEXKILL}
D3DSIO_TEX = 66;
{$EXTERNALSYM D3DSIO_TEX}
D3DSIO_TEXBEM = 67;
{$EXTERNALSYM D3DSIO_TEXBEM}
D3DSIO_TEXBEML = 68;
{$EXTERNALSYM D3DSIO_TEXBEML}
D3DSIO_TEXREG2AR = 69;
{$EXTERNALSYM D3DSIO_TEXREG2AR}
D3DSIO_TEXREG2GB = 70;
{$EXTERNALSYM D3DSIO_TEXREG2GB}
D3DSIO_TEXM3x2PAD = 71;
{$EXTERNALSYM D3DSIO_TEXM3x2PAD}
D3DSIO_TEXM3x2TEX = 72;
{$EXTERNALSYM D3DSIO_TEXM3x2TEX}
D3DSIO_TEXM3x3PAD = 73;
{$EXTERNALSYM D3DSIO_TEXM3x3PAD}
D3DSIO_TEXM3x3TEX = 74;
{$EXTERNALSYM D3DSIO_TEXM3x3TEX}
D3DSIO_RESERVED0 = 75;
{$EXTERNALSYM D3DSIO_RESERVED0}
D3DSIO_TEXM3x3SPEC = 76;
{$EXTERNALSYM D3DSIO_TEXM3x3SPEC}
D3DSIO_TEXM3x3VSPEC = 77;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -