public TextRecord(SwfStream stream, bool hasAlpha, int glyphBits, int advanceBits) { _flags = stream.ReadByte(); if (EndRecord) return; if (HasFont) FontId = stream.ReadUShort(); if (HasColor) Color = hasAlpha ? stream.ReadRGBA() : stream.ReadRGB(); if (HasXOffset) XOffset = stream.ReadShort(); if (HasYOffset) YOffset = stream.ReadShort(); if (HasFont) FontSize = stream.ReadUShort(); byte count = stream.ReadByte(); Glyphs = new GlyphEntry[count]; for (int i = 0; i < count; i++) Glyphs[i] = new GlyphEntry(stream, glyphBits, advanceBits); }
public LineStyle(SwfStream swf, bool hasAlpha, bool isExtended, int index) { Index = index; if (isExtended) { Width = swf.ReadUShort(); StartCapStyle = ReadCap(swf); JoinStyle = ReadJoin(swf); HasFill = swf.ReadBit(); NoHScale = swf.ReadBit(); NoVScale = swf.ReadBit(); PixelHinting = swf.ReadBit(); swf.ReadBitUInt(5); // Reserved NoClose = swf.ReadBit(); EndCapStyle = ReadCap(swf); if (JoinStyle == VGLineJoin.Miter) MiterLimit = swf.ReadFixedHalf(); if (HasFill) Fill = new FillStyle(swf, hasAlpha, -1); else Color = swf.ReadRGBA(); } else { Width = swf.ReadUShort(); Color = hasAlpha ? swf.ReadRGBA() : swf.ReadRGB(); StartCapStyle = VGLineCap.Round; EndCapStyle = VGLineCap.Round; JoinStyle = VGLineJoin.Round; HasFill = false; NoHScale = false; NoVScale = false; PixelHinting = false; NoClose = false; MiterLimit = 1m; Fill = null; } if (Width < 1) Width = 1; }
public GradRecord(SwfStream swf, bool hasAlpha) { Ratio = swf.ReadByte(); Color = hasAlpha ? swf.ReadRGBA() : swf.ReadRGB(); }
public void Load(SwfStream stream, uint length, byte version) { Color = stream.ReadRGB(); }