Logo Search packages:      
Sourcecode: icu version File versions  Download package

OpenTypeLayoutEngine Class Reference

#include <OpenTypeLayoutEngine.h>

Inheritance diagram for OpenTypeLayoutEngine:

LayoutEngine UObject UMemory ArabicOpenTypeLayoutEngine HangulOpenTypeLayoutEngine HanOpenTypeLayoutEngine IndicOpenTypeLayoutEngine KhmerOpenTypeLayoutEngine TibetanOpenTypeLayoutEngine UnicodeArabicOpenTypeLayoutEngine

List of all members.


Detailed Description

OpenTypeLayoutEngine implements complex text layout for OpenType fonts - that is fonts which have GSUB and GPOS tables associated with them. In order to do this, the glyph processsing step described for LayoutEngine is further broken into three steps:

1) Character processing - this step analyses the characters and assigns a list of OpenType feature tags to each one. It may also change, remove or add characters, and change their order.

2) Glyph processing - This step performs character to glyph mapping,and uses the GSUB table associated with the font to perform glyph substitutions, such as ligature substitution.

3) Glyph post processing - in cases where the font doesn't directly contain a GSUB table, the previous two steps may have generated "fake" glyph indices to use with a "canned" GSUB table. This step turns those glyph indices into actual font-specific glyph indices, and may perform any other adjustments requried by the previous steps.

OpenTypeLayoutEngine will also use the font's GPOS table to apply position adjustments such as kerning and accent positioning.

See also:
LayoutEngine

For internal use only.

Definition at line 45 of file OpenTypeLayoutEngine.h.


Public Member Functions

void getCharIndices (le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const
void getCharIndices (le_int32 charIndices[], LEErrorCode &success) const
virtual UClassID getDynamicClassID () const
le_int32 getGlyphCount () const
void getGlyphPosition (le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const
void getGlyphPositions (float positions[], LEErrorCode &success) const
virtual void getGlyphs (le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const
void getGlyphs (LEGlyphID glyphs[], LEErrorCode &success) const
virtual le_int32 layoutChars (const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, float x, float y, LEErrorCode &success)
 OpenTypeLayoutEngine (const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags, LEErrorCode &success)
 OpenTypeLayoutEngine (const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success)
virtual ~OpenTypeLayoutEngine ()

Static Public Member Functions

static LETag getLangSysTag (le_int32 languageCode)
static LETag getScriptTag (le_int32 scriptCode)
static UClassID getStaticClassID ()
static LETag getV2ScriptTag (le_int32 scriptCode)
static LayoutEnginelayoutEngineFactory (const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typo_flags, LEErrorCode &success)
static LayoutEnginelayoutEngineFactory (const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success)
static void U_EXPORT2 operator delete (void *, void *) U_NO_THROW
static void U_EXPORT2 operator delete (void *p) U_NO_THROW
static void U_EXPORT2 operator delete[] (void *p) U_NO_THROW
static void *U_EXPORT2 operator new (size_t, void *ptr) U_NO_THROW
static void *U_EXPORT2 operator new (size_t size) U_NO_THROW
static void *U_EXPORT2 operator new[] (size_t size) U_NO_THROW

Static Public Attributes

static const LETag languageTags []

Protected Member Functions

virtual void adjustGlyphPositions (const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success)
virtual le_int32 characterProcessing (const LEUnicode[], le_int32 offset, le_int32 count, le_int32 max, le_bool, LEUnicode *&, LEGlyphStorage &glyphStorage, LEErrorCode &success)
virtual le_int32 computeGlyphs (const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success)
virtual const void * getFontTable (LETag tableTag) const
virtual le_int32 glyphPostProcessing (LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success)
virtual le_int32 glyphProcessing (const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success)
virtual le_int32 glyphSubstitution (le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success)
virtual void mapCharsToGlyphs (const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, LEGlyphStorage &glyphStorage, LEErrorCode &success)
virtual void positionGlyphs (LEGlyphStorage &glyphStorage, float x, float y, LEErrorCode &success)
virtual void reset ()

Static Protected Member Functions

static void adjustMarkGlyphs (const LEUnicode chars[], le_int32 charCount, le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success)
static void adjustMarkGlyphs (LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success)

Protected Attributes

const FeatureMap * fFeatureMap
le_int32 fFeatureMapCount
FeatureMask fFeatureMask
le_bool fFeatureOrder
le_bool fFilterZeroWidth
const LEFontInstancefFontInstance
const GlyphDefinitionTableHeader * fGDEFTable
LEGlyphStoragefGlyphStorage
const GlyphPositioningTableHeader * fGPOSTable
const
GlyphSubstitutionTableHeader * 
fGSUBTable
LETag fLangSysTag
le_int32 fLanguageCode
le_int32 fScriptCode
LETag fScriptTag
LETag fScriptTagV2
LEGlyphFilterfSubstitutionFilter
le_int32 fTypoFlags

Private Member Functions

void setScriptAndLanguageTags ()

Static Private Attributes

static const LETag scriptTags []

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index