gpt4 book ai didi

opengl-es - iOS 7 和 Cocos2d,glDrawElements 上的 exc_bad_access 完全随机

转载 作者:行者123 更新时间:2023-12-04 15:23:14 27 4
gpt4 key购买 nike

我已经开发了一个游戏,我已经用以前版本的 iOS 测试了它,玩了数百次,在我安装了 iOS7 并更新了 xcode 之后,我什至没有看到一次崩溃,我刚刚尝试了我的应用程序和...现在有时会崩溃。崩溃不是在特定时刻或 Action 中发生,它们只是完全随机的,有时会立即崩溃,有时在 2-3 场比赛后,我尝试做同样的事情来检查它是否是特别的事情,但似乎不是,或者至少不是以这种方式引起注意的事情。我在游戏场景中使用 Sprite 和批处理节点。

正是在 CCTextureAtlas.m 文件中的这行代码(大约 522)中:

glDrawElements(GL_TRIANGLES, (GLsizei) n*6, GL_UNSIGNED_SHORT, (GLvoid*) (start*6*sizeof(_indices[0])) );

由于我没有对代码进行任何更改,我非常怀疑这可能是我所做的,可能与 iOS7 中影响 cocos2d 的更改有关?我什至不是 opengl 的专家,所以我很难理解发生了什么......

显然在游戏中我有一些动画正在进行......

附加信息:
  • 这不会发生在内存警告之后(我根本没有内存警告)。
  • 最佳答案

    添加 ccGLBindVAO(0);每次调用 glDeleteVertexArrays(1, &_VAOname); 后,停止崩溃。

    此调用包含三个文件:

     CCDrawNode:164
    CCTextureAtlas:142
    CCParticleSystemQuad:164
    CCParticleSystemQuad:229
    CCParticleSystemQuad:492

    就像在 CCTextureAtlas 中一样:
    #if CC_TEXTURE_ATLAS_USE_VAO
    glDeleteVertexArrays(1, &_VAOname);
    ccGLBindVAO(0);
    #endif

    我正在使用 cocos2d-iphone 经典 2.2。

    代码在这里: https://github.com/jllust/cocos2d-x/commit/1f3c1145362c921bf5232c4ffbca4a5245042bae

    我提出了一个 cocos2d-iphone-classic 拉取请求: https://github.com/zeraien/cocos2d-iphone-classic/commit/817a9c14a3aa1d4c162071521e45e2fcce473d77

    关于opengl-es - iOS 7 和 Cocos2d,glDrawElements 上的 exc_bad_access 完全随机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19236534/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com