コード例 #1
0
ファイル: SwfTagDeserializer.cs プロジェクト: shhadi/SwfLib
        SwfTagBase ISwfTagVisitor <ISwfStreamReader, SwfTagBase> .Visit(DefineFontAlignZonesTag tag, ISwfStreamReader reader)
        {
            tag.FontID       = reader.ReadUInt16();
            tag.CsmTableHint = (CSMTableHint)reader.ReadUnsignedBits(2);
            tag.Reserved     = (byte)reader.ReadUnsignedBits(6);

            while (!reader.IsEOF)
            {
                var zone  = new ZoneRecord();
                int count = reader.ReadByte();
                for (var j = 0; j < count; j++)
                {
                    var zoneData = new ZoneData {
                        Position = reader.ReadShortFloat(),
                        Size     = reader.ReadShortFloat()
                    };
                    zone.Data.Add(zoneData);
                }
                zone.Reserved = (byte)reader.ReadUnsignedBits(6);
                zone.ZoneX    = reader.ReadBit();
                zone.ZoneY    = reader.ReadBit();
                tag.ZoneTable.Add(zone);
            }
            return(tag);
        }
コード例 #2
0
        SwfTagData ISwfTagVisitor <ISwfStreamWriter, SwfTagData> .Visit(DefineFontAlignZonesTag tag, ISwfStreamWriter writer)
        {
            writer.WriteUInt16(tag.FontID);
            writer.WriteUnsignedBits((byte)tag.CsmTableHint, 2);
            writer.WriteUnsignedBits(tag.Reserved, 6);

            foreach (var zoneArray in tag.ZoneTable)
            {
                writer.WriteByte((byte)zoneArray.Data.Count);
                foreach (var zoneData in zoneArray.Data)
                {
                    writer.WriteShortFloat(zoneData.Position);
                    writer.WriteShortFloat(zoneData.Size);
                }
                writer.WriteUnsignedBits(zoneArray.Reserved, 6);
                writer.WriteBit(zoneArray.ZoneX);
                writer.WriteBit(zoneArray.ZoneY);
            }

            return(null);
        }
コード例 #3
0
 ITagFormatter ISwfTagVisitor <object, ITagFormatter> .Visit(DefineFontAlignZonesTag tag, object arg)
 {
     return(new DefineFontAlignZonesTagFormatter());
 }