Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определяет параметры для ресурсов.
Синтаксис
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_WRITERTBD |
Комментарии
Это перечисление используется в D3D11_BUFFER_DESC, D3D11_TEXTURE1D_DESC, D3D11_TEXTURE2D_DESCD3D11_TEXTURE3D_DESC.
Эти флаги можно объединить с помощью побитового ИЛИ.
D3D11_RESOURCE_MISC_FLAG нельзя использовать при создании ресурсов с флагами D3D11_CPU_ACCESS.
Требования
| Требование | Значение |
|---|---|
| Заголовок | d3d11.h |