Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos OpenGL 3D纹理生成崩溃_Macos_Opengl - Fatal编程技术网

Macos OpenGL 3D纹理生成崩溃

Macos OpenGL 3D纹理生成崩溃,macos,opengl,Macos,Opengl,我正在做一些3D纹理的工作,我在OSX上遇到了一些障碍。我用来生成3D纹理的代码在Windows和LINUX上运行良好,但在OSX上崩溃的频率更高。代码如下所示: #define LUT_3D_RESOLUTION 32 glEnable(GL_TEXTURE_3D); float* buffer = new float[LUT_3D_RESOLUTION*LUT_3D_RESOLUTION*LUT_3D_RESOLUTION*4]; glTexImage3D(GL_TEXTURE_3D, 0,

我正在做一些3D纹理的工作,我在OSX上遇到了一些障碍。我用来生成3D纹理的代码在Windows和LINUX上运行良好,但在OSX上崩溃的频率更高。代码如下所示:

#define LUT_3D_RESOLUTION 32
glEnable(GL_TEXTURE_3D);
float* buffer = new float[LUT_3D_RESOLUTION*LUT_3D_RESOLUTION*LUT_3D_RESOLUTION*4];
glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA, (int)LUT_3D_RESOLUTION, (int)LUT_3D_RESOLUTION, (int)LUT_3D_RESOLUTION, 0, GL_RGBA, GL_FLOAT, 0);
glTexSubImage3D(GL_TEXTURE_3D,0,0,0,0,(int)LUT_3D_RESOLUTION,(int)LUT_3D_RESOLUTION,(int)LUT_3D_RESOLUTION,GL_RGBA,GL_FLOAT,buffer);
glFlush();
glDisable(GL_TEXTURE_3D);

崩溃发生在glTexSubImage3D图像上,我得到一个EXC_BAD_访问错误,它试图访问的地址远远超出了分配的缓冲区

结果表明,解包行长度先前已设置为非零值。将此值设置为零修复了问题。感谢那些回答的人

你试过检查错误吗?同样没有意义,但您是否应该出于可移植性的目的使用GLfloat?您列出的代码中似乎有大约4或5个印刷错误(都与
LUT\U 3D\U分辨率
)有关。你粘贴正确了吗?我在Mac上尝试了这些代码行,但无法重现崩溃。这是你唯一做的事吗?或者你有可能影响这一点的状态集吗?像像素存储参数?或解包缓冲区?您确定已使用GLGENTEXTRURES创建纹理并使用glBindTexture绑定它吗?GL_RGBA是否也是有效的内部格式?它不应该是GL_RGBA8吗?