ユニフォーム変数に関する環境情報を取得する(現在アクティブな変数の数、使ってもいい最大文字数)

uniform-check.png

アクティブなユニフォーム変数の数を確認する

int name;
        glGetProgramiv(_program,GL_ACTIVE_UNIFORMS,&name);
        printf("GL_ACTIVE_UNIFORMS:%d\n",name);

アクティブなユニフォーム変数の名前を列挙する

int total = -1;
        glGetProgramiv(mProgram, GL_ACTIVE_UNIFORMS, &total);
        for (int i = 0; i<total; ++i) {
            int name_len = -1, num = -1;
            GLenum type = GL_ZERO;
            char name[100];
            glGetActiveUniform(mProgram, GLuint(i), sizeof(name) - 1,&name_len, &num, &type, name);
            name[name_len] = 0;
            cout << "name:" << name << endl;
        }

ユニフォーム変数の使っても良い最大文字数

int name;
    glGetProgramiv(gProgram,GL_ACTIVE_UNIFORM_MAX_LENGTH,&name);
    printf("ユニフォーム変数の使っても良い最大文字数=%d\n",name);

サポートサイト Wikidot.com