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 D3DDDIARG_BLT qui décrit les paramètres du transfert de bloc de bits (bitblt).
Valeur de retour
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’elle soit terminée. |
Remarques
Le runtime Microsoft Direct3D appelle la fonction Blt du pilote d’affichage en mode utilisateur pour copier le contenu d’une surface source vers 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 est en mémoire système, le pilote d’affichage en mode utilisateur peut être nécessaire pour synchroniser (autrement dit, appeler la fonction pfnRenderCb) si le flux de commandes matériel en attente contient des références à l’allocation de mémoire système. Si les allocations source et de destination sont en 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 l’appel à pfnRenderCb retourne.
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 de source font partie de la même ressource (autrement dit, les hSrcResource et membres hDstResource de D3DDDIARG_BLT spécifient des handles sur la même ressource).
- Les rectangles source et de destination se chevauchent (c’est-à-dire les coordonnées des structures RECT dans le SrcRect et membres de D3DDDIARG_BLT DstRect).
Le pilote d’affichage en mode utilisateur doit prendre en charge la coloration uniquement avec les formats introduits avant Microsoft DirectX 8.0. Pour les formats introduits dans DirectX 8.0 et les runtimes ultérieurs, la prise en charge des colorkeyings n’est pas nécessaire.
Le type de bitblt à effectuer est indiqué par le biais des indicateurs de champ de bits spécifiés dans les indicateurs de membre de D3DDDIARG_BLT. Les bits de mémoire vidéo en mémoire vidéo peuvent inclure la conversion de couleurs, d’étirement, de mise en miroir et de conversion de format linéaire à sRGB. Les bitblts mémoire système en mémoire vidéo peuvent inclure l’étirement et la conversion de format linéaire à sRGB ; Toutefois, ces types de bits n’incluent jamais la mise en miroir ou la coloration. Toutes les mémoires vidéo sur les bits de mémoire système et la mémoire système sur les bitblts de mémoire système sont des copies droites uniquement ; autrement dit, ces types de bits n’incluent jamais l’étirement, la mise en miroir, la colorkeying ou la conversion de format linéaire à 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 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, type cible de rendu ou type de texture) vers n’importe quel autre type de surface de destination.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows. |
plateforme cible | Bureau |
d’en-tête | d3dumddi.h (include D3dumddi.h) |