3 * @package php-font-lib
4 * @link https://github.com/PhenX/php-font-lib
5 * @author Fabien Ménager <fabien.menager@gmail.com>
6 * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
9 namespace FontLib\Table\Type;
10 use FontLib\Table\Table;
15 * @package php-font-lib
17 class kern extends Table {
18 protected function _parse() {
19 $font = $this->getFont();
21 $data = $font->unpack(array(
22 "version" => self::uint16,
23 "nTables" => self::uint16,
25 // only the first subtable will be parsed
26 "subtableVersion" => self::uint16,
27 "length" => self::uint16,
28 "coverage" => self::uint16,
31 $data["format"] = ($data["coverage"] >> 8);
35 switch ($data["format"]) {
37 $subtable = $font->unpack(array(
38 "nPairs" => self::uint16,
39 "searchRange" => self::uint16,
40 "entrySelector" => self::uint16,
41 "rangeShift" => self::uint16,
47 $values = $font->readUInt16Many($subtable["nPairs"] * 3);
48 for ($i = 0, $idx = 0; $i < $subtable["nPairs"]; $i++) {
49 $left = $values[$idx++];
50 $right = $values[$idx++];
51 $value = $values[$idx++];
53 if ($value >= 0x8000) {
63 $tree[$left][$right] = $value;
66 //$subtable["pairs"] = $pairs;
67 $subtable["tree"] = $tree;
76 $data["subtable"] = $subtable;