J'ai un projet qui utilise des shaders GLSL.Verbose GLSL Shader compiler sur Intel
Ce projet est conçu pour ne rien imprimer dans stdout à moins que quelque chose ne se passe mal ou que vous activiez explicitement une sortie de débogage supplémentaire.
Lorsqu'un compilation de shaders ne la longueur de journal donnée par glGetProgramInfoLog
est> 0, et parfois, quand il réussit son> 0, et donne la compilation avertissements à la place. Lorsque vous avez un shader qui compile parfaitement la longueur du journal est < 1 ... c'est ainsi que cela fonctionne sur ma carte NVidia sur ma machine dev.
Pour mes péchés, je fais aussi quelques dev sur un ordinateur portable avec une carte graphique intel intégrée. Le code fonctionne très bien, mais chaque fois que je fais un shader compiler le journal contient:
have « shaders a été compilé avec succès pour fonctionner sur du matériel »
Ce qui est très ennuyeux, comme je l'ai maintenant aucun moyen de décider si je devrais imprimer la chaîne, en dehors d'une sorte d'analyse de chaîne, par exemple:
strstr("successfully",log)
Espérons que ce soit évident pourquoi c'est indésirable. Comment, le cas échéant, puis-je savoir si un message vaut la peine d'être imprimé à l'aide de l'API OpenGL?
EDIT:
Si je glGetShaderiv(shaderobj,GL_COMPILE_STATUS,&err);
alors je ne suis pas compiler les avertissements, seules les erreurs.
Merci pour la réponse éditée mon message. – DaedalusFall
Donc, vous voulez savoir s'il y a des avertissements, ou des erreurs, mais pas de messages de réussite? Désolé, je suis sûr que le statut de compilation est tout ce qu'il y a. –
Oui, c'est exactement ce que je veux. Honte, je suppose que je vais devoir le faire à la manière désordonnée. Merci. – DaedalusFall