2009-03-16 9 views
2

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.

Répondre

6

vous allez ici:

glGetShaderiv(shaderobj,GL_COMPILE_STATUS,&err); 
if(!err) { /* now print out the error log */ } 

Ceci est la compilation que vous obtenez le statut; il n'y a pas de moyen portable que j'ai trouvé pour déterminer si vous avez des avertissements. (Le journal de compilation peut être plein de tout ce que la mise en œuvre se soucie de mettre dedans, y compris la notification du succès.)

+0

Merci pour la réponse éditée mon message. – DaedalusFall

+0

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. –

+0

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

Questions connexes