déclarer quels varyings du shader doivent etre enregistrés dans un ou plusieurs buffers.
glTransformFeedbackVaryings( ) : il suffit de passer un tableau des noms des varyings à enregistrer.
Les varyings peuvent etre stockés de deux manières :
soit tous dans le meme buffer, les uns à la suite des autres, bufferMode= GL_INTERLEAVED_ATTRIBS, (1 seul buffer à créer)
soit un seul par buffer, bufferMode = GL_SEPARATE_ATTRIBS (créer un buffer par paramètre).
(re-)linker le shader program :
glLinkProgram() ou en utilisant gKit : GLShaderProgram::createGLResource() ou GLShaderProgram::link( )
configuration des buffers pour enregistrer les varyings déclarés à l'étape 1
créer autant de buffers que nécessaire :
glGenBuffers( )
glBindBuffer( )
glBufferData( ), choisir une taille suffisante pour enregistrer toutes les valeurs.
associer le/les buffers aux varyings enregistrés :
glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, index, buffer) le paramètre index est l'indice du varying dans le tableau utilisé pour configurer le shader, cf étape 1.
layout(xxx) in
et layout(xxx) out
dans le source du geometry shader).