コード例 #1
0
ファイル: MTTexture.cs プロジェクト: yorki00/SPICA
        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));
        }
コード例 #2
0
ファイル: MTTextureFormat.cs プロジェクト: yorki00/SPICA
        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}!");
            }
        }