Interface ID3DX10ThreadPump
Utilisé pour exécuter des tâches de façon asynchrone et créé avec D3DX10CreateThreadPump. Plusieurs API D3DX10 peuvent éventuellement prendre une pompe de thread en tant que paramètre, comme D3DX10CreateTextureFromFile et D3DX10CompileFromFile (consultez la section Notes pour obtenir la liste complète). Si la pompe de threads est transmise à ces API, elles s’exécutent de façon asynchrone sur un thread de pompage de thread distinct. L’avantage de cette opération est qu’elle peut faire en sorte que le chargement et le traitement de grandes quantités de données se produisent sans voir un ralentissement des performances à l’écran.
Membres
L’interface ID3DX10ThreadPump hérite de l’interface IUnknown . ID3DX10ThreadPump a également les types de membres suivants :
Méthodes
L’interface ID3DX10ThreadPump possède ces méthodes.
| Méthode | Description |
|---|---|
| AddWorkItem | Ajoutez un élément de travail à la pompe de thread. |
| GetQueueStatus | Obtient le nombre d’éléments dans chacune des trois files d’attente à l’intérieur de la pompe de thread. |
| GetWorkItemCount | Obtient le nombre d’éléments de travail actuellement dans la pompe de thread. |
| ProcessDeviceWorkItems | Définissez les éléments de travail sur l’appareil une fois qu’ils ont terminé le chargement et le traitement. Lorsque la pompe de thread a terminé le chargement et le traitement d’une ressource ou d’un nuanceur, elle le contiendra dans une file d’attente jusqu’à ce que cette API soit appelée, auquel cas les éléments traités seront définis sur l’appareil. Cela est utile pour contrôler la quantité de traitement consacrée à la liaison de ressources à l’appareil pour chaque trame. Consultez la section Remarques. |
| PurgeAllItems | Effacez tous les éléments de travail de la pompe de thread. |
| WaitForAllItems | Attendez la fin de l’exécution de tous les éléments de travail de la pompe de thread. |
Notes
La pompe de thread charge et traite les données dans un processus en 3 étapes. Il va :
- Chargez et décompressez les données avec un chargeur de données. L’objet chargeur de données a trois méthodes que la pompe de thread appellera en interne lors du chargement et de la décompression des données : ID3DX10DataLoader :: Load, ID3DX10DataLoader ::D eComPresset ID3DX10DataLoader ::D estroy. La fonctionnalité spécifique de ces trois API diffère selon le type de données chargées et décompressées. L’interface de chargeur de données peut également être héritée et ses API peuvent être modifiées si l’une d’elles est en cours de chargement d’un fichier de données défini dans son propre format personnalisé.
- Traitez les données avec un processeur de données. L’objet de traitement de données a trois méthodes que la pompe de thread appellera en interne lors du traitement des données : ID3DX10DataProcessor ::P tionnaire, ID3DX10DataProcessor :: CreateDeviceObjectet ID3DX10DataProcessor ::D estroy. La façon dont il traite les données est différente selon le type de données. Par exemple, si les données sont une texture stockée en tant que JPEG, ID3DX10DataProcessor ::P tionnaire effectue la décompression JPEG pour obtenir les bits d’image RAW de l’image. Si les données sont un nuanceur, ID3DX10DataProcessor ::P tionnaire compile le langage HLSL en bytecode. Une fois les données traitées, un objet périphérique sera créé pour ces données (avec ID3DX10DataProcessor :: CreateDeviceObject) et l’objet sera ajouté à une file d’attente d’objets périphériques. L’interface du processeur de données peut également être héritée et ses API peuvent être modifiées si l’une d’elles est en cours de traitement d’un fichier de données défini dans son propre format personnalisé.
- Liez l’objet appareil à l’appareil. Cette opération est effectuée quand une application appelle ID3DX10ThreadPump ::P rocessdeviceworkitems, qui lie un nombre spécifié d’objets dans la file d’attente d’objets d’appareil à l’appareil.
La pompe de threads peut être utilisée pour charger des données de deux manières : en appelant une API qui prend une pompe de thread comme paramètre, tel que D3DX10CreateTextureFromFile et D3DX10CompileFromFile, ou en appelant ID3DX10ThreadPump :: AddWorkItem. Dans le cas des API qui prennent une pompe de thread, le chargeur de données et le processeur de données sont créés en interne. Dans le cas de AddWorkItem, le chargeur de données et le processeur de données doivent être créés au préalable et sont ensuite passés à AddWorkItem. D3DX10 fournit un ensemble d’API permettant de créer des chargeurs de données et des processeurs de données qui ont des fonctionnalités de chargement et de traitement des formats de données courants (consultez la section Notes pour obtenir la liste complète des API). Pour les formats de données personnalisés, les interfaces du chargeur de données et du processeur de données doivent être héritées et leurs méthodes doivent être redéfinies.
L’objet thread Pump occupe une quantité importante de ressources. en général, un seul doit être créé par application.
Chargeurs de données D3DX10 intégrés
| Description | |
|---|---|
| D3DX10CreateAsyncFileLoader | Créez un chargeur de fichier de façon asynchrone. |
| D3DX10CreateAsyncMemoryLoader | Créez un chargeur de données de façon asynchrone. |
| D3DX10CreateAsyncResourceLoader | Créez un chargeur de ressource de manière asynchrone. |
Processeurs de données D3DX10 intégrés
| Description | |
|---|---|
| D3DX10CreateAsyncTextureProcessor | Créez un processeur de données à utiliser avec une pompe de thread. Cette API est similaire à D3DX10CreateAsyncTextureInfoProcessor, mais elle charge également la texture. |
| D3DX10CreateAsyncTextureInfoProcessor | Créez un processeur de données à utiliser avec une pompe de thread. |
| D3DX10CreateAsyncShaderCompilerProcessor | Compilez un nuanceur et créez un processeur de données de façon asynchrone. |
| D3DX10CreateAsyncEffectCompilerProcessor | Créer un effet avec un processeur de données de façon asynchrone. |
| D3DX10CreateAsyncEffectCreateProcessor | Créer un pool d’effets de manière asynchrone. |
| D3DX10CreateAsyncEffectPoolCreateProcessor | Créer un processeur de données de façon asynchrone. |
| D3DX10CreateAsyncShaderPreprocessProcessor | Créer un processeur de données pour un nuanceur de manière asynchrone. |
API qui prennent une pompe de thread comme paramètre.
| Description | |
|---|---|
| D3DX10CompileFromFile | Compilez un nuanceur à partir d’un fichier. |
| D3DX10CompileFromMemory | Compilez un nuanceur résidant en mémoire. |
| D3DX10CompileFromResource | Compilez un nuanceur à partir d’une ressource. |
| D3DX10CreateEffectFromFile | Créer un effet à partir d’un fichier. |
| D3DX10CreateEffectFromMemory | Créez un effet à partir de la mémoire. |
| D3DX10CreateEffectFromResource | Créer un effet à partir d’une ressource. |
| D3DX10CreateEffectPoolFromFile | Créer un pool d’effets à partir d’un fichier. |
| D3DX10CreateEffectPoolFromMemory | Créer un pool d’effets à partir d’un fichier résidant en mémoire. |
| D3DX10CreateEffectPoolFromResource | Créer un pool d’effets à partir d’une ressource. |
| D3DX10PreprocessShaderFromFile | Créer un nuanceur à partir d’un fichier sans le compiler. |
| D3DX10PreprocessShaderFromMemory | Créer un nuanceur à partir de la mémoire sans le compiler. |
| D3DX10PreprocessShaderFromResource | Créez un nuanceur à partir d’une ressource sans le compiler. |
| D3DX10CreateShaderResourceViewFromFile | Créer un affichage des ressources de nuanceur à partir d’un fichier. |
| D3DX10CreateShaderResourceViewFromMemory | Créer un affichage des ressources de nuanceur à partir d’un fichier en mémoire. |
| D3DX10CreateShaderResourceViewFromResource | Créer un affichage des ressources de nuanceur à partir d’une ressource. |
| D3DX10GetImageInfoFromFile | Récupère des informations sur un fichier image donné. |
| D3DX10GetImageInfoFromMemory | Obtenir des informations sur une image déjà chargée en mémoire. |
| D3DX10GetImageInfoFromResource | Récupère des informations sur une image donnée dans une ressource. |
| D3DX10CreateTextureFromFile | Créer une ressource de texture à partir d’un fichier. |
| D3DX10CreateTextureFromMemory | Créer une ressource de texture à partir d’un fichier résidant dans la mémoire système. |
| D3DX10CreateTextureFromResource | Créer une ressource de texture à partir d’une autre ressource. |
Spécifications
| Condition requise | Valeur |
|---|---|
| En-tête |
|
| Bibliothèque |
|