D3DCAPS9 結構 (d3d9caps.h)

表示透過 Direct3D 物件公開的硬體功能。

語法

typedef struct _D3DCAPS9 {
  D3DDEVTYPE        DeviceType;
  UINT              AdapterOrdinal;
  DWORD             Caps;
  DWORD             Caps2;
  DWORD             Caps3;
  DWORD             PresentationIntervals;
  DWORD             CursorCaps;
  DWORD             DevCaps;
  DWORD             PrimitiveMiscCaps;
  DWORD             RasterCaps;
  DWORD             ZCmpCaps;
  DWORD             SrcBlendCaps;
  DWORD             DestBlendCaps;
  DWORD             AlphaCmpCaps;
  DWORD             ShadeCaps;
  DWORD             TextureCaps;
  DWORD             TextureFilterCaps;
  DWORD             CubeTextureFilterCaps;
  DWORD             VolumeTextureFilterCaps;
  DWORD             TextureAddressCaps;
  DWORD             VolumeTextureAddressCaps;
  DWORD             LineCaps;
  DWORD             MaxTextureWidth;
  DWORD             MaxTextureHeight;
  DWORD             MaxVolumeExtent;
  DWORD             MaxTextureRepeat;
  DWORD             MaxTextureAspectRatio;
  DWORD             MaxAnisotropy;
  float             MaxVertexW;
  float             GuardBandLeft;
  float             GuardBandTop;
  float             GuardBandRight;
  float             GuardBandBottom;
  float             ExtentsAdjust;
  DWORD             StencilCaps;
  DWORD             FVFCaps;
  DWORD             TextureOpCaps;
  DWORD             MaxTextureBlendStages;
  DWORD             MaxSimultaneousTextures;
  DWORD             VertexProcessingCaps;
  DWORD             MaxActiveLights;
  DWORD             MaxUserClipPlanes;
  DWORD             MaxVertexBlendMatrices;
  DWORD             MaxVertexBlendMatrixIndex;
  float             MaxPointSize;
  DWORD             MaxPrimitiveCount;
  DWORD             MaxVertexIndex;
  DWORD             MaxStreams;
  DWORD             MaxStreamStride;
  DWORD             VertexShaderVersion;
  DWORD             MaxVertexShaderConst;
  DWORD             PixelShaderVersion;
  float             PixelShader1xMaxValue;
  DWORD             DevCaps2;
  float             MaxNpatchTessellationLevel;
  DWORD             Reserved5;
  UINT              MasterAdapterOrdinal;
  UINT              AdapterOrdinalInGroup;
  UINT              NumberOfAdaptersInGroup;
  DWORD             DeclTypes;
  DWORD             NumSimultaneousRTs;
  DWORD             StretchRectFilterCaps;
  D3DVSHADERCAPS2_0 VS20Caps;
  D3DPSHADERCAPS2_0 PS20Caps;
  DWORD             VertexTextureFilterCaps;
  DWORD             MaxVShaderInstructionsExecuted;
  DWORD             MaxPShaderInstructionsExecuted;
  DWORD             MaxVertexShader30InstructionSlots;
  DWORD             MaxPixelShader30InstructionSlots;
} D3DCAPS9;

成員

DeviceType

類型: D3DDEVTYPE

D3DDEVTYPE列舉型別的成員,可識別用於處理頂點的資源類型。

AdapterOrdinal

類型: UINT

建立此 Direct3D 裝置的配接器。 這個序數只適用于傳遞至建立此 Direct3D 裝置之 IDirect3D9 介面的方法。 一律可以藉由呼叫GetDirect3D 來擷取 IDirect3D9介面。

Caps

類型: DWORD

下列驅動程式特定功能。

意義
D3DCAPS_READ_SCANLINE
顯示硬體能夠傳回目前的掃描線。
D3DCAPS_OVERLAY
顯示驅動程式支援重迭 DDI,允許驗證重迭功能。 如需重迭 DDI 的詳細資訊,請參閱 重迭 DDI
Direct3D 9 與 Direct3D 9Ex 之間的差異:

此旗標僅適用于 Direct3D 9Ex。

 

Caps2

類型: DWORD

D3DCAPS2中所識別的驅動程式特定功能。

Caps3

類型: DWORD

D3DCAPS3中所識別的驅動程式特定功能。

PresentationIntervals

類型: DWORD

值的位遮罩,代表可用的簡報交換間隔。

意義
D3DPRESENT_INTERVAL_IMMEDIATE
驅動程式支援立即的簡報交換間隔。
D3DPRESENT_INTERVAL_ONE
驅動程式支援每個螢幕重新整理的簡報交換間隔。
D3DPRESENT_INTERVAL_TWO
驅動程式支援每秒螢幕重新整理的簡報交換間隔。
D3DPRESENT_INTERVAL_THREE
驅動程式支援每三次螢幕重新整理的簡報交換間隔。
D3DPRESENT_INTERVAL_FOUR
驅動程式支援每四個螢幕重新整理的簡報交換間隔。

CursorCaps

類型: DWORD

