Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Список команд — это записанный список команд отрисовки. В этом разделе показано, как создать и записать список команд . Используйте список команд для записи команд отрисовки и их воспроизведения позже. Список команд удобнее для разделения задач отрисовки между потоками.
Чтобы записать список команд
Список команд должен быть создан на основе отложенного контекста, который содержит состояние устройства и действия по отрисовке. При использовании устройства создайте отложенный контекст путем вызова ID3D11Device::CreateDeferredContext.
HRESULT hr; ID3D11DeviceContext* pDeferredContext = NULL; hr = g_pd3dDevice->CreateDeferredContext(0, &pDeferredContext);
Используйте отложенный контекст для визуализации.
float ClearColor[4] = { 0.0f, 0.125f, 0.3f, 1.0f }; pDeferredContext->ClearRenderTargetView( g_pRenderTargetView, ClearColor ); // Add additional rendering commands ...
Этот простой пример очищает целевой объект отрисовки, но можно добавить дополнительные команды отрисовки.
Создание и запись списка команд путем вызова ID3D11DeviceContext::FinishCommandList и передачи указателя на неинициализированный интерфейс ID3D11CommandList.
ID3D11CommandList* pd3dCommandList = NULL; HRESULT hr; hr = pDeferredContext->FinishCommandList(FALSE, &pd3dCommandList);
При возврате метода создается список команд, содержащий все команды отрисовки, и интерфейс возвращается приложению.
Логический параметр сообщает среде выполнения, что делать с состоянием конвейера обработки данных в контексте отложенной обработки. TRUE означает восстановление состояния контекста устройства до состояния списка предварительной команды при завершении записи, FALSE означает, что состояние после записи не изменится. Это означает, что контекст устройства будет отражать изменения состояния, содержащиеся в списке команд.
Чтобы увидеть пример воспроизведения списка команд, смотрите раздел Как: Воспроизведение списка команд.
Связанные разделы