2013-07-01 45 views
2

我在斷開的Qt我的程序的渲染部分,將其升級到OpenGL的4爲什麼我的無符號字節需要兩倍大?

關於紋理的過程中,我遇到了一個古怪,我得到一個段錯誤不具有合適的尺寸數據提供glTexImage 。這很奇怪,因爲我很確定我提供了正確的大小數據。 0000005:訪問衝突讀取位置 0x0000007035F7C000在 renderMan.exe在0x0000000180012212(ig4icd64.dll)

int n = 1*g_windowHeight*g_windowHeight; 
//int n = 2*g_windowHeight*g_windowHeight; Doesn't segfault but doesn't make sense to me 
auto data = (GLbyte*) malloc(n*sizeof(GLbyte)); 
glBindTexture(GL_TEXTURE_2D,textures[i]); 
glTexImage2D(GL_TEXTURE_2D,0,GL_R8,g_windowWidth,g_windowHeight,0,GL_RED,GL_UNSIGNED_BYTE,data); // 

未處理的異常。

爲什麼GL_R8想要每個像素2個字節,如果我使用GL_R8?

回答

9

這是一個錯字:

int n = 1*g_windowHeight*g_windowHeight; 

應該是:

int n = 1*g_windowWidth*g_windowHeight; 
//    ^^^^^ 
相關問題