OpenGL:应用程序在glGetUniformLocation上崩溃(但只有在未通过XCode安装时才会崩溃)

时间:2013-07-04 15:34:36

标签: ios opengl-es shader

解释这种情况:当我通过XCode(可以说是调试模式)安装时,我的OpenGL View Controller工作正常,但是当通过In House Distribution安装时崩溃(HockeyApp用于此)。

一切正常,没有任何错误通过XCode但在第61行中断: https://gist.github.com/jonasbark/561e7e66671b041f0107

uniforms[UNIFORM_MVP_MATRIX] = glGetUniformLocation(program, "mvp_matrix");

我真的不知道为什么。我甚至试图将着色器文件硬编码为NSString,但没有运气。对我来说,为什么使用内部分发不起作用是没有意义的......

这是例外原因:

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000

统一字段变量的引入如下:

enum {
    UNIFORM_MVP_MATRIX,
    UNIFORM_TEXTURE,
    NUM_UNIFORMS
};
GLint uniforms[NUM_UNIFORMS];

以防万一有人想看到源代码:它基于http://www.endodigital.com/opengl-es-2-0-on-the-iphone/ - > EDCubeDemo_AppendixA.zip

1 个答案:

答案 0 :(得分:0)

好的......终于解决了这个问题。 将GLint uniforms[NUM_UNIFORMS];替换为GLint uniforms[2];并且有效。不知道为什么它会在Release版本上失败,必须是某种编译器优化......