os/textandloc/fontservices/textshaperplugin/IcuSource/layout/ClassDefinitionTables.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 /*
     2  *
     3  * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
     4  *
     5  */
     6 
     7 #ifndef __CLASSDEFINITIONTABLES_H
     8 #define __CLASSDEFINITIONTABLES_H
     9 
    10 /**
    11  * \file
    12  * \internal
    13  */
    14 
    15 #include "LETypes.h"
    16 #include "OpenTypeTables.h"
    17 
    18 U_NAMESPACE_BEGIN
    19 
    20 struct ClassDefinitionTable
    21 {
    22     le_uint16 classFormat;
    23 
    24     le_int32  getGlyphClass(LEGlyphID glyphID) const;
    25     le_bool   hasGlyphClass(le_int32 glyphClass) const;
    26 };
    27 
    28 struct ClassDefFormat1Table : ClassDefinitionTable
    29 {
    30     TTGlyphID  startGlyph;
    31     le_uint16  glyphCount;
    32     le_uint16  classValueArray[ANY_NUMBER];
    33 
    34     le_int32 getGlyphClass(LEGlyphID glyphID) const;
    35     le_bool  hasGlyphClass(le_int32 glyphClass) const;
    36 };
    37 
    38 struct ClassRangeRecord
    39 {
    40     TTGlyphID start;
    41     TTGlyphID end;
    42     le_uint16 classValue;
    43 };
    44 
    45 struct ClassDefFormat2Table : ClassDefinitionTable
    46 {
    47     le_uint16        classRangeCount;
    48     GlyphRangeRecord classRangeRecordArray[ANY_NUMBER];
    49 
    50     le_int32 getGlyphClass(LEGlyphID glyphID) const;
    51     le_bool hasGlyphClass(le_int32 glyphClass) const;
    52 };
    53 
    54 U_NAMESPACE_END
    55 #endif