D3DHAL_D3DEXTENDEDCAPS结构(d3dhal.h)

D3DHAL_D3DEXTENDEDCAPS介绍了驱动程序的其他 3D 功能。

语法

typedef struct _D3DHAL_D3DEXTENDEDCAPS {
  DWORD    dwSize;
  DWORD    dwMinTextureWidth;
  DWORD    dwMaxTextureWidth;
  DWORD    dwMinTextureHeight;
  DWORD    dwMaxTextureHeight;
  DWORD    dwMinStippleWidth;
  DWORD    dwMaxStippleWidth;
  DWORD    dwMinStippleHeight;
  DWORD    dwMaxStippleHeight;
  DWORD    dwMaxTextureRepeat;
  DWORD    dwMaxTextureAspectRatio;
  DWORD    dwMaxAnisotropy;
  D3DVALUE dvGuardBandLeft;
  D3DVALUE dvGuardBandTop;
  D3DVALUE dvGuardBandRight;
  D3DVALUE dvGuardBandBottom;
  D3DVALUE dvExtentsAdjust;
  DWORD    dwStencilCaps;
  DWORD    dwFVFCaps;
  DWORD    dwTextureOpCaps;
  WORD     wMaxTextureBlendStages;
  WORD     wMaxSimultaneousTextures;
  DWORD    dwMaxActiveLights;
  D3DVALUE dvMaxVertexW;
  WORD     wMaxUserClipPlanes;
  WORD     wMaxVertexBlendMatrices;
  DWORD    dwVertexProcessingCaps;
  DWORD    dwReserved1;
  DWORD    dwReserved2;
  DWORD    dwReserved3;
  DWORD    dwReserved4;
} D3DHAL_D3DEXTENDEDCAPS;

成员

dwSize

指定此D3DHAL_D3DEXTENDEDCAPS结构的大小(以字节为单位)。

dwMinTextureWidth

指定驱动程序或设备支持的最小纹理宽度(以像素为单位)。 此成员通常是 2 的幂。 这些成员以提示的形式提供给应用程序,应用程序负责在必要时调整纹理大小。

dwMaxTextureWidth

指定驱动程序或设备支持的最大纹理宽度(以像素为单位)。 此成员通常是 2 的幂。 这些成员以提示的形式提供给应用程序,应用程序负责在必要时调整纹理大小。

dwMinTextureHeight

指定驱动程序支持的最小纹理高度(以像素为单位)。 此成员通常是 2 的幂。

dwMaxTextureHeight

指定驱动程序支持的最大纹理高度(以像素为单位)。 此成员通常是 2 的幂。

dwMinStippleWidth

指定驱动程序支持的最小存根宽度(以像素为单位)。

dwMaxStippleWidth

指定驱动程序支持的最大存根宽度(以像素为单位)。

dwMinStippleHeight

指定驱动程序支持的最小存根高度(以像素为单位)。

dwMaxStippleHeight

指定驱动程序支持的最大存根高度(以像素为单位)。

dwMaxTextureRepeat

指定后期规范化纹理索引的整数(子节)位的完整范围。 如果设置了D3DDEVCAPS_TEXREPEATNOTSCALEDBYSIZE位,则此成员可以包装纹理的次数。 如果未设置D3DDEVCAPS_TEXREPEATNOTSCALEDBYSIZE位,则表达式会提供纹理包装的时间:dwMaxTextureRepeat * (纹理大小)。

dwMaxTextureAspectRatio

指定硬件支持的最大纹理纵横比。 此成员通常是 2 的幂。 此最大纵横比以像素为单位度量纹理的高度(以像素为单位)或宽度除以高度,以产生更大的结果。 例如,8192 像素宽(1 像素高或 1 像素宽到 8192 高)的纹理与仅支持最大纵横比 4092 的显示设备无效。 如果硬件在纵横比方面不受限制,dwMaxTextureAspectRatiodwMaxTextureWidthdwMaxTextureHeight

dwMaxAnisotropy

指定D3DRENDERSTATE_ANISOTROPY呈现状态的最大有效值。 如果驱动程序的硬件不支持异性筛选,驱动程序应将此成员设置为 1。 将此成员设置为 0 表示无效值。

dvGuardBandLeft

