Cocos2d-x 是否支持 ETC2 纹理?

Does Cocos2d-x support ETC2 textures?

我正在制作游戏,目前支持以下纹理格式:

我想添加对 ETC2 的支持(ETC1 对我们不起作用,因为我们的大多数图形都需要 alpha 通道)。 Cocos2d-x 是否支持 ETC2 纹理?

没有

但是有两件事。

Cocos2d-x 在 CCTexture2D.h 中没有 ETC2 定义。你需要自己添加ETC2定义。

并且 Cocos2d-x 至少在 Android 上使用 OpenGL ES 2.0 上下文。

https://github.com/cocos2d/cocos2d-x/blob/v4-develop/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxGLSurfaceView.java#L76

this.setEGLContextClientVersion(2);

因此将 ETC2 用于 glCompressedTexImage2D 需要这些扩展。

OES_compressed_ETC2_RGB8_texture
OES_compressed_ETC2_sRGB8_texture
OES_compressed_ETC2_punchthroughA_RGBA8_texture
OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture
OES_compressed_ETC2_RGBA8_texture
OES_compressed_ETC2_sRGB8_alpha8_texture