00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __GXLAYOUTENGINE_H
00010 #define __GXLAYOUTENGINE_H
00011
00012 #include "LETypes.h"
00013 #include "LEFontInstance.h"
00014 #include "LEGlyphFilter.h"
00015 #include "LayoutEngine.h"
00016
00017 #include "MorphTables.h"
00018
00025 class GXLayoutEngine : public LayoutEngine
00026 {
00027 public:
00045 GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, const MorphTableHeader *morphTable);
00046
00050 virtual ~GXLayoutEngine();
00051
00052 protected:
00053
00057 const MorphTableHeader *fMorphTable;
00058
00078 virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
00079 LEGlyphID *&glyphs, le_int32 *&charIndices, LEErrorCode &success);
00080
00095 virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphID glyphs[],
00096 le_int32 glyphCount, float positions[], LEErrorCode &success);
00097 };
00098
00099 #endif
00100