Recurity.Swf.TextRecord.Write C# (CSharp) Method

Write() public method

Writes this object back to a stream
public Write ( Stream output ) : void
output Stream The stream to write to.
return void
        public void Write(Stream output)
        {
            if (!this._glyphEntries.Count.Equals(this._glyphCount))
            {
                SwfFormatException e = new SwfFormatException("The value of glyph count and the list size of glyphs muste be equal.");
               Log.Error(this, e.Message);
                throw e;
            }
            BitStream bits = new BitStream(output);

            bits.WriteBits(1, 1); // TextRecordType (always 1)
            bits.WriteBits(3, 0); // StyleFlagsReserved (always 0)
            bits.WriteBits(1, Convert.ToInt32(this._StyleFlagsHasFont));
            bits.WriteBits(1, Convert.ToInt32(this._StyleFlagsHasColor));
            bits.WriteBits(1, Convert.ToInt32(this._StyleFlagsHasYOffset));
            bits.WriteBits(1, Convert.ToInt32(this._StyleFlagsHasXOffset));
            bits.WriteFlush();

            if (this._StyleFlagsHasFont)
            {
                byte[] fontID = BitConverter.GetBytes(this._fontID);
                output.Write(fontID, 0, 2);
            }
            if (this._StyleFlagsHasColor)
            {
                this._textColor.Write(output);
            }
            if (this._StyleFlagsHasXOffset)
            {
                byte[] xOffset = BitConverter.GetBytes(this._xOffset);
                output.Write(xOffset, 0, 2);
            }
            if (this._StyleFlagsHasYOffset)
            {
                byte[] yOffset = BitConverter.GetBytes(this._yOffset);
                output.Write(yOffset, 0, 2);
            }
            if (this._StyleFlagsHasFont)
            {
                byte[] textHeight = BitConverter.GetBytes(this._textHeight);
                output.Write(textHeight, 0, 2);
            }

            output.WriteByte(this._glyphCount);

            for (int i = 0; i < this._glyphCount; i++)
            {
                this._glyphEntries[i].Write(bits);

            }
            bits.WriteFlush();
        }