識別資源使用方式的使用選項。
下表摘要說明可用的使用選項。
| 常數 | 說明 |
|---|---|
|
資源會自動產生Mipmap。 請參閱 自動產生 Mipmaps (Direct3D 9)。 磁碟區紋理和深度樣板表面/紋理不支持自動產生Mipmap。 此使用方式對系統記憶體中的資源無效(D3DPOOL_SYSTEMMEM)。 |
|
資源將是深度樣板緩衝區。
D3DUSAGE_DEPTHSTENCIL 只能與 D3DPOOL_DEFAULT搭配使用。 |
|
資源將會是位移對應。 |
|
設定為 ,表示頂點緩衝區內容永遠不會需要裁剪。 使用已設定此旗標的緩衝區進行轉譯時, D3DRS_CLIPPING轉譯 狀態必須設定為 false。 |
|
設定為 ,表示頂點緩衝區需要使用易失記憶體。 這對於驅動程式很有用,因為它可讓他們決定要放置緩衝區的位置。 一般而言,靜態頂點緩衝區會放在視訊記憶體中,而動態頂點緩衝區則放在AGP記憶體中。 請注意,沒有個別的靜態用法。 如果您未指定 D3DUSAGE_DYNAMIC,則頂點緩衝區會設為靜態。
D3DUSAGE_DYNAMIC 會透過 D3DLOCK_DISCARD 和 D3DLOCK_NOOVERWRITE 鎖定旗標嚴格強制執行。 因此, D3DLOCK_DISCARD 和 D3DLOCK_NOOVERWRITE 僅適用於使用 D3DUSAGE_DYNAMIC 建立的頂點緩衝區。 它們不是靜態頂點緩衝區的有效旗標。 如需詳細資訊,請參閱管理資源(Direct3D 9)。 如需使用動態頂點緩衝區的詳細資訊,請參閱 效能優化 (Direct3D 9) 。 D3DUSAGE_DYNAMIC 和 D3DPOOL_MANAGED 不相容,不應一起使用。 請參閱 D3DPOOL。 紋理可以指定 D3DUSAGE_DYNAMIC。 不過,受控紋理無法使用 D3DUSAGE_DYNAMIC。 如需動態紋理的詳細資訊,請參閱 使用動態紋理。 |
|
允許具有共用句柄的非安全應用程式開啟安全應用程式所建立的共用介面。 Direct3D 9 與 Direct3D 9Ex 之間的差異: 此旗標僅適用於 Direct3D 9Ex。 |
|
設定為 ,表示頂點緩衝區用於繪製 N 修補程式。 |
|
設定為 ,表示頂點或索引緩衝區將用於繪製點 Sprite。 如果需要軟體頂點處理來模擬點 Sprite,緩衝區將會載入系統記憶體中。 |
|
資源將會是轉譯目標。
D3DUSAGE_RENDERTARGET 只能與 D3DPOOL_DEFAULT搭配使用。 |
|
設定為 ,表示頂點緩衝區用於繪製高階基本類型。 |
|
如果使用這個旗標,則會在軟體中完成頂點處理。 如果未使用此旗標,則會在硬體中完成頂點處理。 當該裝置啟用混合模式或軟體頂點處理(D3DCREATE_MIXED_VERTEXPROCESSING D3DCREATE_SOFTWARE_VERTEXPROCESSING / )時,可以設定D3DUSAGE_SOFTWAREPROCESSING旗標。 D3DUSAGE_SOFTWAREPROCESSING 必須設定緩衝區,才能搭配混合模式中的軟體頂點處理使用,但在混合模式中使用硬體索引處理時,不應該設定為最佳效能 D3DCREATE_HARDWARE_VERTEXPROCESSING。 不過,當單一緩衝區同時用於硬體和軟體頂點處理時, 設定D3DUSAGE_SOFTWAREPROCESSING 是唯一的選項。 混合 和軟體裝置允許D3DUSAGE_SOFTWAREPROCESSING。 D3DUSAGE_SOFTWAREPROCESSING 會與 CheckDeviceFormat 搭配使用,以找出特定紋理格式是否可以在軟體頂點處理期間當做頂點紋理使用。 如果可以,則必須在 D3DPOOL_SCRATCH中建立紋理。 |
|
這個使用旗標必須針對頂點緩衝區和來源介面指定,用於呼叫 ComposeRects。 使用此使用旗標建立的紋理無法用於紋理篩選。 使用這個使用旗標建立的頂點緩衝區無法做為輸入數據流來源。 Direct3D 9 與 Direct3D 9Ex 之間的差異: 此旗標僅適用於 Direct3D 9Ex。 |
|
通知系統應用程式只會寫入頂點緩衝區。 使用此旗標可讓驅動程式選擇最佳的記憶體位置,以有效率地寫入作業和轉譯。 嘗試從使用這項功能建立的頂點緩衝區讀取將會失敗。 以未指定 D3DUSAGE_WRITEONLY指定D3DPOOL_DEFAULT 建立 的 緩衝區可能會受到嚴重的效能處罰。
D3DUSAGE_WRITEONLY 只會影響 D3DPOOL_DEFAULT 緩衝區的效能。 |
|
設定此旗標表示資源可能包含受保護的內容。 Direct3D 9 與 Direct3D 9Ex 之間的差異: 此旗標僅適用於 Direct3D 9Ex。 |
|
設定此旗標表示應該限制對共用資源的存取。 Direct3D 9 與 Direct3D 9Ex 之間的差異: 此旗標僅適用於 Direct3D 9Ex。 |
|
設定此旗標表示驅動程式應該限制對共用資源的存取。 呼叫端必須使用驅動程式建立已驗證的通道。 然後,驅動程式應該允許存取嘗試開啟該共用資源的處理程式。 Direct3D 9 與 Direct3D 9Ex 之間的差異: 此旗標僅適用於 Direct3D 9Ex。 |
備註
使用量和資源組合
建立資源時或使用 CheckDeviceType 指定使用量,以測試現有資源的功能。 下表識別哪些使用方式可以套用至哪些資源類型。
| 用法 | 頂點緩衝區建立 | 索引緩衝區建立 | 紋理建立 | Cube 紋理建立 | 磁碟區紋理建立 | Surface create | 檢查裝置格式 |
|---|---|---|---|---|---|---|---|
| D3DUSAGE_AUTOGENMIPMAP | 是的 | 是的 | |||||
| D3DUSAGE_DEPTHSTENCIL | 是的 | 是的 | |||||
| D3DUSAGE_DMAP | 是的 | 是的 | |||||
| D3DUSAGE_DONOTCLIP 是 | |||||||
| D3DUSAGE_DYNAMIC 是是是 | 是的 | ||||||
| D3DUSAGE_NONSECURE 是 | |||||||
| D3DUSAGE_NPATCHES 是 | |||||||
| D3DUSAGE_POINTS 是 | |||||||
| D3DUSAGE_RTPATCHES 是 | |||||||
| D3DUSAGE_RENDERTARGET | 是的 | 是的 | |||||
| D3DUSAGE_SOFTWAREPROCESSING 是是是是 | 是的 | ||||||
| D3DUSAGE_TEXTAPI 是 | 是的 | ||||||
| D3DUSAGE_WRITEONLY 是 |
使用 CheckDeviceFormat 來檢查這些使用量的硬體支援。
這裡列出每個資源建立方法。
- CreateCubeTexture
- CreateDepthStencilSurface
- CreateIndexBuffer
- CreateOffscreenPlainSurface
- CreateRenderTarget
- CreateTexture
- CreateVertexBuffer
- CreateVolumeTexture
D3DXCreatexxx 文字函式也會使用其中一些常數值來建立資源。
如需集區類型及其特定使用方式限制的詳細資訊,請參閱 D3DPOOL。
需求
| 要求 | 價值觀 |
|---|---|
| 頁首 |
|
另請參閱