簡體   English   中英

GLubyte和GL_UNSIGNED_BYTE之間有區別嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM