Partager via


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 gérer tout le bitblt vers et depuis la mémoire vidéo, y compris le bitblt de la mémoire vidéo vers la mémoire système. Si le pilote d’affichage en mode utilisateur ne peut pas utiliser l’unité de traitement graphique (GPU) pour émettre un bitblt de la mémoire vidéo à la mémoire système, le pilote d’affichage en mode utilisateur peut copier les données à l’aide du processeur.

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)

Voir aussi

D3DDDIARG_BLT

D3DDDI_DEVICEFUNCS

pfnRenderCb