OpenGL Shader Erreurs de Compilation: unexpected $indéfini au jeton “<undefined>”

J'ai vu cette question et c'est vraiment shedded un peu de lumière. Malgré cela, je n'arrive pas à comprendre comment je suis "mal" chargement de mon shader, parce que ce a exécutée avant sans les changements récents à la shader code de chargement, donc je suppose que ces erreurs doivent être à venir à partir de mon tirage appels.

En dépit de cela, je vais tout de même poster le shader fichiers pour des raisons de concision, le tirage au sort de la fonction utilisée pour tracer le cercle, je suis en train de calcul, et le code qui charge dans le fichier shader comme une chaîne de caractères.

Fondamentalement, ce que j'ai besoin de savoir, c'est pourquoi j'obtiens ces erreurs et ce que l'enfer est le problème avec eux?

(De la sortie de débogage)

ERROR { 
    OpenGL Says: 
     Vertex info
-----------
0(1) : error C0000: syntax error, unexpected $undefined at token "<undefined>"

Fragment info
-------------
0(1) : error C0000: syntax error, unexpected $undefined at token "<undefined>"

 };

Tirage Code

    void Circle::draw( GLuint program )
{
const size_t centerMag = mCenter.length();
glUseProgram( program );
for( float t = 0; t < mCircumference; t += 0.1 )
{
float x = centerMag + glm::cos( 2 * M_PI * t );
float y = centerMag + glm::sin( 2 * M_PI * t );
mVertices->push_back( glm::vec4( x, y, 0, 1 ) );
}
QListIterator< glm::vec4 > iVertices( *mVertices );
const size_t size = mVertices->size();
float** verts = new float*[ size ];
size_t i = 0;
glEnableClientState( GL_VERTEX_ARRAY );
while( iVertices.hasNext() )
{
verts[ i ] = new float[ size ];
verts[ i ] = const_cast< float* >( glm::value_ptr( iVertices.next() ) );
glVertexPointer( 4, GL_FLOAT, 0, verts[ i ] );
glDrawArrays( GL_LINES, 0, 4 );
++i;
}
glDisableClientState( GL_VERTEX_ARRAY );
for( unsigned iMem = 0; iMem < size; ++iMem )
{
delete[] verts[ iMem ];
verts[ iMem ] = NULL;
}
delete[] verts;
verts = NULL;
}

FileUtility

    QString FileUtility::readShader( QString filepath )
{
std::ifstream in( filepath.toStdString().c_str() );
std::stringstream shaderDat;
shaderDat << in.rdbuf();
QString shaderFile;
shaderFile += shaderDat.str().c_str();
in.close();
return shaderFile;
}

GenericColor.frag

#version 330
out vec4 outputColor;
void main()
{
outputColor = vec4(1.0f, 0, 0, 1.0f);
}

Position.vert

#version 330
layout(location = 0) in vec4 position;
void main()
{
gl_Position = position;
}

Mise à jour

Depuis mon shader de liaison/de la compilation de code a été demandé, j'ai pensé que je peut tout aussi bien poster mon shader gestionnaire, ainsi que le moteur de la classe.

-Moteur
-ShaderHandler.

Mise à jour

Voici le shader chaînes analysées (Info est une sortie de débogage):

Info { 
Shader Source #version 330
in uniform mvp;
layout(location = 0) in vec4 position;
void main()
{
gl_ModelViewProjectionMatrix = mvp;
gl_Position = position;
}
};
Info { 
Shader Source #version 330
out vec4 outputColor;
void main()
{
outputColor = vec4(1.0f, 0, 0, 1.0f);
}
};
Pourriez-vous également de montrer le shader de compilation/VA code de liaison ?
Mise à jour, j'ai décidé de pastebin le fichier source en entier.
Merci, je vais jeter un oeil.
Toute chance vous pourriez publier l'exacte c_str qui se sont chargés de glShaderSource? Shader erreurs de compilation ne devrait pas avoir quelque chose à voir avec le reste du programme (votre tirage de code il n'y a probablement pas d'importance). Peut-être pouvait voir quelque chose de cette façon.
Yup, juste mis à jour. Je me demande si le problème, c'est parce que je suis en utilisant Qt, bien que pour cette...

OriginalL'auteur zeboidlund | 2012-06-04