Ejemplo n.º 1
0
        public IEnumerable <Color> Load(byte[] tex)
        {
            using (var br = new BinaryReaderX(new MemoryStream(tex), byteOrder))
            {
                Enum.TryParse <Support.DXT.Formats>(version.ToString(), false, out var dxtFormat);
                var dxtdecoder = new Support.DXT.Decoder(dxtFormat);

                while (br.BaseStream.Position < br.BaseStream.Length || !dxtdecoder.QueueFinished)
                {
                    yield return(dxtdecoder.Get(() =>
                    {
                        var dxt5Alpha = version == Version.DXT3 || version == Version.DXT5 ? br.ReadUInt64() : 0;
                        return (dxt5Alpha, br.ReadUInt64());
                    }));
                }
            }
        }
Ejemplo n.º 2
0
        public IEnumerable <Color> Load(byte[] tex)
        {
            using (var br = new BinaryReaderX(new MemoryStream(tex), byteOrder))
            {
                Enum.TryParse <Support.DXT.Formats>(version.ToString(), false, out var dxtFormat);
                var dxtdecoder = new Support.DXT.Decoder(dxtFormat, dxt5_exotic);

                while (true)
                {
                    yield return(dxtdecoder.Get(() =>
                    {
                        //if (br.BaseStream.Position == br.BaseStream.Length) return (0, 0);
                        if (br.BaseStream.Position == 0x1a000 + 0x60)
                        {
                            ;
                        }
                        var dxt5Alpha = version == Version.DXT3 || version == Version.DXT5 ? br.ReadUInt64() : 0;
                        return (dxt5Alpha, br.ReadUInt64());
                    }));
                }
            }
        }