fontservices/textshaperplugin/IcuSource/layout/Lookups.h
changeset 0 1fb32624e06b
equal deleted inserted replaced
-1:000000000000 0:1fb32624e06b
       
     1 /*
       
     2  *
       
     3  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
       
     4  *
       
     5  */
       
     6 
       
     7 #ifndef __LOOKUPS_H
       
     8 #define __LOOKUPS_H
       
     9 
       
    10 /**
       
    11  * \file
       
    12  * \internal
       
    13  */
       
    14 
       
    15 #include "LETypes.h"
       
    16 #include "OpenTypeTables.h"
       
    17 
       
    18 U_NAMESPACE_BEGIN
       
    19 
       
    20 enum LookupFlags
       
    21 {
       
    22     lfBaselineIsLogicalEnd  = 0x0001,  // The MS spec. calls this flag "RightToLeft" but this name is more accurate 
       
    23     lfIgnoreBaseGlyphs      = 0x0002,
       
    24     lfIgnoreLigatures       = 0x0004,
       
    25     lfIgnoreMarks           = 0x0008,
       
    26     lfReservedMask          = 0x00F0,
       
    27     lfMarkAttachTypeMask    = 0xFF00,
       
    28     lfMarkAttachTypeShift   = 8
       
    29 };
       
    30 
       
    31 struct LookupSubtable
       
    32 {
       
    33     le_uint16 subtableFormat;
       
    34     Offset    coverageTableOffset;
       
    35 
       
    36     inline le_int32  getGlyphCoverage(LEGlyphID glyphID) const;
       
    37 
       
    38     le_int32  getGlyphCoverage(Offset tableOffset, LEGlyphID glyphID) const;
       
    39 };
       
    40 
       
    41 struct LookupTable
       
    42 {
       
    43     le_uint16       lookupType;
       
    44     le_uint16       lookupFlags;
       
    45     le_uint16       subTableCount;
       
    46     Offset          subTableOffsetArray[ANY_NUMBER];
       
    47 
       
    48     const LookupSubtable  *getLookupSubtable(le_uint16 subtableIndex) const;
       
    49 };
       
    50 
       
    51 struct LookupListTable
       
    52 {
       
    53     le_uint16   lookupCount;
       
    54     Offset      lookupTableOffsetArray[ANY_NUMBER];
       
    55 
       
    56     const LookupTable *getLookupTable(le_uint16 lookupTableIndex) const;
       
    57 };
       
    58 
       
    59 inline le_int32 LookupSubtable::getGlyphCoverage(LEGlyphID glyphID) const
       
    60 {
       
    61     return getGlyphCoverage(coverageTableOffset, glyphID);
       
    62 }
       
    63 
       
    64 U_NAMESPACE_END
       
    65 #endif