码迷,mamicode.com
首页 > 其他好文 > 详细

OpenGLShader 编程系列 - 查询shader中的Uniforms

时间:2014-12-08 12:30:34      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:io   ar   sp   for   on   bs   cti   ad   ef   

    GLint maxUniformLen;
    GLint numUniforms;
    GLint index;

    glGetProgramiv(this->_program, GL_ACTIVE_UNIFORMS, &numUniforms);
    glGetProgramiv(this->_program, GL_ACTIVE_UNIFORM_MAX_LENGTH, &maxUniformLen);
    GLchar* uniformName = (GLchar*)malloc(sizeof(GLchar)*maxUniformLen);
    for(index = 0; index < numUniforms; index++)
    {
        GLint size;
        GLenum type;
        GLint location;
        GLint length;

        glGetActiveUniform(this->_program, index, maxUniformLen, &length, &size, &type, uniformName);

        location = glGetUniformLocation(this->_program, uniformName);

        switch(type)
        {
              case GL_FLOAT:
                    //
                    break;
             case GL_FLOAT_VEC2:
                  //
                  break;
             case GL_FLOAT_VEC3:
                  //
                  break;
             case GL_FLOAT_VEC4:
                  //
                  break;
             case GL_INT:
                  //
                  break;
                //.....all type
             default:
                 //
                break;
        }

       

      

    }
    free(uniformName);

OpenGLShader 编程系列 - 查询shader中的Uniforms

标签:io   ar   sp   for   on   bs   cti   ad   ef   

原文地址:http://blog.csdn.net/zangle260/article/details/41800899

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!