共用方式為


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 像素或 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 表示驅動程式可以處理兩組紋理座標,依此類故。

不論驅動程序實際使用的紋理座標數目為何,驅動程式都必須能夠剖析頂點數據中的所有紋理座標。 驅動程式應該使用搭配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 裝置可以執行頂點 tweening。

dwReserved1

保留供系統使用。

dwReserved2

保留供系統使用。

dwReserved3

保留供系統使用。

dwReserved4

保留供系統使用。

備註

驅動程式會配置和零初始化這個結構,並在它支持的成員中設定適當的值。 當使用 GUID_D3DExtendedCaps GUID 呼叫該函式時,驅動程式的 DdGetDriverInfo 函式會傳回這個結構的指標。

當驅動程式填入此結構時,即使用來擷取 lDirect3DDevice3) 等功能 (介面不支援執行緩衝區,它還是可以設定執行緩衝區的值。

規格需求

需求
標頭 d3dhal.h (包含 D3dhal.h)

另請參閱

DdGetDriverInfo