Поделиться через


структура D3DDDI_RESOURCEFLAGS (d3dukmdt.h)

Структура D3DDDI_RESOURCEFLAGS определяет тип ресурсов, создаваемых при вызове функции CreateResource драйвера.

Синтаксис

typedef struct _D3DDDI_RESOURCEFLAGS {
  union {
    struct {
      UINT RenderTarget : 1;
      UINT ZBuffer : 1;
      UINT Dynamic : 1;
      UINT HintStatic : 1;
      UINT AutogenMipmap : 1;
      UINT DMap : 1;
      UINT WriteOnly : 1;
      UINT NotLockable : 1;
      UINT Points : 1;
      UINT RtPatches : 1;
      UINT NPatches : 1;
      UINT SharedResource : 1;
      UINT DiscardRenderTarget : 1;
      UINT Video : 1;
      UINT CaptureBuffer : 1;
      UINT Primary : 1;
      UINT Texture : 1;
      UINT CubeMap : 1;
      UINT Volume : 1;
      UINT VertexBuffer : 1;
      UINT IndexBuffer : 1;
      UINT DecodeRenderTarget : 1;
      UINT DecodeCompressedBuffer : 1;
      UINT VideoProcessRenderTarget : 1;
      UINT CpuOptimized : 1;
      UINT MightDrawFromLocked : 1;
      UINT Overlay : 1;
      UINT MatchGdiPrimary : 1;
      UINT InterlacedRefresh : 1;
      UINT TextApi : 1;
      UINT RestrictedContent : 1;
      UINT RestrictSharedAccess : 1;
    };
    UINT Value;
  };
} D3DDDI_RESOURCEFLAGS;

Члены

RenderTarget

Задание этого элемента эквивалентно установке первого бита 32-разрядного элемента Value (0x00000001).

ZBuffer

Значение UINT, указывающее, является ли поверхность z-буфером. Z-буфер содержит сведения битовой глубины, которые используются для определения того, какие пиксели видимы, а какие скрыты. Z-буфер содержит сведения, которые невозможно отобразить.

Задание этого элемента эквивалентно установке второго бита 32-разрядного элемента Value (0x00000002).

Dynamic

Значение UINT, указывающее, часто ли обновляется поверхность. Этот флаг битового поля нельзя использовать с флагом bit-field HintStatic .

Задание этого элемента эквивалентно установке третьего бита 32-разрядного элемента Value (0x00000004).

HintStatic

Значение UINT, указывающее, обновляется ли поверхность нечасто, но должна ли она по-прежнему разрешать доступ. Этот флаг битового поля нельзя использовать с флагом динамического битового поля.

Задание этого элемента эквивалентно установке четвертого бита 32-разрядного элемента Value (0x00000008).

AutogenMipmap

Значение UINT, указывающее, создаются ли автоматически подуровневые значения MIP-карты для поверхности.

Задание этого элемента эквивалентно установке пятого бита 32-разрядного элемента Value (0x00000010).

DMap

Значение UINT, указывающее, является ли поверхность текстурой карты смещения, которую дискретизатор карты смещения может выбрать в блоке тесселяции.

Задание этого элемента эквивалентно установке шестого бита 32-разрядного элемента Value (0x00000020).

WriteOnly

Значение UINT, указывающее, можно ли записывать поверхность только в. Доступ на чтение с поверхности может привести к общему сбою защиты (GPF). Если поверхность считывается из, результаты чтения не являются значимыми.

Задание этого элемента эквивалентно установке седьмого бита 32-разрядного элемента Value (0x00000040).

NotLockable

Значение UINT, указывающее, блокируется ли целевой объект отрисовки. Этот флаг битового поля устанавливается для основного и заднего буферов, если переворачивающаяся цепочка не блокируется, или на любом целевом объекте отрисовки, который не блокируется. Затем драйвер может выполнить фоновую оптимизацию.

Даже если этот флаг установлен, поверхность по-прежнему может быть заблокирована, поэтому драйвер должен справиться с этой ситуацией. Однако такие блокировки нечасто и не должны быть быстрыми.

Драйвер также может определить, блокируется ли буфер глубины или трафарета по наличию флага битового поля.

Задание этого элемента эквивалентно установке восьмого бита 32-разрядного элемента Value (0x00000080).

Points

Значение UINT, указывающее, содержит ли поверхность данные буфера вершин, которые можно использовать для отрисовки точек и спрайтов точек.

