コード例 #1
0
        private void ReadScriptRecord(TagAndLocation tagLoc)
        {
            openTypeReader.rf.Seek(tagLoc.location);
            int locationDefaultLanguage = openTypeReader.rf.ReadUnsignedShort();

            if (locationDefaultLanguage > 0)
            {
                locationDefaultLanguage += tagLoc.location;
            }
            TagAndLocation[] tagsLocs = openTypeReader.ReadTagAndLocations(tagLoc.location);
            ScriptRecord     srec     = new ScriptRecord();

            srec.tag       = tagLoc.tag;
            srec.languages = new LanguageRecord[tagsLocs.Length];
            for (int k = 0; k < tagsLocs.Length; ++k)
            {
                srec.languages[k] = ReadLanguageRecord(tagsLocs[k]);
            }
            if (locationDefaultLanguage > 0)
            {
                TagAndLocation t = new TagAndLocation();
                t.tag                = "";
                t.location           = locationDefaultLanguage;
                srec.defaultLanguage = ReadLanguageRecord(t);
            }
            records.Add(srec);
        }
コード例 #2
0
 public OpenTypeScript(OpenTypeFontTableReader openTypeReader, int locationScriptTable)
 {
     this.openTypeReader = openTypeReader;
     records             = new List <ScriptRecord>();
     openTypeReader.rf.Seek(locationScriptTable);
     TagAndLocation[] tagsLocs = openTypeReader.ReadTagAndLocations(locationScriptTable);
     foreach (TagAndLocation tagLoc in tagsLocs)
     {
         ReadScriptRecord(tagLoc);
     }
 }
コード例 #3
0
 public OpenTypeFeature(OpenTypeFontTableReader openTypeReader, int locationFeatureTable)
 {
     this.openTypeReader = openTypeReader;
     records             = new List <FeatureRecord>();
     openTypeReader.rf.Seek(locationFeatureTable);
     TagAndLocation[] tagsLocs = openTypeReader.ReadTagAndLocations(locationFeatureTable);
     foreach (TagAndLocation tagLoc in tagsLocs)
     {
         // +2 don't use FeatureParams
         openTypeReader.rf.Seek(tagLoc.location + 2L);
         int           lookupCount = openTypeReader.rf.ReadUnsignedShort();
         FeatureRecord rec         = new FeatureRecord();
         rec.tag     = tagLoc.tag;
         rec.lookups = openTypeReader.ReadUShortArray(lookupCount);
         records.Add(rec);
     }
 }