GLSLでユニフォームのサイズをスカラー(またはバイト)で取得する方法がわからないようです。
現在、すべてのシェーダー定数を列挙するときにglGetActiveUniformを呼び出していますが、返されるサイズパラメーターは配列サイズであり、可変サイズではありません。
データサイズを取得する機能はありますか?または、ConstantTypeをそのサイズにマップする関数ですか?
完全を期すために、これが私のコードです。
char ConstantName[ 128 ];
GLint ConstantArraySize;
GLenum ConstantType;
glGetActiveUniform( Program, ConstantIndex, 128, nullptr, &ConstantArraySize, &ConstantType, ConstantName );