可以全部用etc2了,可以放心使用,这个方案 总体没大碍,只是没有实现etc2的软解码,我花了点时间撸了一个,稳定运行,etc2 的包体会大幅减小,各种好处,如果不支持etc2,那就软解即可,没啥问题, 需要etc2软解的,email 我即可
494294315@qq.com
模拟器啥的,完全OK
对了,三星的机器对etc2支持不是很完美友好,不过只是很少很少的图片,只要对CCSprite 纹理创建失败的地方做一个容错,给一个透明图即可,稳定运行的 OK啦
可以全部用etc2了,可以放心使用,这个方案 总体没大碍,只是没有实现etc2的软解码,我花了点时间撸了一个,稳定运行,etc2 的包体会大幅减小,各种好处,如果不支持etc2,那就软解即可,没啥问题, 需要etc2软解的,email 我即可
494294315@qq.com
模拟器啥的,完全OK
对了,三星的机器对etc2支持不是很完美友好,不过只是很少很少的图片,只要对CCSprite 纹理创建失败的地方做一个容错,给一个透明图即可,稳定运行的 OK啦
mark一下
ect2打包图片后还是包体有点大 这个该怎么解决一下拿
gzip
为什么2.3.3还是没看见PVRTC2
我贴一下关键函数
bool Image::initWithETC2Data(const unsigned char * data, ssize_t dataLen)
{
const unsigned char* header = data;
//check the data
if (!etc2_pkm_is_valid(header))
{
return false;
}
_width = etc2_pkm_get_width(header);
_height = etc2_pkm_get_height(header);
if (0 == _width || 0 == _height)
{
return false;
}
uint32_t format = etc2_pkm_get_format(header);
if (format == ETC2_RGB_NO_MIPMAPS)
_renderFormat = Texture2D::PixelFormat::ETC2_RGB;
else
_renderFormat = Texture2D::PixelFormat::ETC2_RGBA;
_hasPremultipliedAlpha = false;
if (Configuration::getInstance()->supportsETC2())
{
_dataLen = dataLen - ETC2_PKM_HEADER_SIZE;
_data = static_cast<unsigned char*>(malloc(_dataLen * sizeof(unsigned char)));
memcpy(_data, static_cast<const unsigned char*>(data)+ETC2_PKM_HEADER_SIZE, _dataLen);
return true;
}
else {
CCLOG("cocos2d: Hardware ETC2 decoder not support,use software decoder");
etc2dec etc2 = etc2dec();
int datalen = 0;
bool ret = etc2.decode_mem((unsigned char *)data, dataLen, _data, datalen);
_dataLen = datalen;
if (ret) {
_renderFormat = Texture2D::PixelFormat::RGBA8888;
premultipliedAlpha();
}
return ret;
}
}
etc2sdec.zip (20.3 KB)
大佬,请教一下。使用creator编辑器自带的etc2纹理压缩,有透明通道的图片会显示异常,感觉更透明了,可能是压缩后,透明通道值改变了。这个问题要怎么解决?听过3.4版本会修复这个问题,你知道大概什么时候出正式版吗?
我也出现你这种情况。使用编辑器自带的etc2纹理压缩,有透明通道的图片会显示异常,感觉更透明了,可能是压缩后,透明通道值改变了。
PC机打出来的PKM半透明正常,MAC机打出来会变得更透,有点恶心的,MAC机打出来的半透明开根号后好像就是正确的值
好技术文章
我也遇到这个问题,请问解决了吗?
mark xia
有个明显的内存泄漏
能具体说下吗
这里申请的内存没有释放
哥,这个内存泄漏解决了吗?最近在弄etc2软解析,感觉您这个挺厉害
跪求怎么具体在creator里面使用
谢谢指出问题,这个很早就发现了,改掉了,没有及时放出最新的,很少看论坛,所以就没有关注