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


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

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

Синтаксис

typedef struct _D3DKMT_PRESENT {
  union {
    [in] D3DKMT_HANDLE hDevice;
    [in] D3DKMT_HANDLE hContext;
  };
  void                           D3DKMT_PTR(
    HWND    unnamedParam1,
    hWindow unnamedParam2
  );
  [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;
  void                           D3DKMT_PTR(
    const RECT   *unnamedParam1,
    pSrcSubRects unnamedParam2
  );
  [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;
  void                           D3DKMT_PTR(
    D3DKMT_HANDLE          *unnamedParam1,
    BroadcastSrcAllocation unnamedParam2
  );
  void                           D3DKMT_PTR(
    D3DKMT_HANDLE          *unnamedParam1,
    BroadcastDstAllocation unnamedParam2
  );
       UINT                           PrivateDriverDataSize;
  void                           D3DKMT_PTR(
    PVOID              unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
       BOOLEAN                        bOptimizeForComposition;
} D3DKMT_PRESENT;

Члены

[in] hDevice

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

[in] hContext

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

void D3DKMT_PTR( HWND unnamedParam1, hWindow unnamedParam2)

[in] VidPnSourceId

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

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

[in] hSource

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

[in] hDestination

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

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

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

[in] Color

32-битовое значение ARGB (см. перечисление D3DDDIFORMAT ) с заливкой цвета или значением ключа цвета . Значение цветовой заливки устанавливается, если флаг битового поля ColorFill установлен в элементе Flags . Значение для ключа цвета устанавливается, если флаг битового поля 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 , которые указываются при представлении.

void D3DKMT_PTR( const RECT *unnamedParam1, pSrcSubRects unnamedParam2)

[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, определяется максимальное количество контекстов, в которые OpenGL ICD может транслироваться текущая операция.

Широковещательная трансляция поддерживается только для операций flip. Чтобы транслировать операцию перелистывания, драйвер мини-порта дисплея должен поддерживать переворачиваемые в памяти операции ввода-вывода (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.

void D3DKMT_PTR( D3DKMT_HANDLE *unnamedParam1, BroadcastSrcAllocation unnamedParam2)

void D3DKMT_PTR( D3DKMT_HANDLE *unnamedParam1, BroadcastDstAllocation unnamedParam2)

PrivateDriverDataSize

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

void D3DKMT_PTR( PVOID unnamedParam1, pPrivateDriverData unnamedParam2)

bOptimizeForComposition

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

Требования

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

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

D3DDDIFORMAT

D3DKMTPresent

D3DKMT_PRESENTFLAGS

D3DKMT_PRESENTHISTORYTOKEN

D3DKMT_PRESENT_RGNS

RECT