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


структура DXGK_SETVIDPNSOURCEADDRESS_FLAGS (d3dkmddi.h)

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

Синтаксис

typedef struct _DXGK_SETVIDPNSOURCEADDRESS_FLAGS {
  union {
    struct {
      UINT ModeChange : 1;
      UINT FlipImmediate : 1;
      UINT FlipOnNextVSync : 1;
      UINT FlipStereo : 1;
      UINT FlipStereoTemporaryMono : 1;
      UINT FlipStereoPreferRight : 1;
      UINT SharedPrimaryTransition : 1;
      UINT IndependentFlipExclusive : 1;
      UINT MoveFlip : 1;
#if ...
      UINT Reserved : 23;
#elif
      UINT Reserved : 24;
#elif
      UINT Reserved : 25;
#else
      UINT Reserved : 29;
#endif
    };
         UINT Value;
  };
} DXGK_SETVIDPNSOURCEADDRESS_FLAGS;

Члены

ModeChange

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

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

FlipImmediate

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

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

FlipOnNextVSync

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

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

[in] FlipStereo

Поддерживается начиная с Windows 8.

Указывает, будет ли драйвер переворачивать как левое, так и правое изображения стереосделения.

Если задан элемент FlipOnNextVSyncструктуры DXGK_SETVIDPNSOURCEADDRESS_FLAGS , драйвер завершает пролистывание влево на следующем VSync, а затем выполняет пролистывание вправо на следующем VSync.

Если задан элемент FlipImmediateструктуры DXGK_SETVIDPNSOURCEADDRESS_FLAGS , драйвер сразу же начинает сканировать новое выделение. Например, если драйвер сканировал правильное изображение, он запускает новое сканирование с тем же относительным смещением в правом изображении нового выделения.

Элементы FlipStereo и FlipStereoTemporaryMono нельзя задать одновременно.

Дополнительные требования см. в разделе Примечания.

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

[in] FlipStereoTemporaryMono

Поддерживается начиная с Windows 8.

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

Этот элемент следует задавать только в том случае, если драйвер сообщает о поддержке этого параметра в текущем режиме отображения, задав для элемента Type структуры D3DKMDT_VIDPN_SOURCE_MODE значение D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN.

Элементы FlipStereo и FlipStereoTemporaryMono нельзя задать одновременно.

Элементы FlipStereoTemporaryMono и FlipStereoPreferRight нельзя задать одновременно.

Дополнительные требования см. в разделе Примечания.

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

[in] FlipStereoPreferRight

Поддерживается начиная с Windows 8.

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

Элементы FlipStereoTemporaryMono и FlipStereoPreferRight нельзя задать одновременно.

Дополнительные требования см. в разделе Примечания.

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

[in] SharedPrimaryTransition

Поддерживается начиная с Windows 8.

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

Этот элемент задается, если происходит любой из следующих переходов:

  • Текущее основное выделение не является общим первичным, но новым является.
  • Текущее основное выделение является общим первичным выделением, но новое — нет.
Если задан параметр SharedPrimaryTransition , драйвер мини-порта дисплея должен убедиться, что оборудование может легко переключаться между основным и общим основным выделением, а также выполнять любое аппаратное программирование, необходимое для простого переключения.

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

[in] IndependentFlipExclusive

Поддерживается начиная с Windows 10.

Если задан параметр IndependentFlipExlusive , пролистывание выполняется в монопольном режиме независимой пролистывания. Доступ к переднему буферу осуществляется только с помощью оборудования дисплея (не DWM), а драйвер режима ядра может применять оптимизации, связанные с вертикальной синхронизацией.

[in] MoveFlip

Поддерживается начиная с Windows 10.

Если параметр MoveFlip задан, драйвер получает уведомление об использовании любого состояния, сохраненного после предыдущего переворачивания, для настройки нового запроса scanout.

[in] Reserved

Этот элемент зарезервирован и должен иметь нулевое значение. Присвоение этому элементу нулевого значения эквивалентно установке оставшихся 23 битов (0xFFFFFF00) 32-разрядного элемента Value равными нулям.

Value

Член объединения, который DXGK_SETVIDPNSOURCEADDRESS_FLAGS содержит, который может содержать 32-разрядное значение, определяющее тип операции.

Комментарии

Если задан какой-либо из членов FlipStereo, FlipStereoTemporaryMono или FlipStereoPreferRight , применяются следующие условия:

  • Элемент hAllocation структуры DXGKARG_SETVIDPNSOURCEADDRESS указывает на выделение, созданное с помощью элемента Stereo , заданного в элементе Flags структуры D3DKMT_DISPLAYMODE .
  • Элементы PrimarySegment и PrimaryAddressDXGKARG_SETVIDPNSOURCEADDRESS указывают на начальный физический адрес выделения.
  • Драйвер учитывает параметры членов FlipImmediate и FlipOnNextVSyncструктуры DXGK_SETVIDPNSOURCEADDRESS_FLAGS .
Начиная с Windows 8 драйвер мини-порта дисплея может завершить вызов функции DxgkDdiSetVidPnSourceAddress, возвращая STATUS_INVALID_PARAMETER, если элемент SharedPrimaryTransition задан в флагах pSetVidPnSourceAddress->. Однако такой сбой не ожидается, если не возникнет ошибка в реализации драйвера пользовательского режима функции CheckDirectFlipSupport или в диспетчере окон рабочего стола (DWM). Если произойдет такой сбой, операционная система не будет легко вернуться в режим композиции, и представление будет неправильным.

Требования

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

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

D3DKMT_DISPLAYMODE

DXGKARG_SETVIDPNSOURCEADDRESS

DXGK_SETVIDPNSOURCEADDRESS_FLAGS

DxgkDdiSetVidPnSourceAddress

DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay