public virtual void Read(SwfReader reader, bool alpha) { SpreadMode = (SwfSpreadMode)reader.ReadUB(2); InterpolationMode = (SwfInterpolationMode)reader.ReadUB(2); int n = (int)reader.ReadUB(4); Ratios = new byte[n]; Colors = new Color[n]; for (int i = 0; i < n; ++i) { Ratios[i] = reader.ReadUInt8(); Colors[i] = alpha ? reader.ReadRGBA() : reader.ReadRGB(); } }
public void Read(SwfReader reader, bool alpha) { bool hasAddTerms = reader.ReadBit(); bool hasMulTerms = reader.ReadBit(); int nbits = (int)reader.ReadUB(4); const int q = 8; if (hasMulTerms) { MulRed = reader.ReadFB(nbits, q); MulGreen = reader.ReadFB(nbits, q); MulBlue = reader.ReadFB(nbits, q); if (alpha) { MulAlpha = reader.ReadFB(nbits, q); } } if (hasAddTerms) { AddRed = reader.ReadFB(nbits, q); AddGreen = reader.ReadFB(nbits, q); AddBlue = reader.ReadFB(nbits, q); if (alpha) { AddAlpha = reader.ReadFB(nbits, q); } } reader.Align(); }