使用图集时,勾选上Premultiply Alpha,游戏运行时会闪退

如标题所描述,在不勾选上 Premultiply Alpha 选项时,可以正常游戏,勾选后会闪退,并有以下报错:

A/libc: /Users/user01/cocos/ide-android/frameworks/cocos2d-x/cocos/base/CCGLUtils.cpp:378: void cocos2d::premultiplyPixels(const GLubyte *, GLubyte *, GLenum, uint32_t, uint32_t, uint32_t): assertion "byteLength == expectedTotalBytes" failed
D/: addLayerName, tid:27878
A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 27878 (GLThread 1522), pid 25541 (es.sketch.demo1)
D/Cocos2dxActivity: onPause()

CCGLUtils.cpp中的void premultiplyPixels()里的断言失败触发的,但搞不清楚为啥这样。是否我有哪些地方没弄对?

版本:Cocos Creator 2.3.3
打包平台:Mac os
手机系统:Android

另外,图集在Etc2(RGBA)下,如果选用Slow模式,打图集几乎必卡死,目前改用Fast方式。

没有回一下么

有了,碰到了一摸一样的问题
@jare

同问,android,2.4.3,etc2,勾上Premultiply Alpha相同问题崩溃@jare

没想到这个贴半年后还有人挖出来。。。
算了吧,兄弟,现在官方没精力查这些问题的尤其还是旧版本的2.x的问题(如果是2.4.5可能会回一下),我问了好几个问题一个回复都没,或许你可以试下用更新的版本看下有没修复,我自己是放弃了用预乘这个选项。

同遇到了,安卓用的etc1所以没遇到,ios用的etc2且勾选了预乘过后,就触发了CCGLUtils.cpp里的断言

大佬解决没?这问题,不然就只能去掉 premultiply alpha

没有解决,当时把这个spine的etc2格式去掉了。

需要求改引擎代码,Texture2D.cpp里在调用ccFlipYOrPremultiptyAlphaIfNeeded的地方,注意要先判断是否为压缩格式,这个方法只能处理非压缩纹理

试了没用! 跳过的话,龙骨全部都有问题

引擎运行时,动态图集确实无法支持预乘,非常抱歉。从 3.x 开始,不支持自动预乘,图片的预乘选项已经移除了,所以没这个问题。之后 3.6 我们会加入新的特性来避免黑边。

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。