Структура 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
Допустимый побитовый или из следующих флагов, указывающих операции, которые могут выполняться на поверхностях с форматом пикселей, указанным в элементе Format . Некоторые из следующих флагов подразумевают, что следует использовать другие флаги. Если драйвер устанавливает флаг, который подразумевает другие флаги, драйвер не требуется устанавливать неявные флаги, а среда выполнения Direct3D определяет использование подразумеваемых флагов.
FORMATOP_TEXTURE (0x00000001L)
Поверхности указанного формата пикселей можно использовать в качестве текстур, сопоставленных с MIP.
FORMATOP_VOLUMETEXTURE (0x00000002L)
Поверхности этого формата можно использовать в качестве объемных текстур. Обратите внимание, что этот флаг не зависит от FORMATOP_TEXTURE. Таким образом, формат пикселей можно использовать для объемных текстур, а не для обычных текстур, сопоставленных с MIP.
FORMATOP_CUBETEXTURE (0x00000004L)
Поверхности этого формата можно использовать в качестве текстур кубической карты среды. Обратите внимание, что этот флаг не зависит от FORMATOP_TEXTURE. Таким образом, формат пикселей можно использовать для текстур кубической карты среды, а не для обычных текстур, сопоставленных с MIP.
FORMATOP_OFFSCREEN_RENDERTARGET (0x00000008L)
Поверхности этого формата можно использовать в качестве целевых объектов отрисовки вне зависимости от формата пикселей режима отображения, если формат пикселей текущего режима отображения был указан с FORMATOP_DISPLAYMODE и FORMATOP_3DACCELERATION. Если в формате пикселей текущего режима отображения не заданы эти флаги, в этом режиме не будет доступно трехмерное ускорение, даже если целевой объект отрисовки находится вне экрана. Флаг FORMATOP_OFFSCREEN_RENDERTARGET можно объединить с FORMATOP_TEXTURE, чтобы указать, что устройство может отрисовывать текстуры указанного формата пикселей.
Флаг FORMATOP_OFFSCREEN_RENDERTARGET также подразумевает флаги FORMATOP_SAME_FORMAT_RENDERTARGET и FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET.
FORMATOP_SAME_FORMAT_RENDERTARGET (0x00000010L)
Поверхности этого формата можно использовать в качестве целевых объектов отрисовки, но только в том случае, если формат пикселей поверхности соответствует формату пикселей текущего режима отображения. Этот флаг применяется не только к целевым объектам отрисовки вне экрана, но может быть указан в пиксельных форматах режимов отображения, чтобы указать возможность целевого объекта отрисовки. Этот флаг можно объединить с 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 (0x00000100L)
Поверхности этого формата можно использовать в качестве целевых объектов отрисовки, если текущий режим отображения имеет одинаковую глубину и альфа-канал игнорируется. Например, если устройство может отображаться в A8R8G8B8, когда режим отображения X8R8G8B8, этот флаг должен быть установлен для записи списка операций форматирования для A8R8G8B8.
FORMATOP_DISPLAYMODE (0x00000400L)
Режим отображения с этим форматом пикселей, поддерживаемый моделью драйвера (включая Flip). Этот флаг не следует устанавливать в альфа-форматах.
FORMATOP_3DACCELERATION (0x00000800L)
Графический ускоритель может поддерживать определенный уровень ускорения 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 (0x00008000L)
Поверхности этого формата можно считывать из как текстуры в формате sRGB (то есть дискретизатор линеализует уточняющие данные).
FORMATOP_BUMPMAP (0x00010000L)
Поверхности этого формата можно использовать в качестве текстуры карты среды удара. Обратите внимание, что этот флаг не зависит от FORMATOP_TEXTURE. Таким образом, формат пикселей можно использовать для текстур карты среды удара, а не для обычных текстур, сопоставленных с MIP.
FORMATOP_DMAP (0x00020000L)
Выборка карты смещения может выполнять выборку поверхностей этого формата.
FORMATOP_NOFILTER (0x00040000L)
Поверхности этого формата нельзя использовать с фильтрацией текстур.
FORMATOP_MEMBEROFGROUP_ARGB (0x00080000L)
Целевые поверхности этого формата можно преобразовать из любой исходной поверхности с форматом пикселей, для которого задан флаг 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 (0x00100000L)
Поверхности этого формата могут быть записаны в целевые объекты в формате sRGB (то есть пиксельный канал делинеаризирует данные на выходных данных в этом формате).
FORMATOP_NOALPHABLEND (0x00200000L)
Поверхности этого формата нельзя использовать с альфа-смешения.
FORMATOP_AUTOGENMIPMAP (0x00400000L)
Подстроки текстур, сопоставленных с MIP в этом формате, можно создать автоматически. Чтобы драйвер получал вызовы функции GenerateMipSubLevels , этот флаг должен быть предоставлен.
FORMATOP_VERTEXTEXTURE (0x00800000L)
Дискретизатор текстур вершин может использовать поверхности этого формата. То есть в качестве текстур вершин можно использовать только поверхности этого формата.
FORMATOP_NOTEXCOORDWRAPNORMIP (0x01000000L)
Поверхности этого формата можно условно использовать только для сопоставления текстур двухуровневых текстур с размерами, не являющимися 2. Дополнительные сведения см. в определениях для D3DPTEXTURECAPS_POW2 и D3DPTEXTURECAPS_NONPOW2CONDITIONAL на странице справки по D3DPRIMCAPS .
FORMATOP_PLANAR (0x02000000L)
Поверхности этого формата являются плоских и упакованных. Среда выполнения Direct3D должна выделить буфер, если она вызывает функцию Lock драйвера дисплея в пользовательском режиме на поверхности с плоской форматом, в то время как поверхность теряется, и обычное вычисление высоты с умноженным шагом в разы невозможно. Большинство форматов упаковываются, за исключением форматов, которые используются в Microsoft DirectX Video Acceleration (например, форматы YUV).
FORMATOP_OVERLAY (0x04000000L)
Поверхности этого формата используются для операций наложения.
FORMATOP_CAPTURE (0x08000000L)
Если задан элемент VideoEncoderструктуры D3DDDI_RESOURCEFLAGS2 , поверхности этого формата можно использовать в качестве буферов захвата.
Поддерживается начиная с Windows 8.
FORMATOP_VIDEO_ENCODER (0x10000000L)
Если задан элемент VideoEncoderструктуры D3DDDI_RESOURCEFLAGS2 , поверхности этого формата можно использовать в качестве входных ресурсов кодировщика видео.
Поддерживается начиная с Windows 8.
FORMATOP_MULTIPLANE_OVERLAY (0x20000000L)
Поверхности этого формата поддерживают многоплановый наложение.
Поддерживается начиная с Windows 8.
[out] FlipMsTypes
32-разрядная маска для многоэкранной выборки.
[out] BltMsTypes
32-разрядная маска для оконной выборки.
[out] PrivateFormatBitCount
Биты на пиксель в формате пикселей, который является частным для драйвера (то есть не один из стандартных форматов пикселей, определенных типом перечисления D3DDDIFORMAT ).
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Верхняя часть | d3dumddi.h (включая D3dumddi.h) |