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

📄 direct3d9.pas

📁 冒险岛吸怪源码UCE的制作材料 用于冒险岛游戏的外挂
💻 PAS
📖 第 1 页 / 共 5 页
字号:
(* Flags to construct the WRAP render states *)
  D3DWRAP_U = $00000001;
  D3DWRAP_V = $00000002;
  D3DWRAP_W = $00000004;

(* Flags to construct the WRAP render states for 1D thru 4D texture coordinates *)
  D3DWRAPCOORD_0  = $00000001;    // same as D3DWRAP_U
  D3DWRAPCOORD_1  = $00000002;    // same as D3DWRAP_V
  D3DWRAPCOORD_2  = $00000004;    // same as D3DWRAP_W
  D3DWRAPCOORD_3  = $00000008;

(* Flags to construct D3DRS_COLORWRITEENABLE *)
  D3DCOLORWRITEENABLE_RED   = 1;  // (1L<<0)
  D3DCOLORWRITEENABLE_GREEN = 2;  // (1L<<1)
  D3DCOLORWRITEENABLE_BLUE  = 4;  // (1L<<2)
  D3DCOLORWRITEENABLE_ALPHA = 8;  // (1L<<3)

(*)
 * State enumerants for per-stage processing of fixed function pixel processing
 * Two of these affect fixed function vertex processing as well: TEXTURETRANSFORMFLAGS and TEXCOORDINDEX.
(*)

type
  TD3DTextureStageStateType = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}
{$IFDEF NOENUMS}const{$ENDIF}
    D3DTSS_COLOROP               =  1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* D3DTEXTUREOP - per-stage blending controls for color channels *)
    D3DTSS_COLORARG1             =  2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* D3DTA_* (texture arg) *)
    D3DTSS_COLORARG2             =  3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* D3DTA_* (texture arg) *)
    D3DTSS_ALPHAOP               =  4{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* D3DTEXTUREOP - per-stage blending controls for alpha channel *)
    D3DTSS_ALPHAARG1             =  5{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* D3DTA_* (texture arg) *)
    D3DTSS_ALPHAARG2             =  6{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* D3DTA_* (texture arg) *)
    D3DTSS_BUMPENVMAT00          =  7{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* float (bump mapping matrix) *)
    D3DTSS_BUMPENVMAT01          =  8{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* float (bump mapping matrix) *)
    D3DTSS_BUMPENVMAT10          =  9{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* float (bump mapping matrix) *)
    D3DTSS_BUMPENVMAT11          = 10{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* float (bump mapping matrix) *)
    D3DTSS_TEXCOORDINDEX         = 11{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* identifies which set of texture coordinates index this texture *)
    D3DTSS_BUMPENVLSCALE         = 22{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* float scale for bump map luminance *)
    D3DTSS_BUMPENVLOFFSET        = 23{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* float offset for bump map luminance *)
    D3DTSS_TEXTURETRANSFORMFLAGS = 24{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* D3DTEXTURETRANSFORMFLAGS controls texture transform *)
    D3DTSS_COLORARG0             = 26{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* D3DTA_* third arg for triadic ops *)
    D3DTSS_ALPHAARG0             = 27{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* D3DTA_* third arg for triadic ops *)
    D3DTSS_RESULTARG             = 28{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}     (* D3DTA_* arg for result (CURRENT or TEMP) *)
    D3DTSS_CONSTANT              = 32{$IFNDEF NOENUMS}){$ENDIF};            (* Per-stage constant D3DTA_CONSTANT *)

(*)
 * State enumerants for per-sampler texture processing.
(*)

