Интерфейс 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.
Ожидает завершения всех рабочих элементов в потоковом насосе.

Комментарии

Использование потокового насоса

Потоковой насос загружает и обрабатывает данные с помощью следующего трехэтапного процесса:

  1. Загрузка и распаковка данных с помощью загрузчика данных. Объект загрузчика данных имеет три метода, которые поток будет вызывать внутренне при загрузке и распаковке данных: ID3DX11DataLoader::Load, ID3DX11DataLoader::D ecompress и ID3DX11DataLoader::D etext. Конкретные функциональные возможности этих трех API различаются в зависимости от типа загружаемых и распаковываемых данных. Интерфейс загрузчика данных также можно наследовать, а его API-интерфейсы можно изменить, если загружается файл данных, определенный в собственном настраиваемом формате.
  2. Обработка данных с помощью обработчика данных. Объект обработчика данных имеет три метода, которые поток будет вызывать внутренним образом при обработке данных: ID3DX11DataProcessor::P rocess, ID3DX11DataProcessor::CreateDeviceObject и ID3DX11DataProcessor::D ehost. Способ обработки данных будет разным в зависимости от типа данных. Например, если данные являются текстурой, хранящейся в формате JPEG, то ID3DX11DataProcessor::P rocess выполнит распаковку JPEG, чтобы получить необработанные биты изображения. Если данные являются шейдером, id3DX11DataProcessor::P rocess компилирует HLSL в байт-код. После обработки данных для этих данных будет создан объект устройства (с id3DX11DataProcessor::CreateDeviceObject), а объект будет добавлен в очередь объектов устройства. Интерфейс обработчика данных также можно наследовать, а его API-интерфейсы можно изменить, если вы обрабатываете файл данных, определенный в собственном настраиваемом формате.
  3. Привяжите объект устройства к устройству. Это делается, когда приложение вызывает ID3DX11ThreadPump::P rocessDeviceWorkItems, что привязывает указанное количество объектов в очереди объектов устройства к устройству.

Потоковый насос можно использовать для загрузки данных одним из двух способов: путем вызова API, который принимает потоковый насос в качестве параметра, например D3DX11CreateTextureFromFile и D3DX11CompileFromFile, или путем вызова ID3DX11ThreadPump::AddWorkItem. В случае API- интерфейсов, которые принимают потоковые насосы, загрузчик данных и обработчик данных создаются внутренне. В случае с AddWorkItem загрузчик данных и обработчик данных должны быть созданы заранее, а затем переданы в AddWorkItem. D3DX11 предоставляет набор API для создания загрузчиков данных и обработчиков данных, которые имеют функции для загрузки и обработки общих форматов данных. Для пользовательских форматов данных интерфейсы загрузчика данных и обработчика данных должны быть унаследованы, а их методы должны быть переопределены.

Объект потокового насоса занимает значительное количество ресурсов, поэтому обычно для каждого приложения следует создавать только один объект.

Требования

Требование Значение
Минимальная версия клиента
Windows 7 [только классические приложения]
Минимальная версия сервера
Windows Server 2008 R2 [только классические приложения]
Заголовок
D3DX11core.h
Библиотека
D3DX11.lib

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

Интерфейсы D3DX