src/share/native/sun/font/layout/TrimmedArrayProcessor.cpp
Print this page
rev 663 : 6501644: sync LayoutEngine *code* structure to match ICU
Reviewed-by: prr, omajid
rev 665 : 8001031: Better font processing.
Reviewed-by: vadim, prr, mschoene, omajid
*** 36,65 ****
#include "NonContextualGlyphSubstProc.h"
#include "TrimmedArrayProcessor.h"
#include "LEGlyphStorage.h"
#include "LESwaps.h"
TrimmedArrayProcessor::TrimmedArrayProcessor()
{
}
! TrimmedArrayProcessor::TrimmedArrayProcessor(const MorphSubtableHeader *morphSubtableHeader)
! : NonContextualGlyphSubstitutionProcessor(morphSubtableHeader)
{
! const NonContextualGlyphSubstitutionHeader *header = (const NonContextualGlyphSubstitutionHeader *) morphSubtableHeader;
- trimmedArrayLookupTable = (const TrimmedArrayLookupTable *) &header->table;
firstGlyph = SWAPW(trimmedArrayLookupTable->firstGlyph);
lastGlyph = firstGlyph + SWAPW(trimmedArrayLookupTable->glyphCount);
}
TrimmedArrayProcessor::~TrimmedArrayProcessor()
{
}
! void TrimmedArrayProcessor::process(LEGlyphStorage &glyphStorage)
{
le_int32 glyphCount = glyphStorage.getGlyphCount();
le_int32 glyph;
for (glyph = 0; glyph < glyphCount; glyph += 1) {
LEGlyphID thisGlyph = glyphStorage[glyph];
--- 36,75 ----
#include "NonContextualGlyphSubstProc.h"
#include "TrimmedArrayProcessor.h"
#include "LEGlyphStorage.h"
#include "LESwaps.h"
+ U_NAMESPACE_BEGIN
+
+ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TrimmedArrayProcessor)
+
TrimmedArrayProcessor::TrimmedArrayProcessor()
{
}
! TrimmedArrayProcessor::TrimmedArrayProcessor(const LEReferenceTo<MorphSubtableHeader> &morphSubtableHeader, LEErrorCode &success)
! : NonContextualGlyphSubstitutionProcessor(morphSubtableHeader, success), firstGlyph(0), lastGlyph(0)
{
! LEReferenceTo<NonContextualGlyphSubstitutionHeader> header(morphSubtableHeader, success);
!
! if(LE_FAILURE(success)) return;
!
! trimmedArrayLookupTable = LEReferenceTo<TrimmedArrayLookupTable>(morphSubtableHeader, success, (const TrimmedArrayLookupTable*)&header->table);
!
! if(LE_FAILURE(success)) return;
firstGlyph = SWAPW(trimmedArrayLookupTable->firstGlyph);
lastGlyph = firstGlyph + SWAPW(trimmedArrayLookupTable->glyphCount);
}
TrimmedArrayProcessor::~TrimmedArrayProcessor()
{
}
! void TrimmedArrayProcessor::process(LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
+ if(LE_FAILURE(success)) return;
le_int32 glyphCount = glyphStorage.getGlyphCount();
le_int32 glyph;
for (glyph = 0; glyph < glyphCount; glyph += 1) {
LEGlyphID thisGlyph = glyphStorage[glyph];
*** 70,74 ****
--- 80,86 ----
glyphStorage[glyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
}
}
}
+
+ U_NAMESPACE_END