Задание этого элемента эквивалентно установке девятого бита 32-разрядного элемента Value (0x00000100).

RtPatches

Значение UINT, указывающее, содержит ли поверхность данные буфера вершин, которые можно использовать для отрисовки rt-patchs.

Задание этого элемента эквивалентно установке десятого бита 32-разрядного элемента Value (0x00000200).

NPatches

Значение UINT, указывающее, содержит ли поверхность данные буфера вершин, которые можно использовать для отрисовки n-исправлений.

Задание этого элемента эквивалентно установке одиннадцатого бита 32-разрядного элемента Value (0x00000400).

SharedResource

Значение UINT, указывающее, используется ли поверхность несколькими устройствами и процессами.

Задание этого элемента эквивалентно установке двенадцатого бита 32-разрядного элемента Value (0x00000800).

DiscardRenderTarget

Значение UINT, указывающее, требуется ли сохранение поверхности. Если поверхность используется в качестве целевого объекта отрисовки, ее сохранение не требуется.

Задание этого элемента эквивалентно установке тринадцатого бита 32-разрядного элемента Value (0x00001000).

Video

Значение UINT, указывающее, является ли поверхность целевым объектом отрисовки, содержащим видеоданные.

Обратите внимание, что с этим флагом можно создать несколько целевых объектов отрисовки, и если два или более из этих целевых объектов отрисовки принадлежат к одному контексту Microsoft Direct3D, драйвер определяет, что все эти целевые объекты отрисовки должны отображать один и тот же видеопоток независимо от того, подключены ли целевые поверхности отрисовки друг к другу.

Задание этого элемента эквивалентно установке четырнадцатого бита 32-разрядного элемента Value (0x00002000).

CaptureBuffer

Значение UINT, указывающее, является ли ресурс буфером записи.

Задание этого элемента эквивалентно установке пятнадцатого бита 32-разрядного элемента Value (0x00004000).

Primary

Значение UINT, указывающее, является ли поверхность основной поверхностью, то есть является ли поверхность видимой для пользователя.

Задание этого элемента эквивалентно установке шестнадцатого бита 32-разрядного элемента Value (0x00008000).

Texture

Значение UINT, указывающее, можно ли использовать поверхность в качестве текстуры.

Задание этого элемента эквивалентно установке семнадцатого бита 32-разрядного элемента Value (0x00010000).

CubeMap

Значение UINT, указывающее, является ли поверхность кубической картой. Для этого флага битового поля требуется установить флаг битового поля текстуры .

Задание этого элемента эквивалентно установке восемнадцатого бита 32-разрядного элемента Value (0x00020000).

Volume

Значение UINT, указывающее, имеет ли поверхность глубину в дополнение к ширине и высоте, то есть является ли поверхность объемом. Для этого флага битового поля требуется установить флаг битового поля текстуры .

Задание этого элемента эквивалентно установке девятнадцатого бита 32-разрядного элемента Value (0x00040000).

VertexBuffer

Значение UINT, указывающее, является ли поверхность буфером вершин (то есть хранит вершины).

Задание этого элемента эквивалентно установке двадцатого бита 32-разрядного элемента Value (0x00080000).

IndexBuffer

Значение UINT, указывающее, является ли поверхность буфером индекса (то есть хранит индексы).

Задание этого элемента эквивалентно установке двадцать первого бита 32-разрядного элемента Value (0x00100000).

DecodeRenderTarget

Значение UINT, указывающее, используется ли поверхность в качестве целевого объекта отрисовки для декодирования Microsoft DirectX Video Acceleration (DirectX VA).

Установка этого элемента эквивалентна установке двадцать второго бита 32-разрядного элемента Value (0x00200000).

DecodeCompressedBuffer

Значение UINT, указывающее, содержит ли поверхность сжатые данные буфера для декодирования DirectX VA.

Задание этого элемента эквивалентно установке двадцать третьего бита 32-разрядного элемента Value (0x00400000).

VideoProcessRenderTarget

Значение UINT, указывающее, используется ли поверхность в качестве целевого объекта отрисовки для обработки видео DirectX VA.

Задание этого элемента эквивалентно установке двадцать четвертого бита 32-разрядного элемента Value (0x00800000).

CpuOptimized

Значение UINT, указывающее, часто ли ЦП обращается к ресурсу.

Драйвер должен поместить ресурс в пул памяти, к которому ЦП может быстро получить доступ (например, к памяти AGP). Драйвер мини-порта дисплея должен помечать память как кэшируемую, установив флаг кэшированного битового поля в элементе Флаги структуры DXGK_ALLOCATIONINFO при вызове функции DxgkDdiCreateAllocation .

Флаг CpuOptimized обычно устанавливается для целевых объектов отрисовки (как автономных целевых объектов отрисовки, так и текстур).

Задание этого элемента эквивалентно установке двадцать пятого бита 32-разрядного элемента Value (0x01000000).

MightDrawFromLocked

Значение UINT, указывающее, может ли драйвер получить данные из буфера вершин, даже если буфер вершин заблокирован средой выполнения Direct3D. Этот запрос означает, что драйвер может в некоторых случаях принимать вызовы своих функций DrawIndexedPrimitive, DrawIndexedPrimitive2, DrawPrimitive и DrawPrimitive2 , где данные вершин ссылаются в заблокированном буфере вершин, помеченном как MightDrawFromLocked. Среда выполнения должна выполнять такие типы вызовов в сценариях, в которых она выполняет преобразование программного обеспечения и освещение (а не оборудование). Эти сценарии обычно не происходят.

Однако, поскольку среда выполнения заблокировала буфер вершин, драйвер не может вызвать функцию pfnUnlockCb перед вызовом функции pfnRenderCb . В результате драйвер должен поддерживать буфер вершин в системе или сегменте памяти AGP; В противном случае диспетчер видеопамять отклоняет отрисовку. Драйверу не требуется выполнять какие-либо другие специальные действия, так как среда выполнения не перезапишет данные в заблокированном буфере вершин, когда оборудование активно выполняет отрисовку из буфера вершин.

Задание этого элемента эквивалентно установке двадцать шестого бита 32-разрядного элемента Value (0x02000000).

Overlay

Значение UINT, указывающее, является ли ресурс наложенным.

Задание этого элемента эквивалентно установке двадцать седьмого бита 32-разрядного элемента Value (0x04000000).

MatchGdiPrimary

Значение UINT, указывающее, является ли ресурс первичной поверхностью, которая соответствует всем свойствам текущей первичной поверхности GDI, созданной с помощью структуры D3DKMDT_SHAREDPRIMARYSURFACEDATA . Например, можно перевернуться с соответствующей основной поверхности на текущую основную поверхность GDI и наоборот.

Задание этого элемента эквивалентно установке двадцать восьмого бита 32-разрядного элемента Value (0x08000000).

InterlacedRefresh

Значение UINT, указывающее, является ли ресурс основной поверхностью, предназначенной для использования в режиме отображения с чередованием.

Задание этого элемента эквивалентно установке двадцать девятого бита 32-разрядного элемента Value (0x10000000).

TextApi

Значение UINT, указывающее, можно ли использовать ресурс для фильтрации текстур или в качестве источника входного потока. Если текстуры создаются с установленным флагом битового поля TextApi , их нельзя использовать для фильтрации текстур. Если буферы вершин создаются с помощью флага битового поля TextApi , их нельзя использовать в качестве источников входных потоков. Флаг битового поля TextApi должен быть указан для буферов вершин и исходных поверхностей, используемых в вызовах функции ComposeRects .

Задание этого элемента эквивалентно установке тридцатого бита 32-разрядного элемента Value (0x20000000).

RestrictedContent

Поддерживается в Windows 7 и более поздних версиях.

Значение UINT, указывающее, содержит ли ресурс защищенное содержимое. В большинстве случаев приложение явно включило защиту содержимого, прежде чем приложение создаст ограниченный ресурс. Однако приложению не нужно явно включать защиту содержимого, если оно создает ограниченную цепочку переключения монопольного режима полноэкранного режима.

Задание этого элемента эквивалентно установке тридцать первого бита 32-разрядного элемента Value (0x40000000).

RestrictSharedAccess

Поддерживается в Windows 7 и более поздних версиях.

Значение UINT, указывающее, разрешает ли среда выполнения доступ к общему ресурсу только определенным процессам.

Задание этого элемента эквивалентно установке тридцатисекундного бита 32-разрядного элемента Value (0x80000000).

Value

32-разрядное значение, определяющее тип создаваемого ресурса.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Верхняя часть d3dukmdt.h (включая D3dumddi.h, D3dkmddi.h)

См. также раздел

CreateResource

D3DDDIARG_CREATERESOURCE