Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

UnicodeArabicOpenTypeLayoutEngine Class Reference

The class implements OpenType layout for Arabic fonts which don't contain a GSUB table, using a canned GSUB table based on Unicode Arabic Presentation Forms. More...

#include <ArabicLayoutEngine.h>

Inheritance diagram for UnicodeArabicOpenTypeLayoutEngine::

ArabicOpenTypeLayoutEngine OpenTypeLayoutEngine LayoutEngine UObject UMemory List of all members.

Public Methods

 UnicodeArabicOpenTypeLayoutEngine (const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode)
 This constructs an instance of UnicodeArabicOpenTypeLayoutEngine for a specific font, script and language. More...

virtual ~UnicodeArabicOpenTypeLayoutEngine ()
 The destructor, virtual for correct polymorphic invocation. More...


Protected Methods

virtual le_int32 glyphPostProcessing (LEGlyphID tempGlyphs[], le_int32 tempCharIndices[], le_int32 tempGlyphCount, LEGlyphID *&glyphs, le_int32 *&charIndices, LEErrorCode &success)
 This method converts the Arabic Presentation Forms in the temp glyph array into actual glyph indices using ArabicOpenTypeLayoutEngine::mapCharsToGlyps. More...

virtual void mapCharsToGlyphs (const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, LEGlyphID *&glyphs, le_int32 *&charIndices, LEErrorCode &success)
 This method copies the input characters into the output glyph index array, for use by the canned GSUB table. More...

virtual void adjustGlyphPositions (const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphID glyphs[], le_int32 glyphCount, float positions[], LEErrorCode &success)
 This method ensures that all vowel and accent glyphs have a zero advance width by calling the adjustMarkGlyphs method. More...


Detailed Description

The class implements OpenType layout for Arabic fonts which don't contain a GSUB table, using a canned GSUB table based on Unicode Arabic Presentation Forms.

It overrides the mapCharsToGlyphs method to use the Presentation Forms as logical glyph indices. It overrides the glyphPostProcessing method to convert the Presentation Forms to actual glyph indices.

See also:
ArabicOpenTypeLayoutEngine
Internal:
For internal use only.

Definition at line 157 of file ArabicLayoutEngine.h.


Constructor & Destructor Documentation

UnicodeArabicOpenTypeLayoutEngine::UnicodeArabicOpenTypeLayoutEngine const LEFontInstance   fontInstance,
le_int32    scriptCode,
le_int32    languageCode
 

This constructs an instance of UnicodeArabicOpenTypeLayoutEngine for a specific font, script and language.

Parameters:
fontInstance  - the font
scriptCode  - the script
languageCode  - the language
See also:
LEFontInstance , ScriptAndLanguageTags.h for script and language codes
Internal:
For internal use only.

virtual UnicodeArabicOpenTypeLayoutEngine::~UnicodeArabicOpenTypeLayoutEngine   [virtual]
 

The destructor, virtual for correct polymorphic invocation.

Internal:
For internal use only.


Member Function Documentation

virtual void UnicodeArabicOpenTypeLayoutEngine::adjustGlyphPositions const LEUnicode    chars[],
le_int32    offset,
le_int32    count,
le_bool    reverse,
LEGlyphID    glyphs[],
le_int32    glyphCount,
float    positions[],
LEErrorCode   success
[protected, virtual]
 

This method ensures that all vowel and accent glyphs have a zero advance width by calling the adjustMarkGlyphs method.

The character codes are used to identify the vowel and mark glyphs.

Parameters:
chars  - the input character context
offset  - the offset of the first character to process
count  - the number of characters to process
reverse  - true if the glyphs in the glyph array have been reordered
glyphs  - the input glyph array
glyphCount  - the number of glyphs
positions  - the position array, will be updated as needed
success  - output parameter set to an error code if the operation fails
Internal:
For internal use only.

Reimplemented from ArabicOpenTypeLayoutEngine.

virtual le_int32 UnicodeArabicOpenTypeLayoutEngine::glyphPostProcessing LEGlyphID    tempGlyphs[],
le_int32    tempCharIndices[],
le_int32    tempGlyphCount,
LEGlyphID *&    glyphs,
le_int32 *&    charIndices,
LEErrorCode   success
[protected, virtual]
 

This method converts the Arabic Presentation Forms in the temp glyph array into actual glyph indices using ArabicOpenTypeLayoutEngine::mapCharsToGlyps.

Input paramters:

Parameters:
tempGlyphs  - the input presentation forms
tempCharIndices  - the input character index array
tempGlyphCount  - the number of Presentation Froms
Output parameters:
Parameters:
glyphs  - the output glyph index array
charIndices  - the output character index array
success  - set to an error code if the operation fails
Returns:
the number of glyph indices in the output glyph index array
Internal:
For internal use only.

Reimplemented from OpenTypeLayoutEngine.

virtual void UnicodeArabicOpenTypeLayoutEngine::mapCharsToGlyphs const LEUnicode    chars[],
le_int32    offset,
le_int32    count,
le_bool    reverse,
le_bool    mirror,
LEGlyphID *&    glyphs,
le_int32 *&    charIndices,
LEErrorCode   success
[protected, virtual]
 

This method copies the input characters into the output glyph index array, for use by the canned GSUB table.

It also generates the character index array.

Input parameters:

Parameters:
chars  - the input character context
offset  - the offset of the first character to be mapped
count  - the number of characters to be mapped
reverse  - if true, the output will be in reverse order
mirror  - if true, do character mirroring
Output parameters:
Parameters:
glyphs  - the glyph array
charIndices  - the character index array
success  - set to an error code if the operation fails
Internal:
For internal use only.

Reimplemented from LayoutEngine.


The documentation for this class was generated from the following file:
Generated on Mon Nov 24 14:37:01 2003 for ICU 2.8 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001