dvGuardBandTop

dvGuardBandRight

dvGuardBandBottom

指定防护带剪辑区域的屏幕空间坐标(以像素为单位)。 此矩形的左上角有坐标(dvGuardBandLeftdvGuardBandTop)。 左下角有坐标(dvGuardBandRightdvGuardBandBottom)。 此矩形内但视区矩形外部的坐标会自动剪裁。

dvExtentsAdjust

指定向外调整盘区矩形以适应抗锯齿内核所需的像素数。

dwStencilCaps

指定驱动程序或设备支持的模具缓冲区作。 有关下表中显示的模具缓冲区作的进一步说明,请参阅 DirectX SDK 文档中D3DSTENCILOP。 假定模具作对所有三个模具缓冲区作呈现状态有效(D3DRENDERSTATE_STENCILFAIL、D3DRENDERSTATE_STENCILPASS和D3DRENDERSTATE_STENCILZFAIL)。 此成员可以是以下任一值的按位 OR:

价值 模具缓冲区作
D3DSTENCILCAPS_DECR 支持D3DSTENCILOP_DECR作。
D3DSTENCILCAPS_DECRSAT 支持D3DSTENCILOP_DECRSAT作。
D3DSTENCILCAPS_INCR 支持D3DSTENCILOP_INCR作。
D3DSTENCILCAPS_INCRSAT 支持D3DSTENCILOP_INCRSAT作。
D3DSTENCILCAPS_INVERT 支持D3DSTENCILOP_INVERT作。
D3DSTENCILCAPS_KEEP 支持D3DSTENCILOP_KEEP作。
D3DSTENCILCAPS_REPLACE 支持D3DSTENCILOP_REPLACE作。
D3DSTENCILCAPS_ZERO 支持D3DSTENCILOP_ZERO作。

dwFVFCaps

指定驱动程序可以处理的纹理坐标数。 此值可以是范围 0 到 8 中的整数,其中 0 表示驱动程序不支持文本,1 表示驱动程序只能处理一组纹理坐标,2 表示驱动程序可以处理两组纹理坐标,依此类说。

无论驱动程序实际使用的纹理坐标数如何,驱动程序都必须能够分析顶点数据中存在的所有纹理坐标。 驱动程序应使用在 DirectX SDK 文档中介绍的D3DTEXTURESTAGESTATETYPE枚举D3DTSS_TEXCOORDINDEX值提供的索引来确定呈现时要使用的纹理坐标。

dwTextureOpCaps

指定设备支持的纹理作。 有关下表中列出的纹理作的说明,请参阅 DirectX SDK 文档中的D3DTEXTUREOP。 此成员可以是以下值的按位 OR:

价值 支持的纹理作
D3DTEXOPCAPS_ADD 此设备支持D3DTOP_ADD纹理混合作。
D3DTEXOPCAPS_ADDSIGNED 此设备支持D3DTOP_ADDSIGNED纹理混合作。
D3DTEXOPCAPS_ADDSIGNED2X 此设备支持D3DTOP_ADDSIGNED2X纹理混合作。
D3DTEXOPCAPS_ADDSMOOTH 此设备支持D3DTOP_ADDSMOOTH纹理混合作。
D3DTEXOPCAPS_BLENDCURRENTALPHA 此设备支持D3DTOP_BLENDCURRENTALPHA纹理混合作。
D3DTEXOPCAPS_BLENDDIFFUSEALPHA 此设备支持D3DTOP_BLENDDIFFUSEALPHA纹理混合作。
D3DTEXOPCAPS_BLENDFACTORALPHA 此设备支持D3DTOP_BLENDFACTORALPHA纹理混合作。
D3DTEXOPCAPS_BLENDTEXTUREALPHA 此设备支持D3DTOP_BLENDTEXTUREALPHA纹理混合作。
D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 此设备支持D3DTOP_BLENDTEXTUREALPHAPM纹理混合作。
D3DTEXOPCAPS_BUMPENVMAP。 此设备支持D3DTOP_BUMPENVMAP纹理混合作。
D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 此设备支持D3DTOP_BUMPENVMAPLUMINANCE纹理混合作。
D3DTEXOPCAPS_DISABLE 此设备支持D3DTOP_DISABLE纹理混合作。
D3DTEXOPCAPS_DOTPRODUCT3 此设备支持D3DTOP_DOTPRODUCT3纹理混合作。
D3DTEXOPCAPS_MODULATE 此设备支持D3DTOP_MODULATE纹理混合作。
D3DTEXOPCAPS_MODULATE2X 此设备支持D3DTOP_MODULATE2X纹理混合作。
D3DTEXOPCAPS_MODULATE4X 此设备支持D3DTOP_MODULATE4X纹理混合作。
D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 此设备支持D3DTOP_MODULATEALPHA_ADDCOLOR纹理混合作。
D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 此设备支持D3DTOP_MODULATEALPHA_ADDCOLOR纹理混合作。
D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 此设备支持D3DTOP_MODULATEINVALPHA_ADDCOLOR纹理混合作。
D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 此设备支持D3DTOP_MODULATEINVCOLOR_ADDALPHA纹理混合作。
D3DTEXOPCAPS_PREMODULATE 此设备支持D3DTOP_PREMODULATE纹理混合作。
D3DTEXOPCAPS_SELECTARG1 此设备支持D3DTOP_SELECTARG1纹理混合作。
D3DTEXOPCAPS_SELECTARG2 此设备支持D3DTOP_SELECTARG2纹理混合作。
D3DTEXOPCAPS_SUBTRACT 此设备支持D3DTOP_SUBTRACT纹理混合作。

