glVertexPointer 函式

glVertexPointer函式會定義頂點資料的陣列。

語法

void WINAPI glVertexPointer(
         GLint   size,
         GLenum  type,
         GLsizei stride,
   const GLvoid  *pointer
);

參數

size

每個頂點的座標數目。 大小的值必須是 2、3 或 4。

type

陣列中每個座標的資料類型,使用下列符號常數:GL_SHORT、GL_INT、GL_FLOAT和GL_DOUBLE。

大步

連續頂點之間的位元組位移。 當 stride為零時,頂點會緊密封裝在陣列中。

指標

陣列中第一個頂點之第一個座標的指標。

傳回值

此函式不會傳回值。

錯誤碼

glGetError函式可以擷取下列錯誤碼。

名稱 意義
GL_INVALID_VALUE
大小 不是 2、3 或 4。
GL_INVALID_ENUM
類型 不是接受的值。
GL_INVALID_VALUE
stridecount 為負數。

備註

glVertexPointer函式會指定轉譯時要使用的頂點座標陣列位置和資料。 size參數會指定每個頂點的座標數目。 type參數會指定每個頂點座標的資料類型。 stride參數會決定從一個頂點到下一個頂點的位元組位移,以便在單一陣列或個別陣列的儲存體中封裝頂點和屬性。 在某些實作中,將頂點和屬性儲存在單一陣列可能比使用個別陣列更有效率 (請參閱 glInterleavedArrays) 。

當您使用 glEnableClientState指定GL_VERTEX_ARRAY常數時,就會啟用頂點陣列。 啟用時, glDrawArraysglDrawElementsglArrayElement 會使用頂點陣列。 根據預設,頂點陣列會停用。

您無法在顯示清單中包含 glVertexPointer

當您使用 glVertexPointer指定頂點陣列時,所有函式頂點陣列參數的值都會儲存在用戶端狀態中,而且可以快取靜態陣列元素。 因為頂點陣列參數是用戶端狀態,所以 不會由 glPushAttribglPopAttrib儲存或還原其值。

雖然如果您在glBeginglEnd配對內呼叫glVertexPointer,但不會產生任何錯誤,但結果不會定義。

下列函式會擷取 與 glVertexPointer相關的資訊:

glGet 與引數GL_VERTEX_ARRAY_SIZE

glGet with argument GL_VERTEX_ARRAY_STRIDE

glGet 與引數GL_VERTEX_ARRAY_COUNT

glGet with argument GL_VERTEX_ARRAY_TYPE

glGetPointerv 搭配引數GL_VERTEX_ARRAY_POINTER

glIsEnabled 搭配引數GL_VERTEX_ARRAY

規格需求

需求
最低支援的用戶端
Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限傳統型應用程式]
標頭
Gl.h
程式庫
Opengl32.lib
DLL
Opengl32.dll

另請參閱

glArrayElement

glColorPointer

glDrawArrays

glEdgeFlagPointer

glEnableClientState

glGetPointerv

glGetString

glIndexPointer

glIsEnabled

glNormalPointer

glTexCoordPointer