D3D11_RESOURCE_MISC_FLAG列舉 (d3d11.h)
識別資源的選項。
Syntax
typedef enum D3D11_RESOURCE_MISC_FLAG {
D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1L,
D3D11_RESOURCE_MISC_SHARED = 0x2L,
D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4L,
D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10L,
D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L,
D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L,
D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80L,
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100L,
D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200L,
D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x800L,
D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000L,
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000L,
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000L,
D3D11_RESOURCE_MISC_GUARDED = 0x8000L,
D3D11_RESOURCE_MISC_TILE_POOL = 0x20000L,
D3D11_RESOURCE_MISC_TILED = 0x40000L,
D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000L,
D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE,
D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER
} ;
常數
D3D11_RESOURCE_MISC_GENERATE_MIPS 值: 0x1L 在紋理資源上使用 ID3D11DeviceContext::GenerateMips 來啟用 MIP 地圖產生。 必須使用系 結旗標 來建立資源,以指定資源是轉譯目標和著色器資源。 |
D3D11_RESOURCE_MISC_SHARED 值: 0x2L 啟用兩個或多個 Direct3D 裝置之間的資源數據共用。 唯一可以共享的資源是 2D 非 mipmapped 紋理。 D3D11_RESOURCE_MISC_SHARED 和 D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX 互斥。 WARP 和 REF 裝置不支援共享資源。 如果您嘗試在 WARP 或 REF 裝置上使用此旗標建立資源,則 create 方法會傳回 E_OUTOFMEMORY 錯誤碼。
注意從 Windows 8 開始,WARP 裝置完全支援共用資源。
注意從 Windows 8 開始,建議您改為使用 D3D11_RESOURCE_MISC_SHARED_NTHANDLE 和 D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX 旗標的組合,在兩個或更多 Direct3D 裝置之間啟用資源數據共用。 |
D3D11_RESOURCE_MISC_TEXTURECUBE 值: 0x4L 將資源設定為從包含 6 個紋理的 Texture2DArray 建立的 Cube 紋理。 |
D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS 值: 0x10L 啟用 GPU 產生的內容實例。 |
D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS 值: 0x20L 啟用資源作為 位元組位址緩衝區。 |
D3D11_RESOURCE_MISC_BUFFER_STRUCTURED 值: 0x40L 啟用資源作為 結構化緩衝區。 |
D3D11_RESOURCE_MISC_RESOURCE_CLAMP 值: 0x80L 啟用具有 MIP 對應限制的資源,以搭配 ID3D11DeviceContext::SetResourceMinLOD 使用。 |
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX 值: 0x100L 使用 IDXGIKeyedMutex::AcquireSync 和 來同步處理資源 IDXGIKeyedMutex::ReleaseSync Api。 下列採用 D3D11_RESOURCE_MISC_FLAG 參數的 Direct3D 11 資源建立 API 已擴充以支援新的旗標。
如果您使用 D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX 旗標集呼叫上述任一方法,傳回的介面將支援 IDXGIKeyedMutex 介面。 您可以使用 IUnknown::QueryInterface,從資源擷取 IDXGIKeyedMutex 介面的指標。 IDXGIKeyedMutex 介面會實作 IDXGIKeyedMutex::AcquireSync 和 IDXGIKeyedMutex::ReleaseSync API,以同步存取介面。 建立表面的裝置,以及使用 OpenSharedResource 開啟表面的任何其他裝置,必須先呼叫 IDXGIKeyedMutex::AcquireSync ,才能對表面發出任何轉譯命令。 當這些裝置完成轉譯時,他們必須呼叫 IDXGIKeyedMutex::ReleaseSync。 D3D11_RESOURCE_MISC_SHARED 和 D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX 互斥。 WARP 和 REF 裝置不支援共享資源。 如果您嘗試在 WARP 或 REF 裝置上使用此旗標建立資源,則 create 方法會傳回 E_OUTOFMEMORY 錯誤碼。
注意從 Windows 8 開始,WARP 裝置完全支援共用資源。 |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE 值: 0x200L 啟用與 GDI 相容的資源。 您必須在搭配 GDI 使用的介面上設定 D3D11_RESOURCE_MISC_GDI_COMPATIBLE 旗標。 設定 D3D11_RESOURCE_MISC_GDI_COMPATIBLE 旗標可透過 IDXGISurface1::GetDC在介面上呈現GDI。 當您在交換鏈結中建立紋理或使用該紋理時,請考慮使用D3D11_RESOURCE_MISC_GDI_COMPATIBLE下列程式設計秘訣:
|
D3D11_RESOURCE_MISC_SHARED_NTHANDLE 值: 0x800L 設定此旗標,以在建立共用資源時啟用NT HANDLE 值的使用。 藉由啟用此旗標,您可以取代使用現有的 HANDLE 值。 值會指定新的共享資源類型,指示運行時間使用共用資源的NT HANDLE 值。 然後,運行時間必須確認共用資源可在指定 功能層級的所有硬體上運作。 若未設定此旗標,運行時間不會嚴格驗證共用資源參數 (,也就是格式、旗標、使用方式等) 。 當運行時間未驗證共用資源參數時,大部分 Direct3D API 的行為可能未定義,而且可能會因驅動程式而異。 Direct3D 11 和更早版本: 在 Direct3D 11.1 之前,不支援此值。 |
D3D11_RESOURCE_MISC_RESTRICTED_CONTENT 值: 0x1000L 設定此旗標以指出資源可能包含受保護的內容;因此,只有在驅動程式和硬體支援內容保護時,操作系統才應該使用資源。 如果驅動程式和硬體不支援內容保護,而且您嘗試使用此旗標建立資源,則資源建立會失敗。 Direct3D 11: 在 Direct3D 11.1 之前,不支援此值。 |
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE 值: 0x2000L 設定此旗標,指出操作系統會限制共用介面的存取。 只有當您建立共用介面時,才能將此旗標與 D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER 旗標搭配使用。 建立共用資源的程式一律可以開啟共享資源。 Direct3D 11: 在 Direct3D 11.1 之前,不支援此值。 |
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER 值: 0x4000L 設定此旗標,指出驅動程式會限制對共用表面的存取。 您可以使用此旗標搭配 D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE 旗標,而且只有在您建立共用介面時。 建立共用資源的程式一律可以開啟共享資源。 Direct3D 11: 在 Direct3D 11.1 之前,不支援此值。 |
D3D11_RESOURCE_MISC_GUARDED 值: 0x8000L 設定此旗標以指出資源受到防護。 IDCompositionSurface::BeginDraw (DirectComposition) 和 ISurfaceImageSourceNative::BeginDraw (Windows 執行階段) API 會傳回這類資源。 針對這些 API,您會在介面上提供感興趣的區域 (ROI) 以進行更新。 此表面與多個轉譯目標不相容, (MRT) 。 受防護的資源會自動將所有寫入限制為與上述其中一個 API 相關的區域。 此外,資源會強制執行對 ROI 的存取,但有下列限制:
Direct3D 11: 在 Direct3D 11.1 之前,不支援此值。 |
D3D11_RESOURCE_MISC_TILE_POOL 值: 0x20000L 設定此旗標以指出資源是圖格集區。 Direct3D 11: 在 Direct3D 11.2 之前,不支援此值。 |
D3D11_RESOURCE_MISC_TILED 值: 0x40000L 設定此旗標以指出資源是圖格資源。 Direct3D 11: 在 Direct3D 11.2 之前,不支援此值。 |
D3D11_RESOURCE_MISC_HW_PROTECTED 值: 0x80000L 設定此旗標以指出應該建立資源,使其受硬體保護。 如果不支援硬體內容保護,資源建立將會失敗。 此旗標具有下列限制:
注意 使用此旗標建立紋理並不會自動保證會針對基礎配置啟用硬體保護。 某些實作需要先初始化DRM元件,才能保證保護。 注意從 Windows 10 開始,支援此列舉值。 |
D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE 讓資源能夠使用 可顯示表面 功能。 您必須搭配D3D11_RESOURCE_MISC_SHARED和D3D11_RESOURCE_MISC_SHARED_NTHANDLE使用D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE。 |
D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER TBD |
備註
此列舉用於D3D11_BUFFER_DESC、D3D11_TEXTURE1D_DESC、D3D11_TEXTURE2D_DESC D3D11_TEXTURE3D_DESC。
這些旗標可以透過位 OR 結合。
使用 D3D11_CPU_ACCESS 旗標建立資源時,無法使用 D3D11_RESOURCE_MISC_FLAG 。
規格需求
需求 | 值 |
---|---|
標頭 | d3d11.h |