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


структура D3DKMT_PRESENT (d3dkmthk.h)

Структура D3DKMT_PRESENT описывает текущую операцию.

Синтаксис

typedef struct _D3DKMT_PRESENT {
  union {
    [in] D3DKMT_HANDLE hDevice;
    [in] D3DKMT_HANDLE hContext;
  };
  [in] HWND                           hWindow;
  [in] D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
  [in] D3DKMT_HANDLE                  hSource;
  [in] D3DKMT_HANDLE                  hDestination;
  [in] UINT                           Color;
  [in] RECT                           DstRect;
  [in] RECT                           SrcRect;
  [in] UINT                           SubRectCnt;
  [in] const RECT                     *pSrcSubRects;
  [in] UINT                           PresentCount;
  [in] D3DDDI_FLIPINTERVAL_TYPE       FlipInterval;
  [in] D3DKMT_PRESENTFLAGS            Flags;
  [in] ULONG                          BroadcastContextCount;
       D3DKMT_HANDLE                  BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  [in] HANDLE                         PresentLimitSemaphore;
  [in] D3DKMT_PRESENTHISTORYTOKEN     PresentHistoryToken;
       D3DKMT_PRESENT_RGNS            *pPresentRegions;
  union {
         D3DKMT_HANDLE hAdapter;
         D3DKMT_HANDLE hIndirectContext;
  };
       UINT                           Duration;
       D3DKMT_HANDLE                  *BroadcastSrcAllocation;
       D3DKMT_HANDLE                  *BroadcastDstAllocation;
       UINT                           PrivateDriverDataSize;
       PVOID                          pPrivateDriverData;
       BOOLEAN                        bOptimizeForComposition;
} D3DKMT_PRESENT;

Члены

[in] hDevice

Тип данных D3DKMT_HANDLE, представляющий дескриптор режима ядра для устройства, для представления. Дескриптор устройства предоставляется функции D3DKMTPresent в союзе, которая D3DKMT_PRESENT содержит для совместимости с Microsoft Direct3D версии 10.

[in] hContext

Тип данных D3DKMT_HANDLE, представляющий дескриптор режима ядра для контекста устройства для представления.

[in] hWindow

Дескриптор окна, к которому применяется передача битового блока (bitblt). Значение NULL указывает окно рабочего стола. Значение в hWindow может быть NULL, если Blt или ColorFill битовое поле флага указано в элементе Флаги.

[in] VidPnSourceId

Отсчитываемый от нуля идентификационный номер видео, представленный в пути к топологии текущей сети (VidPN), для которой требуется ограничить отображение, если флаг RestrictVidPnSource битовое поле задан в элементе Флаги.

Если установлен флаг RestrictVidPnSource битового поля, а элемент hWindowNULL, элемент VidPnSourceId указывает, какой вывод полноэкранного bitblt имеет значение Перенаправлено на параметр If RestrictVidPnSource, а hWindow не являетсяNULL, VidPnSourceId указывает, на какие выходные данные следует ограничить передачу окнено-битового блока.

[in] hSource

Тип данных D3DKMT_HANDLE, представляющий дескриптор режима ядра для системной памяти или основного выделения, который будет присутствовать, если флаг ColorFill битовое поле не задано в элементе Флаги.

[in] hDestination

Тип данных D3DKMT_HANDLE, представляющий дескриптор режима ядра в целевом выделении. hDestination может быть нулевым, если назначение неизвестно.

Дескриптор hDestination действителен только в том случае, если флаг Blt битового поля задан в элементе Флаги.

Если дескриптор в элементе hDestination ненулевое, то hDestination и дескриптор hWindow должен ссылаться на два разных основных выделения одного размера, Устройство в элементе hDevice должно принадлежать источнику видео, который определяется членом VidPnSourceId, а флаг SrcRectValid битового поля должен быть задан в элементе Flags.

[in] Color

ArGB 32-разрядная (см. D3DDDIFORMAT перечисление) значение цветовой заливки или ключа цвета. Значение заливки цвета задается, если флаг битового поля ColorFill установлен в элементе Флаги. Значение ключа цвета задается, если флаг SrcColorKey или DstColorKey битовое поле задан в элементе Flags. Обратите внимание, что только один из ColorFill, SrcColorKeyи DstColorKey флаги битового поля устанавливаются в любое время.

Если основной формат является палеттизированным RGB, color содержит индекс палитры, а не значение D3DDDIFMT_A8R8G8B8 из D3DDDIFORMAT.

[in] DstRect

Необязательный целевой RECT для bitblt. Целевой параметр RECT используется только в том случае, если флаг DstRectValid битовое поле задан в элементе Flags.

[in] SrcRect

Необязательный источник RECT для bitblt. Исходный параметр RECT используется только в том случае, если флаг SrcRectValid битовое поле задан в элементе Flags.

[in] SubRectCnt

Количество вложенных областей, которые pSrcSubRects указывает на то, что указано при представлении.

[in] pSrcSubRects

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

[in] PresentCount

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

[in] FlipInterval

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

[in] Flags

Структура D3DKMT_PRESENTFLAGS, идентифицирующая флаги битового поля, как отобразить. Обратите внимание, что флаг иColorFill SrcColorKeyи флаги DstColorKey битовое поле являются взаимоисключающими.

[in] BroadcastContextCount

Число дополнительных контекстов в массиве, который broadcastContext указывает.

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

Массив D3DKMT_HANDLE типов данных, представляющих обработчики режима ядра, в дополнительные контексты для трансляции текущей текущей операции. Константа D3DDDI_MAX_BROADCAST_CONTEXT, определяемая как 64, определяет максимальное количество контекстов, в которые ICD OpenGL может транслировать текущую текущую операцию.

Трансляция поддерживается только для операций переверки. Чтобы транслировать операцию переверки, драйвер мини-порта дисплея должен поддерживать сопоставленные операции ввода-вывода (MMIO) на основе операций ввода-вывода. Чтобы указать поддержку переворачиваний MMIO, драйвер мини-порта отображения задает флаг FlipOnVSyncMmIo битовое поле в элементе FlipCaps элемента структуры DXGK_DRIVERCAPS при вызове функции DxgkDdiQueryAdapterInfo.

Исходный контекст, указывающий элемент hContext, и что openGL ICD представляет собой не элемент в массиве BroadcastContext. Например, если массив BroadcastContext содержит один элемент, openGL ICD отправляет текущую операцию в собственный контекст (hContext) и передает в этот дополнительный контекст.

[in] PresentLimitSemaphore

Дескриптор текущего ограничения семафора.

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

[in] PresentHistoryToken

Структура D3DKMT_PRESENTHISTORYTOKEN, которая определяет тип текущей операции.

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

pPresentRegions

Указатель на структуру D3DKMT_PRESENT_RGNS, которая определяет грязные и перемещаемые области.

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

hAdapter

Дескриптор графического адаптера.

hIndirectContext

Контекст косвенного адаптера для перенаправления по пути doD. Этот элемент действителен только в том случае, если установлен флаг PresentIndirect.

Duration

Длительность каждого представления. Допустимо только в том случае, если установлен флаг DurationValid.

BroadcastSrcAllocation

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

BroadcastDstAllocation

Связанный адаптер отображения для назначения.

PrivateDriverDataSize

Размер данных частного драйвера.

pPrivateDriverData

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

bOptimizeForComposition

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
заголовка d3dkmthk.h (include D3dkmthk.h)

См. также

D3DDDIFORMAT

D3DKMTPresent

D3DKMT_PRESENTFLAGS

D3DKMT_PRESENTHISTORYTOKEN

D3DKMT_PRESENT_RGNS

RECT