Vertex Arrays を試していますが、何らかの理由で glDrawElements コマンドが何も描画しません。glBegin/glEnd と glDrawElements を間に使用して描画できますが、glDrawElements は機能しません。コード スニペットを次に示します。
これらの配列は、コンストラクターで設定されます。
double points[100];
GLint indices[50];
for (int i=0; i < 50; i++){
points[2*i] = radius * cos(i*2*PI/50);
points[2*i + 1] = radius * sin(i*2*PI/50);
indices[i] = i;
}
glArrayElement でポイント配列のみを使用する作業コード:
void GLCircle::draw()
{
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_DOUBLE, 0, points);
glBegin(GL_POLYGON);
for (int i=0; i < 50; i++){
glArrayElement(i);
}
glEnd();
}
また、ポイント配列、インデックス配列を介してアクセスされる特定のインデックスを使用する作業コード:
void GLCircle::draw()
{
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_DOUBLE, 0, points);
glBegin(GL_POLYGON);
for (int i=0; i < 50; i++){
glArrayElement(indices[i]);
}
glEnd();
}
glDrawElements を使用しようとしている非動作コード:
void GLCircle::draw()
{
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_DOUBLE, 0, points);
glDrawElements(GL_POLYGON, 4, GL_INT, indices);
}
何かアドバイス?今のところ使う必要はないのですが、使えないのが気になります…。