位元遮罩,指出哪些硬體支援可供資料指標使用。 Direct3D 9 不會定義 Alpha 混合游標功能。

意義
D3DCURSORCAPS_COLOR
硬體支援全色游標。 具體而言,此旗標表示驅動程式至少支援高解析度模式中的硬體色彩游標, (掃描線大於或等於 400) 。
D3DCURSORCAPS_LOWRES
硬體支援全色游標。 具體來說,此旗標表示驅動程式在高解析度和低解析度模式中都支援硬體色彩游標, (掃描行小於 400) 。

DevCaps

類型: DWORD

旗標,識別裝置的功能。

意義
D3DDEVCAPS_CANBLTSYSTONONLOCAL
裝置支援從系統記憶體紋理到非本機視訊記憶體紋理的 Blits。
D3DDEVCAPS_CANRENDERAFTERFLIP
裝置可以在頁面翻轉之後將轉譯命令排入佇列。 如果設定此旗標,應用程式不會變更其行為;這項功能表示裝置相對快速。
D3DDEVCAPS_DRAWPRIMITIVES2
裝置至少可以支援符合 DirectX 5 規範的驅動程式。
D3DDEVCAPS_DRAWPRIMITIVES2EX
裝置至少可以支援符合 DirectX 7 規範的驅動程式。
D3DDEVCAPS_DRAWPRIMTLVERTEX
裝置會匯出 IDirect3DDevice9::D rawPrimitive感知 hal。
D3DDEVCAPS_EXECUTESYSTEMMEMORY
裝置可以使用系統記憶體中的執行緩衝區。
D3DDEVCAPS_EXECUTEVIDEOMEMORY
裝置可以使用來自視訊記憶體的執行緩衝區。
D3DDEVCAPS_HWRASTERIZATION
裝置具有場景點陣化的硬體加速。
D3DDEVCAPS_HWTRANSFORMANDLIGHT
裝置可以支援硬體中的轉換和光源。
D3DDEVCAPS_NPATCHES
裝置支援 N 個修補程式。
D3DDEVCAPS_PUREDEVICE
裝置可以在硬體中支援點陣化、轉換、光源和網底。
D3DDEVCAPS_QUINTICRTPATCHES
裝置支援 quintic Bézier 曲線和 B 曲線。
D3DDEVCAPS_RTPATCHES
裝置支援矩形和三角形修補程式。
D3DDEVCAPS_RTPATCHHANDLEZERO
設定此裝置功能時,硬體架構不需要快取任何資訊,而且未快取的修補程式 (控制碼零) 將會以快取的方式有效率地繪製。 請注意,設定D3DDEVCAPS_RTPATCHHANDLEZERO並不表示可以繪製具有控制碼零的修補程式。 不論是否已設定此上限,一律可以繪製控制碼零修補程式。
D3DDEVCAPS_SEPARATETEXTUREMEMORIES
裝置會從不同的記憶體集區進行模擬。
D3DDEVCAPS_TEXTURENONLOCALVIDMEM
裝置可以從非本機視訊記憶體擷取紋理。
D3DDEVCAPS_TEXTURESYSTEMMEMORY
裝置可以從系統記憶體擷取紋理。
D3DDEVCAPS_TEXTUREVIDEOMEMORY
裝置可以從裝置記憶體擷取紋理。
D3DDEVCAPS_TLVERTEXSYSTEMMEMORY
裝置可以使用系統記憶體中的緩衝區進行已轉換和光線頂點。
D3DDEVCAPS_TLVERTEXVIDEOMEMORY
裝置可以使用來自視訊記憶體的緩衝區進行轉換和光線頂點。

PrimitiveMiscCaps

類型: DWORD

其他驅動程式基本功能。 請參閱 D3DPMISCCAPS

RasterCaps

類型: DWORD

點陣繪圖功能的相關資訊。 此成員可以是下列一或多個旗標。

