PFND3D10DDI_SETSCISSORRECTS fonction de rappel (d3d10umddi.h)
La fonction SetScissorRects marque les parties des cibles de rendu auxquelles le rendu est limité.
Syntaxe
PFND3D10DDI_SETSCISSORRECTS Pfnd3d10ddiSetscissorrects;
void Pfnd3d10ddiSetscissorrects(
D3D10DDI_HDEVICE unnamedParam1,
[in] UINT NumRects,
[in] UINT ClearRects,
const D3D10_DDI_RECT *unnamedParam4
)
{...}
Paramètres
unnamedParam1
hDevice [in]
Handle de l’appareil d’affichage (contexte graphique).
[in] NumRects
Nombre total de parties cibles de rendu que le paramètre pRects spécifie.
[in] ClearRects
Nombre de parties cibles de rendu après le nombre de parties cibles de rendu que NumScissorRects spécifie pour avoir la valeur NULL. Ce nombre représente la différence entre le nombre précédent de parties cibles de rendu (c’est-à-dire, lorsque le runtime Microsoft Direct3D appelé précédemment SetScissorRects) et le nouveau nombre de parties cibles de rendu.
Notez que le nombre spécifié par ClearScissorRects n’est qu’une aide à l’optimisation, car le pilote d’affichage en mode utilisateur peut calculer ce nombre.
unnamedParam4
pRects [in]
Tableau de structures RECT pour les parties cibles de rendu à marquer.
Valeur de retour
None
Remarques
Le pilote peut utiliser la fonction de rappel pfnSetErrorCb pour définir un code d’erreur.
La structure D3D10_DDI_RECT est définie comme une structure RECT .
typedef RECT D3D10_DDI_RECT;
Le pilote d’affichage en mode utilisateur doit définir toutes les parties de la cible de rendu de manière atomique comme une seule opération.
Bien que le paramètre NumScissorRects spécifie le nombre de parties cibles de rendu dans le tableau spécifié par le paramètre pRects , certaines valeurs du tableau peuvent être NULL.
La plage de parties cibles de rendu entre le nombre spécifié par NumScissorRects et le nombre maximal de parties cibles de rendu autorisées est requise pour contenir toutes les valeurs NULL ou non liées. Le nombre spécifié par le paramètre ClearScissorRects informe le pilote du nombre de parties cibles de rendu que le pilote doit effacer pour l’opération atomique en cours.
Si l’appel précédent à SetScissorRects a passé la valeur 2 dans le paramètre NumScissorRects et que l’appel actuel à SetScissorRects transmet une valeur de 4 dans NumScissorRects, l’appel actuel à SetScisorRects passe également la valeur 0 dans le paramètre ClearScissorRects . Si l’appel successif suivant à SetScissorRects passe la valeur 1 dans NumScissorRects, l’appel successif passe également la valeur 3 (4 - 1) dans ClearScissorRects.
Lorsque la valeur des parties cibles de rendu 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 parties cibles de rendu et la valeur des parties cibles de rendu.
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 SetScissorRects (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) |