Creator 2.4.0问题反馈,模拟器 & 安卓原生动态合图失效

  • Creator 版本:2.4.0

  • 目标平台: Android / 模拟器

  • 重现方式:见附件Demo

  • 出现概率:必现

复现问题Demo:
NativeBatchRenderTest.zip (951.7 KB)

已经确认 cc.macro.CLEANUP_IMAGE_CACHE = false; cc.dynamicAtlasManager.enable = true;

简单追了下代码,Texture2D的_image属性始终为空,导致合图检测时判定为不合,所以无法合批。

项目之前用的是Creater 2.2.2 版本,Native端踩了bug合不了图,废了不少功夫升级到2.4.0,没想到踩了另一个坑还是合不了图,心有点累。麻烦引擎组看一下

关闭这个开关,应该是默认配置不一样了

调试模式下查看变量,开关是关闭的。

看了Texture2D这块的代码改动

  1. 如果走initWithData(),不会赋值_image。checkPackable()结果计算错误。
  2. 如果走initWithElement(),会赋值_image,并且在回调handleLoadedTexture()时,会正确计算 checkPackable()

2.2.2 -> 2.4.0的过程中修改了判断导致2.4.0中进了initWithData,所以就无法合图。
亲测如果改回2.2.2的逻辑,native合批能够生效。

@huanxinyin 大佬麻烦再帮忙看下,initWithData()流程下是不是漏掉了_image成员的赋值逻辑。

好的,谢谢反馈,我们确认下

参考这个修复PR,自己处理下
https://github.com/cocos-creator/engine/pull/6946

多谢大佬。
因为需要换成本地引擎,所以希望能帮忙看下这个问题。使用本地引擎后启动报错。

大佬,原生动态合图失效的问题,已经测试ok了么?

我这边合了PR后能合图了,你那边如果要提前合PR最好自己也测下。

现在的2.4.3解决了这个问题吗?还要合PR吗?

2.4.3版本里面,已经改成你用的解决方案的

但是安卓的合图还是失效的