コードのコア(赤い長方形を表示):
//bind program, set uniforms, bind vbo
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0,0);
glDrawArrays(GL_TRIANGLES, 0, 6);
glDisableVertexAttribArray(0);
//unbind vbo, unbind program
コンテキストをOpenGL3.xに切り替えると、このコードは機能しなくなります(背景の色しか表示されません)が、上記のコードと同じ方法でVAOを初期化してから、VAOをバインドしてglDrawArraysを呼び出すと、その後、それは動作します。
何が問題なのですか?VAOを使用せずにVBOを描画するにはどうすればよいですか?
(シェーダーは本当に単純ですが、複数の行列とpsのみが赤色を出力します)