我正在从Qt断开程序的渲染部分并将其升级到OpenGL 4.
我遇到了关于纹理的奇怪问题,我因为没有提供正确尺寸数据的glTexImage而遇到了段错误.这很奇怪,因为我很确定我正在提供正确尺寸的数据.
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); //
Run Code Online (Sandbox Code Playgroud)
renderMan.exe中0x0000000180012212(ig4icd64.dll)的未处理异常:0xC0000005:访问冲突读取位置0x0000007035F7C000.
如果我使用GL_R8,为什么GL_R8需要每像素2个字节?
这是一个错字:
int n = 1*g_windowHeight*g_windowHeight;
Run Code Online (Sandbox Code Playgroud)
应该:
int n = 1*g_windowWidth*g_windowHeight;
// ^^^^^
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |