Структура FORMATOP (d3dumddi.h)
Структура FORMATOP описывает формат поверхности и операции, которые можно выполнять с такой поверхностью.
Синтаксис
typedef struct _FORMATOP {
[in] D3DDDIFORMAT Format;
[out] UINT Operations;
[out] UINT FlipMsTypes;
[out] UINT BltMsTypes;
[out] UINT PrivateFormatBitCount;
} FORMATOP;
Члены
[in] Format
Значение D3DDDIFORMATтипа, указывающее формат пикселя поверхности.
[out] Operations
Допустимый побитовый OR следующих флагов, указывающих операции, которые можно выполнять на поверхностях с форматом пикселей, указанным в элементе Format. Некоторые из следующих флагов подразумевают, что другие флаги должны использоваться. Если драйвер задает флаг, который подразумевает другие флаги, драйвер не требуется задавать подразумеваемые флаги, а среда выполнения Direct3D определяет использование подразумеваемых флагов.
FORMATOP_TEXTURE (0x000000001L)
Поверхности указанного формата пикселей можно использовать в качестве текстур, сопоставленных с MIP.
FORMATOP_VOLUMETEXTURE (0x000000002L)
Поверхности этого формата можно использовать в качестве текстур тома. Обратите внимание, что этот флаг не зависит от FORMATOP_TEXTURE. Таким образом, формат пикселя можно использовать для текстур томов, а не для обычных сопоставленных текстур MIP.
FORMATOP_CUBETEXTURE (0x000000004L)
Поверхности этого формата можно использовать в качестве текстур карты кубической среды. Обратите внимание, что этот флаг не зависит от FORMATOP_TEXTURE. Таким образом, формат пикселя можно использовать для текстур карты кубической среды, а не для обычных сопоставленных текстур MIP.
FORMATOP_OFFSCREEN_RENDERTARGET (0x00000008L)
Поверхности этого формата можно использовать в качестве целевых объектов отрисовки с экрана, независимо от формата пикселя режима отображения, если формат пикселя текущего режима отображения сообщался с FORMATOP_DISPLAYMODE и FORMATOP_3DACCELERATION. Если в текущем режиме отображения не задан формат пикселей, то в этом режиме нет 3-D ускорения, даже если целевой объект отрисовки отключен. Флаг FORMATOP_OFFSCREEN_RENDERTARGET можно объединить с FORMATOP_TEXTURE, чтобы указать, что устройство может отрисовывать текстуры указанного формата пикселей.
Флаг FORMATOP_OFFSCREEN_RENDERTARGET также подразумевает FORMATOP_SAME_FORMAT_RENDERTARGET и флаги FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET.
FORMATOP_SAME_FORMAT_RENDERTARGET (0x000000010L)
Поверхности этого формата можно использовать в качестве целевых объектов отрисовки, но только если формат пикселя поверхности соответствует формату пикселя текущего режима отображения. Этот флаг не применяется только к целевым объектам отрисовки экрана, но может быть указан в форматах пикселей режимов отображения, чтобы указать целевую возможность отрисовки. Этот флаг можно объединить с FORMATOP_TEXTURE, чтобы указать, что устройство может отрисовывать текстуры указанного формата пикселей.
Флаг FORMATOP_SAME_FORMAT_RENDERTARGET также подразумевает флаг FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET.
FORMATOP_ZSTENCIL (0x00000040L)
Поверхности этого формата можно использовать в качестве буферов Z/наборов элементов, но только в том случае, если глубина поверхности Z/наборов соответствует цветовой глубине целевого объекта отрисовки, к которому подключен буфер глубины. Используйте шаг пикселя при выборе соответствия между Z/набором элементов и глубиной буфера цвета.
FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH (0x00000080L)
Поверхности этого формата можно использовать в качестве буферов Z/наборов, независимо от глубины цвета целевого объекта отрисовки, к которому подключена поверхность.
Флаг FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH также подразумевает флаг FORMATOP_ZSTENCIL.
FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET (0x000001000L)
Поверхности этого формата можно использовать в качестве целевых объектов отрисовки, если текущий режим отображения совпадает с глубиной, а альфа-канал игнорируется. Например, если устройство может отобразить A8R8G8B8, если режим отображения X8R8G8B8, запись списка операций форматирования для A8R8G8B8 должна иметь этот флаг.
FORMATOP_DISPLAYMODE (0x00000400L)
Режим отображения с этим форматом пикселей, поддерживаемым моделью драйвера (включая Flip). Этот флаг не должен быть задан в альфа-форматах.
FORMATOP_3DACCELERATION (0x000008000L)
Ускоритель графики может поддерживать некоторый уровень ускорения Microsoft Direct3D, если в режиме отображения с этим форматом пикселей, а драйвер может создать контекст в этом режиме (для определенного целевого формата отрисовки). Этот флаг можно использовать только в том случае, если форматы режима отображения отчетов (указав FORMATOP_DISPLAYMODE). Этот флаг не должен использоваться для отчета о форматах целевых объектов отрисовки с экрана.
FORMATOP_PIXELSIZE (0x00001000L)
Драйвер заполнил биты на пиксель для формата в элементе PrivateFormatBitCount.
Если драйвер требует, чтобы управляемые поверхности и текстуры использовали закрытый формат (формат, который может обрабатываться драйвером, но не в собственном коде средой выполнения Direct3D), драйвер должен указать FORMATOP_PIXELSIZE и размер пикселя в PrivateFormatBitCount.
FORMATOP_CONVERT_TO_ARGB (0x00002000L)
Исходные поверхности этого формата можно преобразовать в любую целевую поверхность с форматом пикселей RGB с указанным флагом FORMATOP_MEMBEROFGROUP_ARGB.
FORMATOP_OFFSCREENPLAIN (0x00004000L)
Драйвер может растянуться и от поверхностей заливки цвета этого формата.
FORMATOP_SRGBREAD (0x00080000L)
Поверхности этого формата можно считывать из sRGB-форматированные текстуры (т. е. выборщик линейнейно просматриваемых данных).
FORMATOP_BUMPMAP (0x00010000L)
Поверхности этого формата можно использовать в качестве текстур карты среды удара. Обратите внимание, что этот флаг не зависит от FORMATOP_TEXTURE. Таким образом, формат пикселя можно использовать для текстур карты среды удара, а не для обычных сопоставленных текстур MIP.
FORMATOP_DMAP (0x00020000L)
Образец схемы смещения может образец поверхностей этого формата.
FORMATOP_NOFILTER (0x00040000L)
Поверхности этого формата нельзя использовать с фильтрацией текстур.
FORMATOP_MEMBEROFGROUP_ARGB (0x00800000L)
Целевые поверхности этого формата можно преобразовать из любой исходной поверхности с форматом пикселя с указанным флагом FORMATOP_CONVERT_TO_ARGB. Драйвер может указать FORMATOP_MEMBEROFGROUP_ARGB только для поверхностей ARGB с не менее чем 5 битами цветовой информации для каждого канала. То есть допустимый формат D3DDDIFMT_A1R5G5B5, но недопустимый формат D3DDDIFMT_A4R4G4B4. Если драйвер указывает FORMATOP_MEMBEROFGROUP_ARGB с недопустимым форматом, среда выполнения Direct3D запрещает загрузку Direct3D HAL. Обратите внимание, что хотя этот флаг указывает форматы ARGB, среда выполнения также позволяет драйверу указывать поверхности с форматами XRGB (например, D3DDDIFMT_X1R5G5B5).
FORMATOP_SRGBWRITE (0x001000000L)
Поверхности этого формата можно записать в виде sRGB-форматированных целевых объектов (т. е. канал пикселей делайнаризирует данные по выходным данным в этом формате).
FORMATOP_NOALPHABLEND (0x00200000L)
Поверхности этого формата нельзя использовать с альфа-смешения.
FORMATOP_AUTOGENMIPMAP (0x004000000L)
Вложенные области текстур, сопоставленных с MIP, с этим форматом, могут быть автоматически созданы. Чтобы драйвер получал вызовы к своей функции GenerateMipSubLevels , этот флаг должен быть предоставлен.
FORMATOP_VERTEXTEXTURE (0x008000000L)
Пример текстур вершины может использовать поверхности этого формата. То есть в качестве текстур вершин можно использовать только поверхности этого формата.
FORMATOP_NOTEXCOORDWRAPNORMIP (0x0100000000L)
Поверхности этого формата можно использовать только условно для сопоставления текстур с 2-D текстурами с измерениями, которые не являются возможностями 2. Дополнительные сведения см. в определениях D3DPTEXTURECAPS_POW2 и D3DPTEXTURECAPS_NONPOW2CONDITIONAL на странице справки D3DPRIMCAPS.
FORMATOP_PLANAR (0x0200000000L)
Поверхности этого формата — планарные и упакованные. Среда выполнения Direct3D должна выделить буфер, если он вызывает функцию блокировки драйвера в пользовательском режиме, на поверхности с планарным форматом, а поверхность теряется, а типичная вычисление умноженной высоты шага невозможно. Большинство форматов упакованы, за исключением тех, которые использует microsoft DirectX Video Acceleration (например, форматы YUV).
FORMATOP_OVERLAY (0x0400000000L)
Поверхности этого формата используются для операций наложения.
FORMATOP_CAPTURE (0x0800000000L)
Если задан элемент VideoEncoder структуры D3DDDI_RESOURCEFLAGS2, поверхности этого формата можно использовать в качестве буферов записи.
Поддерживается начиная с Windows 8.
FORMATOP_VIDEO_ENCODER (0x1000000000L)
Если задан элемент VideoEncoder структуры D3DDDI_RESOURCEFLAGS2, поверхности этого формата можно использовать в качестве входных ресурсов кодировщика видео.
Поддерживается начиная с Windows 8.
FORMATOP_MULTIPLANE_OVERLAY (0x2000000000L)
Поверхности этого формата поддерживают многоплановую наложение.
Поддерживается начиная с Windows 8.
[out] FlipMsTypes
32-разрядная маска для полноэкранной выборки.
[out] BltMsTypes
32-разрядная маска для окна с несколькими выборкой.
[out] PrivateFormatBitCount
Биты на пиксель формата пикселя, закрытого драйверу (т. е. не одного из стандартных форматов пикселей, определенных типом перечисления D3DDDIFORMAT).
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
заголовка | d3dumddi.h (include D3dumddi.h) |