意義
D3DPRASTERCAPS_ANISOTROPY
裝置支援異向性篩選。
D3DPRASTERCAPS_COLORPERSPECTIVE
裝置會正確地逐一查看色彩檢視方塊。
D3DPRASTERCAPS_DITHER
裝置可以改善色彩解析度。
D3DPRASTERCAPS_DEPTHBIAS
裝置支援舊版深度偏差。 如需真正的深度偏差,請參閱D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS。
D3DPRASTERCAPS_FOGRANGE
裝置支援範圍型的模糊。 在以範圍為基礎的模糊中,物件與檢視器之間的距離是用來計算水氣效果,而不是物件 (的深度,也就是場景中的 z 座標) 。
D3DPRASTERCAPS_FOGTABLE
裝置會藉由參考包含指定圖元深度索引的模糊值查閱表來計算模糊值。
D3DPRASTERCAPS_FOGVERTEX
裝置會在光源作業期間計算模糊值,並在點陣化期間插補水氣值。
D3DPRASTERCAPS_MIPMAPLODBIAS
裝置支援詳細資料偏差調整。 這些偏差調整可讓應用程式讓 mipmap 看起來更簡潔或比平常更清楚。 如需 mipmap 中詳細資料層級偏差的詳細資訊,請參閱D3DSAMP_MIPMAPLODBIAS。
D3DPRASTERCAPS_MULTISAMPLE_TOGGLE
裝置支援使用 D3DRS_MULTISAMPLEANTIALIAS) 在 IDirect3DDevice9::BeginSceneIDirect3DDevice9::EndScene (之間切換多重取樣。
D3DPRASTERCAPS_SCISSORTEST
裝置支援剪刀測試。 請參閱 Scissor Test (Direct3D 9)
D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS
裝置會執行真正的斜率縮放深度偏差。 這與舊版樣式深度偏差相反。
D3DPRASTERCAPS_WBUFFER
裝置支援使用 w 進行深度緩衝處理。
D3DPRASTERCAPS_WFOG
裝置支援 w 型的模糊。 指定檢視方塊投影矩陣時,會使用以 W 為基礎的模糊,但相依投影仍會使用 Z 型的模糊。 系統會將包含 [3][4] 元素中非零值的投影矩陣視為透視投影矩陣。
D3DPRASTERCAPS_ZBUFFERLESSHSR
裝置可以執行隱藏表面移除 (HSR) ,而不需要應用程式排序多邊形,而不需要配置深度緩衝區。 這會留下更多紋理的視訊記憶體。 用來執行 HSR 的方法與硬體相關,而且對應用程式而言是透明的。

如果沒有深度緩衝區介面與轉譯目標介面相關聯,且深度緩衝區比較測試會啟用 (,也就是當 與D3DRS_ZENABLE 列舉常數相關聯的狀態值設定為 TRUE) 時,就會執行 Z 無緩衝區 HSR。

D3DPRASTERCAPS_ZFOG
裝置支援 z 型的模糊。
D3DPRASTERCAPS_ZTEST
裝置可以執行 z-test 作業。 這會有效地轉譯基本類型,並指出是否已轉譯任何 Z 圖元。

ZCmpCaps

類型: DWORD

Z 緩衝區比較功能。 此成員可以是下列一或多個旗標。

意義
D3DPCMPCAPS_ALWAYS
一律通過 z-test。
D3DPCMPCAPS_EQUAL
如果新的 z 等於目前的 z,則通過 z-test。
D3DPCMPCAPS_GREATER
如果新的 z 大於目前的 z,請通過 z-test。
D3DPCMPCAPS_GREATEREQUAL
如果新的 z 大於或等於目前的 z,請通過 z-test。
D3DPCMPCAPS_LESS
如果新的 z 小於目前的 z,請通過 z 測試。
D3DPCMPCAPS_LESSEQUAL
如果新的 z 小於或等於目前的 z,請通過 z 測試。
D3DPCMPCAPS_NEVER
一律會失敗 z-test。
D3DPCMPCAPS_NOTEQUAL
如果新的 z 不等於目前的 z,請通過 z-test。

SrcBlendCaps

類型: DWORD

來源混合功能。 此成員可以是下列一或多個旗標。 (來源和目的地的 RGBA 值是由下標 s 和 d.)

意義
D3DPBLENDCAPS_BLENDFACTOR
驅動程式同時支援D3DBLEND_BLENDFACTOR和D3DBLEND_INVBLENDFACTOR。 請參閱 D3DBLEND
D3DPBLENDCAPS_BOTHINVSRCALPHA
來源混合因數 (1 - As、 1 - As、1 - As、1 - As) 和目的地混合因數 (As、As、As、As) ;會覆寫目的地混合選取範圍。
D3DPBLENDCAPS_BOTHSRCALPHA
驅動程式支援混合模式D3DBLEND_BOTHSRCALPHA。 (此混合模式已過時。如需詳細資訊,請參閱 D3DBLEND.)
D3DPBLENDCAPS_DESTALPHA
Blend Factor (Ad、Ad、Ad、Ad) 。
D3DPBLENDCAPS_DESTCOLOR
Blend Factor (Rd、Gd、Bd、Ad) 。
D3DPBLENDCAPS_INVDESTALPHA
Blend Factor (1 - Ad, 1 - Ad, 1 - Ad, 1 - Ad) 。
D3DPBLENDCAPS_INVDESTCOLOR
Blend Factor (1 - Rd、1 - Gd、1 - Bd、1 - Ad) 。
D3DPBLENDCAPS_INVSRCALPHA
Blend Factor (1 - As, 1 - As, 1 - As, 1 - As, 1 - As) 。
D3DPBLENDCAPS_INVSRCCOLOR
Blend Factor (1 - Rs、1 - Gs、1 - Bs、1 - As) 。
D3DPBLENDCAPS_INVSRCCOLOR2
Blend Factor (1 - PSOutColor[1]r, 1 - PSOutColor[1]g, 1 - PSOutColor[1]b, 未使用) ) 。 請參閱 轉譯目標混合
Direct3D 9 與 Direct3D 9Ex 之間的差異:

此旗標僅適用于 Direct3D 9Ex。

 
D3DPBLENDCAPS_ONE
Blend Factor (1、1、1、1) 。
D3DPBLENDCAPS_SRCALPHA
Blend Factor (As、As、As、As) 。
D3DPBLENDCAPS_SRCALPHASAT
Blend Factor (f、f、f、1) ;f = min (As, 1 - Ad) 。
D3DPBLENDCAPS_SRCCOLOR
Blend Factor (Rs、Gs、Bs、As) 。
D3DPBLENDCAPS_SRCCOLOR2
Blend Factor (PSOutColor[1]r、PSOutColor[1]g、PSOutColor[1]b,未使用) 。 請參閱 轉譯目標混合
Direct3D 9 與 Direct3D 9Ex 之間的差異:

此旗標僅適用于 Direct3D 9Ex。

 
D3DPBLENDCAPS_ZERO
Blend Factor (0、0、0、0) 。

DestBlendCaps

類型: DWORD

目的地混合功能。 這個成員可以是為 SrcBlendCaps 成員定義的相同功能。

AlphaCmpCaps

類型: DWORD

Alpha 測試比較功能。 此成員可以包含為 ZCmpCaps 成員定義的相同功能旗標。 如果此成員只包含D3DPCMPCAPS_ALWAYS功能,或只包含D3DPCMPCAPS_NEVER功能,則驅動程式不支援 Alpha 測試。 否則,旗標會識別 Alpha 測試支援的個別比較。

ShadeCaps

類型: DWORD

網底作業功能。 一般而言,假設裝置完全支援指定的命令,它支援D3DSHADE_FLAT模式, (如 D3DSHADEMODE 列舉類型中所指定) 。 此旗標會指定驅動程式是否可以支援 Gouraud 網底,以及是否支援 Alpha 色彩元件。 不支援 Alpha 元件時,產生的色彩 Alpha 值為隱含 255。 這是最大可能的 Alpha (,也就是 Alpha 元件處於完整濃度) 。

三角形的色彩、反射醒目提示、模糊和 Alpha 插補項各有功能旗標,應用程式可用來找出裝置驅動程式如何實作它們。

此成員可以是下列一或多個旗標。

意義
D3DPSHADECAPS_ALPHAGOURAUDBLEND
裝置可以支援適用于 Gouraud 混合透明度的 Alpha 元件, (D3DSHADEMODE 列舉類型的D3DSHADE_GOURAUD狀態) 。 在此模式中,基本型別的 Alpha 色彩元件會在頂點提供,並與其他色彩元件一起插入臉部。
D3DPSHADECAPS_COLORGOURAUDRGB
裝置可以支援彩色 Gouraud 網底。 在此模式中,每個頂點色彩元件 (紅色、綠色和藍色) 會在三角形臉部之間插補。
D3DPSHADECAPS_FOGGOURAUD
裝置可以在 Gouraud 網底模式中支援水氣。
D3DPSHADECAPS_SPECULARGOURAUDRGB
裝置支援反射醒目提示的 Gouraud 網底。

TextureCaps

類型: DWORD

其他紋理對應功能。 此成員可以是下列一或多個旗標。

意義
D3DPTEXTURECAPS_ALPHA
支援紋理圖元中的 Alpha。
D3DPTEXTURECAPS_ALPHAPALETTE
裝置可以從紋理調色盤繪製 Alpha。
D3DPTEXTURECAPS_CUBEMAP
支援 Cube 紋理。
D3DPTEXTURECAPS_CUBEMAP_POW2
裝置要求 Cube 紋理貼圖的維度指定為兩個的乘冪。
D3DPTEXTURECAPS_MIPCUBEMAP
裝置支援已套用的立方體紋理。
D3DPTEXTURECAPS_MIPMAP
裝置支援已套用的紋理。
D3DPTEXTURECAPS_MIPVOLUMEMAP
裝置支援已套用的磁片區紋理。
D3DPTEXTURECAPS_NONPOW2CONDITIONAL
也會設定D3DPTEXTURECAPS_POW2,有條件地支援使用 2D 紋理,且維度不是兩個。 如果符合下列所有需求,公開這項功能的裝置可以使用這類紋理。
  • 紋理階段的紋理定址模式會設定為D3DTADDRESS_CLAMP。
  • 已停用紋理階段的紋理換行 (D3DRS_WRAP n 設定為 0) 。
  • mipmapping 不在使用中, (只使用放大篩選器) 。
  • 紋理格式不得透過D3DFMT_DXT5 D3DFMT_DXT1

如果未設定此旗標,而且D3DPTEXTURECAPS_POW2也未設定,則會針對 2D 紋理提供無條件支援,且維度不是兩個。

不是兩個乘冪的紋理無法在一個階段設定,該階段會根據著色器計算來讀取 (,例如 bem - pstexm3x3 - 圖元著色器 1_0 到 1_3 版的 ps 指示) 。 例如,這些紋理可用來儲存要送入紋理讀取的凸塊,但不會儲存在 texbem - pstexbeml - pstexm3x3spec - ps中使用的環境對應。 這表示使用著色器內計算的紋理座標,無法定址或取樣不是兩個維度的紋理。 這種類型的作業稱為相依讀取,無法在這些類型的紋理上執行。

D3DPTEXTURECAPS_NOPROJECTEDBUMPENV
裝置不支援可程式化和固定函式著色器中投影的碰撞環境查閱作業。
D3DPTEXTURECAPS_PERSPECTIVE
支援檢視方塊更正文字。
D3DPTEXTURECAPS_POW2
如果未設定D3DPTEXTURECAPS_NONPOW2CONDITIONAL,則所有紋理都必須有寬度和高度指定為兩個的乘冪。 這項需求不適用於 Cube 紋理或磁片區紋理。

如果同時設定D3DPTEXTURECAPS_NONPOW2CONDITIONAL,請有條件地支援使用 2D 紋理,且維度不是兩個。 請參閱D3DPTEXTURECAPS_NONPOW2CONDITIONAL描述。

如果未設定此旗標,而且D3DPTEXTURECAPS_NONPOW2CONDITIONAL也未設定,則會針對 2D 紋理提供無條件支援,且維度不是兩個。

D3DPTEXTURECAPS_PROJECTED
支援D3DTTFF_PROJECTED紋理轉換旗標。 套用時,裝置會將轉換的紋理座標除以最後一個紋理座標。 如果這項功能存在,則投影分割會根據圖元進行。 如果這項功能不存在,但投影分割仍然需要發生,則 Direct3D 執行時間會以每個頂點為基礎執行。
D3DPTEXTURECAPS_SQUAREONLY
所有紋理都必須是正方形。
D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE
在插補之前,紋理索引不會依紋理大小進行調整。
D3DPTEXTURECAPS_VOLUMEMAP
裝置支援磁片區紋理。
D3DPTEXTURECAPS_VOLUMEMAP_POW2
裝置要求磁片區紋理貼圖的維度指定為兩個的乘冪。

TextureFilterCaps

類型: DWORD

紋理的紋理篩選功能。 每個階段篩選功能會反映執行多重紋理混合時,紋理階段支援哪些篩選模式。 這個成員可以是 D3DPTFILTERCAPS中定義的個別紋理篩選旗標的任何組合。

CubeTextureFilterCaps

類型: DWORD

Cube 紋理的紋理篩選功能。 每個階段篩選功能會反映執行多重紋理混合時,紋理階段支援哪些篩選模式。 這個成員可以是 D3DPTFILTERCAPS中定義的個別紋理篩選旗標的任何組合。

VolumeTextureFilterCaps

類型: DWORD

磁片區紋理的紋理篩選功能。 每個階段篩選功能會反映執行多重紋理混合時,紋理階段支援哪些篩選模式。 這個成員可以是 D3DPTFILTERCAPS中定義的個別紋理篩選旗標的任何組合。

TextureAddressCaps

類型: DWORD

紋理物件的紋理定址功能。 此成員可以是下列一或多個旗標。

意義
D3DPTADDRESSCAPS_BORDER
裝置支援將範圍 [0.0, 1.0] 以外的座標設定為框線色彩,如D3DSAMP_BORDERCOLOR紋理階段狀態所指定。
D3DPTADDRESSCAPS_CLAMP
裝置可以將紋理固定在位址上。
D3DPTADDRESSCAPS_INDEPENDENTUV
裝置可以分隔紋理的紋理定址模式,以及紋理的 v 座標。 這項功能會對應至D3DSAMP_ADDRESSU和D3DSAMP_ADDRESSV轉譯狀態值。
D3DPTADDRESSCAPS_MIRROR
裝置可以將紋理鏡像到位址。
D3DPTADDRESSCAPS_MIRRORONCE
裝置可以採用紋理座標的絕對值 (因此,鏡像大約為 0) ,然後限制為最大值。
D3DPTADDRESSCAPS_WRAP
裝置可以將紋理包裝到位址。

VolumeTextureAddressCaps

類型: DWORD

磁片區紋理的紋理定址功能。 這個成員可以是針對 TextureAddressCaps 成員定義的一或多個旗標。

LineCaps

類型: DWORD

定義線條繪製基本類型的功能。

意義
D3DLINECAPS_ALPHACMP
支援 Alpha 測試比較。
D3DLINECAPS_ANTIALIAS
支援反鋸齒線。
D3DLINECAPS_BLEND
支援來源混合。
D3DLINECAPS_FOG
支援水氣。
D3DLINECAPS_TEXTURE
支援紋理對應。
D3DLINECAPS_ZTEST
支援 z 緩衝區比較。

MaxTextureWidth

類型: DWORD

此裝置的紋理寬度上限。

MaxTextureHeight

類型: DWORD

此裝置的紋理高度上限。

MaxVolumeExtent

類型: DWORD

三個維度的最大值 (寬度、高度和深度) 磁片區紋理。

MaxTextureRepeat

類型: DWORD

這個數位代表後正規化紋理座標整數位的最大範圍。 紋理座標會儲存為 32 位帶正負號的整數,使用 27 位來儲存整數部分,以及浮點分數的 5 位。 最大整數索引 2ー⁷ 是用來判斷最大紋理座標,視硬體如何調整紋理座標而定。

某些硬體會報告上限D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE。 在此情況下,裝置會依紋理大小延遲縮放紋理座標,直到插入和套用紋理位址模式之後,紋理可以包裝的次數是由 MaxTextureRepeat 中的整數值所指定。

較不常說,某些硬體D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE未設定,且裝置會在插補之前,使用最高層級) 的詳細資料 (,依紋理大小調整紋理座標。 這會限制紋理可包裝至 MaxTextureRepeat / 紋理大小的次數。

例如,假設 MaxTextureRepeat 等於 32k,且紋理的大小為 4k。 如果硬體設定D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE,則紋理可以包裝的次數等於 MaxTextureRepeat,在此範例中為 32k。 否則,可包裝紋理的次數等於 MaxTextureRepeat 除以紋理大小,在此範例中為 32k/4k。

MaxTextureAspectRatio

類型: DWORD

硬體支援的最大紋理外觀比例,通常是 2 的電源。

MaxAnisotropy

類型: DWORD

D3DSAMP_MAXANISOTROPY紋理階段狀態的有效值上限。

MaxVertexW

類型: float

裝置支援的最大 W 型深度值。

GuardBandLeft

類型: float

防護帶裁剪區域的螢幕空間座標。 這個矩形內的座標,但在檢視區矩形外部會自動裁剪。

GuardBandTop

類型: float

防護帶裁剪區域的螢幕空間座標。 這個矩形內的座標,但在檢視區矩形外部會自動裁剪。

GuardBandRight

類型: float

防護帶裁剪區域的螢幕空間座標。 這個矩形內的座標,但在檢視區矩形外部會自動裁剪。

GuardBandBottom

類型: float

防護帶裁剪區域的螢幕空間座標。 這個矩形內的座標,但在檢視區矩形外部會自動裁剪。

ExtentsAdjust

類型: float

要向外調整範圍矩形的圖元數目,以容納反鋸齒核心。

StencilCaps

類型: DWORD

指定支援的樣板緩衝區作業旗標。 樣板作業假設對所有三個樣板緩衝區作業都有效,轉譯狀態為 (D3DRS_STENCILFAIL、D3DRS_STENCILPASS和D3DRS_STENCILZFAIL) 。

如需詳細資訊,請參閱 D3DSTENCILCAPS

FVFCaps

類型: DWORD

彈性頂點格式功能。

意義
D3DFVFCAPS_DONOTSTRIPELEMENTS
最好不要移除頂點元素。 也就是說,如果頂點格式包含未搭配目前轉譯狀態使用的元素,就不需要重新產生頂點。 如果這個功能旗標不存在,則從頂點格式移除多餘的元素可提供更佳的效能。
D3DFVFCAPS_PSIZE
點大小取決於轉譯狀態或頂點資料。 如果使用 FVF,點大小可能來自頂點宣告中的點大小資料。 否則,點大小取決於轉譯狀態D3DRS_POINTSIZE。 如果應用程式同時提供 (轉譯狀態和頂點宣告) 的點大小,頂點資料會覆寫轉譯狀態資料。
D3DFVFCAPS_TEXCOORDCOUNTMASK
遮罩 FVFCaps 的低 WORD。 這些位會轉換成 WORD 資料類型,描述裝置可以同時用於多個紋理混合的紋理座標集總數。 (您可以針對任何頂點使用最多八個紋理座標集,但裝置只能使用指定的紋理座標集數目進行混合。)

TextureOpCaps

類型: DWORD

描述此裝置所支援紋理作業的旗標組合。 定義下列旗標。

意義
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_LERP
支援D3DTOP_LERP紋理混合作業。
D3DTEXOPCAPS_MODULATE
支援D3DTOP_MODULATE紋理混合作業。
D3DTEXOPCAPS_MODULATE2X
支援D3DTOP_MODULATE2X紋理混合作業。
D3DTEXOPCAPS_MODULATE4X
支援D3DTOP_MODULATE4X紋理混合作業。
D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR
支援D3DTOP_MODULATEALPHA_ADDCOLOR紋理混合作業。
D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA
支援D3DTOP_MODULATECOLOR_ADDALPHA紋理混合作業。
D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR
支援D3DTOP_MODULATEINVALPHA_ADDCOLOR紋理混合作業。
D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA
支援D3DTOP_MODULATEINVCOLOR_ADDALPHA紋理混合作業。
D3DTEXOPCAPS_MULTIPLYADD
支援D3DTOP_MULTIPLYADD紋理混合作業。
D3DTEXOPCAPS_PREMODULATE
支援D3DTOP_PREMODULATE紋理混合作業。
D3DTEXOPCAPS_SELECTARG1
支援D3DTOP_SELECTARG1紋理混合作業。
D3DTEXOPCAPS_SELECTARG2
支援D3DTOP_SELECTARG2紋理混合作業。
D3DTEXOPCAPS_SUBTRACT
支援D3DTOP_SUBTRACT紋理混合作業。

MaxTextureBlendStages

類型: DWORD

固定函式管線中支援的紋理混合階段數目上限。 此值是可用的混合器數目。 在可程式化的圖元管線中,這會對應至圖元著色器指令所使用的唯一紋理暫存器數目。

MaxSimultaneousTextures

類型: DWORD

可以同時系結至固定函式管線取樣器階段的紋理數目上限。 如果相同的紋理系結至兩個取樣器階段,則會計算為兩個紋理。

此值在可程式化管線中沒有任何意義,其中取樣器階段的數目取決於每個圖元著色器版本。 每個圖元著色器版本也會決定紋理宣告指令的數目。 請參閱 圖元著色器

VertexProcessingCaps

類型: DWORD

頂點處理功能。 對於指定的實體裝置,這項功能可能會因提供給 CreateDevice的參數而有所不同。 請參閱 D3DVTXPCAPS

MaxActiveLights

類型: DWORD

可以同時作用的光線數目上限。 對於指定的實體裝置,這項功能可能會因提供給 CreateDevice的參數而有所不同。

MaxUserClipPlanes

類型: DWORD

支援的使用者定義裁剪平面數目上限。 這個成員可以是 0。 針對指定的實體裝置,這項功能可能會因提供給 CreateDevice的參數而有所不同。

MaxVertexBlendMatrices

類型: DWORD

執行多矩陣頂點混合時,此裝置可以套用的最大矩陣數目。 針對指定的實體裝置,這項功能可能會因提供給 CreateDevice的參數而有所不同。

MaxVertexBlendMatrixIndex

類型: DWORD

DWORD 值,指定可使用每個頂點索引編制索引的矩陣索引上限。 矩陣的數目是 MaxVertexBlendMatrixIndex + 1,這是矩陣調色盤的大小。 如果頂點資料中有需要混合光源的正常值,則矩陣數目是這個功能旗標所指定的數位一半。 如果 MaxVertexBlendMatrixIndex 設定為零,驅動程式不支援索引頂點混合。 如果此值不是零,則索引的有效範圍是零到 MaxVertexBlendMatrixIndex。

MaxVertexBlendMatrixIndex 的零值表示驅動程式不支援索引矩陣。

使用軟體頂點處理時,可以使用 256 個矩陣進行索引的頂點混合,而不需要一般混合。

針對指定的實體裝置,這項功能可能會因提供給 CreateDevice的參數而有所不同。

MaxPointSize

類型: float

點基本類型的大小上限。 如果設定為 1.0f,則裝置不支援點大小控制。 範圍大於或等於 1.0f。

MaxPrimitiveCount

類型: DWORD

每個 DrawPrimitive 呼叫的基本類型數目上限。 有兩種案例:

  • 如果 MaxPrimitiveCount 不等於0xffff,您可以使用每個繪製呼叫來繪製最多 MaxPrimitiveCount 基本類型。
  • 不過,如果 MaxPrimitiveCount 等於 0xffff,您仍然可以在大部分的 MaxPrimitiveCount 基本類型上繪製,但您也可以使用不超過 MaxPrimitiveCount 唯一頂點 (,因為每個基本類型都可以使用三個不同的頂點) 。

MaxVertexIndex

類型: DWORD

硬體頂點處理所支援的索引大小上限。 可以建立 32 位索引緩衝區;不過,除非此值大於 0x0000FFFF,否則您將無法使用索引緩衝區轉譯。

MaxStreams

類型: DWORD

SetStreamSource的並行資料流程數目上限。 有效範圍是 1 到 16。 請注意,如果此值為 0,則驅動程式不是 Direct3D 9 驅動程式。

MaxStreamStride

類型: DWORD

SetStreamSource的最大步幅。

VertexShaderVersion

類型: DWORD

兩個數字,代表頂點著色器主要和子版本。 如需每個頂點著色器版本所支援指示的詳細資訊,請參閱版本1_x版本 2_0、版本 2_0擴充版本 3_0

MaxVertexShaderConst

類型: DWORD

保留給常數的頂點 著色器頂點著色器數目

PixelShaderVersion

類型: DWORD

代表圖元著色器主要和子版本的兩個數字。 如需每個圖元著色器版本所支援指示的詳細資訊,請參閱版本1_x版本 2_0、版本 2_0擴充版本 3_0

PixelShader1xMaxValue

類型: float

圖元著色器算術元件的最大值。 這個值表示圖元色彩混合作業所支援之值的內部範圍。 在其回報的範圍內,實作必須允許資料通過未經修改的圖元處理, (未取樣) 。 一般而言,這個成員的值是絕對值。 例如,1.0 表示範圍是 -1.0 到 1,而 8.0 則表示範圍是 -8.0 到 8.0。 對於支援圖元著色器的任何硬體,此值必須為 > 1.0。

DevCaps2

類型: DWORD

調適型鑲嵌的設備磁碟機功能。 如需詳細資訊,請參閱 D3DDEVCAPS2

MaxNpatchTessellationLevel

TBD

Reserved5

TBD

MasterAdapterOrdinal

類型: UINT

這個數位表示哪個裝置是這個次級的主要裝置。 此數位取自與配接器值相同的空間。

針對多頭支援,一個頭部將代表主前端,而相同卡片上的所有其他頭部都會表示為次級頭部。 如果系統中有一個以上的多頭介面卡,則來自一個多頭介面卡的主卡及其從屬稱為群組。

AdapterOrdinalInGroup

類型: UINT

這個數位表示 API 參考頭部的順序。 主介面卡的值一律為 0。 這些值不會對應至配接器序數。 它們只適用于群組內的頭部。

NumberOfAdaptersInGroup

類型: UINT

只有在主要) 時,此配接器群組中的介面卡數目才會 (。 這將會是傳統介面卡的 1。 多頭卡的主要介面卡值將會大於 1。 多頭卡的次級介面卡值將會是 0。 每個卡片最多可以有一個主圖形,但可能會有許多次級。

DeclTypes

類型: DWORD

頂點宣告中包含的一或多個資料類型組合。 請參閱 D3DDTCAPS

NumSimultaneousRTs

類型: DWORD

同時轉譯目標的數目。 這個數位至少必須是一個。

StretchRectFilterCaps

類型: DWORD

描述 StretchRect所支援之作業的常陣列合。 此欄位中可設定的旗標如下:

常數 描述
D3DPTFILTERCAPS_MINFPOINT 裝置支援縮小矩形的點樣本篩選。 使用 D3DTEXF_POINT 呼叫 StretchRect 來要求此篩選類型。
D3DPTFILTERCAPS_MAGFPOINT 裝置支援放大矩形的點樣本篩選。 使用 D3DTEXF_POINT 呼叫 StretchRect 來要求此篩選類型。
D3DPTFILTERCAPS_MINFLINEAR 裝置支援用於縮小矩形的雙線性插補篩選。 使用 D3DTEXF_LINEAR 呼叫 StretchRect 來要求此篩選類型。
D3DPTFILTERCAPS_MAGFLINEAR 裝置支援放大矩形的雙線性插補篩選。 使用 D3DTEXF_LINEAR 呼叫 StretchRect 來要求此篩選類型。
 

如需詳細資訊,請參閱 D3DTEXTUREFILTERTYPED3DTEXTUREFILTERTYPE

VS20Caps

類型: D3DVSHADERCAPS2_0

裝置支援頂點著色器 2_0 版擴充功能。 請參閱 D3DVSHADERCAPS2_0

PS20Caps

類型: D3DPSHADERCAPS2_0

裝置支援圖元著色器 2_0 版擴充功能。 請參閱 D3DPSHADERCAPS2_0

VertexTextureFilterCaps

類型: DWORD

裝置支援頂點著色器紋理篩選功能。 請參閱 D3DPTFILTERCAPS

MaxVShaderInstructionsExecuted

類型: DWORD

使用流程式控制制時可以執行的頂點著色器指令數目上限。 可以進行程式設計的最大指令數目是 MaxVertexShader30InstructionSlots。

MaxPShaderInstructionsExecuted

類型: DWORD

使用流程式控制制時可以執行的圖元著色器指令數目上限。 可以進行程式設計的最大指令數目是 MaxPixelShader30InstructionSlots。

MaxVertexShader30InstructionSlots

類型: DWORD

支援的頂點著色器指令位置數目上限。 此上限可設定的最大值為 32768。 需要支援vs_3_0的裝置,才能支援至少 512 個指令位置。

MaxPixelShader30InstructionSlots

類型: DWORD

支援的圖元著色器指令位置數目上限。 此上限可設定的最大值為 32768。 需要支援ps_3_0的裝置,才能支援至少 512 個指令位置。

備註

MaxTextureBlendStages 和 MaxSimultaneousTextures 成員看起來可能很類似,但它們包含不同的資訊。 MaxTextureBlendStages 成員包含目前裝置所支援的紋理混合階段總數,而 MaxSimultaneousTextures 成員會描述這些階段有多少階段可以使用 SetTexture 方法來系結紋理。

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

一般而言,如果您使用紋理,然後在場景中修改它,可能會發生效能問題。 請確定目前BeginScene 和 EndScene區塊中未使用任何紋理,除非絕對必要。 在場景中使用極高紋理的情況下,結果未定義。 當您修改場景中使用的紋理,而且沒有可用的備用紋理記憶體時,就會發生這種情況。 對於這類系統,z 緩衝區的內容在 EndScene 會變成無效。 應用程式不應該在 BeginScene/EndScene 配對內的這種類型的硬體上呼叫 UpdateSurface 或從後端緩衝區呼叫。 此外,如果已設定D3DPRASTERCAPS_ZBUFFERLESSHSR功能旗標,應用程式就不應該嘗試存取 z 緩衝區。 最後,應用程式不應該鎖定 BeginScene/EndScene 配對內的背景緩衝區或 z 緩衝區。

Direct3D 9 不支援下列有關已套用紋理的旗標。

  • D3DPTFILTERCAPS_LINEAR
  • D3DPTFILTERCAPS_LINEARMIPLINEAR
  • D3DPTFILTERCAPS_LINEARMIPNEAREST
  • D3DPTFILTERCAPS_MIPNEAREST
  • D3DPTFILTERCAPS_NEAREST

需求

   
標頭 d3d9caps.h

另請參閱

Direct3D 結構

GetDeviceCaps