1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/*
2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @(#)KernTable.h	1.1 04/10/13
3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru *
459d709d503bab6e2b61931737e662dd293b40578ccornelius * (C) Copyright IBM Corp. 2004-2013 - All Rights Reserved
5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru *
6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */
7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef __KERNTABLE_H
9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define __KERNTABLE_H
10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef __LETYPES_H
12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "LETypes.h"
13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "LETypes.h"
1659d709d503bab6e2b61931737e662dd293b40578ccornelius#include "LETableReference.h"
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//#include "LEFontInstance.h"
18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//#include "LEGlyphStorage.h"
19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include <stdio.h>
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_BEGIN
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct PairInfo;
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass  LEFontInstance;
25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass  LEGlyphStorage;
26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/**
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Windows type 0 kerning table support only for now.
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass U_LAYOUT_API KernTable
31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru private:
33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  le_uint16 coverage;
34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  le_uint16 nPairs;
3559d709d503bab6e2b61931737e662dd293b40578ccornelius  LEReferenceToArrayOf<PairInfo> pairs;
3659d709d503bab6e2b61931737e662dd293b40578ccornelius  const LETableReference &fTable;
37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  le_uint16 searchRange;
38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  le_uint16 entrySelector;
39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  le_uint16 rangeShift;
40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru public:
4259d709d503bab6e2b61931737e662dd293b40578ccornelius  KernTable(const LETableReference &table, LEErrorCode &success);
43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  /*
45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru   * Process the glyph positions.
46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru   */
4759d709d503bab6e2b61931737e662dd293b40578ccornelius  void process(LEGlyphStorage& storage, LEErrorCode &success);
48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_END
51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
53