Partager via


PFND3D10DDI_SETVIEWPORTS fonction de rappel (d3d10umddi.h)

La fonction SetViewports définit des fenêtres d’affichage.

Syntaxe

PFND3D10DDI_SETVIEWPORTS Pfnd3d10ddiSetviewports;

void Pfnd3d10ddiSetviewports(
       D3D10DDI_HDEVICE unnamedParam1,
  [in] UINT NumViewports,
  [in] UINT ClearViewports,
       const D3D10_DDI_VIEWPORT *unnamedParam4
)
{...}

Paramètres

unnamedParam1

hDevice [in]

Handle de l’appareil d’affichage (contexte graphique).

[in] NumViewports

Nombre total de fenêtres d’affichage spécifiées par le paramètre pViewports .

[in] ClearViewports

Nombre de fenêtres d’affichage après le nombre de fenêtres d’affichage que NumViewports spécifie pour avoir la valeur NULL. Ce nombre représente la différence entre le nombre précédent de fenêtres d’affichage (autrement dit, lorsque le runtime Microsoft Direct3D appelé précédemment SetViewports) et le nouveau nombre de fenêtres d’affichage.

Notez que le nombre spécifié par ClearViewports n’est qu’une aide à l’optimisation, car le pilote d’affichage en mode utilisateur peut calculer ce nombre.

unnamedParam4

pViewports [in]

Tableau de structures D3D10_DDI_VIEWPORT pour les fenêtres d’affichage à définir.

Valeur de retour

None

Remarques

Le pilote peut utiliser la fonction de rappel pfnSetErrorCb pour définir un code d’erreur.

Les fenêtres d’affichage spécifient le post-clip de transformation dans les ressources de la cible de rendu de sortie et du gabarit de profondeur. Toutes les fenêtres d’affichage qui ne sont pas définies dans un appel à SetViewports sont définies sur NULL. Une fenêtre d’affichage NULL est définie comme suit.

struct D3D10_DDI_VIEWPORT {
  FLOAT  TopLeftX = NaN;
  FLOAT  TopLeftY = NaN;
  FLOAT  Width = NaN;
  FLOAT  Height = NaN;
  FLOAT  MinDepth = NaN;
  FLOAT  MaxDepth = NaN;
} D3D10_DDI_VIEWPORT;</pre>

Cette définition implique que la fenêtre d’affichage est désactivée.

Le pilote d’affichage en mode utilisateur doit définir toutes les fenêtres d’affichage de manière atomique comme une seule opération.

Bien que le paramètre NumViewports spécifie le nombre de fenêtres d’affichage dans le tableau spécifié par le paramètre pViewports , certaines valeurs du tableau peuvent être NULL.

La plage de fenêtres d’affichage entre le nombre spécifié par NumViewports et le nombre maximal de fenêtres d’affichage autorisées est requise pour contenir toutes les valeurs NULL ou non liées. Le nombre spécifié par le paramètre ClearViewports informe le pilote du nombre de fenêtres d’affichage que le pilote doit effacer pour l’opération atomique en cours.

Si l’appel précédent à SetViewports a passé la valeur 2 dans le paramètre NumViewports et que l’appel actuel à SetViewports passe la valeur 4 dans NumViewports, l’appel actuel à SetViewports passe également la valeur 0 dans le paramètre ClearViewports . Si l’appel successif suivant à SetViewports passe la valeur 1 dans NumViewports, l’appel successif passe également la valeur 3 (4 - 1) dans ClearViewports.

Lorsque la valeur des fenêtres d’affichage claires est demandée pendant les opérations de requête en mode utilisateur, la valeur correspond à la différence entre le nombre maximal de fenêtres d’affichage et la valeur des fenêtres d’affichage.

SetViewports garantit que les fenêtres d’affichage sont valides. En d’autres termes, SetViewports garantit que les dimensions des fenêtres d’affichage se trouvent dans la plage (D3D10_VIEWPORT_BOUNDS_MIN, D3D10_VIEWPORT_BOUNDS_MAX, D3D10_MIN_DEPTH et D3D10_MAX_DEPTH). SetViewports garantit également qu’aucune coordonnée n’est NaN et vide les valeurs float dénormalisées à zéro.

Le pilote ne doit rencontrer aucune erreur, à l’exception de D3DDDIERR_DEVICEREMOVED. Par conséquent, si le pilote réussit une erreur, à l’exception de D3DDDIERR_DEVICEREMOVED, dans un appel à la fonction pfnSetErrorCb , le runtime Microsoft Direct3D détermine que l’erreur est critique. Même si l’appareil a été supprimé, le pilote n’est pas tenu de retourner D3DDDIERR_DEVICEREMOVED ; toutefois, si la suppression de l’appareil a interférer avec le fonctionnement de SetViewports (ce qui ne doit généralement pas se produire), le pilote peut retourner D3DDDIERR_DEVICEREMOVED.

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 d3d10umddi.h (include D3d10umddi.h)

Voir aussi

D3D10DDI_DEVICEFUNCS

D3D10_DDI_VIEWPORT

pfnSetErrorCb