PFND3DDDI_BLT fonction de rappel (d3dumddi.h)
La fonction Blt copie le contenu d’une surface source vers une surface de destination.
Syntaxe
PFND3DDDI_BLT Pfnd3dddiBlt;
HRESULT Pfnd3dddiBlt(
HANDLE hDevice,
const D3DDDIARG_BLT *unnamedParam2
)
{...}
Paramètres
hDevice
Handle de l’appareil d’affichage (contexte graphique).
unnamedParam2
pData [in]
Pointeur vers une structure de D3DDDIARG_BLT qui décrit les paramètres du transfert de bloc de bits (bitblt).
Valeur retournée
Blt retourne l’une des valeurs suivantes :
Code de retour | Description |
---|---|
S_OK | Le bitblt de la ressource est correctement exécuté. |
E_OUTOFMEMORY | Blt n’a pas pu allouer la mémoire nécessaire pour qu’il se termine. |
Remarques
Le runtime Microsoft Direct3D appelle la fonction Blt du pilote d’affichage en mode utilisateur pour copier le contenu d’une surface source sur une surface de destination. Après avoir mappé les références de surface aux références d’allocation, le pilote d’affichage en mode utilisateur doit émettre les commandes matérielles appropriées. Si l’allocation source ou de destination se trouve dans la mémoire système, le pilote d’affichage en mode utilisateur peut être nécessaire pour synchroniser (c’est-à-dire appeler la fonction pfnRenderCb ) si le flux de commandes matérielles en suspens contient des références à l’allocation de mémoire système. Si les allocations source et de destination se trouvent dans la mémoire système, le pilote doit se synchroniser si nécessaire, mais ne doit pas copier le contenu de la surface source. Le runtime Direct3D copie le contenu après le retour de l’appel à pfnRenderCb .
Le pilote d’affichage en mode utilisateur doit gérer les conditions suivantes qui peuvent se produire pendant une opération de copie :
- Les surfaces de destination et source font partie de la même ressource (autrement dit, les membres hSrcResource et hDstResource de D3DDDIARG_BLT spécifient des handles pour la même ressource).
- Les rectangles source et de destination se chevauchent (autrement dit, les coordonnées des structures RECT dans les membres SrcRect et DstRect de D3DDDIARG_BLT se chevauchent).
Le pilote d’affichage en mode utilisateur doit uniquement prendre en charge le colorkeying avec les formats qui ont été introduits avant Microsoft DirectX 8.0. Pour les formats introduits dans DirectX 8.0 et versions ultérieures, la prise en charge de colorkeying n’est pas requise.
Le type de bitblt à effectuer est indiqué par les indicateurs de champ de bits spécifiés dans le membre Indicateurs de D3DDDIARG_BLT. Les bits de mémoire vidéo en mémoire vidéo peuvent inclure le colorkeying, l’étirement, la mise en miroir et la conversion au format linéaire en sRGB. Les bits de mémoire système en mémoire vidéo peuvent inclure l’étirement et la conversion au format linéaire en sRGB ; toutefois, ces types de bitblts n’incluent jamais la mise en miroir ou le colorkeying. Tous les bits de mémoire vidéo vers la mémoire système et les bits de mémoire système à mémoire système sont des copies droites uniquement ; autrement dit, ces types de bitblts n’incluent jamais l’étirement, la mise en miroir, le colorkeying ou la conversion au format linéaire en sRGB. Pour plus d’informations sur le format sRGB, consultez le site web sRGB .
Pour plus d’informations sur les règles que la fonction Blt doit suivre lors de la conversion de valeurs de gabarit de profondeur, consultez Copie de Depth-Stencil valeurs.
Le runtime Direct3D peut appeler la fonction Blt du pilote d’affichage en mode utilisateur pour copier le contenu de n’importe quel type de surface source (par exemple, type hors écran simple, type cible de rendu ou type de texture) vers n’importe quel autre type de surface de destination.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows Vista et les versions ultérieures des systèmes d’exploitation Windows. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | d3dumddi.h (inclure D3dumddi.h) |