enumerazione D3D11_RESOURCE_MISC_FLAG (d3d11.h)
Identifica le opzioni per le risorse.
Sintassi
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_NO_SHADER_ACCESS
} ;
Costanti
D3D11_RESOURCE_MISC_GENERATE_MIPS Valore: 0x1L Abilita la generazione di mappe MIP usando ID3D11DeviceContext::GenerateMips in una risorsa trama. La risorsa deve essere creata con i flag di associazione che specificano che la risorsa è una destinazione di rendering e una risorsa shader. |
D3D11_RESOURCE_MISC_SHARED Valore: 0x2L Abilita la condivisione dei dati delle risorse tra due o più dispositivi Direct3D. Le uniche risorse che possono essere condivise sono trame non mipmapped 2D. D3D11_RESOURCE_MISC_SHARED e D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX si escludono a vicenda. I dispositivi WARP e REF non supportano le risorse condivise. Se si tenta di creare una risorsa con questo flag in un dispositivo WARP o REF , il metodo create restituirà un codice di errore E_OUTOFMEMORY .
Nota A partire da Windows 8, i dispositivi WARP supportano completamente le risorse condivise.
Nota A partire da Windows 8, è consigliabile abilitare la condivisione dei dati delle risorse tra due o più dispositivi Direct3D usando una combinazione dei flag D3D11_RESOURCE_MISC_SHARED_NTHANDLE e D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX. |
D3D11_RESOURCE_MISC_TEXTURECUBE Valore: 0x4L Imposta una risorsa come trama del cubo creata da un oggetto Texture2DArray che contiene 6 trame. |
D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS Valore: 0x10L Abilita la creazione di istanze del contenuto generato dalla GPU. |
D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS Valore: 0x20L Abilita una risorsa come buffer di indirizzi di byte. |
D3D11_RESOURCE_MISC_BUFFER_STRUCTURED Valore: 0x40L Abilita una risorsa come buffer strutturato. |
D3D11_RESOURCE_MISC_RESOURCE_CLAMP Valore: 0x80L Abilita una risorsa con blocco mappa MIP da usare con ID3D11DeviceContext::SetResourceMinLOD. |
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX Valore: 0x100L Consente di sincronizzare la risorsa usando IDXGIKeyedMutex::AcquireSync e IDXGIKeyedMutex::ReleaseSync Api. Le API di creazione delle risorse Direct3D 11 seguenti, che accettano D3D11_RESOURCE_MISC_FLAG parametri, sono state estese per supportare il nuovo flag.
Se si chiama uno di questi metodi con il set di flag D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX , l'interfaccia restituita supporterà l'interfaccia IDXGIKeyedMutex . È possibile recuperare un puntatore all'interfaccia IDXGIKeyedMutex dalla risorsa usando IUnknown::QueryInterface. L'interfaccia IDXGIKeyedMutex implementa le API IDXGIKeyedMutex::AcquireSync e IDXGIKeyedMutex::ReleaseSync per sincronizzare l'accesso alla superficie. Il dispositivo che crea la superficie e qualsiasi altro dispositivo che apre la superficie usando OpenSharedResource deve chiamare IDXGIKeyedMutex::AcquireSync prima di eseguire comandi di rendering sulla superficie. Al termine del rendering, questi dispositivi devono chiamare IDXGIKeyedMutex::ReleaseSync. D3D11_RESOURCE_MISC_SHARED e D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX si escludono a vicenda. I dispositivi WARP e REF non supportano le risorse condivise. Se si tenta di creare una risorsa con questo flag in un dispositivo WARP o REF , il metodo create restituirà un codice di errore E_OUTOFMEMORY .
Nota A partire da Windows 8, i dispositivi WARP supportano completamente le risorse condivise. |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE Valore: 0x200L Abilita una risorsa compatibile con GDI. È necessario impostare il flag di D3D11_RESOURCE_MISC_GDI_COMPATIBLE sulle superfici usate con GDI. L'impostazione del flag D3D11_RESOURCE_MISC_GDI_COMPATIBLE consente il rendering GDI sulla superficie tramite IDXGISurface1::GetDC. Prendere in considerazione i suggerimenti di programmazione seguenti per l'uso di D3D11_RESOURCE_MISC_GDI_COMPATIBLE quando si crea una trama o si usa tale trama in una catena di scambio:
|
D3D11_RESOURCE_MISC_SHARED_NTHANDLE Valore: 0x800L Impostare questo flag per abilitare l'uso dei valori NT HANDLE quando si crea una risorsa condivisa. Abilitando questo flag, si depreca l'uso dei valori HANDLE esistenti. Il valore specifica un nuovo tipo di risorsa condivisa che indirizza il runtime all'uso dei valori NT HANDLE per la risorsa condivisa. Il runtime deve quindi verificare che la risorsa condivisa funzioni su tutti gli hardware a livello di funzionalità specificato. Senza questo flag impostato, il runtime non convalida rigorosamente i parametri delle risorse condivise, ovvero formati, flag, utilizzo e così via. Quando il runtime non convalida i parametri delle risorse condivise, il comportamento di gran parte dell'API Direct3D potrebbe non essere definito e può variare da driver a driver. Direct3D 11 e versioni precedenti: Questo valore non è supportato fino a Direct3D 11.1. |
D3D11_RESOURCE_MISC_RESTRICTED_CONTENT Valore: 0x1000L Impostare questo flag per indicare che la risorsa potrebbe contenere contenuto protetto; pertanto, il sistema operativo deve usare la risorsa solo quando il driver e l'hardware supportano la protezione del contenuto. Se il driver e l'hardware non supportano la protezione del contenuto e si tenta di creare una risorsa con questo flag, la creazione della risorsa ha esito negativo. Direct3D 11: Questo valore non è supportato fino a Direct3D 11.1. |
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE Valore: 0x2000L Impostare questo flag per indicare che il sistema operativo limita l'accesso alla superficie condivisa. È possibile usare questo flag insieme al flag D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER e solo quando si crea una superficie condivisa. Il processo che crea la risorsa condivisa può sempre aprire la risorsa condivisa. Direct3D 11: Questo valore non è supportato fino a Direct3D 11.1. |
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER Valore: 0x4000L Impostare questo flag per indicare che il driver limita l'accesso alla superficie condivisa. È possibile usare questo flag in combinazione con il flag D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE e solo quando si crea una superficie condivisa. Il processo che crea la risorsa condivisa può sempre aprire la risorsa condivisa. Direct3D 11: Questo valore non è supportato fino a Direct3D 11.1. |
D3D11_RESOURCE_MISC_GUARDED Valore: 0x8000L Impostare questo flag per indicare che la risorsa è protetta. Tale risorsa viene restituita dalle API IDCompositionSurface::BeginDraw (DirectComposition) e ISurfaceImageSourceNative::BeginDraw (Windows Runtime). Per queste API, fornisci un'area di interesse (ROI) in una superficie da aggiornare. Questa superficie non è compatibile con più destinazioni di rendering (MRT). Una risorsa sorvegliata limita automaticamente tutte le scritture nell'area correlata a una delle API precedenti. Inoltre, la risorsa applica l'accesso al ROI con queste restrizioni:
Direct3D 11: Questo valore non è supportato fino a Direct3D 11.1. |
D3D11_RESOURCE_MISC_TILE_POOL Valore: 0x20000L Impostare questo flag per indicare che la risorsa è un pool di riquadri. Direct3D 11: Questo valore non è supportato fino a Direct3D 11.2. |
D3D11_RESOURCE_MISC_TILED Valore: 0x40000L Impostare questo flag per indicare che la risorsa è una risorsa riquadri. Direct3D 11: Questo valore non è supportato fino a Direct3D 11.2. |
D3D11_RESOURCE_MISC_HW_PROTECTED Valore: 0x80000L Impostare questo flag per indicare che la risorsa deve essere creata in modo che sia protetta dall'hardware. La creazione delle risorse avrà esito negativo se la protezione del contenuto hardware non è supportata. Questo flag presenta le restrizioni seguenti:
Nota La creazione di una trama con questo flag non garantisce automaticamente che la protezione hardware venga abilitata per l'allocazione sottostante. Alcune implementazioni richiedono che i componenti DRM vengano inizializzati prima di qualsiasi garanzia di protezione. Nota Questo valore di enumerazione è supportato a partire da Windows 10. |
D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE Consente alla risorsa di usare la funzionalità superfici visualizzabili . È necessario usare D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE in combinazione con D3D11_RESOURCE_MISC_SHARED e D3D11_RESOURCE_MISC_SHARED_NTHANDLE. |
D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER TBD |
Commenti
Questa enumerazione viene usata in D3D11_BUFFER_DESC, D3D11_TEXTURE1D_DESC, D3D11_TEXTURE2D_DESC, D3D11_TEXTURE3D_DESC.
Questi flag possono essere combinati da OR bit per bit.
Impossibile usare D3D11_RESOURCE_MISC_FLAG durante la creazione di risorse con flag di D3D11_CPU_ACCESS .
Requisiti
Requisito | Valore |
---|---|
Intestazione | d3d11.h |