Go to the documentation of this file.
5 #ifndef __LAYOUTENGINE_H
6 #define __LAYOUTENGINE_H
73 #ifndef U_HIDE_INTERNAL_API
130 #ifndef U_HIDE_INTERNAL_API
302 #ifndef U_HIDE_INTERNAL_API
LayoutEngine()
This overrides the default no argument constructor to make it difficult for clients to call it.
void getGlyphPositions(float positions[], LEErrorCode &success) const
This method copies the position array into a caller supplied array.
le_bool fFilterZeroWidth
TRUE if mapCharsToGlyphs should replace ZWJ / ZWNJ with a glyph with no contours.
virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success)
This method does positioning adjustments like accent positioning and kerning.
le_uint32 LETag
Used for four character tags.
LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags, LEErrorCode &success)
This constructs an instance for a given font, script and language.
static LayoutEngine * layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typo_flags, LEErrorCode &success)
Override of existing call that provides flags to control typography.
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)
This method will invoke the layout steps in their correct order by calling the computeGlyphs,...
LEGlyphStorage * fGlyphStorage
The object which holds the glyph storage.
virtual ~LayoutEngine()
The destructor.
static void adjustMarkGlyphs(LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success)
This is a convenience method that forces the advance width of mark glyphs to be zero,...
int32_t le_int32
A type used for signed, 32-bit integers.
static LayoutEngine * layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success)
This method returns a LayoutEngine capable of laying out text in the given font, script and langauge.
NOTE: This class is deprecated, please instead use HarfBuzz.
le_int32 fLanguageCode
The langauge code for the text.
#define U_LAYOUT_API
Set to export library symbols from inside the layout engine library, and to import them from outside.
UBool le_bool
A type used for boolean values.
void getCharIndices(le_int32 charIndices[], LEErrorCode &success) const
This method copies the character index array into a caller supplied array.
UObject is the common ICU "boilerplate" class.
le_int32 fScriptCode
The script code for the text.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
le_int32 fTypoFlags
The typographic control flags.
virtual const void * getFontTable(LETag tableTag, size_t &length) const
This method gets a table from the font associated with the text.
virtual UClassID getDynamicClassID() const
ICU "poor man's RTTI", returns a UClassID for the actual class.
void getGlyphs(LEGlyphID glyphs[], LEErrorCode &success) const
This method copies the glyph array into a caller supplied array.
static const le_int32 kTypoFlagKern
virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success)
This method does the glyph processing.
LEErrorCode
Error codes returned by the LayoutEngine.
static UClassID getStaticClassID()
ICU "poor man's RTTI", returns a UClassID for this class.
void getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const
This method returns the X and Y position of the glyph at the given index.
virtual void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const
This method copies the glyph array into a caller supplied array, ORing in extra bits.
virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
This method does any required pre-processing to the input characters.
virtual void positionGlyphs(LEGlyphStorage &glyphStorage, float x, float y, LEErrorCode &success)
This method does basic glyph positioning.
le_int32 getGlyphCount() const
This method returns the number of glyphs in the glyph array.
UChar LEUnicode
Used to represent 16-bit Unicode code points.
This is a virtual base class that serves as the interface between a LayoutEngine and the platform fon...
static const le_int32 kTypoFlagLiga
virtual const void * getFontTable(LETag tableTag) const
void getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const
This method copies the character index array into a caller supplied array.
static void adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount, le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success)
This is a convenience method that forces the advance width of mark glyphs to be zero,...
const LEFontInstance * fFontInstance
The font instance for the text font.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
virtual void reset()
This method frees the glyph, character index and position arrays so that the LayoutEngine can be reus...
This class encapsulates the per-glyph storage used by the ICU LayoutEngine.
uint32_t le_uint32
A type used for unsigned, 32-bit integers.
virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, LEGlyphStorage &glyphStorage, LEErrorCode &success)
This method does character to glyph mapping.
C API: Basic definitions for the ICU LayoutEngine.
le_uint32 LEGlyphID
Used for glyph indices.