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


структура D3DDDICB_RENDER (d3dumddi.h)

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

Синтаксис

typedef struct _D3DDDICB_RENDER {
  UINT                     CommandLength;
  UINT                     CommandOffset;
  UINT                     NumAllocations;
  UINT                     NumPatchLocations;
  VOID                     *pNewCommandBuffer;
  UINT                     NewCommandBufferSize;
  D3DDDI_ALLOCATIONLIST    *pNewAllocationList;
  UINT                     NewAllocationListSize;
  D3DDDI_PATCHLOCATIONLIST *pNewPatchLocationList;
  UINT                     NewPatchLocationListSize;
  D3DDDICB_RENDERFLAGS     Flags;
  HANDLE                   hContext;
  UINT                     BroadcastContextCount;
  HANDLE                   BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  ULONG                    QueuedBufferCount;
  D3DGPU_VIRTUAL_ADDRESS   NewCommandBuffer;
  VOID                     *pPrivateDriverData;
  UINT                     PrivateDriverDataSize;
  D3DDDI_MARKERLOGTYPE     MarkerLogType;
  UINT                     RenderCBSequence;
  union {
    struct {
      UINT FirstAPISequenceNumberHigh;
      UINT CompletedAPISequenceNumberLow0Size;
      UINT CompletedAPISequenceNumberLow1Size;
      UINT BegunAPISequenceNumberLow0Size;
      UINT BegunAPISequenceNumberLow1Size;
    };
    UINT BatchedMarkerDataCount;
  };
  union {
    struct {
      const UINT *pCompletedAPISequenceNumberLow0;
      const UINT *pCompletedAPISequenceNumberLow1;
      const UINT *pBegunAPISequenceNumberLow0;
      const UINT *pBegunAPISequenceNumberLow1;
    };
    const D3DDDI_BATCHEDMARKERDATA *pBatchedMarkerData;
  };
} D3DDDICB_RENDER;

Члены

CommandLength

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

CommandOffset

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

NumAllocations

[in] Количество элементов в списке выделения.

NumPatchLocations

[in] Количество элементов в списке исправлений.

pNewCommandBuffer

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

NewCommandBufferSize

[in/out] Размер в байтах, запрашивающий драйвер в пользовательском режиме для следующего буфера команд.

Драйвер получает размер в байтах следующего буфера команд для использования.

pNewAllocationList

[out] Массив структур D3DDDI_ALLOCATIONLIST, которые драйвер отображения пользовательского режима получает для использования в качестве списка выделения в следующем вызове функции pfnRenderCb.

NewAllocationListSize

[in/out] Количество элементов, запрашиваемых драйвером в пользовательском режиме для следующего списка выделения.

Драйвер получает количество элементов для списка выделения, которое будет доступно при отправке следующего буфера команд.

pNewPatchLocationList

[out] Массив структур D3DDDI_PATCHLOCATIONLIST, которые драйвер отображения пользовательского режима получает для использования в качестве списка расположений исправлений в следующем вызове функции pfnRenderCb.

NewPatchLocationListSize

[in/out] Количество элементов, запрашиваемых драйвером в пользовательском режиме для следующего списка расположений исправлений.

Драйвер получает количество элементов для списка расположений исправлений, которые будут доступны при отправке следующего буфера команд.

Flags

[in] Структура D3DDDICB_RENDERFLAGS, указывающая сведения о буфере команд для отрисовки.

hContext

[in] Дескриптор контекста, в который драйвер отправляет операцию отрисовки. Драйвер отображения в пользовательском режиме ранее создал этот контекст путем вызова функции pfnCreateContextCb.

BroadcastContextCount

[in] Число дополнительных контекстов в массиве, указанное элементом broadcastContext.

BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

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

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

QueuedBufferCount

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

NewCommandBuffer

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

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

pPrivateDriverData

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

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

PrivateDriverDataSize

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

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

MarkerLogType

Перечисление D3DDDI_MARKERLOGTYPE, указывающее тип маркера в журнале трассировки событий для Windows (ETW), который поддерживает драйвер отображения в пользовательском режиме.

RenderCBSequence

Уникальный идентификатор для каждого вызова функции pfnRenderC b. Начинается со значения 1 для контекстов, связанных с однопоточными идентификаторами DDIs и диапазонами до значения 0x80000001 для контекстов, связанных с DD В свободном потоке пользовательского режима. Драйвер отображения в пользовательском режиме должен увеличивать значение для каждого вызова pfnRenderCb, которое он делает на любом обработчике.

FirstAPISequenceNumberHigh

Используется драйвером для передачи номера последовательности API контекста.

CompletedAPISequenceNumberLow0Size

Используется драйвером для передачи номера последовательности API контекста.

CompletedAPISequenceNumberLow1Size

Используется драйвером для передачи номера последовательности API контекста.

BegunAPISequenceNumberLow0Size

Используется драйвером для передачи номера последовательности API контекста.

BegunAPISequenceNumberLow1Size

Используется драйвером для передачи номера последовательности API контекста.

BatchedMarkerDataCount

pCompletedAPISequenceNumberLow0

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

pCompletedAPISequenceNumberLow1

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

pBegunAPISequenceNumberLow0

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

pBegunAPISequenceNumberLow1

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

pBatchedMarkerData

Требования

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

См. также

D3DDDICB_RENDERFLAGS

D3DDDI_ALLOCATIONLIST

D3DDDI_PATCHLOCATIONLIST

pfnRenderCb