2012-02-09 9 views
0

OpenGLの頂点(または色など)配列が静的である必要がありますか? OpenGL red book chapter 2から:静的頂点配列ですか?

static GLint vertices[] = {25, 25, 
         100, 325, 
         175, 25, 
         175, 325, 
         250, 25, 
         325, 325}; 
static GLfloat colors[] = {1.0, 0.2, 0.2, 
         0.2, 0.2, 1.0, 
         0.8, 1.0, 0.2, 
         0.75, 0.75, 0.75, 
         0.35, 0.35, 0.35, 
         0.5, 0.5, 0.5}; 

glEnableClientState (GL_COLOR_ARRAY); 
glEnableClientState (GL_VERTEX_ARRAY); 

glColorPointer (3, GL_FLOAT, 0, colors); 
glVertexPointer (2, GL_INT, 0, vertices); 
+0

静的とはどういう意味ですか? –

答えて

3

彼らは、あなたが動的に割り当てることができ意味では、静的である必要はありません。レンダリングが完了するまで、つまりglDrawArraysを呼び出した後で、それらを解放してはいけません。代わりにVertex Buffer Objectsを使用して、そのメモリをGPUにアップロードすることができます。

+0

+1問題を正確に説明し、VBOを推奨する – Kos

+0

静的なものとして扱う理由はありますか? –

0

あなたは、描画関数を呼び出すときに、メモリのこのチャンク(頂点データ用と色の)が利用可能でなければならない - などDrawArrays、DrawElements、のような...

glVertexPointerだけでポインタを設定します...しかし、 OpenGLにデータをコピーしません

これらの配列をRender関数内で宣言するか、またはそれらをグローバルに宣言することができます。

関連する問題