コード例 #1
0
ファイル: XGradientRecordRGB.cs プロジェクト: liwq-net/SwfLib
 public static XElement ToXml(GradientRecordRGB record)
 {
     return new XElement("GradientItem",
         new XAttribute("position", record.Ratio),
         new XElement("color", XColorRGB.ToXml(record.Color))
     );
 }
コード例 #2
0
ファイル: XGradientRecordRGB.cs プロジェクト: liwq-net/SwfLib
 public static GradientRecordRGB FromXml(XElement xRecord)
 {
     var record = new GradientRecordRGB {
         Ratio = xRecord.RequiredByteAttribute("position"),
         Color = XColorRGB.FromXml(xRecord.RequiredElement("color").Element("Color"))
     };
     return record;
 }
コード例 #3
0
ファイル: GradientStreamExt.cs プロジェクト: liwq-net/SwfLib
 public static GradientRecordRGB ReadGradientRecordRGB(this ISwfStreamReader reader)
 {
     var record = new GradientRecordRGB {
         Ratio = reader.ReadByte(),
         Color = reader.ReadRGB()
     };
     return record;
 }
コード例 #4
0
        public static GradientRecordRGB ReadGradientRecordRGB(this ISwfStreamReader reader)
        {
            var record = new GradientRecordRGB {
                Ratio = reader.ReadByte(),
                Color = reader.ReadRGB()
            };

            return(record);
        }
コード例 #5
0
        /// <summary>
        /// Reads RGB gradient from the reader.
        /// </summary>
        /// <param name="reader">The reader from which to read gradient.</param>
        /// <returns></returns>
        public static GradientRGB ReadGradientRGB(this ISwfStreamReader reader)
        {
            var gradient = new GradientRGB {
                SpreadMode        = (SpreadMode)reader.ReadUnsignedBits(2),
                InterpolationMode = (InterpolationMode)reader.ReadUnsignedBits(2)
            };
            var count = reader.ReadUnsignedBits(4);

            for (var i = 0; i < count; i++)
            {
                GradientRecordRGB record = reader.ReadGradientRecordRGB();
                gradient.GradientRecords.Add(record);
            }
            return(gradient);
        }
コード例 #6
0
        public static void WriteGradientRGB(this ISwfStreamWriter writer, GradientRGB gradient)
        {
            writer.WriteUnsignedBits((uint)gradient.SpreadMode, 2);
            writer.WriteUnsignedBits((uint)gradient.InterpolationMode, 2);
            var count = gradient.GradientRecords.Count;

            if (count > 15)
            {
                throw new ArgumentOutOfRangeException("gradient", "Can't serialize more them 15 gradient points");
            }
            writer.WriteUnsignedBits((uint)count, 4);
            for (var i = 0; i < count; i++)
            {
                GradientRecordRGB record = gradient.GradientRecords[i];
                writer.WriteGradientRecordRGB(ref record);
            }
        }
コード例 #7
0
 public static void WriteGradientRecordRGB(this ISwfStreamWriter writer, ref GradientRecordRGB record)
 {
     writer.WriteByte(record.Ratio);
     writer.WriteRGB(record.Color);
 }
コード例 #8
0
ファイル: AssertGradients.cs プロジェクト: liwq-net/SwfLib
 public static void AreEqual(GradientRecordRGB expected, GradientRecordRGB actual, string message)
 {
     Assert.AreEqual(expected.Ratio, actual.Ratio, message + ": Ratio");
     AssertColors.AreEqual(expected.Color, actual.Color, message + ": Color");
 }
コード例 #9
0
ファイル: GradientStreamExt.cs プロジェクト: liwq-net/SwfLib
 public static void WriteGradientRecordRGB(this ISwfStreamWriter writer, ref GradientRecordRGB record)
 {
     writer.WriteByte(record.Ratio);
     writer.WriteRGB(record.Color);
 }