структура D3DKMT_PRESENTFLAGS (d3dkmthk.h)
Структура D3DKMT_PRESENTFLAGS определяет, как выполнять текущую операцию.
Синтаксис
typedef struct _D3DKMT_PRESENTFLAGS {
union {
struct {
UINT Blt : 1;
UINT ColorFill : 1;
UINT Flip : 1;
UINT FlipDoNotFlip : 1;
UINT FlipDoNotWait : 1;
UINT FlipRestart : 1;
UINT DstRectValid : 1;
UINT SrcRectValid : 1;
UINT RestrictVidPnSource : 1;
UINT SrcColorKey : 1;
UINT DstColorKey : 1;
UINT LinearToSrgb : 1;
UINT PresentCountValid : 1;
UINT Rotate : 1;
UINT PresentToBitmap : 1;
UINT RedirectedFlip : 1;
UINT RedirectedBlt : 1;
UINT FlipStereo : 1;
UINT FlipStereoTemporaryMono : 1;
UINT FlipStereoPreferRight : 1;
UINT BltStereoUseRight : 1;
UINT PresentHistoryTokenOnly : 1;
UINT PresentRegionsValid : 1;
UINT PresentDDA : 1;
UINT ProtectedContentBlankedOut : 1;
UINT RemoteSession : 1;
UINT CrossAdapter : 1;
UINT DurationValid : 1;
UINT PresentIndirect : 1;
UINT PresentHMD : 1;
#if ...
UINT Reserved : 2;
#elif
UINT Reserved : 6;
#else
UINT Reserved : 15;
#endif
};
UINT Value;
};
} D3DKMT_PRESENTFLAGS;
Члены
Blt
Значение UINT, указывающее, следует ли передавать данные bit-block (bitblt) на основную поверхность. Этот флаг битового поля можно использовать с флагами битовых полей DstRectValid и SrcRectValid .
Задание этого элемента эквивалентно установке первого бита 32-разрядного элемента Value (0x00000001).
ColorFill
Значение UINT, указывающее, следует ли выполнять бит-заливку цвета для основной поверхности с помощью значения в элементе Colorструктуры D3DKMT_PRESENT . Этот флаг битового поля можно использовать с флагом битового поля DstRectValid .
Задание этого элемента эквивалентно установке второго бита 32-разрядного элемента Value (0x00000002).
Flip
Значение UINT, указывающее, следует ли переключаться на новую поверхность.
Задание этого элемента эквивалентно установке третьего бита 32-разрядного элемента Value (0x00000004).
FlipDoNotFlip
Значение UINT, указывающее, следует ли вставлять очереди ожидания в поток отрисовки. Установка этого элемента означает, что нужно перевернуться на ту же поверхность, которая в настоящее время сканируется.
Задание этого элемента эквивалентно установке четвертого бита 32-разрядного элемента Value (0x00000008).
FlipDoNotWait
Значение UINT, указывающее, требуется ли устанавливаемому клиентскому драйверу OpenGL (ICD) ждать, пока количество поверхностей переворачивания в очереди не опустится ниже определенного предела, прежде чем начнется операция. Установка этого элемента означает, что ICD не требует ожидания. Ограничение по умолчанию для количества поверхностей пролистывания в очереди составляет три.
Задание этого элемента эквивалентно установке пятого бита 32-разрядного элемента Value (0x00000010).
FlipRestart
Значение UINT, указывающее, следует ли перезапустить пролистывание на новую поверхность.
Задание этого элемента эквивалентно установке шестого бита 32-разрядного элемента Value (0x00000020).
DstRectValid
Значение UINT, указывающее, использует ли bitblt прямоугольную область назначения.
Задание этого элемента эквивалентно установке седьмого бита 32-разрядного элемента Value (0x00000040).
SrcRectValid
Значение UINT, указывающее, использует ли bitblt прямоугольную область источника.
Задание этого элемента эквивалентно установке восьмого бита 32-разрядного элемента Value (0x00000080).
RestrictVidPnSource
Значение UINT, указывающее, следует ли ограничить bitblt. Если элемент hWindow имеет значение NULL, то элемент VidPnSourceId структуры D3DKMT_PRESENT указывает, на какие выходные данные направляется полноэкранный bitblt; Если значение hWindow не равно NULL, VidPnSourceId указывает, какими выходными данными следует ограничить bitblt с окном.
Задание этого элемента эквивалентно установке девятого бита 32-разрядного элемента Value (0x00000100).
SrcColorKey
Значение UINT, указывающее, следует ли использовать исходный ключ цвета с помощью значения в элементе Colorструктуры D3DKMT_PRESENT . То есть любой пиксель в исходной поверхности, соответствующий цветовому ключу, не должен копироваться в целевую область, а все исходные пиксели, которые не соответствуют цветовому ключу, должны быть скопированы.
Задание этого элемента эквивалентно установке десятого бита 32-разрядного элемента Value (0x00000200).
DstColorKey
Значение UINT, указывающее, следует ли использовать целевой цветовой ключ, используя значение в элементе Color D3DKMT_PRESENT. То есть любой пиксель на целевой поверхности, соответствующий цветовому ключу, должен быть заменен соответствующим пикселем из исходной поверхности, и все конечные пиксели, которые не соответствуют цветовому ключу, не должны заменяться.
Задание этого элемента эквивалентно установке одиннадцатого бита 32-разрядного элемента Value (0x00000400).
LinearToSrgb
Значение UINT, указывающее, следует ли преобразовать источник с линейным форматированием в формат sRGB во время операции копирования. Формат sRGB исправлен гамма. Дополнительные сведения о формате sRGB см. на веб-сайте sRGB .
Задание этого элемента эквивалентно установке двенадцатого бита 32-разрядного элемента Value (0x00000800).
PresentCountValid
Значение UINT, указывающее, является ли допустимым значение, заданное в элементе PresentCountструктуры D3DKMT_PRESENT .
Задание этого элемента эквивалентно установке тринадцатого бита 32-разрядного элемента Value (0x00001000).
[in] Rotate
Значение UINT, указывающее, следует ли поворачивать данные презентации в соответствии с текущей ориентацией экрана во время передачи битового блока презентации (bitblt). Текущая ориентация экрана задается в элементе Поворотструктуры D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION , который задается в элементе ContentTransformationструктуры D3DKMDT_VIDPN_PRESENT_PATH для пути представления видео.
Драйвер мини-порта дисплея должен поворачивать данные только в том случае, если установлен флаг Поворот битового поля. Даже если драйвер определяет, что текущая ориентация экрана повернута из данных презентации, а поворот не задан, драйвер не должен поворачивать данные.
Задание этого элемента эквивалентно установке четырнадцатого бита 32-разрядного элемента Value (0x00002000).
PresentToBitmap
Значение UINT, указывающее, следует ли представлять точечный рисунок.
Задание этого элемента эквивалентно установке пятнадцатого бита 32-разрядного элемента Value (0x00004000).
Поддерживается начиная с Windows 7.
RedirectedFlip
Значение UINT, указывающее, следует ли перенаправлять пролистывание на новую поверхность.
Задание этого элемента эквивалентно установке шестнадцатого бита 32-разрядного элемента Value (0x00008000).
Поддерживается начиная с Windows 7.
RedirectedBlt
Значение UINT, указывающее, следует ли перенаправлять bitblt на новую поверхность.
Задание этого элемента эквивалентно установке семнадцатого бита 32-разрядного элемента Value (0x00010000).
Поддерживается начиная с Windows 7.
FlipStereo
Указывает, должен ли драйвер переворачивать левое и правое изображения стереовыделения.
Если задан элемент FlipOnNextVSync структуры DXGK_SETVIDPNSOURCEADDRESS_FLAGS , драйвер должен выполнить пролистывание к левому изображению на следующем VSync, а затем выполнить пролистывание вправо в следующей виртуальной синхронизации.
Если задан элемент FlipImmediateструктуры DXGK_SETVIDPNSOURCEADDRESS_FLAGS , драйвер должен немедленно начать сканирование из нового выделения. Например, если драйвер сканировал правое изображение, он должен запустить новую проверку с тем же относительным смещением в правом изображении нового выделения.
Элементы FlipStereo и FlipStereoTemporaryMono нельзя задать одновременно.
Дополнительные требования см. в разделе Примечания.
Задание этого элемента эквивалентно установке восемнадцатого бита 32-разрядного элемента Value (0x00020000).
Поддерживается начиная с Windows 8.
FlipStereoTemporaryMono
Указывает, должен ли драйвер использовать левое изображение стереораспределения для правой и левой частей стереокадра. Драйвер выполняет ту же операцию, что и FlipStereo, за исключением того, что он должен сканировать только из левого изображения, чтобы создать оба изображения стереокадра.
Этот элемент следует задавать только в том случае, если драйвер сообщает о поддержке этого параметра в текущем режиме отображения, задав для элемента Type структуры D3DKMDT_VIDPN_SOURCE_MODE значение D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN.
Элементы FlipStereo и FlipStereoTemporaryMono нельзя задать одновременно.
Элементы FlipStereoTemporaryMono и FlipStereoPreferRight нельзя задать одновременно.
Дополнительные требования см. в разделе Примечания.
Задание этого элемента эквивалентно установке девятнадцатого бита 32-разрядного элемента Value (0x00040000).
Поддерживается начиная с Windows 8.
FlipStereoPreferRight
Указывает, что при клонировании основного стереофонического выделения в мономониометре драйвер должен использовать правильное изображение.
Элементы FlipStereoTemporaryMono и FlipStereoPreferRight нельзя задать одновременно.
Дополнительные требования см. в разделе Примечания.
Задание этого элемента эквивалентно установке двадцатого бита 32-разрядного элемента Value (0x00080000).
Поддерживается начиная с Windows 8.
BltStereoUseRight
Указывает, что при представлении драйвера из стереораспределений в монораспределенное выделение должно использоваться правильное изображение. Если значение не задано, драйвер должен использовать левый образ.
Задание этого элемента эквивалентно установке двадцать первого бита 32-разрядного элемента Value (0x00100000).
Поддерживается начиная с Windows 8.
PresentHistoryTokenOnly
Указывает, что драйвер должен отправлять только маркер текущего журнала.
Маркер текущего журнала — это пакет данных, который приложение отрисовки отправляет, чтобы сообщить диспетчеру окон рабочего стола (DWM) о том, что отрисовка завершена и буфер обратной цепочки буферов готов к представлению.
Установка этого элемента эквивалентна установке двадцать второго бита 32-разрядного элемента Value (0x00200000).
Поддерживается начиная с Windows 8.
PresentRegionsValid
Указывает, что D3DKMT_PRESENT. Элемент pPresentRegions является допустимым указателем (не NULL).
Задание этого элемента эквивалентно установке двадцать третьего бита 32-разрядного элемента Value (0x00400000).
Поддерживается начиная с Windows 8.
PresentDDA
Этот элемент зарезервирован и должен иметь нулевое значение.
Задание этого элемента эквивалентно установке двадцать четвертого бита 32-разрядного элемента Value (0x00800000).
Поддерживается начиная с Windows 8.
ProtectedContentBlankedOut
Этот элемент зарезервирован и должен иметь нулевое значение.
Задание этого элемента эквивалентно установке двадцать пятого бита 32-разрядного элемента Value (0x01000000).
Поддерживается начиная с Windows 8.
RemoteSession
Указывает, что текущая операция направляется в удаленный сеанс.
Задание этого элемента эквивалентно установке двадцать шестого бита 32-разрядного элемента Value (0x02000000).
Поддерживается начиная с Windows 8.
CrossAdapter
Перекрестный адаптер.
DurationValid
Указывает, является ли длительность допустимой.
PresentIndirect
Присутствует непрямой.
PresentHMD
Reserved
Поддерживается начиная с Windows 8.
Этот элемент зарезервирован и должен иметь нулевое значение. Установка для этого элемента нулевого значения эквивалентна установке оставшихся 9 битов (0xFF800000) 32-разрядного элемента Value равными нулям.
Value
32-разрядное значение, определяющее способ выполнения текущей операции.
Комментарии
Если задан какой-либо из членов FlipStereo, FlipStereoTemporaryMono или FlipStereoPreferRight , применяются следующие условия:
- Элемент hAllocationструктуры DXGKARG_SETVIDPNSOURCEADDRESS должен указывать на выделение, созданное с помощью элемента Stereo , заданного в элементе Flags структуры D3DKMT_DISPLAYMODE .
- Элементы PrimarySegment и PrimaryAddressDXGKARG_SETVIDPNSOURCEADDRESS должны указывать на начальный физический адрес выделения.
- Драйвер должен учитывать параметры членов FlipImmediate и FlipOnNextVSyncструктуры DXGK_SETVIDPNSOURCEADDRESS_FLAGS .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows Vista. |
Верхняя часть | d3dkmthk.h (включая D3dkmthk.h) |