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


Метод ID3D11DeviceContext::D rawAuto (d3d11.h)

Рисование геометрии неизвестного размера.

Синтаксис

void DrawAuto();

Возвращаемое значение

None

Remarks

API рисования отправляет работу в конвейер отрисовки. Этот API отправляет работу неизвестного размера, которая была обработана входным ассемблером, вершинным шейдером и этапами потокового вывода; работа может пройти этап геометрического шейдера.

После потоковой передачи данных в буферы этапа потокового вывода эти буферы можно снова привязать к этапу сборщика входных данных во входном слоте 0, и DrawAuto нарисует их без необходимости знать объем данных, записанных в буферы. Измерение объема данных, записываемых в буферы этапов SO, поддерживается внутренне при передаче данных. Это означает, что ЦП не нужно получить измерение перед повторной привязкой данных, которые были потоковой передачи в качестве входных данных. Хотя этот объем отслеживается внутри, приложения по-прежнему несут ответственность за использование входных макетов для описания формата данных в буферах этапов SO, чтобы макеты были доступны, когда буферы снова привязаны к ассемблере ввода.

На следующей схеме показан процесс DrawAuto.

Схема drawAuto, когда данные перемещаются через несколько этапов в буфер, а затем обратно на этап сборщика входных данных

Вызов DrawAuto не изменяет состояние буферов потокового вывода, которые были снова привязаны как входные данные.

DrawAuto работает только при рисовании с одним входным буфером, привязанным в качестве входных данных к этапу IA в слоте 0. Приложения должны создать ресурс буфера SO с флагами привязки, D3D11_BIND_VERTEX_BUFFER и D3D11_BIND_STREAM_OUTPUT.

Этот API не поддерживает индексирование или инстансирование.

Если приложению необходимо получить размер буфера потокового вывода, оно может запрашивать статистику по выходным данным потоковой передачи с помощью D3D11_QUERY_SO_STATISTICS.

Требования

Требование Значение
Целевая платформа Windows
Header d3d11.h
Библиотека D3D11.lib

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

ID3D11DeviceContext