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。 此最大纵横比作为纹理高度(以像素为单位)除以宽度(以像素为单位)或宽度除以高度的度量值提供,以产生较大结果为准。 例如,对于仅支持最大纵横比 4092 的显示设备,宽度为 8192 像素、高 1 像素或 1 像素宽 x 8192 的纹理无效。 如果硬件的纵横比不受限制, 则 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 表示驱动程序可以处理两组纹理坐标,依此类说。

驱动程序必须能够分析顶点数据中存在的所有纹理坐标,而不考虑驱动程序实际使用的纹理坐标数。 驱动程序应使用D3DTEXTURESTAGESTATETYPE枚举的D3DTSS_TEXCOORDINDEX值(如 DirectX SDK 文档中所述)提供的索引来确定呈现时要使用的纹理坐标集。

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

预留给系统使用。

注解

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

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

要求

要求
Header d3dhal.h (包括 D3dhal.h)

另请参阅

DdGetDriverInfo