📄 direct3d.pas
字号:
D3DMAXNUMVERTICES = ((1 shl 16) - 1);
(* The maximum number of primitives user can pass to any d3d
drawing function.
*)
D3DMAXNUMPRIMITIVES = ((1 shl 16) - 1);
(* Bits for dwFlags in ProcessVertices call *)
D3DPV_DONOTCOPYDATA = (1 shl 0);
//-------------------------------------------------------------------
// Flexible vertex format bits
//
D3DFVF_RESERVED0 = $001;
D3DFVF_POSITION_MASK = $00E;
D3DFVF_XYZ = $002;
D3DFVF_XYZRHW = $004;
D3DFVF_XYZB1 = $006;
D3DFVF_XYZB2 = $008;
D3DFVF_XYZB3 = $00a;
D3DFVF_XYZB4 = $00c;
D3DFVF_XYZB5 = $00e;
D3DFVF_NORMAL = $010;
D3DFVF_RESERVED1 = $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_RESERVED2 = $f000; // 4 reserved bits
D3DFVF_VERTEX = ( D3DFVF_XYZ or D3DFVF_NORMAL or D3DFVF_TEX1 );
D3DFVF_LVERTEX = ( D3DFVF_XYZ or D3DFVF_RESERVED1 or D3DFVF_DIFFUSE or
D3DFVF_SPECULAR or D3DFVF_TEX1 );
D3DFVF_TLVERTEX = ( D3DFVF_XYZRHW or D3DFVF_DIFFUSE or D3DFVF_SPECULAR or
D3DFVF_TEX1 );
type
PD3DDP_PtrStride = ^TD3DDP_PtrStride;
TD3DDP_PtrStride = packed record
lpvData : pointer;
dwStride : DWORD;
end;
const
D3DDP_MAXTEXCOORD = 8;
type
PD3DDrawPrimitiveStridedData = ^TD3DDrawPrimitiveStridedData;
TD3DDrawPrimitiveStridedData = packed record
position : TD3DDP_PtrStride;
normal : TD3DDP_PtrStride;
diffuse : TD3DDP_PtrStride;
specular : TD3DDP_PtrStride;
textureCoords : array [0..D3DDP_MAXTEXCOORD-1] of TD3DDP_PtrStride;
end;
//---------------------------------------------------------------------
// ComputeSphereVisibility return values
//
const
D3DVIS_INSIDE_FRUSTUM = 0;
D3DVIS_INTERSECT_FRUSTUM = 1;
D3DVIS_OUTSIDE_FRUSTUM = 2;
D3DVIS_INSIDE_LEFT = 0;
D3DVIS_INTERSECT_LEFT = (1 shl 2);
D3DVIS_OUTSIDE_LEFT = (2 shl 2);
D3DVIS_INSIDE_RIGHT = 0;
D3DVIS_INTERSECT_RIGHT = (1 shl 4);
D3DVIS_OUTSIDE_RIGHT = (2 shl 4);
D3DVIS_INSIDE_TOP = 0;
D3DVIS_INTERSECT_TOP = (1 shl 6);
D3DVIS_OUTSIDE_TOP = (2 shl 6);
D3DVIS_INSIDE_BOTTOM = 0;
D3DVIS_INTERSECT_BOTTOM = (1 shl 8);
D3DVIS_OUTSIDE_BOTTOM = (2 shl 8);
D3DVIS_INSIDE_NEAR = 0;
D3DVIS_INTERSECT_NEAR = (1 shl 10);
D3DVIS_OUTSIDE_NEAR = (2 shl 10);
D3DVIS_INSIDE_FAR = 0;
D3DVIS_INTERSECT_FAR = (1 shl 12);
D3DVIS_OUTSIDE_FAR = (2 shl 12);
D3DVIS_MASK_FRUSTUM = (3 shl 0);
D3DVIS_MASK_LEFT = (3 shl 2);
D3DVIS_MASK_RIGHT = (3 shl 4);
D3DVIS_MASK_TOP = (3 shl 6);
D3DVIS_MASK_BOTTOM = (3 shl 8);
D3DVIS_MASK_NEAR = (3 shl 10);
D3DVIS_MASK_FAR = (3 shl 12);
// To be used with GetInfo()
D3DDEVINFOID_TEXTUREMANAGER = 1;
D3DDEVINFOID_D3DTEXTUREMANAGER = 2;
D3DDEVINFOID_TEXTURING = 3;
type
PD3DStateBlockType = ^TD3DStateBlockType;
TD3DStateBlockType = (
D3DSBT_INVALID_0 ,
D3DSBT_ALL , // capture all state
D3DSBT_PIXELSTATE , // capture pixel state
D3DSBT_VERTEXSTATE // capture vertex state
);
// The D3DVERTEXBLENDFLAGS type is used with D3DRENDERSTATE_VERTEXBLEND state.
//
PD3DVertexBlendFlags = ^TD3DVertexBlendFlags;
TD3DVertexBlendFlags = (
D3DVBLEND_DISABLE , // Disable vertex blending
D3DVBLEND_1WEIGHT , // blend between 2 matrices
D3DVBLEND_2WEIGHTS, // blend between 3 matrices
D3DVBLEND_3WEIGHTS // blend between 4 matrices
);
PD3DTextureTransformFlags = ^TD3DTextureTransformFlags;
TD3DTextureTransformFlags = (
D3DTTFF_DISABLE , // texture coordinates are passed directly
D3DTTFF_COUNT1 , // rasterizer should expect 1-D texture coords
D3DTTFF_COUNT2 , // rasterizer should expect 2-D texture coords
D3DTTFF_COUNT3 , // rasterizer should expect 3-D texture coords
D3DTTFF_COUNT4 // rasterizer should expect 4-D texture coords
);
const
D3DTTFF_PROJECTED = TD3DTextureTransformFlags(256); // texcoords to be divided by COUNTth element
// Macros to set texture coordinate format bits in the FVF id
D3DFVF_TEXTUREFORMAT2 = 0; // Two floating point values
D3DFVF_TEXTUREFORMAT1 = 3; // One floating point value
D3DFVF_TEXTUREFORMAT3 = 1; // Three floating point values
D3DFVF_TEXTUREFORMAT4 = 2; // Four floating point values
function D3DFVF_TEXCOORDSIZE3(CoordIndex: DWORD) : DWORD;
function D3DFVF_TEXCOORDSIZE2(CoordIndex: DWORD) : DWORD;
function D3DFVF_TEXCOORDSIZE4(CoordIndex: DWORD) : DWORD;
function D3DFVF_TEXCOORDSIZE1(CoordIndex: DWORD) : DWORD;
(*==========================================================================;
*
*
* File: d3dcaps.h
* Content: Direct3D capabilities include file
*
***************************************************************************)
(* Description of capabilities of transform *)
type
PD3DTransformCaps = ^TD3DTransformCaps;
TD3DTransformCaps = packed record
dwSize: DWORD;
dwCaps: DWORD;
end;
const
D3DTRANSFORMCAPS_CLIP = $00000001; (* Will clip whilst transforming *)
(* Description of capabilities of lighting *)
type
PD3DLightingCaps = ^TD3DLightingCaps;
TD3DLightingCaps = packed record
dwSize: DWORD;
dwCaps: DWORD; (* Lighting caps *)
dwLightingModel: DWORD; (* Lighting model - RGB or mono *)
dwNumLights: DWORD; (* Number of lights that can be handled *)
end;
const
D3DLIGHTINGMODEL_RGB = $00000001;
D3DLIGHTINGMODEL_MONO = $00000002;
D3DLIGHTCAPS_POINT = $00000001; (* Point lights supported *)
D3DLIGHTCAPS_SPOT = $00000002; (* Spot lights supported *)
D3DLIGHTCAPS_DIRECTIONAL = $00000004; (* Directional lights supported *)
D3DLIGHTCAPS_PARALLELPOINT = $00000008; (* Parallel point lights supported *)
D3DLIGHTCAPS_GLSPOT = $00000010; (* GL syle spot lights supported *)
(* Description of capabilities for each primitive type *)
type
PD3DPrimCaps = ^TD3DPrimCaps;
TD3DPrimCaps = packed record
dwSize: DWORD;
dwMiscCaps: DWORD; (* Capability flags *)
dwRasterCaps: DWORD;
dwZCmpCaps: DWORD;
dwSrcBlendCaps: DWORD;
dwDestBlendCaps: DWORD;
dwAlphaCmpCaps: DWORD;
dwShadeCaps: DWORD;
dwTextureCaps: DWORD;
dwTextureFilterCaps: DWORD;
dwTextureBlendCaps: DWORD;
dwTextureAddressCaps: DWORD;
dwStippleWidth: DWORD; (* maximum width and height of *)
dwStippleHeight: DWORD; (* of supported stipple (up to 32x32) *)
end;
const
(* TD3DPrimCaps dwMiscCaps *)
D3DPMISCCAPS_MASKPLANES = $00000001;
D3DPMISCCAPS_MASKZ = $00000002;
D3DPMISCCAPS_LINEPATTERNREP = $00000004;
D3DPMISCCAPS_CONFORMANT = $00000008;
D3DPMISCCAPS_CULLNONE = $00000010;
D3DPMISCCAPS_CULLCW = $00000020;
D3DPMISCCAPS_CULLCCW = $00000040;
(* TD3DPrimCaps dwRasterCaps *)
D3DPRASTERCAPS_DITHER = $00000001;
D3DPRASTERCAPS_ROP2 = $00000002;
D3DPRASTERCAPS_XOR = $00000004;
D3DPRASTERCAPS_PAT = $00000008;
D3DPRASTERCAPS_ZTEST = $00000010;
D3DPRASTERCAPS_SUBPIXEL = $00000020;
D3DPRASTERCAPS_SUBPIXELX = $00000040;
D3DPRASTERCAPS_FOGVERTEX = $00000080;
D3DPRASTERCAPS_FOGTABLE = $00000100;
D3DPRASTERCAPS_STIPPLE = $00000200;
D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT = $00000400;
D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT = $00000800;
D3DPRASTERCAPS_ANTIALIASEDGES = $00001000;
D3DPRASTERCAPS_MIPMAPLODBIAS = $00002000;
D3DPRASTERCAPS_ZBIAS = $00004000;
D3DPRASTERCAPS_ZBUFFERLESSHSR = $00008000;
D3DPRASTERCAPS_FOGRANGE = $00010000;
D3DPRASTERCAPS_ANISOTROPY = $00020000;
D3DPRASTERCAPS_WBUFFER = $00040000;
D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT = $00080000;
D3DPRASTERCAPS_WFOG = $00100000;
D3DPRASTERCAPS_ZFOG = $00200000;
(* TD3DPrimCaps dwZCmpCaps, dwAlphaCmpCaps *)
const
D3DPCMPCAPS_NEVER = $00000001;
D3DPCMPCAPS_LESS = $00000002;
D3DPCMPCAPS_EQUAL = $00000004;
D3DPCMPCAPS_LESSEQUAL = $00000008;
D3DPCMPCAPS_GREATER = $00000010;
D3DPCMPCAPS_NOTEQUAL = $00000020;
D3DPCMPCAPS_GREATEREQUAL = $00000040;
D3DPCMPCAPS_ALWAYS = $00000080;
(* TD3DPrimCaps dwSourceBlendCaps, dwDestBlendCaps *)
D3DPBLENDCAPS_ZERO = $00000001;
D3DPBLENDCAPS_ONE = $00000002;
D3DPBLENDCAPS_SRCCOLOR = $00000004;
D3DPBLENDCAPS_INVSRCCOLOR = $00000008;
D3DPBLENDCAPS_SRCALPHA = $00000010;
D3DPBLENDCAPS_INVSRCALPHA = $00000020;
D3DPBLENDCAPS_DESTALPHA = $00000040;
D3DPBLENDCAPS_INVDESTALPHA = $00000080;
D3DPBLENDCAPS_DESTCOLOR = $00000100;
D3DPBLENDCAPS_INVDESTCOLOR = $00000200;
D3DPBLENDCAPS_SRCALPHASAT = $00000400;
D3DPBLENDCAPS_BOTHSRCALPHA = $00000800;
D3DPBLENDCAPS_BOTHINVSRCALPHA = $00001000;
(* TD3DPrimCaps dwShadeCaps *)
D3DPSHADECAPS_COLORFLATMONO = $00000001;
D3DPSHADECAPS_COLORFLATRGB = $00000002;
D3DPSHADECAPS_COLORGOURAUDMONO = $00000004;
D3DPSHADECAPS_COLORGOURAUDRGB = $00000008;
D3DPSHADECAPS_COLORPHONGMONO = $00000010;
D3DPSHADECAPS_COLORPHONGRGB = $00000020;
D3DPSHADECAPS_SPECULARFLATMONO = $00000040;
D3DPSHADECAPS_SPECULARFLATRGB = $00000080;
D3DPSHADECAPS_SPECULARGOURAUDMONO = $00000100;
D3DPSHADECAPS_SPECULARGOURAUDRGB = $00000200;
D3DPSHADECAPS_SPECULARPHONGMONO = $00000400;
D3DPSHADECAPS_SPECULARPHONGRGB = $00000800;
D3DPSHADECAPS_ALPHAFLATBLEND = $00001000;
D3DPSHADECAPS_ALPHAFLATSTIPPLED = $00002000;
D3DPSHADECAPS_ALPHAGOURAUDBLEND = $00004000;
D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED = $00008000;
D3DPSHADECAPS_ALPHAPHONGBLEND = $00010000;
D3DPSHADECAPS_ALPHAPHONGSTIPPLED = $00020000;
D3DPSHADECAPS_FOGFLAT = $00040000;
D3DPSHADECAPS_FOGGOURAUD = $00080000;
D3DPSHADECAPS_FOGPHONG = $00100000;
(* TD3DPrimCaps dwTextureCaps *)
(*
* Perspective-correct texturing is supported
*)
D3DPTEXTURECAPS_PERSPECTIVE = $00000001;
(*
* Power-of-2 texture dimensions are required
*)
D3DPTEXTURECAPS_POW2 = $00000002;
(*
* Alpha in texture pixels is supported
*)
D3DPTEXTURECAPS_ALPHA = $00000004;
(*
* Color-keyed textures are supported
*)
D3DPTEXTURECAPS_TRANSPARENCY = $00000008;
(*
* obsolete, see D3DPTADDRESSCAPS_BORDER
*)
D3DPTEXTURECAPS_BORDER = $00000010;
(*
* Only square textures are supported
*)
D3DPTEXTURECAPS_SQUAREONLY = $00000020;
(*
* Texture indices are not scaled by the texture size prior
* to interpolation.
*)
D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE = $00000040;
(*
* Device can draw alpha from texture palettes
*)
D3DPTEXTURECAPS_ALPHAPALETTE = $00000080;
(*
* Device can use non-POW2 textures if:
* 1) D3DTEXTURE_ADDRESS is set to CLAMP for this texture's stage
* 2) D3DRS_WRAP(N) is zero for this texture's coordinates
* 3) mip mapping is not enabled (use magnification filter only)
*)
D3DPTEXTURECAPS_NONPOW2CONDITIONAL = $00000100;
// 0x00000200L unused
(*
* Device can divide transformed texture coordinates by the
* COUNTth texture coordinate (can do D3DTTFF_PROJECTED)
*)
D3DPTEXTURECAPS_PROJECTED = $00000400;
(*
* Device can do cubemap textures
*)
D3DPTEXTURECAPS_CUBEMAP = $00000800;
D3DPTEXTURECAPS_COLORKEYBLEND = $00001000;
(* TD3DPrimCaps dwTextureFilterCaps *)
D3DPTFILTERCAPS_NEAREST = $00000001;
D3DPTFILTERCAPS_LINEAR = $00000002;
D3DPTFILTERCAPS_MIPNEAREST = $00000004;
D3DPTFILTERCAPS_MIPLINEAR = $00000008;
D3DPTFILTERCAPS_LINEARMIPNEAREST = $00000010;
D3DPTFILTERCAPS_LINEARMIPLINEAR = $00000020;
(* Device3 Min Filter *)
D3DPTF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -