⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 direct3d9.pas

📁 冒险岛吸怪源码UCE的制作材料 用于冒险岛游戏的外挂
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    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
    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 sets
const
  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 controls

const
  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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -