D3DUSAGE

識別資源使用方式的使用選項。

下表摘要說明可用的使用選項。

常數 描述
D3DUSAGE_AUTOGENMIPMAP
資源會自動產生 mipmap。 請參閱 自動產生 Mipmaps (Direct3D 9) 。 磁片區紋理和深度樣板介面/紋理不支援自動產生 Mipmap。 此使用量不適用於系統記憶體 (D3DPOOL_SYSTEMMEM) 中的資源。
D3DUSAGE_DEPTHSTENCIL
資源將會是深度樣板緩衝區。 D3DUSAGE_DEPTHSTENCIL 只能與 D3DPOOL_DEFAULT搭配使用。
D3DUSAGE_DMAP
資源將會是位移對應。
D3DUSAGE_DONOTCLIP
設定為 ,表示頂點緩衝區內容永遠不會需要裁剪。 使用已設定此旗標的緩衝區進行轉譯時, D3DRS_CLIPPING 轉譯狀態必須設定為 false。
D3DUSAGE_DYNAMIC
設定為 ,表示頂點緩衝區需要使用動態記憶體。 這適用于驅動程式,因為它可讓他們決定要放置緩衝區的位置。 一般而言,靜態頂點緩衝區會放在視訊記憶體中,而動態頂點緩衝區會放在 AGP 記憶體中。 請注意,沒有個別的靜態用法。 如果您未指定 D3DUSAGE_DYNAMIC,頂點緩衝區就會變成靜態。 D3DUSAGE_DYNAMIC 會透過 D3DLOCK_DISCARDD3DLOCK_NOOVERWRITE 鎖定旗標嚴格強制執行。 因此, D3DLOCK_DISCARDD3DLOCK_NOOVERWRITE 只在使用 D3DUSAGE_DYNAMIC建立的頂點緩衝區上有效。 這些旗標在靜態頂點緩衝區上無效。 如需詳細資訊,請參閱 管理資源 (Direct3D 9)
如需使用動態頂點緩衝區的詳細資訊,請參閱 效能優化 (Direct3D 9)
D3DUSAGE_DYNAMICD3DPOOL_MANAGED 不相容,不應一起使用。 請參閱 D3DPOOL
紋理可以指定 D3DUSAGE_DYNAMIC。 不過,Managed 紋理無法使用 D3DUSAGE_DYNAMIC。 如需動態紋理的詳細資訊,請參閱 使用動態紋理
D3DUSAGE_NONSECURE
允許由安全應用程式所建立的共用介面,由具有共用控制碼的非安全應用程式開啟。
Direct3D 9 與 Direct3D 9Ex 之間的差異: 此旗標僅適用于 Direct3D 9Ex。
D3DUSAGE_NPATCHES
設定為 ,表示頂點緩衝區用於繪製 N 修補程式。
D3DUSAGE_POINTS
設定為 ,表示頂點或索引緩衝區將用於繪圖點 Sprite。 如果需要軟體頂點處理來模擬點 Sprite,緩衝區將會載入系統記憶體中。
D3DUSAGE_RENDERTARGET
資源將會是轉譯目標。 D3DUSAGE_RENDERTARGET 只能與 D3DPOOL_DEFAULT搭配使用。
D3DUSAGE_RTPATCHES
設定為 ,表示頂點緩衝區用於繪製高階基本類型。
D3DUSAGE_SOFTWAREPROCESSING
如果使用此旗標,則會在軟體中完成頂點處理。 如果未使用此旗標,則會在硬體中完成頂點處理。
當該裝置啟用混合模式或軟體頂點處理 (D3DCREATE_MIXED_VERTEXPROCESSING D3DCREATE_SOFTWARE_VERTEXPROCESSING / ) 時,可以設定D3DUSAGE_SOFTWAREPROCESSING旗標。 D3DUSAGE_SOFTWAREPROCESSING 必須設定緩衝區,才能在混合模式中搭配軟體頂點處理使用,但不應該在混合模式中使用硬體索引處理時設定最佳效能, (D3DCREATE_HARDWARE_VERTEXPROCESSING) 。 不過,當單一緩衝區同時搭配硬體和軟體頂點處理使用時,設定 D3DUSAGE_SOFTWAREPROCESSING 是唯一的選項。 混合 和軟體裝置允許D3DUSAGE_SOFTWAREPROCESSING。
D3DUSAGE_SOFTWAREPROCESSING 搭配 CheckDeviceFormat 使用,以找出特定紋理格式是否可以在軟體頂點處理期間當做頂點紋理使用。 如果可以,則必須在 D3DPOOL_SCRATCH中建立紋理。
D3DUSAGE_TEXTAPI
這個使用旗標必須針對頂點緩衝區和來源介面指定,用於呼叫 ComposeRects。 使用此使用旗標建立的 T exture 無法用於紋理篩選。 使用這個使用旗標建立的頂點緩衝區不能當做輸入資料流程來源使用。
Direct3D 9 與 Direct3D 9Ex 之間的差異: 此旗標僅適用于 Direct3D 9Ex。
D3DUSAGE_WRITEONLY
通知系統應用程式只會寫入頂點緩衝區。 使用此旗標可讓驅動程式選擇最佳的記憶體位置,以便有效率的寫入作業和轉譯。 嘗試從以這項功能建立的頂點緩衝區讀取將會失敗。 使用未指定D3DUSAGE_WRITEONLY的D3DPOOL_DEFAULT所建立的緩衝區可能會受到嚴重的效能負面影響。 D3DUSAGE_WRITEONLY 只會影響 D3DPOOL_DEFAULT 緩衝區的效能。
D3DUSAGE_RESTRICTED_CONTENT
設定此旗標表示資源可能包含受保護的內容。
Direct3D 9 與 Direct3D 9Ex 之間的差異: 此旗標僅適用于 Direct3D 9Ex。
D3DUSAGE_RESTRICT_SHARED_RESOURCE
設定此旗標表示應該限制對共用資源的存取。
Direct3D 9 與 Direct3D 9Ex 之間的差異: 此旗標僅適用于 Direct3D 9Ex。
D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER
設定此旗標表示驅動程式應該限制對共用資源的存取。 呼叫端必須使用驅動程式建立已驗證的通道。 然後,驅動程式應該允許存取嘗試開啟該共用資源的進程。
Direct3D 9 與 Direct3D 9Ex 之間的差異: 此旗標僅適用于 Direct3D 9Ex。

