Ejemplo n.º 1
0
 public static void AreEqual(SwfRect actual, SwfRect expected, string message)
 {
     Assert.AreEqual(expected.XMin, actual.XMin, message + ": XMin");
     Assert.AreEqual(expected.XMax, actual.XMax, message + ": XMax");
     Assert.AreEqual(expected.YMin, actual.YMin, message + ": YMin");
     Assert.AreEqual(expected.YMax, actual.YMax, message + ": YMax");
 }
Ejemplo n.º 2
0
 public static XElement ToXml(SwfRect rect)
 {
     return new XElement("Rectangle",
             new XAttribute("left", rect.XMin),
             new XAttribute("right", rect.XMax),
             new XAttribute("top", rect.YMin),
             new XAttribute("bottom", rect.YMax));
 }
Ejemplo n.º 3
0
 public static void ReadRect(this ISwfStreamReader reader, out SwfRect rect)
 {
     var bits = reader.ReadUnsignedBits(5);
     rect.XMin = reader.ReadSignedBits(bits);
     rect.XMax = reader.ReadSignedBits(bits);
     rect.YMin = reader.ReadSignedBits(bits);
     rect.YMax = reader.ReadSignedBits(bits);
     reader.AlignToByte();
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Writes rectangle to the writer.
 /// </summary>
 /// <param name="writer">Writer to which to write rectangle.</param>
 /// <param name="rect">Rectangle to be written.</param>
 public static void WriteRect(this ISwfStreamWriter writer, ref SwfRect rect)
 {
     var btCount = new SignedBitsCount(rect.XMin, rect.XMax, rect.YMin, rect.YMax);
     var bits = btCount.GetBits();
     if (bits < 1) bits = 1;
     writer.WriteUnsignedBits(bits, 5);
     writer.WriteSignedBits(rect.XMin, bits);
     writer.WriteSignedBits(rect.XMax, bits);
     writer.WriteSignedBits(rect.YMin, bits);
     writer.WriteSignedBits(rect.YMax, bits);
     writer.FlushBits();
 }
Ejemplo n.º 5
0
 public void WriteRectMustbeByteAlignedTest()
 {
     var rect = new SwfRect {
         XMin = 0,
         XMax = 11000,
         YMin = 0,
         YMax = 8000
     };
     var mem = new MemoryStream();
     var writer = new SwfStreamWriter(mem);
     writer.WriteRect(ref rect);
     writer.WriteUnsignedBits(0xb3, 8);
     Assert.AreEqual(new byte[] { 0x78, 0x00, 0x05, 0x5f, 0x00, 0x00, 0x0f, 0xa0, 0x00, 0xb3 }, mem.ToArray());
 }
Ejemplo n.º 6
0
 public void ReadRectTest()
 {
     var etalon = new SwfRect {
         XMin = 0,
         XMax = 11000,
         YMin = 0,
         YMax = 8000
     };
     var mem = new MemoryStream(new byte[] { 0x78, 0x00, 0x05, 0x5f, 0x00, 0x00, 0x0f, 0xa0, 0x00 });
     var reader = new SwfStreamReader(mem);
     SwfRect rect = reader.ReadRect();
     Assert.IsTrue(AreEqual(etalon, rect));
     Assert.AreEqual(mem.Length, mem.Position);
 }
Ejemplo n.º 7
0
 public void ReadRectTest2()
 {
     var etalon = new SwfRect {
         XMin = 0x004,
         XMax = 0x48f,
         YMin = 0x008,
         YMax = 0x0ee
     };
     var mem = new MemoryStream();
     WriteBits(mem, "01100", "0000.00000100", "0100.10001111", "0000.00001000", "0000.11101110");
     var reader = new SwfStreamReader(mem);
     SwfRect rect = reader.ReadRect();
     Assert.IsTrue(AreEqual(etalon, rect));
     Assert.AreEqual(mem.Length, mem.Position);
 }
Ejemplo n.º 8
0
 public void ReadRectMustBeByteAlignedTest()
 {
     var etalon = new SwfRect {
         XMin = 0,
         XMax = 11000,
         YMin = 0,
         YMax = 8000
     };
     var mem = new MemoryStream(new byte[] { 0x78, 0x00, 0x05, 0x5f, 0x00, 0x00, 0x0f, 0xa0, 0x00, 0xb3 });
     var reader = new SwfStreamReader(mem);
     SwfRect rect = reader.ReadRect();
     Assert.IsTrue(AreEqual(etalon, rect));
     var tail = reader.ReadUnsignedBits(8);
     Assert.AreEqual(0xb3, tail);
     Assert.AreEqual(mem.Length, mem.Position);
 }
Ejemplo n.º 9
0
        public void ReadSwfHeaderTest()
        {
            var mem = new MemoryStream();
            var writer = new SwfStreamWriter(mem);
            var rect = new SwfRect {
                XMin = 0x004,
                XMax = 0x48f,
                YMin = 0x008,
                YMax = 0x0ee
            };
            writer.WriteRect(ref rect);
            writer.WriteFixedPoint8(23.75);
            writer.WriteUInt16(20);
            mem.Seek(0, SeekOrigin.Begin);

            var reader = new SwfStreamReader(mem);
            var hdr = reader.ReadSwfHeader();
            Assert.AreEqual(rect, hdr.FrameSize);
            Assert.AreEqual(23.75, hdr.FrameRate);
            Assert.AreEqual(20, hdr.FrameCount);

            Assert.AreEqual(mem.Length, mem.Position, "Should reach end of the stream");
        }
Ejemplo n.º 10
0
 /// <summary>
 /// Writes rectangle to the writer.
 /// </summary>
 /// <param name="writer">Writer to which to write rectangle.</param>
 /// <param name="rect">Rectangle to be written.</param>
 public static void WriteRect(this ISwfStreamWriter writer, SwfRect rect)
 {
     writer.WriteRect(ref rect);
 }
Ejemplo n.º 11
0
 public void WriteRectTest2()
 {
     var rect = new SwfRect {
         XMin = 0x004,
         XMax = 0x48f,
         YMin = 0x008,
         YMax = 0x0ee
     };
     var mem = new MemoryStream();
     var writer = new SwfStreamWriter(mem);
     writer.WriteRect(ref rect);
     writer.FlushBits();
     CheckBits(mem, "01100", "0000.00000100", "0100.10001111", "0000.00001000", "0000.11101110");
     mem.Seek(0, SeekOrigin.Begin);
 }
Ejemplo n.º 12
0
 private static bool AreEqual(SwfRect a, SwfRect b)
 {
     if (a.XMin != b.XMin) return false;
     if (a.XMax != b.XMax) return false;
     if (a.YMin != b.YMin) return false;
     if (a.YMax != b.YMax) return false;
     return true;
 }