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 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 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 vers 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 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)

Voir aussi

D3DDDIARG_BLT

D3DDDI_DEVICEFUNCS

pfnRenderCb