type
  TD3DSamplerStateType  = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}
{$IFDEF NOENUMS}const{$ENDIF}  
    D3DSAMP_ADDRESSU       = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  (* D3DTEXTUREADDRESS for U coordinate *)
    D3DSAMP_ADDRESSV       = 2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  (* D3DTEXTUREADDRESS for V coordinate *)
    D3DSAMP_ADDRESSW       = 3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  (* D3DTEXTUREADDRESS for W coordinate *)
    D3DSAMP_BORDERCOLOR    = 4{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  (* D3DCOLOR *)
    D3DSAMP_MAGFILTER      = 5{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  (* D3DTEXTUREFILTER filter to use for magnification *)
    D3DSAMP_MINFILTER      = 6{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  (* D3DTEXTUREFILTER filter to use for minification *)
    D3DSAMP_MIPFILTER      = 7{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  (* D3DTEXTUREFILTER filter to use between mipmaps during minification *)
    D3DSAMP_MIPMAPLODBIAS  = 8{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  (* float Mipmap LOD bias *)
    D3DSAMP_MAXMIPLEVEL    = 9{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  (* DWORD 0..(n-1) LOD index of largest map to use (0 == largest) *)
    D3DSAMP_MAXANISOTROPY  = 10{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* DWORD maximum anisotropy *)
    D3DSAMP_SRGBTEXTURE    = 11{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* Default = 0 (which means Gamma 1.0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}
                                                                     no correction required.) else correct for
                                                                     Gamma = 2.2 *)
    D3DSAMP_ELEMENTINDEX   = 12{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} (* When multi-element texture is assigned to sampler{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} this
                                                                     indicates which element index to use.  Default = 0.  *)
    D3DSAMP_DMAPOFFSET     = 13{$IFNDEF NOENUMS}){$ENDIF};        (* Offset in vertices in the pre-sampled displacement map.
                                                                     Only valid for D3DDMAPSAMPLER sampler  *)
                                                                     
(* Special sampler which is used in the tesselator *)
const
  D3DDMAPSAMPLER = 256;

// Samplers used in vertex shaders
  D3DVERTEXTEXTURESAMPLER0 = (D3DDMAPSAMPLER + 1);
  D3DVERTEXTEXTURESAMPLER1 = (D3DDMAPSAMPLER + 2);
  D3DVERTEXTEXTURESAMPLER2 = (D3DDMAPSAMPLER + 3);
  D3DVERTEXTEXTURESAMPLER3 = (D3DDMAPSAMPLER + 4);

// Values, used with D3DTSS_TEXCOORDINDEX, to specify that the vertex data(position
// and normal in the camera space) should be taken as texture coordinates
// Low 16 bits are used to specify texture coordinate index, to take the WRAP mode from

  D3DTSS_TCI_PASSTHRU                    = $00000000;
  D3DTSS_TCI_CAMERASPACENORMAL           = $00010000;
  D3DTSS_TCI_CAMERASPACEPOSITION         = $00020000;
  D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = $00030000;
  D3DTSS_TCI_SPHEREMAP                   = $00040000;

(*)
 * Enumerations for COLOROP and ALPHAOP texture blending operations set in
 * texture processing stage controls in D3DTSS.
(*)



type
  TD3DTextureOp = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}
{$IFDEF NOENUMS}const{$ENDIF}
    // Control
    D3DTOP_DISABLE                   = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}   // disables stage
    D3DTOP_SELECTARG1                = 2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}   // the default
    D3DTOP_SELECTARG2                = 3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}

    // Modulate
    D3DTOP_MODULATE                  = 4{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}   // multiply args together
    D3DTOP_MODULATE2X                = 5{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}   // multiply and  1 bit
    D3DTOP_MODULATE4X                = 6{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}   // multiply and  2 bits

    // Add
    D3DTOP_ADD                       = 7{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}   // add arguments together
    D3DTOP_ADDSIGNED                 = 8{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}   // add with -0.5 bias
    D3DTOP_ADDSIGNED2X               = 9{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}   // as above but left  1 bit
    D3DTOP_SUBTRACT                  = 10{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // Arg1 - Arg2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} with no saturation
    D3DTOP_ADDSMOOTH                 = 11{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // add 2 args{$IFNDEF NOENUMS},{$ELSE};{$ENDIF} subtract product
                                          // Arg1 + Arg2 - Arg1*Arg2
                                          // = Arg1 + (1-Arg1)*Arg2

    // Linear alpha blend: Arg1*(Alpha) + Arg2*(1-Alpha)
    D3DTOP_BLENDDIFFUSEALPHA         = 12{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // iterated alpha
    D3DTOP_BLENDTEXTUREALPHA         = 13{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // texture alpha
    D3DTOP_BLENDFACTORALPHA          = 14{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // alpha from D3DRS_TEXTUREFACTOR

    // Linear alpha blend with pre-multiplied arg1 input: Arg1 + Arg2*(1-Alpha)
    D3DTOP_BLENDTEXTUREALPHAPM       = 15{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // texture alpha
    D3DTOP_BLENDCURRENTALPHA         = 16{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // by alpha of current color

    // Specular mapping
    D3DTOP_PREMODULATE               = 17{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // modulate with next texture before use
    D3DTOP_MODULATEALPHA_ADDCOLOR    = 18{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // Arg1.RGB + Arg1.A*Arg2.RGB
                                          // COLOROP only
    D3DTOP_MODULATECOLOR_ADDALPHA    = 19{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // Arg1.RGB*Arg2.RGB + Arg1.A
                                          // COLOROP only
    D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // (1-Arg1.A)*Arg2.RGB + Arg1.RGB
                                          // COLOROP only
    D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // (1-Arg1.RGB)*Arg2.RGB + Arg1.A
                                          // COLOROP only

    // Bump mapping
    D3DTOP_BUMPENVMAP                = 22{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // per pixel env map perturbation
    D3DTOP_BUMPENVMAPLUMINANCE       = 23{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // with luminance channel

    // This can do either diffuse or specular bump mapping with correct input.
    // Performs the function (Arg1.R*Arg2.R + Arg1.G*Arg2.G + Arg1.B*Arg2.B)
    // where each component has been scaled and offset to make it signed.
    // The result is replicated into all four (including alpha) channels.
    // This is a valid COLOROP only.
    D3DTOP_DOTPRODUCT3               = 24{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}

    // Triadic ops
    D3DTOP_MULTIPLYADD               = 25{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}  // Arg0 + Arg1*Arg2
    D3DTOP_LERP                      = 26{$IFNDEF NOENUMS}){$ENDIF};         // (Arg0)*Arg1 + (1-Arg0)*Arg2

const
(*)
 * Values for COLORARG0;1;2; ALPHAARG0;1;2; and RESULTARG texture blending
 * operations set in texture processing stage controls in D3DRENDERSTATE.
(*)

  D3DTA_SELECTMASK        = $0000000f;  // mask for arg selector
  D3DTA_DIFFUSE           = $00000000;  // select diffuse color (read only)
  D3DTA_CURRENT           = $00000001;  // select stage destination register (read/write)
  D3DTA_TEXTURE           = $00000002;  // select texture color (read only)
  D3DTA_TFACTOR           = $00000003;  // select D3DRS_TEXTUREFACTOR (read only)
  D3DTA_SPECULAR          = $00000004;  // select specular color (read only)
  D3DTA_TEMP              = $00000005;  // select temporary register color (read/write)
  D3DTA_CONSTANT          = $00000006;  // select texture stage constant
  D3DTA_COMPLEMENT        = $00000010;  // take 1.0 - x (read modifier)
  D3DTA_ALPHAREPLICATE    = $00000020;  // replicate alpha to color components (read modifier)

// Values for D3DTSS_***FILTER texture stage states

type
  TD3DTextureFilterType = {$IFNDEF NOENUMS}({$ELSE}LongWord;{$ENDIF}
{$IFDEF NOENUMS}const{$ENDIF}
    D3DTEXF_NONE            = 0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}    // filtering disabled (valid for mip filter only)
    D3DTEXF_POINT           = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}    // nearest
    D3DTEXF_LINEAR          = 2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}    // linear interpolation
    D3DTEXF_ANISOTROPIC     = 3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}    // anisotropic
    D3DTEXF_PYRAMIDALQUAD   = 6{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}    // 4-sample tent
    D3DTEXF_GAUSSIANQUAD    = 7{$IFNDEF NOENUMS}){$ENDIF};           // 4-sample gaussian

const
(* Bits for Flags in ProcessVertices call *)
  D3DPV_DONOTCOPYDATA  = 1 shl 0;

//-------------------------------------------------------------------

// Flexible vertex format bits
//
  D3DFVF_RESERVED0         = $001;
  D3DFVF_POSITION_MASK     = $400E;
  D3DFVF_XYZ               = $002;
  D3DFVF_XYZRHW            = $004;
  D3DFVF_XYZB1             = $006;
  D3DFVF_XYZB2             = $008;
  D3DFVF_XYZB3             = $00a;
  D3DFVF_XYZB4             = $00c;
  D3DFVF_XYZB5             = $00e;
  D3DFVF_XYZW              = $4002;

  D3DFVF_NORMAL            = $010;
  D3DFVF_PSIZE             = $020;
  D3DFVF_DIFFUSE           = $040;
  D3DFVF_SPECULAR          = $080;

  D3DFVF_TEXCOUNT_MASK     = $f00;
  D3DFVF_TEXCOUNT_SHIFT    = 8;
  D3DFVF_TEX0              = $000;
  D3DFVF_TEX1              = $100;
  D3DFVF_TEX2              = $200;
  D3DFVF_TEX3              = $300;
  D3DFVF_TEX4              = $400;
  D3DFVF_TEX5              = $500;
  D3DFVF_TEX6              = $600;
  D3DFVF_TEX7              = $700;
  D3DFVF_TEX8              = $800;

  D3DFVF_LASTBETA_UBYTE4   = $1000;
  D3DFVF_LASTBETA_D3DCOLOR = $8000;

  D3DFVF_RESERVED2         = $6000;  // 2 reserved bits

//---------------------------------------------------------------------
// Vertex Shaders
//

// Vertex shader declaration

// Vertex element semantics
//
{$MINENUMSIZE 1}
type
  TD3DDeclUsage = {$IFNDEF NOENUMS}({$ELSE}Byte;{$ENDIF}
{$IFDEF NOENUMS}const{$ENDIF}
    D3DDECLUSAGE_POSITION     = 0{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}
    D3DDECLUSAGE_BLENDWEIGHT  = 1{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}
    D3DDECLUSAGE_BLENDINDICES = 2{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}
    D3DDECLUSAGE_NORMAL       = 3{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}
    D3DDECLUSAGE_PSIZE        = 4{$IFNDEF NOENUMS},{$ELSE};{$ENDIF}

⌨️ 快捷键说明

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