Cocos2dx使用spine骨骼动画导致在iphone6s、iphone7真机闪退的解决办法

在cocos2dx 3.x版本中,在某些情况下使用了spine骨骼动画和LayerColor,可能会导致在iphone6s,和iphone7真机上闪退,其他机型正常,xCode调试发现是在LayerColor::onDraw glDrawArrays(GLTRIANGLE_STRIP, 0, 4)这个方法中崩溃的,网上找到一篇国外开发者的解决方法,经过测试确实可用。(国外解决方法原文地址:https://github.com/cocos2d/cocos2d-x/issues/16543)

解决办法:
1、找到 PolygonBatch::flush这个方法;
2、将:
GL::bindVAO(0);
glEnableVertexAttribArray(GLProgram::VERTEX_ATTRIB_POSITION);
glEnableVertexAttribArray(GLProgram::VERTEX_ATTRIB_COLOR);
glEnableVertexAttribArray(GLProgram::VERTEX_ATTRIB_TEX_COORDS);

替换为:
GL::enableVertexAttribs(GL::VERTEX_ATTRIB_FLAG_POSITION | GL::VERTEX_ATTRIB_FLAG_COLOR | GL::VERTEX_ATTRIB_FLAG_TEX_COORD);


©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页