Интерфейс ID3DX11ThreadPump
Примечание
Библиотека служебной программы D3DX (D3DX 9, D3DX 10 и D3DX 11) не рекомендуется использовать для Windows 8 и не поддерживается для приложений Магазина Windows.
Потоковые насосы выполняют задачи асинхронно. Он создается путем вызова D3DX11CreateThreadPump. Существует несколько API, которые принимают в качестве параметра необязательный потоковый насос, например D3DX11CreateTextureFromFile и D3DX11CompileFromFile; Если передать интерфейс потока в эти API, функции будут выполняться асинхронно в отдельном потоке. В частности, на многопроцессорных компьютерах потоковый насос может загружать ресурсы и обрабатывать данные без заметного снижения производительности.
Элементы
Интерфейс ID3DX11ThreadPump наследуется от интерфейса IUnknown . ID3DX11ThreadPump также имеет следующие типы элементов:
Методы
Интерфейс ID3DX11ThreadPump содержит следующие методы.
Метод | Описание |
---|---|
AddWorkItem |
Примечание: Библиотека служебной программы D3DX (D3DX 9, D3DX 10 и D3DX 11) не рекомендуется использовать для Windows 8 и не поддерживается для приложений Магазина Windows. Добавляет рабочий элемент в потоковой насос. |
GetQueueStatus |
Примечание: Библиотека служебной программы D3DX (D3DX 9, D3DX 10 и D3DX 11) не рекомендуется использовать для Windows 8 и не поддерживается для приложений Магазина Windows. Возвращает количество элементов в каждой из трех очередей в потоковом насосе. |
GetWorkItemCount |
Примечание: Библиотека служебной программы D3DX (D3DX 9, D3DX 10 и D3DX 11) не рекомендуется использовать для Windows 8 и не поддерживается для приложений Магазина Windows. Возвращает количество рабочих элементов в потоковом насосе. |
ProcessDeviceWorkItems |
Примечание: Библиотека служебной программы D3DX (D3DX 9, D3DX 10 и D3DX 11) не рекомендуется использовать для Windows 8 и не поддерживается для приложений Магазина Windows. Устанавливает рабочие элементы на устройство после завершения загрузки и обработки. |
PurgeAllItems |
Примечание: Библиотека служебной программы D3DX (D3DX 9, D3DX 10 и D3DX 11) не рекомендуется использовать для Windows 8 и не поддерживается для приложений Магазина Windows. Удаляет все рабочие элементы из потокового насоса. |
WaitForAllItems |
Примечание: Библиотека служебной программы D3DX (D3DX 9, D3DX 10 и D3DX 11) не рекомендуется использовать для Windows 8 и не поддерживается для приложений Магазина Windows. Ожидает завершения всех рабочих элементов в потоковом насосе. |
Комментарии
Использование потокового насоса
Потоковой насос загружает и обрабатывает данные с помощью следующего трехэтапного процесса:
- Загрузка и распаковка данных с помощью загрузчика данных. Объект загрузчика данных имеет три метода, которые поток будет вызывать внутренне при загрузке и распаковке данных: ID3DX11DataLoader::Load, ID3DX11DataLoader::D ecompress и ID3DX11DataLoader::D etext. Конкретные функциональные возможности этих трех API различаются в зависимости от типа загружаемых и распаковываемых данных. Интерфейс загрузчика данных также можно наследовать, а его API-интерфейсы можно изменить, если загружается файл данных, определенный в собственном настраиваемом формате.
- Обработка данных с помощью обработчика данных. Объект обработчика данных имеет три метода, которые поток будет вызывать внутренним образом при обработке данных: ID3DX11DataProcessor::P rocess, ID3DX11DataProcessor::CreateDeviceObject и ID3DX11DataProcessor::D ehost. Способ обработки данных будет разным в зависимости от типа данных. Например, если данные являются текстурой, хранящейся в формате JPEG, то ID3DX11DataProcessor::P rocess выполнит распаковку JPEG, чтобы получить необработанные биты изображения. Если данные являются шейдером, id3DX11DataProcessor::P rocess компилирует HLSL в байт-код. После обработки данных для этих данных будет создан объект устройства (с id3DX11DataProcessor::CreateDeviceObject), а объект будет добавлен в очередь объектов устройства. Интерфейс обработчика данных также можно наследовать, а его API-интерфейсы можно изменить, если вы обрабатываете файл данных, определенный в собственном настраиваемом формате.
- Привяжите объект устройства к устройству. Это делается, когда приложение вызывает ID3DX11ThreadPump::P rocessDeviceWorkItems, что привязывает указанное количество объектов в очереди объектов устройства к устройству.
Потоковый насос можно использовать для загрузки данных одним из двух способов: путем вызова API, который принимает потоковый насос в качестве параметра, например D3DX11CreateTextureFromFile и D3DX11CompileFromFile, или путем вызова ID3DX11ThreadPump::AddWorkItem. В случае API- интерфейсов, которые принимают потоковые насосы, загрузчик данных и обработчик данных создаются внутренне. В случае с AddWorkItem загрузчик данных и обработчик данных должны быть созданы заранее, а затем переданы в AddWorkItem. D3DX11 предоставляет набор API для создания загрузчиков данных и обработчиков данных, которые имеют функции для загрузки и обработки общих форматов данных. Для пользовательских форматов данных интерфейсы загрузчика данных и обработчика данных должны быть унаследованы, а их методы должны быть переопределены.
Объект потокового насоса занимает значительное количество ресурсов, поэтому обычно для каждого приложения следует создавать только один объект.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 7 [только классические приложения] |
Минимальная версия сервера |
Windows Server 2008 R2 [только классические приложения] |
Заголовок |
|
Библиотека |
|