wMaxTextureBlendStages

指定此设备支持的最大纹理混合阶段数。

wMaxSimultaneousTextures

指定可同时绑定到此设备的纹理混合阶段的最大纹理数。 也就是说,wMaxSimultaneousTextures 指定有多少纹理阶段可以通过 lDirect3DDevice7::SetTexture 方法绑定到纹理。 有关此方法的详细信息,请参阅 Microsoft Windows SDK 文档。

dwMaxActiveLights

指定此设备支持的最大活动灯数。 这只需要在支持硬件转换和照明的驱动程序中指定(因此在设备上限中指定D3DDEVCAPS_HWTRANSFORMANDLIGHT)。

dvMaxVertexW

指定此设备支持的最大 W 范围。 这只需要在支持 W 缓冲的驱动程序中指定(因此在光栅化上限中指定D3DPRASTERCAPS_WBUFFER)。 W 深度值的单位取决于正在运行的应用程序。 例如,应用程序可以指定深度(以米为单位)。

wMaxUserClipPlanes

指定支持的最大用户定义的剪辑平面数。

wMaxVertexBlendMatrices

指定顶点混合支持的世界矩阵数。

dwVertexProcessingCaps

指定驱动程序支持的顶点处理上限。 此成员可以是以下值的按位 OR:

价值 意义
D3DVTXPCAPS_DIRECTIONALLIGHTS 设备可以执行方向灯。
D3DVTXPCAPS_LOCALVIEWER 设备可以执行本地查看器。
D3DVTXPCAPS_MATERIALSOURCE7 设备可以执行 DirectX 7.0 颜色材料源作。
D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER 设备不支持非局部查看器模式下的纹理生成。
D3DVTXPCAPS_POSITIONALLIGHTS 设备可以执行位置灯(包括点和点)。
D3DVTXPCAPS_TEXGEN 设备可以执行 texgen。
D3DVTXPCAPS_TEXGEN_SPHEREMAP 设备支持D3DTSS_TCI_SPHEREMAP。
D3DVTXPCAPS_TWEENING 设备可以执行顶点补全。

dwReserved1

保留供系统使用。

dwReserved2

保留供系统使用。

dwReserved3

保留供系统使用。

dwReserved4

保留供系统使用。

言论

驱动程序分配并零初始化此结构,并在它支持的成员中设置适当的值。 驱动程序的 DdGetDriverInfo 函数在使用 GUID_D3DExtendedCaps GUID 调用该函数时返回指向此结构的指针。

当驱动程序填充此结构时,即使用于检索功能的接口(如 lDirect3DDevice3)也不支持执行缓冲区,它也可以设置执行缓冲区的值。

要求

要求 价值
标头 d3dhal.h (包括 D3dhal.h)

另请参阅

DdGetDriverInfo