Compartir a través de


Interfaz ID3DX11ThreadPump

Nota:

La biblioteca de utilidades D3DX (D3DX 9, D3DX 10 y D3DX 11) está en desuso para Windows 8 y no es compatible con las aplicaciones de la Tienda Windows.

Una bomba de subprocesos ejecuta tareas de forma asincrónica. Se crea llamando a D3DX11CreateThreadPump. Hay varias API que toman una bomba de subproceso opcional como parámetro, como D3DX11CreateTextureFromFile y D3DX11CompileFromFile; Si pasa una interfaz de bomba de subprocesos a estas API, las funciones se ejecutarán de forma asincrónica en un subproceso independiente. Especialmente en las máquinas multiprocesador, una bomba de subproceso puede cargar recursos y procesar datos sin una disminución notable del rendimiento.

Miembros

La interfaz ID3DX11ThreadPump hereda de la interfaz IUnknown . ID3DX11ThreadPump también tiene estos tipos de miembros:

Métodos

La interfaz ID3DX11ThreadPump tiene estos métodos.

Método Descripción
AddWorkItem Nota: La biblioteca de utilidades D3DX (D3DX 9, D3DX 10 y D3DX 11) está en desuso para Windows 8 y no es compatible con las aplicaciones de la Tienda Windows.
Agrega un elemento de trabajo a la bomba de subproceso.
GetQueueStatus Nota: La biblioteca de utilidades D3DX (D3DX 9, D3DX 10 y D3DX 11) está en desuso para Windows 8 y no es compatible con las aplicaciones de la Tienda Windows.
Obtiene el número de elementos de cada una de las tres colas dentro de la bomba de subprocesos.
GetWorkItemCount Nota: La biblioteca de utilidades D3DX (D3DX 9, D3DX 10 y D3DX 11) está en desuso para Windows 8 y no es compatible con las aplicaciones de la Tienda Windows.
Obtiene el número de elementos de trabajo en la bomba de subprocesos.
ProcessDeviceWorkItems Nota: La biblioteca de utilidades D3DX (D3DX 9, D3DX 10 y D3DX 11) está en desuso para Windows 8 y no es compatible con las aplicaciones de la Tienda Windows.
Establece los elementos de trabajo en el dispositivo una vez que hayan terminado de cargarse y procesarse.
PurgeAllItems Nota: La biblioteca de utilidades D3DX (D3DX 9, D3DX 10 y D3DX 11) está en desuso para Windows 8 y no es compatible con las aplicaciones de la Tienda Windows.
Borra todos los elementos de trabajo de la bomba de subproceso.
WaitForAllItems Nota: La biblioteca de utilidades D3DX (D3DX 9, D3DX 10 y D3DX 11) está en desuso para Windows 8 y no es compatible con las aplicaciones de la Tienda Windows.
Espera a que finalicen todos los elementos de trabajo de la bomba de subproceso.

Comentarios

Uso de una bomba de subprocesos

La bomba de subprocesos carga y procesa los datos mediante el siguiente proceso de tres pasos:

  1. Cargue y descomprima los datos con un cargador de datos. El objeto de cargador de datos tiene tres métodos a los que la bomba de subprocesos llamará internamente, ya que está cargando y descomprimiendo los datos: ID3DX11DataLoader::Load, ID3DX11DataLoader::D ecompress y ID3DX11DataLoader::D estroy. La funcionalidad específica de estas tres API difiere en función del tipo de datos que se cargan y descomprimen. La interfaz del cargador de datos también se puede heredar y se pueden cambiar sus API si se carga un archivo de datos definido en el propio formato personalizado.
  2. Procesar los datos con un procesador de datos. El objeto de procesador de datos tiene tres métodos que la bomba de subprocesos llamará internamente a medida que procesa los datos: ID3DX11DataProcessor::P rocess, ID3DX11DataProcessor::CreateDeviceObject y ID3DX11DataProcessor::D estroy. La forma en que procesa los datos será diferente en función del tipo de datos. Por ejemplo, si los datos son una textura almacenada como JPEG, ID3DX11DataProcessor::P rocess realizará la descompresión JPEG para obtener los bits de imagen sin procesar de la imagen. Si los datos son un sombreador, ID3DX11DataProcessor::P rocess compilará el HLSL en código de bytes. Una vez procesados los datos, se creará un objeto de dispositivo para esos datos (con ID3DX11DataProcessor::CreateDeviceObject) y el objeto se agregará a una cola de objetos de dispositivo. La interfaz del procesador de datos también se puede heredar y se pueden cambiar sus API si se está procesando un archivo de datos definido en el propio formato personalizado.
  3. Enlace el objeto de dispositivo al dispositivo. Esto se hace cuando la aplicación llama a ID3DX11ThreadPump::P rocessDeviceWorkItems, que enlazará un número especificado de objetos en la cola de objetos de dispositivo al dispositivo.

La bomba de subprocesos se puede usar para cargar datos de una de estas dos maneras: llamando a una API que toma una bomba de subprocesos como parámetro, como D3DX11CreateTextureFromFile y D3DX11CompileFromFile, o llamando a ID3DX11ThreadPump::AddWorkItem. En el caso de las API que toman una bomba de subprocesos, el cargador de datos y el procesador de datos se crean internamente. En el caso de AddWorkItem, el cargador de datos y el procesador de datos se deben crear de antemano y, a continuación, se pasan a AddWorkItem. D3DX11 proporciona un conjunto de API para crear cargadores de datos y procesadores de datos que tienen funcionalidad para cargar y procesar formatos de datos comunes. En el caso de los formatos de datos personalizados, se deben heredar el cargador de datos y las interfaces del procesador de datos y sus métodos deben volver a definirse.

El objeto de bomba de subprocesos ocupa una cantidad considerable de recursos, por lo que generalmente solo se debe crear uno por aplicación.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2008 R2 [solo aplicaciones de escritorio]
Encabezado
D3DX11core.h
Biblioteca
D3DX11.lib

Consulte también

D3DX Interfaces