Freigeben über


ID3DX11ThreadPump-Schnittstelle

Hinweis

Die Hilfsprogrammbibliothek D3DX (D3DX 9, D3DX 10 und D3DX 11) ist für Windows 8 veraltet und wird für Windows Store-Apps nicht unterstützt.

Eine Threadpumpe führt Aufgaben asynchron aus. Sie wird durch Aufrufen von D3DX11CreateThreadPump erstellt. Es gibt mehrere APIs, die eine optionale Threadpumpe als Parameter verwenden, z. B. D3DX11CreateTextureFromFile und D3DX11CompileFromFile; Wenn Sie eine Threadpumpenschnittstelle an diese APIs übergeben, werden die Funktionen asynchron in einem separaten Thread ausgeführt. Insbesondere auf Mehrprozessorcomputern kann eine Threadpumpe Ressourcen laden und Daten verarbeiten, ohne dass die Leistung spürbar sinkt.

Member

Die ID3DX11ThreadPump-Schnittstelle erbt von der IUnknown-Schnittstelle . ID3DX11ThreadPump verfügt auch über folgende Membertypen:

Methoden

Die ID3DX11ThreadPump-Schnittstelle verfügt über diese Methoden.

Methode BESCHREIBUNG
AddWorkItem Hinweis: Die Hilfsprogrammbibliothek D3DX (D3DX 9, D3DX 10 und D3DX 11) ist für Windows 8 veraltet und wird für Windows Store-Apps nicht unterstützt.
Fügt der Threadpumpe ein Arbeitselement hinzu.
GetQueueStatus Hinweis: Die Hilfsprogrammbibliothek D3DX (D3DX 9, D3DX 10 und D3DX 11) ist für Windows 8 veraltet und wird für Windows Store-Apps nicht unterstützt.
Ruft die Anzahl der Elemente in jeder der drei Warteschlangen innerhalb der Threadpumpe ab.
GetWorkItemCount Hinweis: Die Hilfsprogrammbibliothek D3DX (D3DX 9, D3DX 10 und D3DX 11) ist für Windows 8 veraltet und wird für Windows Store-Apps nicht unterstützt.
Ruft die Anzahl der Arbeitselemente in der Threadpumpe ab.
ProcessDeviceWorkItems Hinweis: Die Hilfsprogrammbibliothek D3DX (D3DX 9, D3DX 10 und D3DX 11) ist für Windows 8 veraltet und wird für Windows Store-Apps nicht unterstützt.
Legt Arbeitselemente auf das Gerät fest, nachdem sie das Laden und verarbeiten abgeschlossen haben.
PurgeAllItems Hinweis: Die Hilfsprogrammbibliothek D3DX (D3DX 9, D3DX 10 und D3DX 11) ist für Windows 8 veraltet und wird für Windows Store-Apps nicht unterstützt.
Löscht alle Arbeitselemente aus der Threadpumpe.
WaitForAllItems Hinweis: Die Hilfsprogrammbibliothek D3DX (D3DX 9, D3DX 10 und D3DX 11) ist für Windows 8 veraltet und wird für Windows Store-Apps nicht unterstützt.
Wartet, bis alle Arbeitselemente in der Threadpumpe abgeschlossen sind.

Bemerkungen

Verwenden einer Threadpumpe

Die Threadpumpe lädt und verarbeitet Daten mit dem folgenden dreistufigen Prozess:

  1. Laden und dekomprimieren Sie die Daten mit einem Datenladeprogramm. Das Datenladeobjekt verfügt über drei Methoden, die die Threadpumpe beim Laden und Dekomprimieren der Daten intern aufruft: ID3DX11DataLoader:::Load, ID3DX11DataLoader::D ecompress und ID3DX11DataLoader::D estroy. Die spezifische Funktionalität dieser drei APIs unterscheidet sich je nach Art der geladenen und dekomprimierten Daten. Die Datenladeschnittstelle kann auch geerbt werden, und ihre APIs können geändert werden, wenn eine Datendatei geladen wird, die im eigenen benutzerdefinierten Format definiert ist.
  2. Verarbeiten Sie die Daten mit einem Datenverarbeiter. Das Datenprozessorobjekt verfügt über drei Methoden, die die Threadpumpe bei der Verarbeitung der Daten intern aufruft: ID3DX11DataProcessor::P rocess, ID3DX11DataProcessor::CreateDeviceObject und ID3DX11DataProcessor::D estroy. Die Art und Weise, wie die Daten verarbeitet werden, unterscheidet sich je nach Datentyp. Wenn die Daten beispielsweise eine Textur sind, die als JPEG gespeichert ist, führt ID3DX11DataProcessor::P rocess eine JPEG-Dekomprimierung durch, um die rohen Bildbits des Bilds abzurufen. Wenn es sich bei den Daten um einen Shader handelt, kompiliert ID3DX11DataProcessor::P rocess die HLSL in Bytecode. Nachdem die Daten verarbeitet wurden, wird ein Geräteobjekt für diese Daten erstellt (mit ID3DX11DataProcessor::CreateDeviceObject), und das Objekt wird einer Warteschlange mit Geräteobjekten hinzugefügt. Die Datenverarbeitungsschnittstelle kann auch geerbt werden, und ihre APIs können geändert werden, wenn eine Datendatei verarbeitet wird, die im eigenen benutzerdefinierten Format definiert ist.
  3. Binden Sie das Geräteobjekt an das Gerät. Dies geschieht, wenn die Anwendung ID3DX11ThreadPump::P rocessDeviceWorkItems aufruft, wodurch eine angegebene Anzahl von Objekten in der Warteschlange der Geräteobjekte an das Gerät gebunden wird.

Die Threadpumpe kann verwendet werden, um Daten auf zwei Arten zu laden: durch Aufrufen einer API, die eine Threadpumpe als Parameter akzeptiert, z. B. D3DX11CreateTextureFromFile und D3DX11CompileFromFile, oder durch Aufrufen von ID3DX11ThreadPump::AddWorkItem. Bei den APIs, die eine Threadpumpe verwenden, werden der Datenladeprogramm und der Datenprozessor intern erstellt. Im Fall von AddWorkItem müssen das Datenladeprogramm und der Datenverarbeiter zuvor erstellt und dann an AddWorkItem übergeben werden. D3DX11 bietet eine Reihe von APIs zum Erstellen von Datenladeprogrammen und Datenprozessoren, die über Funktionen zum Laden und Verarbeiten gängiger Datenformate verfügen. Bei benutzerdefinierten Datenformaten müssen die Datenlade- und Datenprozessorschnittstellen geerbt und ihre Methoden neu definiert werden.

Das Threadpumpobjekt nimmt eine erhebliche Menge an Ressourcen in Anspruch, sodass in der Regel nur eine pro Anwendung erstellt werden sollte.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2008 R2 [nur Desktop-Apps]
Header
D3DX11core.h
Bibliothek
D3DX11.lib

Weitere Informationen

D3DX-Schnittstellen