Is this table stored in the file or built during font load? 128KiB in memory is no issue at all on modern systems, 128KiB in a file is somewhat more troublesome since it won't fit in a boot sector, is a big chunk of a rescue diskette, and the I/O cost is noticeable. These glyphs are stored in sorted order in the file, correct? May I suggest that only every Nth index be stored in the file header (where N = 16 for example) and the intermediate ones discovered at runtime, in those subranges containing a character actually used (and the indexes and character data for those glyphs are then cached in memory)? This also means block reads from the file (block length is easily calculated as the difference of two adjacent indices) instead of extraction of individual characters, most languages tend to have good locality so this should also be a win. Or is the entire font file cached in memory anyway?
2009/11/29 Vladimir 'φ-coder/phcoder' Serbinenko <phco...@gmail.com>: > Hello. Basic Multilingual Plane is range of Unicode characters in > 0-65535 and it contains most of the characters needed by most of the > languages of the world. By keeping an array with pointers to such > characters at the cost of 128KiB per font we can almost instantenously > lookup characters which are likely to be used in grub. Available in > experimental > > -- > Regards > Vladimir 'φ-coder/phcoder' Serbinenko > > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > http://lists.gnu.org/mailman/listinfo/grub-devel > > _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel