перечисление D3D11_RESOURCE_MISC_FLAG (d3d11.h)
Определяет параметры для ресурсов.
Синтаксис
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
} ;
Константы
D3D11_RESOURCE_MISC_GENERATE_MIPS Значение: 0x1L Включает создание карты MIP с помощью ID3D11DeviceContext::GenerateMips в ресурсе текстуры. Ресурс должен быть создан с флагами привязки , которые указывают, что ресурс является целевым объектом отрисовки и ресурсом шейдера. |
D3D11_RESOURCE_MISC_SHARED Значение: 0x2L Обеспечивает общий доступ к данным ресурсов между двумя или более устройствами Direct3D. Единственными ресурсами, которые можно совместно использовать, являются двухd-текстуры без mipmapped. D3D11_RESOURCE_MISC_SHARED и D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX являются взаимоисключающими. Устройства WARP и REF не поддерживают общие ресурсы. При попытке создать ресурс с этим флагом на устройстве WARP или REF метод create вернет код ошибки E_OUTOFMEMORY .
Примечание Начиная с Windows 8 устройства WARP полностью поддерживают общие ресурсы.
Примечание Начиная с Windows 8 мы рекомендуем включить общий доступ к данным ресурсов между двумя или более устройствами Direct3D с помощью сочетания флагов D3D11_RESOURCE_MISC_SHARED_NTHANDLE и D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX. |
D3D11_RESOURCE_MISC_TEXTURECUBE Значение: 0x4L Задает ресурс в виде текстуры куба, созданной на основе Texture2DArray , содержащей 6 текстур. |
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. Следующие API создания ресурсов Direct3D 11, которые принимают D3D11_RESOURCE_MISC_FLAG параметры, были расширены для поддержки нового флага.
При вызове любого из этих методов с установленным флагом D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX возвращенный интерфейс будет поддерживать интерфейс IDXGIKeyedMutex . Указатель на интерфейс IDXGIKeyedMutex можно получить из ресурса с помощью IUnknown::QueryInterface. Интерфейс IDXGIKeyedMutex реализует API IDXGIKeyedMutex::AcquireSync и IDXGIKeyedMutex::ReleaseSync для синхронизации доступа к поверхности. Устройство, создающее поверхность, и любое другое устройство, открывающее поверхность с помощью 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. Необходимо установить флаг D3D11_RESOURCE_MISC_GDI_COMPATIBLE на поверхностях, используемых с GDI. Установка флага D3D11_RESOURCE_MISC_GDI_COMPATIBLE позволяет выполнять отрисовку GDI на поверхности с помощью IDXGISurface1::GetDC. Рассмотрите следующие советы по программированию для использования D3D11_RESOURCE_MISC_GDI_COMPATIBLE при создании текстуры или использовании этой текстуры в цепочке буферов:
|
D3D11_RESOURCE_MISC_SHARED_NTHANDLE Значение: 0x800L Установите этот флаг, чтобы включить использование значений NT HANDLE при создании общего ресурса. Включив этот флаг, вы не рекомендуете использовать существующие значения HANDLE. Значение указывает новый тип общего ресурса, который направляет среду выполнения на использование значений NT HANDLE для общего ресурса. Затем среда выполнения должна убедиться, что общий ресурс работает на всем оборудовании на указанном уровне функций. Без этого флага среда выполнения не будет строго проверять параметры общих ресурсов (то есть форматы, флаги, использование и т. д.). Если среда выполнения не проверяет параметры общих ресурсов, поведение большей части API Direct3D может быть неопределенным и может отличаться в зависимости от драйвера. 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 Установите этот флаг, чтобы указать, что ресурс защищен. Такой ресурс возвращается API IDCompositionSurface::BeginDraw (DirectComposition) и ISurfaceImageSourceNative::BeginDraw (среда выполнения Windows). Для этих API вы предоставляете интересующую область (ROI) на поверхности для обновления. Эта поверхность несовместима с несколькими целевыми объектами отрисовки (MRT). Защищенный ресурс автоматически ограничивает все операции записи в регионе, связанном с одним из предыдущих API. Кроме того, ресурс обеспечивает доступ к рентабельности инвестиций со следующими ограничениями:
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_DISPLAYABLE в сочетании с D3D11_RESOURCE_MISC_SHARED и D3D11_RESOURCE_MISC_SHARED_NTHANDLE. |
D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER TBD |
Комментарии
Это перечисление используется в D3D11_BUFFER_DESC, D3D11_TEXTURE1D_DESC, D3D11_TEXTURE2D_DESCD3D11_TEXTURE3D_DESC.
Эти флаги можно объединить с помощью побитового ИЛИ.
D3D11_RESOURCE_MISC_FLAG нельзя использовать при создании ресурсов с флагами D3D11_CPU_ACCESS.
Требования
Требование | Значение |
---|---|
Заголовок | d3d11.h |