コード例 #1
0
ファイル: GPOS.Others.cs プロジェクト: cs-phillips/PixelFarm
            public static PosClassRule CreateFrom(BinaryReader reader, long beginAt)
            {
                //--------
                reader.BaseStream.Seek(beginAt, SeekOrigin.Begin);
                //--------
                PosClassRule posClassRule = new PosClassRule();
                ushort       glyphCount   = reader.ReadUInt16();
                ushort       posCount     = reader.ReadUInt16();

                posClassRule.inputGlyphIds    = Utils.ReadUInt16Array(reader, glyphCount - 1);
                posClassRule.posLookupRecords = CreateMultiplePosLookupRecords(reader, posCount);
                return(posClassRule);
            }
コード例 #2
0
ファイル: GPOS.Others.cs プロジェクト: ywscr/Typography
            void ReadFrom(BinaryReader reader)
            {
                long tableStartAt = reader.BaseStream.Position;
                //
                ushort posClassRuleCnt = reader.ReadUInt16();

                ushort[] posClassRuleOffsets = Utils.ReadUInt16Array(reader, posClassRuleCnt);
                PosClassRules = new PosClassRule[posClassRuleCnt];
                for (int i = 0; i < posClassRuleOffsets.Length; ++i)
                {
                    //move to and read
                    PosClassRules[i] = PosClassRule.CreateFrom(reader, tableStartAt + posClassRuleOffsets[i]);
                }
            }
コード例 #3
0
ファイル: GPOS.Others.cs プロジェクト: prepare/HTML-Renderer
 public static PosClassRule CreateFrom(BinaryReader reader, long beginAt)
 {
     //--------
     reader.BaseStream.Seek(beginAt, SeekOrigin.Begin);
     //--------
     PosClassRule posClassRule = new PosClassRule();
     ushort glyphCount = reader.ReadUInt16();
     ushort posCount = reader.ReadUInt16();
     posClassRule.inputGlyphIds = Utils.ReadUInt16Array(reader, glyphCount - 1);
     posClassRule.posLookupRecords = CreateMultiplePosLookupRecords(reader, posCount);
     return posClassRule;
 }
コード例 #4
0
                    public PosClassRule GetPosClassRuleTable(uint i)
                    {
                        PosClassRule pcr = null;

                        if (i < PosClassRuleCount)
                        {
                            uint offset = m_offsetPosClassSet + GetPosClassRuleOffset(i);
                            pcr = new PosClassRule(offset, m_bufTable);
                        }

                        return pcr;
                    }