PFND3DDDI_SETSTREAMSOURCEFREQ fonction de rappel (d3dumddi.h)
La fonction SetStreamSourceFreq définit le diviseur de fréquence d’une source de flux liée à une mémoire tampon de vertex.
Syntaxe
PFND3DDDI_SETSTREAMSOURCEFREQ Pfnd3dddiSetstreamsourcefreq;
HRESULT Pfnd3dddiSetstreamsourcefreq(
HANDLE hDevice,
const D3DDDIARG_SETSTREAMSOURCEFREQ *unnamedParam2
)
{...}
Paramètres
hDevice
Handle de l’appareil d’affichage (contexte graphique).
unnamedParam2
pData [in]
Pointeur vers une structure D3DDDIARG_SETSTREAMSOURCEFREQ qui spécifie la façon dont le diviseur de fréquence pour la source de flux est défini.
Valeur de retour
SetStreamSourceFreq retourne S_OK ou un résultat d’erreur approprié si le diviseur de fréquence pour la partie de la source de flux de vertex n’est pas correctement défini.
Remarques
Un pilote d’affichage en mode utilisateur pour un appareil qui prend en charge le nuanceur de vertex version 3.0 et ultérieure doit implémenter la division de fréquence de flux de vertex. Pour les modèles 2.0 et antérieurs du nuanceur de vertex (y compris la fonction fixe), le nuanceur de vertex est appelé une fois pour chaque vertex. Pour chaque appel, les registres de vertex d’entrée sont initialisés avec des éléments de vertex uniques à partir des flux de vertex. Toutefois, si le pilote utilise la division de fréquence de flux de vertex, le nuanceur de vertex (3,0 et versions ultérieures) peut être appelé pour initialiser les registres d’entrée applicables à un taux moins fréquent.
Une fois que le diviseur de fréquence du flux est défini, par exemple, sur 2- le pilote doit extraire des données du flux et transmettre ces données dans les vertex d’entrée applicables inscrit tous les 2 sommets. Ce diviseur affecte chaque élément du flux.
Le pilote utilise le diviseur de fréquence pour calculer le décalage de vertex dans la mémoire tampon de vertex en fonction de la formule suivante :
VertexOffset = ((VertexIndex / Divider) * StreamStride) + StreamOffset
Pour chaque flux de vertex utilisé, si le pilote reçoit une valeur de vertex de démarrage pendant un appel à la fonction DrawPrimitive du pilote, le pilote divise également cette valeur de vertex de début par le diviseur de fréquence et les facteurs du résultat dans la formule. Cette valeur de vertex de début est fournie dans le membre VStart de la structure D3DDDIARG_DRAWPRIMITIVE. La formule suivante inclut la valeur de vertex de début :
VertexOffset = (StartVertex / Divider) +
((VertexIndex / Divider) * StreamStride) + StreamOffset
Notez que les formules précédentes utilisent la division entière.
Le pilote ignore le paramètre du diviseur de fréquence d’un flux pour les primitives indexées ou si le pilote ne prend en charge qu’un modèle de nuanceur de vertex antérieur à la version 3.0 (y compris la fonction fixe).
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) |