I am working on a virtual texturing system for a university project. It is currently fully functional on the Nexus One that I am using, but the most heavily used texture in the system is not compressed, which obviously isn't great.
My problem is that I need to update this texture very often, but it seems that OpenGL ES 2.0 does not support updates to compressed textures. The justification (as I understand it) is that it would be too slow to recompress the texture on a smart phone, but I don't understand why any recompression would be necessary. As far as I am aware ATITC and ETC1 are both block compression formats, which compress each block of 4x4 texels individually. If this is the case it seems as though it should not be a problem to replace some of these blocks with other pre-compressed blocks, which is what I would like to do.
e.g.
glCompressedTexSubImage2D(GL_TEXTURE_2D, level, blockX*4, blockY*4, blockW*4, blockH*4, GL_ETC1_RGB8_OES, size, data);
Does anyone know if there is a way to do this? Alternatively, if there is a good reason for it not being supported, I would love to hear that too. Thanks :)
If anyone is unfamiliar with virtual texturing and would like to learn more, this is a great resource:
Hi, we're currently unaware of this feature being supported and as such wouldn't be able to help you with this.