функция обратного вызова PFND3D11DDI_DRAWINDEXEDINSTANCEDINDIRECT (d3d10umddi.h)
Функция DrawIndexedInstancedIndirect рисует определенные экземпляры индексированных примитивов.
Синтаксис
PFND3D11DDI_DRAWINDEXEDINSTANCEDINDIRECT Pfnd3d11ddiDrawindexedinstancedindirect;
void Pfnd3d11ddiDrawindexedinstancedindirect(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HRESOURCE unnamedParam2,
UINT unnamedParam3
)
{...}
Параметры
unnamedParam1
hDevice [in]
Дескриптор устройства отображения (графический контекст).
unnamedParam2
hBufferForArgs
Дескриптор буфера, содержащий аргументы для обработки DrawIndexedInstancedIndirect. Буфер содержит следующую плотно упакованную структуру:
struct DrawIndexedInstancedIndirectArgs {
UINT IndexCountPerInstance;
UINT InstanceCount;
UINT StartIndexLocation;
INT BaseVertexLocation;
UINT StartInstanceLocation;
}
Дополнительные сведения об этих аргументах см. на странице справки по DrawIndexedInstanced.
unnamedParam3
AlignedByteOffsetForArgs
Смещение в байтах в буфер, который hBufferForArgs. AlignedByteOffsetForArgs должно быть кратным 4.
Возвращаемое значение
Никакой
Замечания
Драйвер может использовать функцию обратного вызова pfnSetErrorCb для задания кода ошибки.
Функция DrawIndexedInstancedIndirect выполняет ту же задачу, что и вызов функции DrawIndexedInstanced драйвера. Однако DrawIndexedInstancedIndirect получает сведения о примитивах индекса из содержимого буфера, указанного параметром hBufferForArgs. DrawIndexedInstancedIndirect считывает содержимое буфера, начиная с смещения байтов, указанного параметром AlignedByteOffsetForArgs.
Когда среда выполнения Direct3D вызывает драйвера CreateResource(D3D11) функцию для создания буферного ресурса, указанного параметром hBufferForArgs, среда выполнения должна задать флаг D3D11_DDI_RESOURCE_MISC_DRAWINDIRECT_ARGS в MiscFlags член структуры D3D11DDIARG_CREATERESOURCE.
Драйвер не должен столкнуться с ошибкой, за исключением D3DDDIERR_DEVICEREMOVED. Таким образом, если драйвер передает любую ошибку, за исключением D3DDDIERR_DEVICEREMOVED, при вызове функции pfnSetErrorCb среда выполнения Direct3D определяет, что ошибка является критической. Даже если устройство удалено, драйвер не требуется возвращать D3DDDIERR_DEVICEREMOVED; Однако если удаление устройства препятствует работе DrawIndexedInstancedInstancedIndirect (что обычно не должно произойти), драйвер может вернуть D3DDDIERR_DEVICEREMOVED.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | DrawIndexedInstancedIndirect поддерживается начиная с операционной системы Windows 7. |
целевая платформа | Настольный |
заголовка | d3d10umddi.h (include D3d10umddi.h) |