備註

使用量和資源組合

建立資源時或使用 CheckDeviceType 指定使用量,以測試現有資源的功能。 下表識別哪些使用量可以套用至哪些資源類型。

使用方式 頂點緩衝區建立 索引緩衝區建立 紋理建立 Cube 紋理建立 磁片區紋理建立 Surface create 檢查裝置格式
D3DUSAGE_AUTOGENMIPMAP x x x
D3DUSAGE_DEPTHSTENCIL x x x x
D3DUSAGE_DMAP x x
D3DUSAGE_DONOTCLIP x x
D3DUSAGE_DYNAMIC x x x x x x
D3DUSAGE_NONSECURE x x x x x x x
D3DUSAGE_NPATCHES x x
D3DUSAGE_POINTS x x
D3DUSAGE_RTPATCHES x x
D3DUSAGE_RENDERTARGET x x x x
D3DUSAGE_SOFTWAREPROCESSING x x x x x x
D3DUSAGE_TEXTAPI x x
D3DUSAGE_WRITEONLY x x

 

使用 CheckDeviceFormat 來檢查這些使用方式的硬體支援。

此處列出每個資源建立方法。

D3DXCreatexxx文字化函式也會使用其中一些常數值來建立資源。

如需集區類型及其特定使用方式限制的詳細資訊,請參閱 D3DPOOL

規格需求

需求
標頭
D3d9types.h

另請參閱

Direct3D 常數

D3DUSAGE_QUERY

D3DDECLUSAGE

D3DPOOL