[英]Perfomance difference between Open GL and UI kit for a map based application
[英]Is there a difference between GLubyte and GL_UNSIGNED_BYTE?
我使用以下代碼渲染交錯的vbo,工作正常。
glVertexPointer(3, GL_FLOAT, sizeof(InterleavedVertexData), (GLvoid*)((char*)0));
glNormalPointer(GL_FLOAT, sizeof(InterleavedVertexData), (GLvoid*)((char*)0+3*sizeof(GLfloat)));
glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(InterleavedVertexData), (GLvoid*)((char*)0+6*sizeof(GL_UNSIGNED_BYTE)));
當我改變glColorPointer的指針參數使用GLubyte時,我看不到屏幕上呈現的任何內容? 我也在我的結構中將顏色定義為GLubyte。
glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(InterleavedVertexData), (GLvoid*)((char*)0+6*sizeof(GLubyte)));
GLubyte
是一種類型。 GL_UNSIGNED_BYTE
是一個整數常量,通常用於表示您將在指針中傳遞GLubyte
。
根據定義, sizeof(GLubyte)
總是1。 取sizeof(GL_UNSIGNED_BYTE)
通常會返回4或8,因為它是一個整數常量,並且具有系統整數大小的大小。
GL_UNSIGNED_BYTE
是符號const,而GLubyte
是一種類型。 GLubyte通常被實現為unsigned char
的typedef; 你可以通過查看你的gl.h
來確認這一點。
您應該在OpenGL方法中使用GL_UNSIGNED_BYTE
來指定傳遞的數據類型,並使用GLubyte
來計算數據大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.