1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/*
2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @(#)KernTable.h	1.1 04/10/13
3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru *
4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * (C) Copyright IBM Corp. 2004-2005 - 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"
16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//#include "LEFontInstance.h"
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//#include "LEGlyphStorage.h"
18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include <stdio.h>
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_BEGIN
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct PairInfo;
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass  LEFontInstance;
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass  LEGlyphStorage;
25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/**
27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Windows type 0 kerning table support only for now.
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass U_LAYOUT_API KernTable
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru private:
32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  le_uint16 coverage;
33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  le_uint16 nPairs;
34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  const PairInfo* pairs;
35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  const LEFontInstance* font;
36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  le_uint16 searchRange;
37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  le_uint16 entrySelector;
38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  le_uint16 rangeShift;
39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru public:
41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  KernTable(const LEFontInstance* font, const void* tableData);
42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  /*
44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru   * Process the glyph positions.
45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru   */
46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru  void process(LEGlyphStorage& storage);
47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_END
50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
52