BaseFilter IFilterVisitor <ISwfStreamReader, BaseFilter> .Visit(GradientGlowFilter filter, ISwfStreamReader reader) { var count = reader.ReadByte(); for (var i = 0; i < count; i++) { var record = new GradientRecordRGBA(); record.Color = reader.ReadRGBA(); filter.GradientColors.Add(record); } for (var i = 0; i < count; i++) { filter.GradientColors[i].Ratio = reader.ReadByte(); } filter.BlurX = reader.ReadFixed(); filter.BlurY = reader.ReadFixed(); filter.Angle = reader.ReadFixed(); filter.Distance = reader.ReadFixed(); filter.Strength = reader.ReadFixedPoint8(); filter.InnerGlow = reader.ReadBit(); filter.Knockout = reader.ReadBit(); filter.CompositeSource = reader.ReadBit(); filter.OnTop = reader.ReadBit(); filter.Passes = reader.ReadUnsignedBits(4); return(filter); }
public static XElement ToXml(GradientRecordRGBA record) { return(new XElement("GradientItem", new XAttribute("position", record.Ratio), new XElement("color", XColorRGBA.ToXml(record.Color)) )); }
public static GradientRecordRGBA FromXml(XElement xRecord) { var record = new GradientRecordRGBA { Ratio = xRecord.RequiredByteAttribute("position"), Color = XColorRGBA.FromXml(xRecord.RequiredElement("color").Element("Color")) }; return(record); }
public static void AreEqual(GradientRecordRGBA expected, GradientRecordRGBA actual, string message) { Assert.AreEqual(expected.Ratio, actual.Ratio, message + ": Ratio"); AssertColors.AreEqual(expected.Color, actual.Color, message + ": Color"); }