структура 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

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

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

pNewAllocationList

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

NewAllocationListSize

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

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

pNewPatchLocationList

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

NewPatchLocationListSize

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

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

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

Уникальный идентификатор для каждого вызова функции pfnRenderCb . Начинается со значения 1 для контекстов, связанных с однопоточными DDIs в пользовательском режиме, и диапазонов до значения 0x80000001 для контекстов, связанных с DDIs в режиме пользователя со свободным потоком. Драйвер отображения пользовательского режима должен увеличивать значение для каждого вызова 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 (включая D3dumddi.h)

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

D3DDDICB_RENDERFLAGS

D3DDDI_ALLOCATIONLIST

D3DDDI_PATCHLOCATIONLIST

pfnRenderCb