📄 direct3d.pas
字号:
{$EXTERNALSYM D3DRENDERSTATE_FOGEND}
D3DRENDERSTATE_FOGDENSITY = 38; (* Fog density *)
{$EXTERNALSYM D3DRENDERSTATE_FOGDENSITY}
{$ENDIF} // DIRECT3D_VERSION_7
{$IFDEF DIRECT3D_VERSION_5}
D3DRENDERSTATE_EDGEANTIALIAS = 40; (* TRUE to enable edge antialiasing *)
{$EXTERNALSYM D3DRENDERSTATE_EDGEANTIALIAS}
D3DRENDERSTATE_COLORKEYENABLE = 41; (* TRUE to enable source colorkeyed textures *)
{$EXTERNALSYM D3DRENDERSTATE_COLORKEYENABLE}
D3DRENDERSTATE_ZBIAS = 47; (* LONG Z bias *)
{$EXTERNALSYM D3DRENDERSTATE_ZBIAS}
D3DRENDERSTATE_RANGEFOGENABLE = 48; (* Enables range-based fog *)
{$EXTERNALSYM D3DRENDERSTATE_RANGEFOGENABLE}
{$ENDIF} // DIRECT3D_VERSION_5
{$IFDEF DIRECT3D_VERSION_6}
D3DRENDERSTATE_STENCILENABLE = 52; (* BOOL enable/disable stenciling *)
{$EXTERNALSYM D3DRENDERSTATE_STENCILENABLE}
D3DRENDERSTATE_STENCILFAIL = 53; (* D3DSTENCILOP to do if stencil test fails *)
{$EXTERNALSYM D3DRENDERSTATE_STENCILFAIL}
D3DRENDERSTATE_STENCILZFAIL = 54; (* D3DSTENCILOP to do if stencil test passes and Z test fails *)
{$EXTERNALSYM D3DRENDERSTATE_STENCILZFAIL}
D3DRENDERSTATE_STENCILPASS = 55; (* D3DSTENCILOP to do if both stencil and Z tests pass *)
{$EXTERNALSYM D3DRENDERSTATE_STENCILPASS}
D3DRENDERSTATE_STENCILFUNC = 56; (* D3DCMPFUNC fn. Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true *)
{$EXTERNALSYM D3DRENDERSTATE_STENCILFUNC}
D3DRENDERSTATE_STENCILREF = 57; (* Reference value used in stencil test *)
{$EXTERNALSYM D3DRENDERSTATE_STENCILREF}
D3DRENDERSTATE_STENCILMASK = 58; (* Mask value used in stencil test *)
{$EXTERNALSYM D3DRENDERSTATE_STENCILMASK}
D3DRENDERSTATE_STENCILWRITEMASK = 59; (* Write mask applied to values written to stencil buffer *)
{$EXTERNALSYM D3DRENDERSTATE_STENCILWRITEMASK}
D3DRENDERSTATE_TEXTUREFACTOR = 60; (* D3DCOLOR used for multi-texture blend *)
{$EXTERNALSYM D3DRENDERSTATE_TEXTUREFACTOR}
{$ENDIF} // DIRECT3D_VERSION_6
{$IFDEF DIRECT3D_VERSION_6}
(*
* 128 values [128; 255] are reserved for texture coordinate wrap flags.
* These are constructed with the D3DWRAP_U and D3DWRAP_V macros. Using
* a flags word preserves forward compatibility with texture coordinates
* that are >2D.
*)
D3DRENDERSTATE_WRAP0 = 128; (* wrap for 1st texture coord. set *)
{$EXTERNALSYM D3DRENDERSTATE_WRAP0}
D3DRENDERSTATE_WRAP1 = 129; (* wrap for 2nd texture coord. set *)
{$EXTERNALSYM D3DRENDERSTATE_WRAP1}
D3DRENDERSTATE_WRAP2 = 130; (* wrap for 3rd texture coord. set *)
{$EXTERNALSYM D3DRENDERSTATE_WRAP2}
D3DRENDERSTATE_WRAP3 = 131; (* wrap for 4th texture coord. set *)
{$EXTERNALSYM D3DRENDERSTATE_WRAP3}
D3DRENDERSTATE_WRAP4 = 132; (* wrap for 5th texture coord. set *)
{$EXTERNALSYM D3DRENDERSTATE_WRAP4}
D3DRENDERSTATE_WRAP5 = 133; (* wrap for 6th texture coord. set *)
{$EXTERNALSYM D3DRENDERSTATE_WRAP5}
D3DRENDERSTATE_WRAP6 = 134; (* wrap for 7th texture coord. set *)
{$EXTERNALSYM D3DRENDERSTATE_WRAP6}
D3DRENDERSTATE_WRAP7 = 135; (* wrap for 8th texture coord. set *)
{$EXTERNALSYM D3DRENDERSTATE_WRAP7}
{$ENDIF} // DIRECT3D_VERSION_6
{$IFDEF DIRECT3D_VERSION_7}
D3DRENDERSTATE_CLIPPING = 136;
{$EXTERNALSYM D3DRENDERSTATE_CLIPPING}
D3DRENDERSTATE_LIGHTING = 137;
{$EXTERNALSYM D3DRENDERSTATE_LIGHTING}
D3DRENDERSTATE_EXTENTS = 138;
{$EXTERNALSYM D3DRENDERSTATE_EXTENTS}
D3DRENDERSTATE_AMBIENT = 139;
{$EXTERNALSYM D3DRENDERSTATE_AMBIENT}
D3DRENDERSTATE_FOGVERTEXMODE = 140;
{$EXTERNALSYM D3DRENDERSTATE_FOGVERTEXMODE}
D3DRENDERSTATE_COLORVERTEX = 141;
{$EXTERNALSYM D3DRENDERSTATE_COLORVERTEX}
D3DRENDERSTATE_LOCALVIEWER = 142;
{$EXTERNALSYM D3DRENDERSTATE_LOCALVIEWER}
D3DRENDERSTATE_NORMALIZENORMALS = 143;
{$EXTERNALSYM D3DRENDERSTATE_NORMALIZENORMALS}
D3DRENDERSTATE_COLORKEYBLENDENABLE = 144;
{$EXTERNALSYM D3DRENDERSTATE_COLORKEYBLENDENABLE}
D3DRENDERSTATE_DIFFUSEMATERIALSOURCE = 145;
{$EXTERNALSYM D3DRENDERSTATE_DIFFUSEMATERIALSOURCE}
D3DRENDERSTATE_SPECULARMATERIALSOURCE = 146;
{$EXTERNALSYM D3DRENDERSTATE_SPECULARMATERIALSOURCE}
D3DRENDERSTATE_AMBIENTMATERIALSOURCE = 147;
{$EXTERNALSYM D3DRENDERSTATE_AMBIENTMATERIALSOURCE}
D3DRENDERSTATE_EMISSIVEMATERIALSOURCE = 148;
{$EXTERNALSYM D3DRENDERSTATE_EMISSIVEMATERIALSOURCE}
D3DRENDERSTATE_VERTEXBLEND = 151;
{$EXTERNALSYM D3DRENDERSTATE_VERTEXBLEND}
D3DRENDERSTATE_CLIPPLANEENABLE = 152;
{$EXTERNALSYM D3DRENDERSTATE_CLIPPLANEENABLE}
{$ENDIF} // DIRECT3D_VERSION_7
//
// retired renderstates - not supported for DX7 interfaces
//
D3DRENDERSTATE_TEXTUREHANDLE = 1; (* Texture handle for legacy interfaces (Texture;Texture2) *)
{$EXTERNALSYM D3DRENDERSTATE_TEXTUREHANDLE}
D3DRENDERSTATE_TEXTUREADDRESS = 3; (* D3DTEXTUREADDRESS *)
{$EXTERNALSYM D3DRENDERSTATE_TEXTUREADDRESS}
D3DRENDERSTATE_WRAPU = 5; (* TRUE for wrapping in u *)
{$EXTERNALSYM D3DRENDERSTATE_WRAPU}
D3DRENDERSTATE_WRAPV = 6; (* TRUE for wrapping in v *)
{$EXTERNALSYM D3DRENDERSTATE_WRAPV}
D3DRENDERSTATE_MONOENABLE = 11; (* TRUE to enable mono rasterization *)
{$EXTERNALSYM D3DRENDERSTATE_MONOENABLE}
D3DRENDERSTATE_ROP2 = 12; (* ROP2 *)
{$EXTERNALSYM D3DRENDERSTATE_ROP2}
D3DRENDERSTATE_PLANEMASK = 13; (* DWORD physical plane mask *)
{$EXTERNALSYM D3DRENDERSTATE_PLANEMASK}
D3DRENDERSTATE_TEXTUREMAG = 17; (* D3DTEXTUREFILTER *)
{$EXTERNALSYM D3DRENDERSTATE_TEXTUREMAG}
D3DRENDERSTATE_TEXTUREMIN = 18; (* D3DTEXTUREFILTER *)
{$EXTERNALSYM D3DRENDERSTATE_TEXTUREMIN}
D3DRENDERSTATE_TEXTUREMAPBLEND = 21; (* D3DTEXTUREBLEND *)
{$EXTERNALSYM D3DRENDERSTATE_TEXTUREMAPBLEND}
D3DRENDERSTATE_SUBPIXEL = 31; (* TRUE to enable subpixel correction *)
{$EXTERNALSYM D3DRENDERSTATE_SUBPIXEL}
D3DRENDERSTATE_SUBPIXELX = 32; (* TRUE to enable correction in X only *)
{$EXTERNALSYM D3DRENDERSTATE_SUBPIXELX}
D3DRENDERSTATE_STIPPLEENABLE = 39; (* TRUE to enable stippling *)
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEENABLE}
{$IFDEF DIRECT3D_VERSION_5}
D3DRENDERSTATE_BORDERCOLOR = 43; (* Border color for texturing w/border *)
{$EXTERNALSYM D3DRENDERSTATE_BORDERCOLOR}
D3DRENDERSTATE_TEXTUREADDRESSU = 44; (* Texture addressing mode for U coordinate *)
{$EXTERNALSYM D3DRENDERSTATE_TEXTUREADDRESSU}
D3DRENDERSTATE_TEXTUREADDRESSV = 45; (* Texture addressing mode for V coordinate *)
{$EXTERNALSYM D3DRENDERSTATE_TEXTUREADDRESSV}
D3DRENDERSTATE_MIPMAPLODBIAS = 46; (* D3DVALUE Mipmap LOD bias *)
{$EXTERNALSYM D3DRENDERSTATE_MIPMAPLODBIAS}
D3DRENDERSTATE_ANISOTROPY = 49; (* Max. anisotropy. 1 = no anisotropy *)
{$EXTERNALSYM D3DRENDERSTATE_ANISOTROPY}
{$ENDIF} // DIRECT3D_VERSION_5
D3DRENDERSTATE_FLUSHBATCH = 50; (* Explicit flush for DP batching (DX5 Only) *)
{$EXTERNALSYM D3DRENDERSTATE_FLUSHBATCH}
{$IFDEF DIRECT3D_VERSION_6}
D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT=51; (* BOOL enable sort-independent transparency *)
{$EXTERNALSYM D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT}
{$ENDIF} // DIRECT3D_VERSION_6
D3DRENDERSTATE_STIPPLEPATTERN00 = 64; (* Stipple pattern 01... *)
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN00}
D3DRENDERSTATE_STIPPLEPATTERN01 = 65;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN01}
D3DRENDERSTATE_STIPPLEPATTERN02 = 66;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN02}
D3DRENDERSTATE_STIPPLEPATTERN03 = 67;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN03}
D3DRENDERSTATE_STIPPLEPATTERN04 = 68;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN04}
D3DRENDERSTATE_STIPPLEPATTERN05 = 69;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN05}
D3DRENDERSTATE_STIPPLEPATTERN06 = 70;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN06}
D3DRENDERSTATE_STIPPLEPATTERN07 = 71;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN07}
D3DRENDERSTATE_STIPPLEPATTERN08 = 72;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN08}
D3DRENDERSTATE_STIPPLEPATTERN09 = 73;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN09}
D3DRENDERSTATE_STIPPLEPATTERN10 = 74;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN10}
D3DRENDERSTATE_STIPPLEPATTERN11 = 75;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN11}
D3DRENDERSTATE_STIPPLEPATTERN12 = 76;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN12}
D3DRENDERSTATE_STIPPLEPATTERN13 = 77;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN13}
D3DRENDERSTATE_STIPPLEPATTERN14 = 78;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN14}
D3DRENDERSTATE_STIPPLEPATTERN15 = 79;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN15}
D3DRENDERSTATE_STIPPLEPATTERN16 = 80;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN16}
D3DRENDERSTATE_STIPPLEPATTERN17 = 81;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN17}
D3DRENDERSTATE_STIPPLEPATTERN18 = 82;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN18}
D3DRENDERSTATE_STIPPLEPATTERN19 = 83;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN19}
D3DRENDERSTATE_STIPPLEPATTERN20 = 84;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN20}
D3DRENDERSTATE_STIPPLEPATTERN21 = 85;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN21}
D3DRENDERSTATE_STIPPLEPATTERN22 = 86;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN22}
D3DRENDERSTATE_STIPPLEPATTERN23 = 87;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN23}
D3DRENDERSTATE_STIPPLEPATTERN24 = 88;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN24}
D3DRENDERSTATE_STIPPLEPATTERN25 = 89;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN25}
D3DRENDERSTATE_STIPPLEPATTERN26 = 90;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN26}
D3DRENDERSTATE_STIPPLEPATTERN27 = 91;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN27}
D3DRENDERSTATE_STIPPLEPATTERN28 = 92;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN28}
D3DRENDERSTATE_STIPPLEPATTERN29 = 93;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN29}
D3DRENDERSTATE_STIPPLEPATTERN30 = 94;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN30}
D3DRENDERSTATE_STIPPLEPATTERN31 = 95;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN31}
//
// retired renderstate names - the values are still used under new naming conventions
//
D3DRENDERSTATE_FOGTABLESTART = 36; (* Fog table start *)
{$EXTERNALSYM D3DRENDERSTATE_FOGTABLESTART}
D3DRENDERSTATE_FOGTABLEEND = 37; (* Fog table end *)
{$EXTERNALSYM D3DRENDERSTATE_FOGTABLEEND}
D3DRENDERSTATE_FOGTABLEDENSITY = 38; (* Fog table density *)
{$EXTERNALSYM D3DRENDERSTATE_FOGTABLEDENSITY}
{$IFDEF DIRECT3D_VERSION_LESS_8}
type
// Values for material source
PD3DMateralColorSource = ^TD3DMateralColorSource;
_D3DMATERIALCOLORSOURCE = (
D3DMCS_MATERIAL, // Color from material is used
D3DMCS_COLOR1, // Diffuse vertex color is used
D3DMCS_COLOR2 // Specular vertex color is used
);
{$EXTERNALSYM _D3DMATERIALCOLORSOURCE}
D3DMATERIALCOLORSOURCE = _D3DMATERIALCOLORSOURCE;
{$EXTERNALSYM D3DMATERIALCOLORSOURCE}
TD3DMateralColorSource = _D3DMATERIALCOLORSOURCE;
{$IFDEF DIRECT3D_VERSION_5}
const
// For back-compatibility with legacy compilations
D3DRENDERSTATE_BLENDENABLE = D3DRENDERSTATE_ALPHABLENDENABLE;
{$EXTERNALSYM D3DRENDERSTATE_BLENDENABLE}
{$ENDIF} // DIRECT3D_VERSION_5
{$IFDEF DIRECT3D_VERSION_6}
// Bias to apply to the texture coordinate set to apply a wrap to.
D3DRENDERSTATE_WRAPBIAS = 128;
{$EXTERNALSYM D3DRENDERSTATE_WRAPBIAS}
(* Flags to construct the WRAP render states *)
D3DWRAP_U = $00000001;
{$EXTERNALSYM D3DWRAP_U}
D3DWRAP_V = $00000002;
{$EXTERNALSYM D3DWRAP_V}
{$ENDIF} // DIRECT3D_VERSION_6
{$IFDEF DIRECT3D_VERSION_7}
(* Flags to construct the WRAP render states for 1D thru 4D texture coordinates *)
D3DWRAPCOORD_0 = $00000001; // same as D3DWRAP_U
{$EXTERNALSYM D3DWRAPCOORD_0}
D3DWRAPCOORD_1 = $00000002; // same as D3DWRAP_V
{$EXTERNALSYM D3DWRAPCOORD_1}
D3DWRAPCOORD_2 = $00000004;
{$EXTERNALSYM D3DWRAPCOORD_2}
D3DWRAPCOORD_3 = $00000008;
{$EXTERNALSYM D3DWRAPCOORD_3}
{$ENDIF} // DIRECT3D_VERSION_7
{$ENDIF} // DIRECT3D_VERSION_LESS_8
function D3DRENDERSTATE_STIPPLEPATTERN(y: Integer): TD3DRenderStateType;
{$EXTERNALSYM D3DRENDERSTATE_STIPPLEPATTERN}
type
PD3DState = ^TD3DState;
_D3DSTATE = packed record
case Integer of
{$IFDEF DIRECT3D_VERSION_LESS_8}
0: (
dtstTransformStateType: TD3DTransformStateType;
);
{$ENDIF} // DIRECT3D_VERSION_LESS_8
1: (
dlstLightStateType: TD3DLightStateType;
dwArg: array [0..0] of DWORD;
);
2: (
drstRenderStateType: TD3DRenderStateType;
dvArg: array [0..0] of TD3DValue;
);
end;
{$EXTERNALSYM _D3DSTATE}
D3DSTATE = _D3DSTATE;
{$EXTERNALSYM D3DSTATE}
TD3DState = _D3DSTATE;
(*
* Operation used to load matrices
* hDstMat = hSrcMat
*)
PD3DMatrixLoad = ^TD3DMatrixLoad;
_D3DMATRIXLOAD = packed record
hDestMatrix: TD3DMatrixHandle; (* Destination matrix *)
hSrcMatrix: TD3DMatrixHandle; (* Source matrix *)
end;
{$EXTERNALSYM _D3DMATRIXLOAD}
D3DMATRIXLOAD = _D3DMATRIXLOAD;
{$EXTERNALSYM D3DMATRIXLOAD}
TD3DMatrixLoad = _D3DMATRIXLOAD;
(*
* Operation used to multiply matrices
* hDstMat = hSrcMat1 * hSrcMat2
*)
PD3DMatrixMultiply = ^TD3DMatrixMultiply;
_D3DMATRIXMULTIPLY = packed record
hDestMatrix: TD3DMatrixHandle; (* Destination matrix *)
hSrcMatrix1: TD3DMatrixHandle; (* First source matrix *)
hSrcMatrix2: TD3DMatrixHandle; (* Second source matrix *)
end;
{$EXTERNALSYM _D3DMATRIXMULTIPLY}
D3DMATRIXMULTIPLY = _D3DMATRIXMULTIPLY;
{$EXTERNALSYM D3DMATRIXMULTIPLY}
TD3DMatrixMultiply = _D3DMATRIXMULTIPLY;
(*
* Operation used to transform and light vertices.
*)
PD3DProcessVertices = ^TD3DProcessVertices;
_D3DPROCESSVERTICES = packed record
dwFlags: DWORD; (* Do we transform or light or just copy? *)
wStart: WORD; (* Index to first vertex in source *)
wDest: WORD; (* Index to first vertex in local buffer *)
dwCount: DWORD; (* Number of vertices to be processed *)
dwReserved: DWORD; (* Must be zero *)
end;
{$EXTERNALSYM _D3DPROCESSVERTICES}
D3DPROCESSVERTICES = _D3DPROCESSVERTICES;
{$EXTERNALSYM D3DPROCESSVERTICES}
TD3DProcessVertices = _D3DPROCESSVERTICES;
const
D3DPROCESSVERTICES_TRANSFORMLIGHT = $00000000;
{$EXTERNALSYM D3DPROCESSVERTICES_TRANSFORMLIGHT}
D3DPROCESSVERTICES_TRANSFORM = $00000001;
{$EXTERNALSYM D3DPROCESSVERTICES_TRANSFORM}
D3DPROCESSVERTICES_COPY = $00000002;
{$EXTERNALSYM D3DPROCESSVERTICES_COPY}
D3DPROCESSVERTICES_OPMASK = $00000007;
{$EXTERNALSYM D3DPROCESSVERTICES_OPMASK}
D3DPROCESSVERTICES_UPDATEEXTENTS = $00000008;
{$EXTERNALSYM D3DPROCESSVERTICES_UPDATEEXTENTS}
D3DPROCESSVERTICES_NOCOLOR = $00000010;
{$EXTERNALSYM D3DPROCESSVERTICES_NOCOLOR}
{$IFDEF DIRECT3D_VERSION_6}
{$IFDEF DIRECT3D_VERSION_LESS_8}
(*
* State enumerants for per-stage texture processing.
*)
type
PD3DTextureStageStateType = ^TD3DTextureStageStateType;
TD3DTextureStageStateType = DWORD;
const
D3DTSS_COLOROP = 1; (* D3DTEXTUREOP - per-stage blending controls for color channels *)
{$EXTERNALSYM D3DTSS_COLOROP}
D3DTSS_COLORARG1 = 2; (* D3DTA_* (texture arg) *)
{$EXTERNALSYM D3DTSS_COLORARG1}
D3DTSS_COLORARG2 = 3; (
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -