glNormalPointer 函式

glNormalPointer 函式會定義常態陣列。

語法

void WINAPI glNormalPointer(
         GLenum  type,
         GLsizei stride,
   const GLvoid  *pointer
);

參數

type

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

大步

連續法線之間的位元組位移。 當 stride 為零時,正規值會緊密封裝在陣列中。

指標

陣列中第一個法線的指標。

傳回值

此函式不會傳回值。

錯誤碼

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

名稱 意義
GL_INVALID_ENUM
類型 不是可接受的值。
GL_INVALID_OPERATION
stridecount 為負數。

備註

glNormalPointer函式會指定轉譯時要使用的一般陣列位置和資料。 type參數會指定每個一般座標的資料類型。 stride參數會決定從一個標準到下一個常態的位元組位移,以在單一陣列或個別陣列中儲存頂點和屬性。 在某些實作中,將頂點和屬性儲存在單一陣列中比使用個別陣列更有效率;如需詳細資訊 ,請參閱 glInterleavedArrays

當您使用 glEnableClientState指定GL_NORMAL_ARRAY常數時,就會啟用一般陣列。 啟用時, glDrawArraysglDrawElementsglArrayElement 會使用一般陣列。 預設會停用一般陣列。

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

當您使用 glNormalPointer指定一般陣列時,所有函式的一般陣列參數值都會儲存在用戶端狀態中。 由於一般陣列參數會以用戶端狀態儲存,因此 不會由 glPushAttribglPopAttrib儲存或還原其值。

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

下列函式與 glNormalPointer相關聯:

glGet with argument GL_NORMAL_ARRAY_STRIDE

glGet with argument GL_NORMAL_ARRAY_COUNT

glGet with argument GL_NORMAL_ARRAY_TYPE

具有引數的glGetPointerv GL_NORMAL_ARRAY_POINTER

glIsEnabled with argument GL_NORMAL_ARRAY

規格需求

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

另請參閱

glArrayElement

glColorPointer

glDrawElements

glDrawArrays

glEnable

glEdgeFlagPointer

glGetPointerv

glIndexPointer

glIsEnabled

glInterleavedArrays

glTexCoordPointer

glVertexPointer

glGetString