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
00019 U_NAMESPACE_BEGIN
00020
00027 class GXLayoutEngine : public LayoutEngine
00028 {
00029 public:
00047 GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, const MorphTableHeader *morphTable);
00048
00052 virtual ~GXLayoutEngine();
00053
00054 protected:
00055
00059 const MorphTableHeader *fMorphTable;
00060
00080 virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
00081 LEGlyphID *&glyphs, le_int32 *&charIndices, LEErrorCode &success);
00082
00097 virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphID glyphs[],
00098 le_int32 glyphCount, float positions[], LEErrorCode &success);
00099 };
00100
00101 U_NAMESPACE_END
00102 #endif
00103