首页 > 其他 > 详细

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

时间:2014-12-08 12:27:47      阅读:291      评论:0      收藏:0      [点我收藏+]
    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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!