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 的最大外觀比例。 如果硬體不受限於外觀比例, dwMaxTextureAspectRatio 是 dwMaxTextureWidth 和 dwMaxTextureHeight 的較大。
dwMaxAnisotropy
指定D3DRENDERSTATE_ANISOTROPY轉譯狀態的有效值上限。 如果驅動程式的硬體不支援異向性篩選,驅動程式應該將此成員設定為 1。 將此成員設定為 0 代表無效的值。
dvGuardBandLeft
dvGuardBandTop
dvGuardBandRight
dvGuardBandBottom
指定防護訊號剪輯區域的螢幕空間座標,以像素為單位。 此矩形左上角的座標 (dvGuardBandLeft、 dvGuardBandTop) 。 左下角的座標 (dvGuardBandRight、 dvGuardBandBottom) 。 這個矩形內的座標,但在檢視區矩形外部會自動裁剪。
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) |