Compress texture as they are loaded

Use a cache to not process the same texture twice