public void ConstructionFromBytesSetsColorIndexes() { byte indexes0 = "11 10 01 00".AsByte(); // d c b a byte indexes1 = "00 11 10 01".AsByte(); // h g f e byte indexes2 = "01 00 11 10".AsByte(); // l k j i byte indexes3 = "10 01 00 11".AsByte(); // p o n m var bytes = new byte[BlockFormat.BC2ByteSize]; bytes[12] = indexes0; bytes[13] = indexes1; bytes[14] = indexes2; bytes[15] = indexes3; var block = BC2BlockData.FromBytes(bytes); Assert.AreEqual(0, block.ColorIndexes[0]); // a 00 Assert.AreEqual(1, block.ColorIndexes[1]); // b 01 Assert.AreEqual(2, block.ColorIndexes[2]); // c 10 Assert.AreEqual(3, block.ColorIndexes[3]); // d 11 Assert.AreEqual(1, block.ColorIndexes[4]); // e 01 Assert.AreEqual(2, block.ColorIndexes[5]); // f 10 Assert.AreEqual(3, block.ColorIndexes[6]); // g 11 Assert.AreEqual(0, block.ColorIndexes[7]); // h 00 Assert.AreEqual(2, block.ColorIndexes[8]); // i 10 Assert.AreEqual(3, block.ColorIndexes[9]); // j 11 Assert.AreEqual(0, block.ColorIndexes[10]); // k 00 Assert.AreEqual(1, block.ColorIndexes[11]); // l 01 Assert.AreEqual(3, block.ColorIndexes[12]); // m 11 Assert.AreEqual(0, block.ColorIndexes[13]); // n 00 Assert.AreEqual(1, block.ColorIndexes[14]); // o 01 Assert.AreEqual(2, block.ColorIndexes[15]); // p 10 }
public void ConversionToBytesReturnsArrayOfCorrectSize() { var block = new BC2BlockData(); var buffer = block.ToBytes(); Assert.AreEqual(BlockFormat.BC2ByteSize, buffer.Length); CollectionAssert.AreEqual(buffer, new byte[BlockFormat.BC2ByteSize]); }
public void ConstructionFromBytesSetsColor1() { var color = new Color565Helper(40500); var bytes = new byte[BlockFormat.BC2ByteSize]; bytes[10] = color.LowByte; bytes[11] = color.HighByte; var block = BC2BlockData.FromBytes(bytes); Assert.AreEqual(color.Color.Value, block.Color1.Value); }
public void ConversionToBytesSetsColorAlphas() { byte expectedAlphas0 = "0011 0010".AsByte(); // d c byte expectedAlphas1 = "0001 0000".AsByte(); // b a byte expectedAlphas2 = "0111 0110".AsByte(); // h g byte expectedAlphas3 = "0101 0100".AsByte(); // f e byte expectedAlphas4 = "1011 1010".AsByte(); // l k byte expectedAlphas5 = "1001 1000".AsByte(); // j i byte expectedAlphas6 = "1111 1110".AsByte(); // p o byte expectedAlphas7 = "1101 1100".AsByte(); // n m var block = new BC2BlockData(); // texel value byte block.ColorAlphas[0] = 0; // a(0,3) 0000 alphas1 block.ColorAlphas[1] = 1; // b(1,3) 0001 block.ColorAlphas[2] = 2; // c(2,3) 0010 alphas0 block.ColorAlphas[3] = 3; // d(3,3) 0011 block.ColorAlphas[4] = 4; // e(0,2) 0100 alphas2 block.ColorAlphas[5] = 5; // f(1,2) 0101 block.ColorAlphas[6] = 6; // g(2,2) 0110 alphas3 block.ColorAlphas[7] = 7; // h(3,2) 0111 block.ColorAlphas[8] = 8; // i(0,1) 1000 alphas4 block.ColorAlphas[9] = 9; // j(1,1) 1001 block.ColorAlphas[10] = 10; // k(2,1) 1010 alphas5 block.ColorAlphas[11] = 11; // l(3,1) 1011 block.ColorAlphas[12] = 12; // m(0,0) 1100 alphas6 block.ColorAlphas[13] = 13; // n(1,0) 1101 block.ColorAlphas[14] = 14; // o(2,0) 1110 alphas7 block.ColorAlphas[15] = 15; // p(3,0) 1111 var buffer = block.ToBytes(); byte alphas0 = buffer[0]; byte alphas1 = buffer[1]; byte alphas2 = buffer[2]; byte alphas3 = buffer[3]; byte alphas4 = buffer[4]; byte alphas5 = buffer[5]; byte alphas6 = buffer[6]; byte alphas7 = buffer[7]; Assert.AreEqual(expectedAlphas0, alphas0); Assert.AreEqual(expectedAlphas1, alphas1); Assert.AreEqual(expectedAlphas2, alphas2); Assert.AreEqual(expectedAlphas3, alphas3); Assert.AreEqual(expectedAlphas4, alphas4); Assert.AreEqual(expectedAlphas5, alphas5); Assert.AreEqual(expectedAlphas6, alphas6); Assert.AreEqual(expectedAlphas7, alphas7); }
public void ConversionToBytesSetsColor1() { var color = new Color565Helper(40500); var block = new BC2BlockData(); block.Color1 = color.Color; var buffer = block.ToBytes(); byte c1Low = buffer[10]; byte c1High = buffer[11]; Assert.AreEqual(color.LowByte, c1Low); Assert.AreEqual(color.HighByte, c1High); }
public void ConstructionFromBytesSetsColorAlphas() { byte alphas0 = "0011 0010".AsByte(); // d c byte alphas1 = "0001 0000".AsByte(); // b a byte alphas2 = "0111 0110".AsByte(); // h g byte alphas3 = "0101 0100".AsByte(); // f e byte alphas4 = "1011 1010".AsByte(); // l k byte alphas5 = "1001 1000".AsByte(); // j i byte alphas6 = "1111 1110".AsByte(); // p o byte alphas7 = "1101 1100".AsByte(); // n m var bytes = new byte[BlockFormat.BC2ByteSize]; bytes[0] = alphas0; bytes[1] = alphas1; bytes[2] = alphas2; bytes[3] = alphas3; bytes[4] = alphas4; bytes[5] = alphas5; bytes[6] = alphas6; bytes[7] = alphas7; var block = BC2BlockData.FromBytes(bytes); Assert.AreEqual(0, block.ColorAlphas[0]); // a 0000 Assert.AreEqual(1, block.ColorAlphas[1]); // b 0001 Assert.AreEqual(2, block.ColorAlphas[2]); // c 0010 Assert.AreEqual(3, block.ColorAlphas[3]); // d 0011 Assert.AreEqual(4, block.ColorAlphas[4]); // e 0100 Assert.AreEqual(5, block.ColorAlphas[5]); // f 0101 Assert.AreEqual(6, block.ColorAlphas[6]); // g 0110 Assert.AreEqual(7, block.ColorAlphas[7]); // h 0111 Assert.AreEqual(8, block.ColorAlphas[8]); // i 1000 Assert.AreEqual(9, block.ColorAlphas[9]); // j 1001 Assert.AreEqual(10, block.ColorAlphas[10]); // k 1010 Assert.AreEqual(11, block.ColorAlphas[11]); // l 1011 Assert.AreEqual(12, block.ColorAlphas[12]); // m 1100 Assert.AreEqual(13, block.ColorAlphas[13]); // n 1101 Assert.AreEqual(14, block.ColorAlphas[14]); // o 1110 Assert.AreEqual(15, block.ColorAlphas[15]); // p 1111 }
public void ConversionToBytesSetsColorIndexes() { byte expectedIndexes0 = "11 10 01 00".AsByte(); // d c b a byte expectedIndexes1 = "00 11 10 01".AsByte(); // h g f e byte expectedIndexes2 = "01 00 11 10".AsByte(); // l k j i byte expectedIndexes3 = "10 01 00 11".AsByte(); // p o n m var block = new BC2BlockData(); // texel value byte block.ColorIndexes[0] = 0; // a(0,3) 00 indexes0 block.ColorIndexes[1] = 1; // b(1,3) 01 block.ColorIndexes[2] = 2; // c(2,3) 10 block.ColorIndexes[3] = 3; // d(3,3) 11 block.ColorIndexes[4] = 1; // e(0,2) 01 indexes1 block.ColorIndexes[5] = 2; // f(1,2) 10 block.ColorIndexes[6] = 3; // g(2,2) 11 block.ColorIndexes[7] = 0; // h(3,2) 00 block.ColorIndexes[8] = 2; // i(0,1) 10 indexes2 block.ColorIndexes[9] = 3; // j(1,1) 11 block.ColorIndexes[10] = 0; // k(2,1) 00 block.ColorIndexes[11] = 1; // l(3,1) 01 block.ColorIndexes[12] = 3; // m(0,0) 11 indexes3 block.ColorIndexes[13] = 0; // n(1,0) 00 block.ColorIndexes[14] = 1; // o(2,0) 01 block.ColorIndexes[15] = 2; // p(3,0) 10 var buffer = block.ToBytes(); byte indexes0 = buffer[12]; byte indexes1 = buffer[13]; byte indexes2 = buffer[14]; byte indexes3 = buffer[15]; Assert.AreEqual(expectedIndexes0, indexes0); Assert.AreEqual(expectedIndexes1, indexes1); Assert.AreEqual(expectedIndexes2, indexes2); Assert.AreEqual(expectedIndexes3, indexes3); }