Recurity.Swf.TagHandler.DefineFont.Parse C# (CSharp) Method

Parse() protected method

Parses this object out of a stream
protected Parse ( ) : void
return void
        protected override void Parse()
        {
            BinaryReader br = new BinaryReader(this._dataStream);

            this._fontID = br.ReadUInt16();

            UInt16 glyphTableOffset = br.ReadUInt16();

            this._numberOfGlyphs = (UInt16)(glyphTableOffset / 2);

            this._offsetTable = new UInt16[_numberOfGlyphs];
            this._offsetTable[0] = glyphTableOffset;

            long glyphTableStreamOffset = glyphTableOffset + 2;

            for (int i = 1; i < this._numberOfGlyphs; i++)
            {
                this._offsetTable[i] = br.ReadUInt16();
            }

            this._glyphShapeTable = new Shape[this._numberOfGlyphs];

            for (int i = 0; i < this._numberOfGlyphs; i++)
            {
                Shape s = new Shape(this._SwfVersion);

                if (i < this._numberOfGlyphs - 1)
                {
                    s.Parse(this._dataStream, this._offsetTable[i + 1] - this._offsetTable[i], this._tag.TagType);
                    this._glyphShapeTable[i] = s;
                }

                else
                {
                    s.Parse(this._dataStream, this._dataStream.Length - this._dataStream.Position, this._tag.TagType);
                    this._glyphShapeTable[i] = s;
                }

            }
        }