структура 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 (включая D3dkmthk.h) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по