public MTTexture(BinaryReader Reader, string Name) { this.Name = Name; string Magic = Reader.ReadPaddedString(4); int Word0 = Reader.ReadInt32(); uint Word1 = Reader.ReadUInt32(); uint Word2 = Reader.ReadUInt32(); int Version = (Word0 >> 0) & 0xfff; int Shift = (Word0 >> 24) & 0xf; uint Width = (Word1 >> 6) & 0x1fff; uint Height = (Word1 >> 19) & 0x1fff; uint Format = (Word2 >> 8) & 0xff; uint Aspect = (Word2 >> 16) & 0x1fff; this.Width = (int)Width << Shift; this.Height = (int)Height << Shift; this.Format = (MTTextureFormat)Format; Aspect <<= Shift; if (Version > 0xa3) { Reader.ReadUInt32(); } RawBuffer = Reader.ReadBytes((int)( Reader.BaseStream.Length - Reader.BaseStream.Position)); }
public static PICATextureFormat ToPICATextureFormat(this MTTextureFormat Format) { switch (Format) { case MTTextureFormat.RGBA8: return(PICATextureFormat.RGBA8); case MTTextureFormat.ETC1: return(PICATextureFormat.ETC1); case MTTextureFormat.ETC1A4: return(PICATextureFormat.ETC1A4); case MTTextureFormat.RGB8: return(PICATextureFormat.RGB8); default: throw new NotImplementedException($"Unimplemented format {Format}!"); } }