структура 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;
[out] VOID *pNewCommandBuffer;
[in/out] UINT NewCommandBufferSize;
[out] D3DDDI_ALLOCATIONLIST *pNewAllocationList;
[in/out] UINT NewAllocationListSize;
[out] D3DDDI_PATCHLOCATIONLIST *pNewPatchLocationList;
[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 *pPrivateDriverData;
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
Количество элементов в списке отправленных исправлений.
[out] pNewCommandBuffer
Указатель на буфер команд, который openGL ICD получает для использования в следующем вызове функции D3DKMTRender. Драйвер всегда должен обновлять указатель на буфер команд после любого вызова D3DKMTRender независимо от того, выполнен ли вызов успешно.
Поддерживается в Windows 7 и более поздних версиях:
[in] Указатель на буфер команд для отрисовки, если флаг RenderKm установлен в элементе Flags.
[in/out] NewCommandBufferSize
Размер в байтах, запрашиваемый OpenGL ICD для следующего буфера команд, если флаг ResizeCommandBuffer битового поля указан в элементе Flags. Если ResizeCommandBuffer не указано, значение в NewCommandBufferSize игнорируется. В выходных данных драйвер получает размер в байтах следующего буфера команд для использования.
В зависимости от текущих условий памяти размер выходных данных может не соответствовать входному размеру.
[out] pNewAllocationList
Массив структур D3DDDI_ALLOCATIONLIST, которые OpenGL ICD получает для использования в качестве списка выделения в следующем вызове функции D3DKMTRender. Драйвер должен всегда обновлять указатель на список выделения после любого вызова D3DKMTRender независимо от того, выполнен ли вызов успешно.
Поддерживается в Windows 7 и более поздних версиях:
[in] Указатель на список выделения, который будет отображаться, если флаг RenderKm установлен в элементе Flags.
[in/out] NewAllocationListSize
Количество элементов, запрашиваемых OpenGL ICD для следующего списка выделения, если флаг ResizeAllocationList битовое поле указывается в элементе Flags. Если ResizeAllocationList не задано, значение в NewAllocationListSize игнорируется. В выходных данных драйвер получает количество элементов, которые будут доступны в массиве выделений при отправке следующего буфера команд.
В зависимости от текущих условий памяти размер выходных данных может не соответствовать входному размеру.
[out] pNewPatchLocationList
Массив структур D3DDDI_PATCHLOCATIONLIST, которые OpenGL ICD получает для использования в качестве списка расположений исправлений в следующем вызове функции D3DKMTRender. Драйвер всегда должен обновлять указатель на список расположений исправлений после любого вызова D3DKMTRender независимо от того, выполнен ли вызов успешно.
[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.
pPrivateDriverData
Этот элемент зарезервирован и должен иметь значение нулю.
Этот член доступен начиная с Windows 7.
PrivateDriverDataSize
Этот элемент зарезервирован и должен иметь значение нулю.
Этот член доступен начиная с Windows 7.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista |
заголовка | d3dkmthk.h (include D3dkmthk.h) |