public static byte[] Decompress( EndianBinaryReader r, int width, int height, GlTextureFormat inputFormat, long readLength) { bool hasAlpha = (inputFormat == GlTextureFormat.ETC1a4); byte[] pixelData = new byte[readLength * (hasAlpha ? 4 : 8)]; for (int y = 0; y < height; y += 8) { for (int x = 0; x < width; x += 8) { Etc1.DecodeETC1Tile_(r, pixelData, x, y, width, height, (hasAlpha ? true : false)); } } return(pixelData); }
private GlTextureFormat CollapseFormat_(GlTextureFormat format) { var lowerFormat = (GlTextureFormat)((int)format & 0xFFFF); if (lowerFormat == GlTextureFormat.ETC1) { format = GlTextureFormat.ETC1; } else if (lowerFormat == GlTextureFormat.ETC1a4) { format = GlTextureFormat.ETC1a4; } return(format); }
private int GetFmtBpp_(GlTextureFormat format) => this.CollapseFormat_(format) switch {