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


структура 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 , применяются следующие условия:

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows Vista.
Верхняя часть d3dkmthk.h (включая D3dkmthk.h)

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

D3DKMDT_VIDPN_PRESENT_PATH

D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION

D3DKMT_DISPLAYMODE

D3DKMT_PRESENT

DXGKARG_SETVIDPNSOURCEADDRESS

DXGK_SETVIDPNSOURCEADDRESS_FLAGS