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


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

Структура D3DKMT_RENDER описывает текущий отрисовываемый буфер команд.

Синтаксис

typedef struct _D3DKMT_RENDER {
  union {
    [in]     D3DKMT_HANDLE hDevice;
    [in]     D3DKMT_HANDLE hContext;
  };
  [in]     UINT                                  CommandOffset;
  [in]     UINT                                  CommandLength;
  [in]     UINT                                  AllocationCount;
  [in]     UINT                                  PatchLocationCount;
  void                                  D3DKMT_PTR(
    VOID              *unnamedParam1,
    pNewCommandBuffer unnamedParam2
  );
  [in/out] UINT                                  NewCommandBufferSize;
  void                                  D3DKMT_PTR(
    D3DDDI_ALLOCATIONLIST *unnamedParam1,
    pNewAllocationList    unnamedParam2
  );
  [in/out] UINT                                  NewAllocationListSize;
  void                                  D3DKMT_PTR(
    D3DDDI_PATCHLOCATIONLIST *unnamedParam1,
    pNewPatchLocationList    unnamedParam2
  );
  [in/out] UINT                                  NewPatchLocationListSize;
  [in]     D3DKMT_RENDERFLAGS                    Flags;
  [in]     D3DKMT_ALIGN64 ULONGLONG              PresentHistoryToken;
  [in]     ULONG                                 BroadcastContextCount;
           D3DKMT_HANDLE                         BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  [out]    ULONG                                 QueuedBufferCount;
  [out]    D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS NewCommandBuffer;
  void                                  D3DKMT_PTR(
    VOID               *unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
           UINT                                  PrivateDriverDataSize;
} D3DKMT_RENDER;

Члены

[in] hDevice

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

[in] hContext

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

[in] CommandOffset

Смещение (в байтах) к первой команде в буфере команд.

[in] CommandLength

Размер (в байтах) буфера команд, начиная с нуля смещения.

[in] AllocationCount

Количество элементов в отправленном списке выделения.

[in] PatchLocationCount

Количество элементов в списке отправленных расположений исправлений.

void D3DKMT_PTR( VOID *unnamedParam1, pNewCommandBuffer unnamedParam2)

[in/out] NewCommandBufferSize

Размер в байтах, запрашиваемый OpenGL ICD для следующего буфера команд, если в элементе Flags указан флаг битового поля ResizeCommandBuffer. Если Параметр ResizeCommandBuffer не указан, значение в NewCommandBufferSize игнорируется. В выходных данных драйвер получает размер (в байтах) следующего используемого буфера команд.

В зависимости от текущих условий памяти размер выходных данных может не совпадать с размером входных данных.

void D3DKMT_PTR( D3DDDI_ALLOCATIONLIST *unnamedParam1, pNewAllocationList unnamedParam2)

[in/out] NewAllocationListSize

Количество элементов, запрашиваемых OpenGL ICD для следующего списка выделения, если флаг битового поля ResizeAllocationList указан в элементе Flags . Если параметр ResizeAllocationList не указан, значение в NewAllocationListSize игнорируется. В выходных данных драйвер получает количество элементов, которые будут доступны в массиве выделений при отправке следующего буфера команд.

В зависимости от текущих условий памяти размер выходных данных может не совпадать с размером входных данных.

void D3DKMT_PTR( D3DDDI_PATCHLOCATIONLIST *unnamedParam1, pNewPatchLocationList unnamedParam2)

[in/out] NewPatchLocationListSize

Количество элементов, запрашиваемых OpenGL ICD для следующего списка расположений исправлений, если флаг битового поля ResizePatchLocationList указан в элементе Flags . Если параметр ResizePatchLocationList не указан, значение в NewPatchLocationListSize игнорируется. В выходных данных драйвер получает количество элементов, которые будут доступны в массиве расположений исправлений при отправке следующего буфера команд.

В зависимости от текущих условий памяти размер выходных данных может не совпадать с размером входных данных.

[in] Flags

Структура D3DKMT_RENDERFLAGS , указывающая тип буфера команд в флагах битовых полей для отрисовки.

[in] PresentHistoryToken

Токен текущего журнала для перенаправленных вызовов функции DxgkDdiPresent драйвера мини-порта дисплея.

Настоящий токен журнала — это пакет данных, который приложение отрисовки отправляет, чтобы сообщить диспетчеру окон рабочего стола (DWM) о завершении отрисовки и готовности обратного буфера цепочки буферов к представлению.

[in] BroadcastContextCount

Количество дополнительных контекстов в массиве, указанного BroadcastContext .

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

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

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

[out] QueuedBufferCount

Число буферов DMA, помещенных в очередь в контекст, который член hContext указывает после отправки.

[out] NewCommandBuffer

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

Поддерживается в Windows 7 и более поздних версиях:

[in] Указатель на буфер команд для отрисовки, если флаг RenderKm установлен в элементе Flags.

void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)

PrivateDriverDataSize

Этот элемент зарезервирован и должен иметь нулевое значение.

Этот элемент доступен начиная с Windows 7.

Требования

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

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

D3DKMTRender

D3DKMT_RENDERFLAGS

DxgkDdiPresent