public void TestDecodeBlock() { var Block1Data = new byte[] { 0xD5, 0x5B, 0x5D, 0xB2, 0x49, 0x00, 0xFF, 0xB2, 0xE6, 0xF6, 0xDE, 0x94, 0xFF, 0xFF, 0x02, 0xFE }; var Block = new MemoryStream(Block1Data).ReadStruct <DXT5.AlphaColorBlock>(); var Colors = new ARGB_Rev[16]; Block.Decode(ref Colors); Assert.AreEqual( "#E0D6A973,#E0D6A900,#E0D6A900,#E0D6A900,#E0D6A9BC,#E0D6A95B,#E0D6A95B,#E0D6A95B," + "#E3DAAED5,#E0D6A9D5,#E0D6A9D5,#E0D6A9D5,#E3DAAE8B,#E6DEB4FF,#E6DEB4FF,#E6DEB4FF" , Colors.ToStringArray(",") ); }
public void TestCompressDXT5() { var Colors1 = new ARGB_Rev[16] { "#E0D6A973", "#E0D6A900", "#E0D6A900", "#E0D6A900", "#E0D6A9BC", "#E0D6A95B", "#E0D6A95B", "#E0D6A95B", "#E3DAAED5", "#E0D6A9D5", "#E0D6A9D5", "#E0D6A9D5", "#E3DAAE8B", "#E6DEB4FF", "#E6DEB4FF", "#E6DEB4FF", }; var Colors2 = new ARGB_Rev[16]; var Block = default(DXT5.AlphaColorBlock); //var Color1 = default(ARGB_Rev); //var Color2 = default(ARGB_Rev); CompressDXT.CompressBlockDXT5(Colors1, out Block, CompressDXT.CompressionMode.Normal); Console.WriteLine(StructUtils.StructToBytes(Block).ToHexString().ToUpper()); Block.Decode(ref Colors2); Assert.AreEqual( "#E0D6A973,#E0D6A900,#E0D6A900,#E0D6A900,#E0D6A9BC,#E0D6A95B,#E0D6A95B,#E0D6A95B,#E3DAAED5,#E0D6A9D5,#E0D6A9D5,#E0D6A9D5,#E3DAAE8B,#E6DEB4FF,#E6DEB4FF,#E6DEB4FF", Colors1.ToStringArray(",") ); Assert.AreEqual( "#DED6AC6D,#DED6AC00,#DED6AC00,#DED6AC00,#DED6ACB6,#DED6AC6D,#DED6AC6D,#DED6AC6D,#E0D8AEDA,#DED6ACDA,#DED6ACDA,#DED6ACDA,#E0D8AE91,#E6DEB4FF,#E6DEB4FF,#E6DEB4FF", Colors2.ToStringArray(",") ); //CompressionSimpleDXT5.FindColorPair(Colors1, out Color1, out Color2); //CompressYCoCgDXT5.CompressBlock(Colors1, ref Block); }