Partager via


Traitement des codes de nuanceur

Le pilote d’affichage en mode utilisateur utilise des déclarations de vertex et les jetons de chaque code de nuanceur de pixels et de vertex individuels pour programmer des assembleurs de nuanceurs.

Le pilote d’affichage en mode utilisateur reçoit le code de nuanceur de vertex et de pixels lorsque le runtime Microsoft Direct3D appelle les fonctions CreateVertexShaderFunc et CreatePixelShader du pilote, respectivement. Le pilote d’affichage en mode utilisateur reçoit des déclarations de vertex lorsque le runtime appelle la fonction CreateVertexShaderDecl du pilote. Les déclarations de vertex se composent de tableaux de structures D3DDDIVERTEXELEMENT . Le pilote d’affichage en mode utilisateur convertit le code de nuanceur et les déclarations de nuanceur de vertex en un format spécifique au matériel et associe le code et les déclarations du nuanceur à des poignées de nuanceur et de déclaration. Le runtime utilise les handles créés dans les appels aux fonctions SetVertexShaderDecl, SetVertexShaderFunc et SetPixelShader pour définir la déclaration de nuanceur de vertex et les nuanceurs de vertex et de pixels afin que toutes les opérations de dessin suivantes les utilisent.

Pour plus d’informations sur le format d’un code de nuanceur individuel et les jetons qui composent chaque code de nuanceur, consultez Codes de nuanceur Direct3D.

Note Lorsqu’une application crée des nuanceurs de vertex, des nuanceurs de pixels et des déclarations de vertex, le code de nuanceur et la déclaration pour chacun d’eux se terminent par un jeton de fin. Lorsque le runtime Direct3D, à son tour, transmet les demandes de création de vertex et de nuanceur de pixels au pilote d’affichage en mode utilisateur, le vertex et le code de nuanceur de pixels qui accompagnent les demandes se terminent par des jetons de fin. Toutefois, lorsque le runtime passe les demandes de création de déclaration de vertex, les déclarations de vertex qui accompagnent les demandes ne se terminent pas par des jetons de fin.