示例#1
0
void buffer_manager_t::set_tf_varyings( material_ptr_t const & material, buffer_ptr_t const & tf_buffer
                                        ,const char ** names, GLsizei count )
{
    glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, tf_buffer->id());

    glTransformFeedbackVaryings(material->gl_id(), count, names, GL_INTERLEAVED_ATTRIBS);

    glLinkProgram(material->gl_id());

    GLint linked;
    glGetObjectParameterivARB(material->gl_id(), GL_LINK_STATUS, &linked);

    if (!linked)
    {
        char ch[1000];
        glGetProgramInfoLog(material->gl_id(), 1000, NULL, ch);
    }

    glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, 0);
}