GLVERTEXPOINTER

Section: Misc. Reference Manual Pages (3G)
索引 xjman
 

名前

glVertexPointer - 頂点データの配列を定義する
   

書式

void glVertexPointer( GLint size,

                        GLenum type,
                        GLsizei stride,
                        const GLvoid *ptr )

delim $$  

引き数

size
頂点あたりの座標の個数を指定する。 2, 3, 4 のいずれかでなければならない。 初期値は 4 である。
type
配列中の各頂点のデータ型を指定する。 シンボル定数 GL_SHORT, GL_INT, GL_FLOAT, GL_DOUBLE を指定できる。 初期値は GL_FLOAT である。
stride
連続する頂点データの間のオフセット(バイト単位)を指定する。 stride が 0 ならば、頂点データは配列中に密に詰められている と考えられる。 初期値は 0 である。
ptr
配列中の最初の頂点の座標データを指すポインタを指定する。 初期値は 0 である。
 

説明

glVertexPointer は、レンダリングの際に使う頂点の配列の 位置とデータを指定する。 size は頂点後との座標の個数を指定し、type は 頂点のデータ型を指定する。 stride はある頂点から次の頂点への距離(バイト単位)を指定する。 これを使うことにより、頂点と属性をひとつの配列に詰め込むことも、 別々の配列に分けて格納することもできる。 (実装によっては、ひとつの配列に格納するほうが効率的な場合がある。 glInterleavedArrays を参照すること。) 頂点の配列を指定する際には、size, type, stride, ptr はクライアント側の状態として保存される。 頂点の配列を有効または無効にするには、引き数 GL_VERTEX_ARRAY を 指定して glEnableClientState または glDisableClientState を呼ぶこと。 頂点の配列が有効ならば、頂点の配列が使われるのは glDrawArrays, glDrawElements, glArrayElement のいずれかが呼ばれたときである。 予め指定されている頂点および頂点の属性の配列から (全て同じ型の)プリミティブの列を作るには glDrawArrays を使うこと。 頂点および頂点の属性をインデックス指示することにより プリミティブを指定するには glArrayElement を使うこと。 頂点および頂点の属性をインデックス指示することにより プリミティブの列を作るには glDrawElements を使うこと。  

注意

glVertexPointer を利用できるのは、バージョン 1.1 以降の GL だけである。 頂点の配列は初期状態では無効にされており、 glArrayElement, glDrawElements, glDrawArrays を 呼んでもアクセスされない。 glBegin と、その対になる glEnd の間で glVertexPointer を実行することは許されてないが、 エラーは起こる場合も起こらない場合もある。 エラーが起きなかった場合の動作は未定義である。 glVertexPointer は普通はクライアント側で実装される。 頂点の配列のパラメータはクライアント側の状態である。したがって、 glPushAttribglPopAttrib では保存・復元されない。 これらの関数ではなく glPushClientAttribglPopClientAttrib を使うこと。  

エラー

GL_INVALID_VALUE: size が 2, 3, 4 のいずれでもない場合に起こる。 GL_INVALID_ENUM: type の値が不正である場合に起こる。 GL_INVALID_VALUE: stride の負の値である場合に起こる。  

関連する取得値

引き数 GL_VERTEX_ARRAY を指定した glIsEnabled
引き数 GL_VERTEX_ARRAY_SIZE を指定した glGet
引き数 GL_VERTEX_ARRAY_TYPE を指定した glGet
引き数 GL_VERTEX_ARRAY_STRIDE を指定した glGet
引き数 GL_VERTEX_ARRAY_POINTER を指定した glGetPointerv  

関連項目

glArrayElement(3G), glColorPointer(3G), glDrawArrays(3G), glDrawElements(3G), glDrawRangeElements(3G), glEdgeFlagPointer(3G), glEnable(3G), glGetPointerv(3G), glIndexPointer(3G), glInterleavedArrays(3G), glNormalPointer(3G), glPopClientAttrib(3G), glPushClientAttrib(3G), glTexCoordPointer(3G)


 

Index

名前
書式
引き数
説明
注意
エラー
関連する取得値
関連項目

jman



Time: 07:01:12 GMT, January 12, 2009