Gl.ValidateProgram (gb.opengl.glsl)
Static Sub ValidateProgram ( Program As Integer )
Valide un programme objet
Parametres
-
Program Spécifie le gestionnaire d’un programme objet à valider.
Description
Gl.ValidateProgram vérifie que les executables contenus dans
Program peuvent être exécutés selon l’état OpenGL courant. Les informations générées par le processus de validation seront enregistrées dans le log d’information du programme. Les informations de validation peuvent être constituées d’une chaîne vide, ou d’une chaîne contenant les informations sur la manière dont le programme objet en cours interagit avec le reste de l’état OpenGL en cours. Ceci fournit aux développeurs OpenGL un moyen de transmettre plus d’informations explicitant pourquoi le programme en cours est inefficace, non optimal, en défaut d’exécution, etc.
L’état de l’opération de validation sera enregistré en tant que partie de l’état du programme objet . Cette valeur sera positionnée à
TRUE si la validation réussit, et
FALSE dans le cas contraire. Il peut être interrogé par appel à Gl.GetProgram avec les arguments
Program et
Gl.GL_VALIDATE_STATUS. Si la validation réussit, l’exécution du programme est garantie pour l’état courant. Dans le cas contraire, l’exécution du programme est garantie de ne pas réussir.
Cette fonction n’est typiquement utile que lors du développement d’application. C’est pourquoi la chaîne d’information enregistrée dans le log d’information est entièrement dépendante de l’implémentation ; une application ne peut s’attendre à ce que différentes implémentations OpenGL produise des chaînes d’ information identiques.
Gl.ValidateProgram n’est disponible que pour des versions GL 2.0 ou supérieurs.
Cette fonction mime l’opération de validation que les implémentations OpenGL doivent réaliser lorsque le rendu de commandes est émis alors que les ombrages programmables font partie de l’état courant. L’erreur
Gl.GL_INVALID_OPERATION sera générée par
Gl.Begin, Gl.RasterPos, ou toute commande qui produit un appel implicite à Gl.Begin si :
-
dans le programme objet en cours, deux quelconques échantillonneurs actifs sont de types différents, mais se réfèrent à la même unité de texture d’image
-
un quelconque échantillonneur actif dans le programme objet en cours se réfère à une unité de texture d’image où les fonctions fixes du processus de fragment accède à une cible de texture qui ne correspond pas au type d’échantillonneur, ou
-
La somme des nombres d’échantillonneurs actifs dans le programme et le nombre d’unités de texture d’image autorisées pour le fonctions fixes du processus de fragments dépasse la limite du nombre total combiné d’unités de texture d’image autorisées.
Gérer ces erreurs lorsque les commandes de rendu sont émises peut être difficile ou entraîner une dégradation de performance pour les applications. C’est pourquoi les applications sont informées de la necessité de faire des appels à Gl.ValidateProgram pour détecter ces questions au stade du développement .
Erreurs
_ Gets Associés
Voir aussi