关于资源加密及回调的事情我想是两个方面的问题。
@halx99 建议的是所有的资源都放在一起打成一个包(类似Android现在的形式),然后都从这个包读取资源。引擎最初从cocos2d-iphone移植过来时没有这样的考虑。要做到这样的话,对引擎的改动比较大,必然带来兼容性的极大破坏。
@wangzhe 的意思是单个文件的读取、写入接口能有回调,这样可以做自己的操作,比如加密、解密等。这个对于开发者自己调用接口读取、写入文件是有效的。而引擎内部也会调用这些接口读取、写入信息,比如通过 Sprite::Create()
创建sprite时,内部会调用文件读取接口读取图片数据生成纹理,这时这个回调接口从哪里获取呢?如果说在FileUtils里设置一个统一的回调接口,那么所有的文件读取都会走这个逻辑,显然也不符合需求。
所以文件的读取、写入增加回调的需求就变成了FileUtils可以被继承。开发者继承FileUtils就做自己想要的事情了。
@halx99
关于增加通用文件读取接口,以std::string作为返回值,那么如果是二进制数据呢?最近开发者提交了一个FileUitls::getContents()的接口,不知道这个是否能满足需求:https://github.com/cocos2d/cocos2d-x/pull/15479
ETC1的问题我看一下,是应该要有透明通道支持。
Data数据结构的说明能否给个具体的说明?