ICU-3738 remove tabs.
X-SVN-Rev: 15201
This commit is contained in:
parent
57a7141288
commit
658bda41a0
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)AlternateSubstSubtables.cpp 1.7 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)AlternateSubstSubtables.h 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)AnchorTables.cpp 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -42,9 +41,9 @@ void AnchorTable::getAnchor(LEGlyphID glyphID, const LEFontInstance *fontInstanc
|
||||
}
|
||||
|
||||
default:
|
||||
// Unknown format, set the anchor point to (0, 0)
|
||||
anchor.fX = 0;
|
||||
anchor.fY = 0;
|
||||
// Unknown format, set the anchor point to (0, 0)
|
||||
anchor.fX = 0;
|
||||
anchor.fY = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)AnchorTables.h 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -66,8 +66,8 @@ le_int32 ArabicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[]
|
||||
return 0;
|
||||
}
|
||||
|
||||
glyphStorage.adoptGlyphCount(count);
|
||||
glyphStorage.allocateAuxData(success);
|
||||
glyphStorage.adoptGlyphCount(count);
|
||||
glyphStorage.allocateAuxData(success);
|
||||
|
||||
if (LE_FAILURE(success)) {
|
||||
success = LE_MEMORY_ALLOCATION_ERROR;
|
||||
@ -111,7 +111,7 @@ void ArabicOpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], l
|
||||
GlyphDefinitionTableHeader *gdefTable = (GlyphDefinitionTableHeader *) ArabicShaping::glyphDefinitionTable;
|
||||
GDEFMarkFilter filter(gdefTable);
|
||||
|
||||
adjustMarkGlyphs(&chars[offset], count, reverse, glyphStorage, &filter, success);
|
||||
adjustMarkGlyphs(&chars[offset], count, reverse, glyphStorage, &filter, success);
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,7 +149,7 @@ le_int32 UnicodeArabicOpenTypeLayoutEngine::glyphPostProcessing(LEGlyphStorage &
|
||||
// FIXME: we could avoid the memory allocation and copy if we
|
||||
// made a clone of mapCharsToGlyphs which took the fake glyphs
|
||||
// directly.
|
||||
le_int32 tempGlyphCount = tempGlyphStorage.getGlyphCount();
|
||||
le_int32 tempGlyphCount = tempGlyphStorage.getGlyphCount();
|
||||
LEUnicode *tempChars = LE_NEW_ARRAY(LEUnicode, tempGlyphCount);
|
||||
|
||||
if (tempChars == NULL) {
|
||||
@ -158,10 +158,10 @@ le_int32 UnicodeArabicOpenTypeLayoutEngine::glyphPostProcessing(LEGlyphStorage &
|
||||
}
|
||||
|
||||
for (le_int32 i = 0; i < tempGlyphCount; i += 1) {
|
||||
tempChars[i] = (LEUnicode) LE_GET_GLYPH(tempGlyphStorage[i]);
|
||||
tempChars[i] = (LEUnicode) LE_GET_GLYPH(tempGlyphStorage[i]);
|
||||
}
|
||||
|
||||
glyphStorage.adoptCharIndicesArray(tempGlyphStorage);
|
||||
glyphStorage.adoptCharIndicesArray(tempGlyphStorage);
|
||||
|
||||
ArabicOpenTypeLayoutEngine::mapCharsToGlyphs(tempChars, 0, tempGlyphCount, FALSE, TRUE, glyphStorage, success);
|
||||
|
||||
@ -188,10 +188,10 @@ void UnicodeArabicOpenTypeLayoutEngine::mapCharsToGlyphs(const LEUnicode chars[]
|
||||
dir = -1;
|
||||
}
|
||||
|
||||
glyphStorage.allocateGlyphArray(count, reverse, success);
|
||||
glyphStorage.allocateGlyphArray(count, reverse, success);
|
||||
|
||||
for (i = 0; i < count; i += 1, out += dir) {
|
||||
glyphStorage[out] = (LEGlyphID) chars[offset + i];
|
||||
for (i = 0; i < count; i += 1, out += dir) {
|
||||
glyphStorage[out] = (LEGlyphID) chars[offset + i];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -113,10 +113,10 @@ const LETag *ArabicShaping::getFeatureOrder()
|
||||
|
||||
void ArabicShaping::adjustTags(le_int32 outIndex, le_int32 shapeOffset, LEGlyphStorage &glyphStorage)
|
||||
{
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
const LETag *glyphTags = (const LETag *) glyphStorage.getAuxData(outIndex, success);
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
const LETag *glyphTags = (const LETag *) glyphStorage.getAuxData(outIndex, success);
|
||||
|
||||
glyphStorage.setAuxData(outIndex, (void *) &glyphTags[TAGS_PER_GLYPH * shapeOffset], success);
|
||||
glyphStorage.setAuxData(outIndex, (void *) &glyphTags[TAGS_PER_GLYPH * shapeOffset], success);
|
||||
}
|
||||
|
||||
void ArabicShaping::shape(const LEUnicode *chars, le_int32 offset, le_int32 charCount, le_int32 charMax,
|
||||
@ -138,7 +138,7 @@ void ArabicShaping::shape(const LEUnicode *chars, le_int32 offset, le_int32 char
|
||||
// shaper.shape(out, 1) (isolate to final)
|
||||
|
||||
ShapeType rightType = ST_NOSHAPE_NONE, leftType = ST_NOSHAPE_NONE;
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
le_int32 i;
|
||||
|
||||
for (i = offset - 1; i >= 0; i -= 1) {
|
||||
@ -173,7 +173,7 @@ void ArabicShaping::shape(const LEUnicode *chars, le_int32 offset, le_int32 char
|
||||
LEUnicode c = chars[in];
|
||||
ShapeType t = getShapeType(c);
|
||||
|
||||
glyphStorage.setAuxData(out, (void *) tagArray, success);
|
||||
glyphStorage.setAuxData(out, (void *) tagArray, success);
|
||||
|
||||
if ((t & MASK_TRANSPARENT) != 0) {
|
||||
continue;
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -59,11 +59,11 @@ private:
|
||||
|
||||
static const LETag tagArray[];
|
||||
|
||||
static ShapeType getShapeType(LEUnicode c);
|
||||
static ShapeType getShapeType(LEUnicode c);
|
||||
|
||||
static const ShapeType shapeTypes[];
|
||||
|
||||
static void adjustTags(le_int32 outIndex, le_int32 shapeOffset, LEGlyphStorage &glyphStorage);
|
||||
static void adjustTags(le_int32 outIndex, le_int32 shapeOffset, LEGlyphStorage &glyphStorage);
|
||||
};
|
||||
|
||||
U_NAMESPACE_END
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)ClassDefinitionTables.cpp 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)ClassDefinitionTables.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)ContextualGlyphInsertion.h 1.4 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -46,7 +46,7 @@ ByteOffset ContextualGlyphSubstitutionProcessor::processStateEntry(LEGlyphStorag
|
||||
|
||||
if (markOffset != 0) {
|
||||
const le_int16 *table = (const le_int16 *) ((char *) &stateTableHeader->stHeader + markOffset * 2);
|
||||
LEGlyphID mGlyph = glyphStorage[markGlyph];
|
||||
LEGlyphID mGlyph = glyphStorage[markGlyph];
|
||||
TTGlyphID newGlyph = SWAPW(table[LE_GET_GLYPH(mGlyph)]);
|
||||
|
||||
glyphStorage[markGlyph] = LE_SET_GLYPH(mGlyph, newGlyph);
|
||||
@ -54,7 +54,7 @@ ByteOffset ContextualGlyphSubstitutionProcessor::processStateEntry(LEGlyphStorag
|
||||
|
||||
if (currOffset != 0) {
|
||||
const le_int16 *table = (const le_int16 *) ((char *) &stateTableHeader->stHeader + currOffset * 2);
|
||||
LEGlyphID thisGlyph = glyphStorage[currGlyph];
|
||||
LEGlyphID thisGlyph = glyphStorage[currGlyph];
|
||||
TTGlyphID newGlyph = SWAPW(table[LE_GET_GLYPH(thisGlyph)]);
|
||||
|
||||
glyphStorage[currGlyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)ContextualGlyphSubstitution.h 1.4 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)ContextualSubstSubtables.cpp 1.11 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)ContextualSubstSubtables.h 1.7 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)CoverageTables.cpp 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)CoverageTables.h 1.4 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)Features.h 1.4 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -36,7 +35,7 @@ struct FeatureListTable
|
||||
le_uint16 featureCount;
|
||||
FeatureRecord featureRecordArray[ANY_NUMBER];
|
||||
|
||||
const FeatureTable *getFeatureTable(le_uint16 featureIndex, LETag *featureTag) const;
|
||||
const FeatureTable *getFeatureTable(le_uint16 featureIndex, LETag *featureTag) const;
|
||||
|
||||
const FeatureTable *getFeatureTable(LETag featureTag) const;
|
||||
};
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)GDEFMarkFilter.cpp 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998, 1999, 2000, 2001 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998 - 2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)GDEFMarkFilter.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)GlyphDefinitionTables.cpp 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998, 1999, 2000, 2001 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998 - 2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)GlyphDefinitionTables.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -24,14 +24,14 @@ GlyphIterator::GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjus
|
||||
glyphClassDefinitionTable(NULL), markAttachClassDefinitionTable(NULL)
|
||||
|
||||
{
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
|
||||
if (theGlyphDefinitionTableHeader != NULL) {
|
||||
glyphClassDefinitionTable = theGlyphDefinitionTableHeader->getGlyphClassDefinitionTable();
|
||||
markAttachClassDefinitionTable = theGlyphDefinitionTableHeader->getMarkAttachClassDefinitionTable();
|
||||
}
|
||||
|
||||
nextLimit = glyphCount;
|
||||
nextLimit = glyphCount;
|
||||
|
||||
if (rightToLeft) {
|
||||
direction = -1;
|
||||
@ -73,8 +73,8 @@ GlyphIterator::GlyphIterator(GlyphIterator &that, LETag newFeatureTag)
|
||||
cursiveLastPosition = that.cursiveLastPosition;
|
||||
|
||||
glyphPositionAdjustments = that.glyphPositionAdjustments;
|
||||
srcIndex = that.srcIndex;
|
||||
destIndex = that.destIndex;
|
||||
srcIndex = that.srcIndex;
|
||||
destIndex = that.destIndex;
|
||||
lookupFlags = that.lookupFlags;
|
||||
featureTag = newFeatureTag;
|
||||
glyphClassDefinitionTable = that.glyphClassDefinitionTable;
|
||||
@ -94,8 +94,8 @@ GlyphIterator::GlyphIterator(GlyphIterator &that, le_uint16 newLookupFlags)
|
||||
cursiveLastPosition = that.cursiveLastPosition;
|
||||
|
||||
glyphPositionAdjustments = that.glyphPositionAdjustments;
|
||||
srcIndex = that.srcIndex;
|
||||
destIndex = that.destIndex;
|
||||
srcIndex = that.srcIndex;
|
||||
destIndex = that.destIndex;
|
||||
lookupFlags = newLookupFlags;
|
||||
featureTag = that.featureTag;
|
||||
glyphClassDefinitionTable = that.glyphClassDefinitionTable;
|
||||
@ -111,32 +111,32 @@ GlyphIterator::GlyphIterator()
|
||||
|
||||
GlyphIterator::~GlyphIterator()
|
||||
{
|
||||
// nothing to do, right?
|
||||
// nothing to do, right?
|
||||
}
|
||||
|
||||
void GlyphIterator::reset(le_uint16 newLookupFlags, LETag newFeatureTag)
|
||||
{
|
||||
position = prevLimit;
|
||||
featureTag = newFeatureTag;
|
||||
lookupFlags = newLookupFlags;
|
||||
position = prevLimit;
|
||||
featureTag = newFeatureTag;
|
||||
lookupFlags = newLookupFlags;
|
||||
}
|
||||
|
||||
LEGlyphID *GlyphIterator::insertGlyphs(le_int32 count)
|
||||
{
|
||||
return glyphStorage.insertGlyphs(position, count);
|
||||
return glyphStorage.insertGlyphs(position, count);
|
||||
}
|
||||
|
||||
le_int32 GlyphIterator::applyInsertions()
|
||||
{
|
||||
le_int32 newGlyphCount = glyphStorage.applyInsertions();
|
||||
le_int32 newGlyphCount = glyphStorage.applyInsertions();
|
||||
|
||||
if (direction < 0) {
|
||||
prevLimit = newGlyphCount;
|
||||
} else {
|
||||
nextLimit = newGlyphCount;
|
||||
}
|
||||
if (direction < 0) {
|
||||
prevLimit = newGlyphCount;
|
||||
} else {
|
||||
nextLimit = newGlyphCount;
|
||||
}
|
||||
|
||||
return newGlyphCount;
|
||||
return newGlyphCount;
|
||||
}
|
||||
|
||||
le_int32 GlyphIterator::getCurrStreamPosition() const
|
||||
@ -181,7 +181,7 @@ LEGlyphID GlyphIterator::getCurrGlyphID() const
|
||||
}
|
||||
}
|
||||
|
||||
return glyphStorage[position];
|
||||
return glyphStorage[position];
|
||||
}
|
||||
|
||||
LEGlyphID GlyphIterator::getCursiveLastGlyphID() const
|
||||
@ -196,7 +196,7 @@ LEGlyphID GlyphIterator::getCursiveLastGlyphID() const
|
||||
}
|
||||
}
|
||||
|
||||
return glyphStorage[cursiveLastPosition];
|
||||
return glyphStorage[cursiveLastPosition];
|
||||
}
|
||||
|
||||
void GlyphIterator::getCursiveLastExitPoint(LEPoint &exitPoint) const
|
||||
@ -247,9 +247,9 @@ void GlyphIterator::getCursiveLastPositionAdjustment(GlyphPositionAdjustment &ad
|
||||
|
||||
void GlyphIterator::setCurrGlyphID(TTGlyphID glyphID)
|
||||
{
|
||||
LEGlyphID glyph = glyphStorage[position];
|
||||
LEGlyphID glyph = glyphStorage[position];
|
||||
|
||||
glyphStorage[position] = LE_SET_GLYPH(glyph, glyphID);
|
||||
glyphStorage[position] = LE_SET_GLYPH(glyph, glyphID);
|
||||
}
|
||||
|
||||
void GlyphIterator::setCurrStreamPosition(le_int32 newPosition)
|
||||
@ -466,7 +466,7 @@ le_bool GlyphIterator::hasFeatureTag() const
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
const LETag *tagList = (const LETag *) glyphStorage.getAuxData(position, success);
|
||||
|
||||
if (tagList != NULL) {
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
|
||||
virtual ~GlyphIterator();
|
||||
|
||||
void reset(le_uint16 newLookupFlags, LETag newFeatureTag);
|
||||
void reset(le_uint16 newLookupFlags, LETag newFeatureTag);
|
||||
|
||||
le_bool next(le_uint32 delta = 1);
|
||||
le_bool prev(le_uint32 delta = 1);
|
||||
@ -73,8 +73,8 @@ public:
|
||||
void adjustCursiveLastGlyphPositionAdjustment(float xPlacmentAdjust, float yPlacementAdjust,
|
||||
float xAdvanceAdjust, float yAdvanceAdjust);
|
||||
|
||||
LEGlyphID *insertGlyphs(le_int32 count);
|
||||
le_int32 applyInsertions();
|
||||
LEGlyphID *insertGlyphs(le_int32 count);
|
||||
le_int32 applyInsertions();
|
||||
|
||||
private:
|
||||
GlyphIterator();
|
||||
@ -91,10 +91,10 @@ private:
|
||||
le_int32 cursiveLastPosition;
|
||||
float cursiveBaselineAdjustment;
|
||||
LEPoint cursiveLastExitPoint;
|
||||
LEGlyphStorage &glyphStorage;
|
||||
LEGlyphStorage &glyphStorage;
|
||||
GlyphPositionAdjustment *glyphPositionAdjustments;
|
||||
le_int32 srcIndex;
|
||||
le_int32 destIndex;
|
||||
le_int32 srcIndex;
|
||||
le_int32 destIndex;
|
||||
le_uint16 lookupFlags;
|
||||
LETag featureTag;
|
||||
const GlyphClassDefinitionTable *glyphClassDefinitionTable;
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)GlyphPositionAdjustments.h 1.8 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -27,7 +27,7 @@ class LEGlyphStorage;
|
||||
struct GlyphPositioningTableHeader : public GlyphLookupTableHeader
|
||||
{
|
||||
void process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustment *glyphPositionAdjustments,
|
||||
le_bool rightToLeft, LETag scriptTag, LETag languageTag,
|
||||
le_bool rightToLeft, LETag scriptTag, LETag languageTag,
|
||||
const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
|
||||
const LEFontInstance *fontInstance, const LETag *featureOrder) const;
|
||||
};
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)GlyphPosnLookupProc.cpp 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998, 1999, 2000, 2001 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998 - 2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)GlyphPosnLookupProc.h 1.7 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)GlyphSubstLookupProc.cpp 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998, 1999, 2000, 2001 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
/*
|
||||
* %W% %E%
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
@ -25,7 +24,7 @@ void HebrewShaping::shape(const LEUnicode * /*chars*/, le_int32 /*offset*/, le_i
|
||||
{
|
||||
|
||||
le_int32 count, out = 0, dir = 1;
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
|
||||
if (rightToLeft) {
|
||||
out = charCount - 1;
|
||||
@ -33,8 +32,8 @@ void HebrewShaping::shape(const LEUnicode * /*chars*/, le_int32 /*offset*/, le_i
|
||||
}
|
||||
|
||||
for (count = 0; count < charCount; count += 1, out += dir) {
|
||||
glyphStorage.setAuxData(out, (void *) hebrewTags, success);
|
||||
}
|
||||
glyphStorage.setAuxData(out, (void *) hebrewTags, success);
|
||||
}
|
||||
}
|
||||
|
||||
U_NAMESPACE_END
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)HindiFeatureTags.h 1.4 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -45,7 +45,7 @@ IndicOpenTypeLayoutEngine::~IndicOpenTypeLayoutEngine()
|
||||
// Input: characters, tags
|
||||
// Output: glyphs, char indices
|
||||
le_int32 IndicOpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
|
||||
LEGlyphStorage &glyphStorage, LEErrorCode &success)
|
||||
LEGlyphStorage &glyphStorage, LEErrorCode &success)
|
||||
{
|
||||
if (LE_FAILURE(success)) {
|
||||
return 0;
|
||||
@ -91,19 +91,19 @@ le_int32 IndicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[],
|
||||
return 0;
|
||||
}
|
||||
|
||||
glyphStorage.allocateGlyphArray(worstCase, rightToLeft, success);
|
||||
glyphStorage.allocateAuxData(success);
|
||||
glyphStorage.allocateGlyphArray(worstCase, rightToLeft, success);
|
||||
glyphStorage.allocateAuxData(success);
|
||||
|
||||
if (LE_FAILURE(success)) {
|
||||
LE_DELETE_ARRAY(outChars);
|
||||
return 0;
|
||||
}
|
||||
if (LE_FAILURE(success)) {
|
||||
LE_DELETE_ARRAY(outChars);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// NOTE: assumes this allocates featureTags...
|
||||
// (probably better than doing the worst case stuff here...)
|
||||
le_int32 outCharCount = IndicReordering::reorder(&chars[offset], count, fScriptCode, outChars, glyphStorage, &fMPreFixups);
|
||||
le_int32 outCharCount = IndicReordering::reorder(&chars[offset], count, fScriptCode, outChars, glyphStorage, &fMPreFixups);
|
||||
|
||||
glyphStorage.adoptGlyphCount(outCharCount);
|
||||
glyphStorage.adoptGlyphCount(outCharCount);
|
||||
return outCharCount;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)IndicRearrangement.h 1.4 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -67,7 +67,7 @@ void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphSto
|
||||
{
|
||||
LEGlyphID a, b, c, d;
|
||||
le_int32 ia, ib, ic, id, ix, x;
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
|
||||
switch(verb)
|
||||
{
|
||||
@ -76,129 +76,129 @@ void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphSto
|
||||
|
||||
case irvxA:
|
||||
a = glyphStorage[firstGlyph];
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
x = firstGlyph + 1;
|
||||
|
||||
while (x <= lastGlyph) {
|
||||
glyphStorage[x - 1] = glyphStorage[x];
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x - 1, ix, success);
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x - 1, ix, success);
|
||||
x += 1;
|
||||
}
|
||||
|
||||
glyphStorage[lastGlyph] = a;
|
||||
glyphStorage.setCharIndex(lastGlyph, ia, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ia, success);
|
||||
break;
|
||||
|
||||
case irvDx:
|
||||
d = glyphStorage[lastGlyph];
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
x = lastGlyph - 1;
|
||||
|
||||
while (x >= firstGlyph) {
|
||||
glyphStorage[x + 1] = glyphStorage[x];
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x + 1, ix, success);
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x + 1, ix, success);
|
||||
x -= 1;
|
||||
}
|
||||
|
||||
glyphStorage[firstGlyph] = d;
|
||||
glyphStorage.setCharIndex(firstGlyph, id, success);
|
||||
glyphStorage.setCharIndex(firstGlyph, id, success);
|
||||
break;
|
||||
|
||||
case irvDxA:
|
||||
a = glyphStorage[firstGlyph];
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
|
||||
glyphStorage[firstGlyph] = glyphStorage[lastGlyph];
|
||||
glyphStorage[lastGlyph] = a;
|
||||
|
||||
glyphStorage.setCharIndex(firstGlyph, id, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ia, success);
|
||||
glyphStorage.setCharIndex(firstGlyph, id, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ia, success);
|
||||
break;
|
||||
|
||||
case irvxAB:
|
||||
a = glyphStorage[firstGlyph];
|
||||
b = glyphStorage[firstGlyph + 1];
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
|
||||
x = firstGlyph + 2;
|
||||
|
||||
while (x <= lastGlyph) {
|
||||
glyphStorage[x - 2] = glyphStorage[x];
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x - 2, ix, success);
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x - 2, ix, success);
|
||||
x += 1;
|
||||
}
|
||||
|
||||
glyphStorage[lastGlyph - 1] = a;
|
||||
glyphStorage[lastGlyph] = b;
|
||||
|
||||
glyphStorage.setCharIndex(lastGlyph - 1, ia, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ib, success);
|
||||
glyphStorage.setCharIndex(lastGlyph - 1, ia, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ib, success);
|
||||
break;
|
||||
|
||||
case irvxBA:
|
||||
a = glyphStorage[firstGlyph];
|
||||
b = glyphStorage[firstGlyph + 1];
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
|
||||
ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
|
||||
x = firstGlyph + 2;
|
||||
|
||||
while (x <= lastGlyph) {
|
||||
glyphStorage[x - 2] = glyphStorage[x];
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x - 2, ix, success);
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x - 2, ix, success);
|
||||
x += 1;
|
||||
}
|
||||
|
||||
glyphStorage[lastGlyph - 1] = b;
|
||||
glyphStorage[lastGlyph] = a;
|
||||
|
||||
glyphStorage.setCharIndex(lastGlyph - 1, ib, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ia, success);
|
||||
glyphStorage.setCharIndex(lastGlyph - 1, ib, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ia, success);
|
||||
break;
|
||||
|
||||
case irvCDx:
|
||||
c = glyphStorage[lastGlyph - 1];
|
||||
d = glyphStorage[lastGlyph];
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
x = lastGlyph - 2;
|
||||
|
||||
while (x >= firstGlyph) {
|
||||
glyphStorage[x + 2] = glyphStorage[x];
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x + 2, ix, success);
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x + 2, ix, success);
|
||||
x -= 1;
|
||||
}
|
||||
|
||||
glyphStorage[firstGlyph] = c;
|
||||
glyphStorage[firstGlyph + 1] = d;
|
||||
|
||||
glyphStorage.setCharIndex(firstGlyph, ic, success);
|
||||
glyphStorage.setCharIndex(firstGlyph + 1, id, success);
|
||||
glyphStorage.setCharIndex(firstGlyph, ic, success);
|
||||
glyphStorage.setCharIndex(firstGlyph + 1, id, success);
|
||||
break;
|
||||
|
||||
case irvDCx:
|
||||
c = glyphStorage[lastGlyph - 1];
|
||||
d = glyphStorage[lastGlyph];
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
x = lastGlyph - 2;
|
||||
|
||||
while (x >= firstGlyph) {
|
||||
glyphStorage[x + 2] = glyphStorage[x];
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x + 2, ix, success);
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x + 2, ix, success);
|
||||
x -= 1;
|
||||
}
|
||||
|
||||
glyphStorage[firstGlyph] = d;
|
||||
glyphStorage[firstGlyph + 1] = c;
|
||||
|
||||
glyphStorage.setCharIndex(firstGlyph, id, success);
|
||||
glyphStorage.setCharIndex(firstGlyph, id, success);
|
||||
glyphStorage.setCharIndex(firstGlyph + 1, ic, success);
|
||||
break;
|
||||
|
||||
@ -206,15 +206,15 @@ void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphSto
|
||||
a = glyphStorage[firstGlyph];
|
||||
c = glyphStorage[lastGlyph - 1];
|
||||
d = glyphStorage[lastGlyph];
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
x = lastGlyph - 2;
|
||||
|
||||
while (x > firstGlyph) {
|
||||
glyphStorage[x + 1] = glyphStorage[x];
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x + 1, ix, success);
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x + 1, ix, success);
|
||||
x -= 1;
|
||||
}
|
||||
|
||||
@ -222,7 +222,7 @@ void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphSto
|
||||
glyphStorage[firstGlyph + 1] = d;
|
||||
glyphStorage[lastGlyph] = a;
|
||||
|
||||
glyphStorage.setCharIndex(firstGlyph, ic, success);
|
||||
glyphStorage.setCharIndex(firstGlyph, ic, success);
|
||||
glyphStorage.setCharIndex(firstGlyph + 1, id, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ia, success);
|
||||
break;
|
||||
@ -231,15 +231,15 @@ void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphSto
|
||||
a = glyphStorage[firstGlyph];
|
||||
c = glyphStorage[lastGlyph - 1];
|
||||
d = glyphStorage[lastGlyph];
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
x = lastGlyph - 2;
|
||||
|
||||
while (x > firstGlyph) {
|
||||
glyphStorage[x + 1] = glyphStorage[x];
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x + 1, ix, success);
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x + 1, ix, success);
|
||||
x -= 1;
|
||||
}
|
||||
|
||||
@ -256,15 +256,15 @@ void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphSto
|
||||
a = glyphStorage[firstGlyph];
|
||||
b = glyphStorage[firstGlyph + 1];
|
||||
d = glyphStorage[lastGlyph];
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
x = firstGlyph + 2;
|
||||
|
||||
while (x < lastGlyph) {
|
||||
glyphStorage[x - 2] = glyphStorage[x];
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x - 2, ix, success);
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x - 2, ix, success);
|
||||
x += 1;
|
||||
}
|
||||
|
||||
@ -281,15 +281,15 @@ void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphSto
|
||||
a = glyphStorage[firstGlyph];
|
||||
b = glyphStorage[firstGlyph + 1];
|
||||
d = glyphStorage[lastGlyph];
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
x = firstGlyph + 2;
|
||||
|
||||
while (x < lastGlyph) {
|
||||
glyphStorage[x - 2] = glyphStorage[x];
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x - 2, ix, success);
|
||||
ix = glyphStorage.getCharIndex(x, success);
|
||||
glyphStorage.setCharIndex(x - 2, ix, success);
|
||||
x += 1;
|
||||
}
|
||||
|
||||
@ -312,16 +312,16 @@ void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphSto
|
||||
glyphStorage[lastGlyph - 1] = a;
|
||||
glyphStorage[lastGlyph] = b;
|
||||
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
|
||||
glyphStorage.setCharIndex(firstGlyph, ic, success);
|
||||
glyphStorage.setCharIndex(firstGlyph + 1, id, success);
|
||||
glyphStorage.setCharIndex(firstGlyph, ic, success);
|
||||
glyphStorage.setCharIndex(firstGlyph + 1, id, success);
|
||||
|
||||
glyphStorage.setCharIndex(lastGlyph - 1, ia, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ib, success);
|
||||
glyphStorage.setCharIndex(lastGlyph - 1, ia, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ib, success);
|
||||
break;
|
||||
|
||||
case irvCDxBA:
|
||||
@ -334,16 +334,16 @@ void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphSto
|
||||
glyphStorage[lastGlyph - 1] = b;
|
||||
glyphStorage[lastGlyph] = a;
|
||||
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
|
||||
glyphStorage.setCharIndex(firstGlyph, ic, success);
|
||||
glyphStorage.setCharIndex(firstGlyph + 1, id, success);
|
||||
glyphStorage.setCharIndex(firstGlyph, ic, success);
|
||||
glyphStorage.setCharIndex(firstGlyph + 1, id, success);
|
||||
|
||||
glyphStorage.setCharIndex(lastGlyph - 1, ib, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ia, success);
|
||||
glyphStorage.setCharIndex(lastGlyph - 1, ib, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ia, success);
|
||||
break;
|
||||
|
||||
case irvDCxAB:
|
||||
@ -356,16 +356,16 @@ void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphSto
|
||||
glyphStorage[lastGlyph - 1] = a;
|
||||
glyphStorage[lastGlyph] = b;
|
||||
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
|
||||
glyphStorage.setCharIndex(firstGlyph, id, success);
|
||||
glyphStorage.setCharIndex(firstGlyph + 1, ic, success);
|
||||
glyphStorage.setCharIndex(firstGlyph, id, success);
|
||||
glyphStorage.setCharIndex(firstGlyph + 1, ic, success);
|
||||
|
||||
glyphStorage.setCharIndex(lastGlyph - 1, ia, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ib, success);
|
||||
glyphStorage.setCharIndex(lastGlyph - 1, ia, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ib, success);
|
||||
break;
|
||||
|
||||
case irvDCxBA:
|
||||
@ -378,16 +378,16 @@ void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphSto
|
||||
glyphStorage[lastGlyph - 1] = b;
|
||||
glyphStorage[lastGlyph] = a;
|
||||
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ia = glyphStorage.getCharIndex(firstGlyph, success);
|
||||
ib = glyphStorage.getCharIndex(firstGlyph + 1, success);
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
ic = glyphStorage.getCharIndex(lastGlyph - 1, success);
|
||||
id = glyphStorage.getCharIndex(lastGlyph, success);
|
||||
|
||||
glyphStorage.setCharIndex(firstGlyph, id, success);
|
||||
glyphStorage.setCharIndex(firstGlyph + 1, ic, success);
|
||||
glyphStorage.setCharIndex(firstGlyph, id, success);
|
||||
glyphStorage.setCharIndex(firstGlyph + 1, ic, success);
|
||||
|
||||
glyphStorage.setCharIndex(lastGlyph - 1, ib, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ia, success);
|
||||
glyphStorage.setCharIndex(lastGlyph - 1, ib, success);
|
||||
glyphStorage.setCharIndex(lastGlyph, ia, success);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -16,7 +16,7 @@ U_NAMESPACE_BEGIN
|
||||
class ReorderingOutput : public UMemory {
|
||||
private:
|
||||
le_int32 fOutIndex;
|
||||
LEUnicode *fOutChars;
|
||||
LEUnicode *fOutChars;
|
||||
|
||||
LEGlyphStorage &fGlyphStorage;
|
||||
|
||||
@ -241,12 +241,12 @@ public:
|
||||
|
||||
void writeChar(LEUnicode ch, le_uint32 charIndex, const LETag *charTags)
|
||||
{
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
|
||||
fOutChars[fOutIndex] = ch;
|
||||
|
||||
fGlyphStorage.setCharIndex(fOutIndex, charIndex, success);
|
||||
fGlyphStorage.setAuxData(fOutIndex, (void *) charTags, success);
|
||||
fGlyphStorage.setCharIndex(fOutIndex, charIndex, success);
|
||||
fGlyphStorage.setAuxData(fOutIndex, (void *) charTags, success);
|
||||
|
||||
fOutIndex += 1;
|
||||
}
|
||||
|
@ -58,11 +58,11 @@ void LEFontInstance::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset,
|
||||
}
|
||||
}
|
||||
|
||||
glyphStorage[out] = mapCharToGlyph(code, mapper);
|
||||
glyphStorage[out] = mapCharToGlyph(code, mapper);
|
||||
|
||||
if (code >= 0x10000) {
|
||||
i += 1;
|
||||
glyphStorage[out += dir] = 0xFFFF;
|
||||
glyphStorage[out += dir] = 0xFFFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)LEGlyphFilter.h 1.3 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -14,10 +14,10 @@ U_NAMESPACE_BEGIN
|
||||
|
||||
struct InsertionRecord
|
||||
{
|
||||
InsertionRecord *next;
|
||||
le_int32 position;
|
||||
le_int32 count;
|
||||
LEGlyphID glyphs[ANY_NUMBER];
|
||||
InsertionRecord *next;
|
||||
le_int32 position;
|
||||
le_int32 count;
|
||||
LEGlyphID glyphs[ANY_NUMBER];
|
||||
};
|
||||
|
||||
const char LEInsertionList::fgClassID = 0;
|
||||
@ -25,64 +25,64 @@ const char LEInsertionList::fgClassID = 0;
|
||||
LEInsertionList::LEInsertionList(le_bool rightToLeft)
|
||||
: head(NULL), tail(NULL), growAmount(0), append(rightToLeft)
|
||||
{
|
||||
tail = (InsertionRecord *) &head;
|
||||
tail = (InsertionRecord *) &head;
|
||||
}
|
||||
|
||||
LEInsertionList::~LEInsertionList()
|
||||
{
|
||||
reset();
|
||||
reset();
|
||||
}
|
||||
|
||||
void LEInsertionList::reset()
|
||||
{
|
||||
while (head != NULL) {
|
||||
InsertionRecord *record = head;
|
||||
while (head != NULL) {
|
||||
InsertionRecord *record = head;
|
||||
|
||||
head = head->next;
|
||||
LE_DELETE_ARRAY(record);
|
||||
}
|
||||
head = head->next;
|
||||
LE_DELETE_ARRAY(record);
|
||||
}
|
||||
|
||||
tail = (InsertionRecord *) &head;
|
||||
growAmount = 0;
|
||||
tail = (InsertionRecord *) &head;
|
||||
growAmount = 0;
|
||||
}
|
||||
|
||||
le_int32 LEInsertionList::getGrowAmount()
|
||||
{
|
||||
return growAmount;
|
||||
return growAmount;
|
||||
}
|
||||
|
||||
LEGlyphID *LEInsertionList::insert(le_int32 position, le_int32 count)
|
||||
{
|
||||
InsertionRecord *insertion = (InsertionRecord *) LE_NEW_ARRAY(char, sizeof(InsertionRecord) + (count - ANY_NUMBER) * sizeof (LEGlyphID));
|
||||
InsertionRecord *insertion = (InsertionRecord *) LE_NEW_ARRAY(char, sizeof(InsertionRecord) + (count - ANY_NUMBER) * sizeof (LEGlyphID));
|
||||
|
||||
insertion->position = position;
|
||||
insertion->count = count;
|
||||
insertion->position = position;
|
||||
insertion->count = count;
|
||||
|
||||
growAmount += count - 1;
|
||||
growAmount += count - 1;
|
||||
|
||||
if (append) {
|
||||
// insert on end of list...
|
||||
insertion->next = NULL;
|
||||
tail->next = insertion;
|
||||
tail = insertion;
|
||||
} else {
|
||||
// insert on front of list...
|
||||
insertion->next = head;
|
||||
head = insertion;
|
||||
}
|
||||
if (append) {
|
||||
// insert on end of list...
|
||||
insertion->next = NULL;
|
||||
tail->next = insertion;
|
||||
tail = insertion;
|
||||
} else {
|
||||
// insert on front of list...
|
||||
insertion->next = head;
|
||||
head = insertion;
|
||||
}
|
||||
|
||||
return insertion->glyphs;
|
||||
return insertion->glyphs;
|
||||
}
|
||||
|
||||
le_bool LEInsertionList::applyInsertions(LEInsertionCallback *callback)
|
||||
{
|
||||
for (InsertionRecord *rec = head; rec != NULL; rec = rec->next) {
|
||||
if (callback->applyInsertion(rec->position, rec->count, rec->glyphs)) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
for (InsertionRecord *rec = head; rec != NULL; rec = rec->next) {
|
||||
if (callback->applyInsertion(rec->position, rec->count, rec->glyphs)) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
U_NAMESPACE_END
|
||||
|
@ -1,8 +1,7 @@
|
||||
|
||||
/*
|
||||
* @(#)LESwaps.h 1.3 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -20,13 +19,13 @@ U_NAMESPACE_BEGIN
|
||||
* @stable ICU 2.8
|
||||
*/
|
||||
#if defined(U_IS_BIG_ENDIAN)
|
||||
#if U_IS_BIG_ENDIAN
|
||||
#define SWAPW(value) (value)
|
||||
#else
|
||||
#define SWAPW(value) LESwaps::swapWord(value)
|
||||
#endif
|
||||
#if U_IS_BIG_ENDIAN
|
||||
#define SWAPW(value) (value)
|
||||
#else
|
||||
#define SWAPW(value) LESwaps::swapWord(value)
|
||||
#endif
|
||||
#else
|
||||
#define SWAPW(value) (LESwaps::isBigEndian() ? (value) : LESwaps::swapWord(value))
|
||||
#define SWAPW(value) (LESwaps::isBigEndian() ? (value) : LESwaps::swapWord(value))
|
||||
#endif
|
||||
|
||||
/**
|
||||
@ -36,13 +35,13 @@ U_NAMESPACE_BEGIN
|
||||
* @stable ICU 2.8
|
||||
*/
|
||||
#if defined(U_IS_BIG_ENDIAN)
|
||||
#if U_IS_BIG_ENDIAN
|
||||
#define SWAPL(value) (value)
|
||||
#else
|
||||
#define SWAPL(value) LESwaps::swapLong(value)
|
||||
#endif
|
||||
#if U_IS_BIG_ENDIAN
|
||||
#define SWAPL(value) (value)
|
||||
#else
|
||||
#define SWAPL(value) LESwaps::swapLong(value)
|
||||
#endif
|
||||
#else
|
||||
#define SWAPL(value) (LESwaps::isBigEndian() ? (value) : LESwaps::swapLong(value))
|
||||
#define SWAPL(value) (LESwaps::isBigEndian() ? (value) : LESwaps::swapLong(value))
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -1,8 +1,7 @@
|
||||
|
||||
/*
|
||||
* @(#)LETypes.h 1.2 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
|
||||
/*
|
||||
* %W% %E%
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
@ -91,7 +90,7 @@ LEUnicode32 DefaultCharMapper::mapChar(LEUnicode32 ch) const
|
||||
// this is a good central location...
|
||||
LEGlyphFilter::~LEGlyphFilter()
|
||||
{
|
||||
// nothing to do
|
||||
// nothing to do
|
||||
}
|
||||
|
||||
CharSubstitutionFilter::CharSubstitutionFilter(const LEFontInstance *fontInstance)
|
||||
@ -127,38 +126,38 @@ le_int32 LayoutEngine::getGlyphCount() const
|
||||
|
||||
void LayoutEngine::getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const
|
||||
{
|
||||
fGlyphStorage->getCharIndices(charIndices, indexBase, success);
|
||||
fGlyphStorage->getCharIndices(charIndices, indexBase, success);
|
||||
}
|
||||
|
||||
void LayoutEngine::getCharIndices(le_int32 charIndices[], LEErrorCode &success) const
|
||||
{
|
||||
fGlyphStorage->getCharIndices(charIndices, success);
|
||||
fGlyphStorage->getCharIndices(charIndices, success);
|
||||
}
|
||||
|
||||
// Copy the glyphs into caller's (32-bit) glyph array, OR in extraBits
|
||||
void LayoutEngine::getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const
|
||||
{
|
||||
fGlyphStorage->getGlyphs(glyphs, extraBits, success);
|
||||
fGlyphStorage->getGlyphs(glyphs, extraBits, success);
|
||||
}
|
||||
|
||||
void LayoutEngine::getGlyphs(LEGlyphID glyphs[], LEErrorCode &success) const
|
||||
{
|
||||
fGlyphStorage->getGlyphs(glyphs, success);
|
||||
fGlyphStorage->getGlyphs(glyphs, success);
|
||||
}
|
||||
|
||||
|
||||
void LayoutEngine::getGlyphPositions(float positions[], LEErrorCode &success) const
|
||||
{
|
||||
fGlyphStorage->getGlyphPositions(positions, success);
|
||||
fGlyphStorage->getGlyphPositions(positions, success);
|
||||
}
|
||||
|
||||
void LayoutEngine::getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const
|
||||
{
|
||||
fGlyphStorage->getGlyphPosition(glyphIndex, x, y, success);
|
||||
fGlyphStorage->getGlyphPosition(glyphIndex, x, y, success);
|
||||
}
|
||||
|
||||
le_int32 LayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
|
||||
LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
|
||||
LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
|
||||
{
|
||||
if (LE_FAILURE(success)) {
|
||||
return 0;
|
||||
@ -229,7 +228,7 @@ le_int32 LayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, l
|
||||
mapCharsToGlyphs(chars, offset, count, rightToLeft, rightToLeft, glyphStorage, success);
|
||||
}
|
||||
|
||||
return glyphStorage.getGlyphCount();
|
||||
return glyphStorage.getGlyphCount();
|
||||
}
|
||||
|
||||
// Input: glyphs
|
||||
@ -240,25 +239,25 @@ void LayoutEngine::positionGlyphs(LEGlyphStorage &glyphStorage, float x, float y
|
||||
return;
|
||||
}
|
||||
|
||||
glyphStorage.allocatePositions(success);
|
||||
glyphStorage.allocatePositions(success);
|
||||
|
||||
if (LE_FAILURE(success)) {
|
||||
return;
|
||||
}
|
||||
if (LE_FAILURE(success)) {
|
||||
return;
|
||||
}
|
||||
|
||||
le_int32 i, glyphCount = glyphStorage.getGlyphCount();
|
||||
|
||||
for (i = 0; i < glyphCount; i += 1) {
|
||||
LEPoint advance;
|
||||
|
||||
glyphStorage.setPosition(i, x, y, success);
|
||||
glyphStorage.setPosition(i, x, y, success);
|
||||
|
||||
fFontInstance->getGlyphAdvance(glyphStorage[i], advance);
|
||||
x += advance.fX;
|
||||
y += advance.fY;
|
||||
}
|
||||
|
||||
glyphStorage.setPosition(glyphCount, x, y, success);
|
||||
glyphStorage.setPosition(glyphCount, x, y, success);
|
||||
}
|
||||
|
||||
void LayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool /*reverse*/,
|
||||
@ -291,33 +290,33 @@ void LayoutEngine::adjustMarkGlyphs(LEGlyphStorage &glyphStorage, LEGlyphFilter
|
||||
return;
|
||||
}
|
||||
|
||||
float ignore, prev;
|
||||
float ignore, prev;
|
||||
|
||||
glyphStorage.getGlyphPosition(0, prev, ignore, success);
|
||||
glyphStorage.getGlyphPosition(0, prev, ignore, success);
|
||||
|
||||
for (p = 0; p < glyphCount; p += 1) {
|
||||
float next, xAdvance;
|
||||
|
||||
glyphStorage.getGlyphPosition(p + 1, next, ignore, success);
|
||||
for (p = 0; p < glyphCount; p += 1) {
|
||||
float next, xAdvance;
|
||||
|
||||
glyphStorage.getGlyphPosition(p + 1, next, ignore, success);
|
||||
|
||||
xAdvance = next - prev;
|
||||
glyphStorage.adjustPosition(p, xAdjust, 0, success);
|
||||
xAdvance = next - prev;
|
||||
glyphStorage.adjustPosition(p, xAdjust, 0, success);
|
||||
|
||||
if (markFilter->accept(glyphStorage[p])) {
|
||||
xAdjust -= xAdvance;
|
||||
}
|
||||
if (markFilter->accept(glyphStorage[p])) {
|
||||
xAdjust -= xAdvance;
|
||||
}
|
||||
|
||||
prev = next;
|
||||
}
|
||||
prev = next;
|
||||
}
|
||||
|
||||
glyphStorage.adjustPosition(glyphCount, xAdjust, 0, success);
|
||||
glyphStorage.adjustPosition(glyphCount, xAdjust, 0, success);
|
||||
}
|
||||
|
||||
void LayoutEngine::adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount, le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success)
|
||||
{
|
||||
float xAdjust = 0;
|
||||
le_int32 c = 0, direction = 1, p;
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
|
||||
if (LE_FAILURE(success)) {
|
||||
return;
|
||||
@ -333,26 +332,26 @@ void LayoutEngine::adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount,
|
||||
direction = -1;
|
||||
}
|
||||
|
||||
float ignore, prev;
|
||||
float ignore, prev;
|
||||
|
||||
glyphStorage.getGlyphPosition(0, prev, ignore, success);
|
||||
glyphStorage.getGlyphPosition(0, prev, ignore, success);
|
||||
|
||||
for (p = 0; p < charCount; p += 1, c += direction) {
|
||||
float next, xAdvance;
|
||||
|
||||
glyphStorage.getGlyphPosition(p + 1, next, ignore, success);
|
||||
for (p = 0; p < charCount; p += 1, c += direction) {
|
||||
float next, xAdvance;
|
||||
|
||||
glyphStorage.getGlyphPosition(p + 1, next, ignore, success);
|
||||
|
||||
xAdvance = next - prev;
|
||||
glyphStorage.adjustPosition(p, xAdjust, 0, success);
|
||||
xAdvance = next - prev;
|
||||
glyphStorage.adjustPosition(p, xAdjust, 0, success);
|
||||
|
||||
if (markFilter->accept(chars[c])) {
|
||||
xAdjust -= xAdvance;
|
||||
}
|
||||
if (markFilter->accept(chars[c])) {
|
||||
xAdjust -= xAdvance;
|
||||
}
|
||||
|
||||
prev = next;
|
||||
}
|
||||
prev = next;
|
||||
}
|
||||
|
||||
glyphStorage.adjustPosition(glyphCount, xAdjust, 0, success);
|
||||
glyphStorage.adjustPosition(glyphCount, xAdjust, 0, success);
|
||||
}
|
||||
|
||||
const void *LayoutEngine::getFontTable(LETag tableTag) const
|
||||
@ -367,7 +366,7 @@ void LayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le
|
||||
return;
|
||||
}
|
||||
|
||||
glyphStorage.allocateGlyphArray(count, reverse, success);
|
||||
glyphStorage.allocateGlyphArray(count, reverse, success);
|
||||
|
||||
DefaultCharMapper charMapper(TRUE, mirror);
|
||||
|
||||
@ -389,11 +388,11 @@ le_int32 LayoutEngine::layoutChars(const LEUnicode chars[], le_int32 offset, le_
|
||||
return 0;
|
||||
}
|
||||
|
||||
le_int32 glyphCount;
|
||||
|
||||
glyphCount = computeGlyphs(chars, offset, count, max, rightToLeft, *fGlyphStorage, success);
|
||||
positionGlyphs(*fGlyphStorage, x, y, success);
|
||||
adjustGlyphPositions(chars, offset, count, rightToLeft, *fGlyphStorage, success);
|
||||
le_int32 glyphCount;
|
||||
|
||||
glyphCount = computeGlyphs(chars, offset, count, max, rightToLeft, *fGlyphStorage, success);
|
||||
positionGlyphs(*fGlyphStorage, x, y, success);
|
||||
adjustGlyphPositions(chars, offset, count, rightToLeft, *fGlyphStorage, success);
|
||||
|
||||
return glyphCount;
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
|
||||
/*
|
||||
* %W% %W%
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
@ -287,7 +286,7 @@ protected:
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
static void adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount, le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success);
|
||||
static void adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount, le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success);
|
||||
|
||||
|
||||
public:
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)LayoutTables.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)LigatureSubstSubtables.h 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)LigatureSubstitution.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)LookupTables.cpp 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)LookupTables.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)Lookups.cpp 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998, 1999, 2000, 2001 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)Lookups.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -59,7 +59,7 @@ void MPreFixups::apply(LEGlyphStorage &glyphStorage)
|
||||
continue;
|
||||
}
|
||||
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
le_int32 mpreCount = mpreLimit - mpreIndex;
|
||||
le_int32 moveCount = baseIndex - mpreLimit;
|
||||
le_int32 mpreDest = baseIndex - mpreCount;
|
||||
@ -69,20 +69,20 @@ void MPreFixups::apply(LEGlyphStorage &glyphStorage)
|
||||
|
||||
for (i = 0; i < mpreCount; i += 1) {
|
||||
mpreSave[i] = glyphStorage[mpreIndex + i];
|
||||
indexSave[i] = glyphStorage.getCharIndex(mpreIndex + i, success); //charIndices[mpreIndex + i];
|
||||
indexSave[i] = glyphStorage.getCharIndex(mpreIndex + i, success); //charIndices[mpreIndex + i];
|
||||
}
|
||||
|
||||
for (i = 0; i < moveCount; i += 1) {
|
||||
LEGlyphID glyph = glyphStorage[mpreLimit + i];
|
||||
le_int32 charIndex = glyphStorage.getCharIndex(mpreLimit + i, success);
|
||||
LEGlyphID glyph = glyphStorage[mpreLimit + i];
|
||||
le_int32 charIndex = glyphStorage.getCharIndex(mpreLimit + i, success);
|
||||
|
||||
glyphStorage[mpreIndex + i] = glyph;
|
||||
glyphStorage.setCharIndex(mpreIndex + i, charIndex, success);
|
||||
glyphStorage[mpreIndex + i] = glyph;
|
||||
glyphStorage.setCharIndex(mpreIndex + i, charIndex, success);
|
||||
}
|
||||
|
||||
for (i = 0; i < mpreCount; i += 1) {
|
||||
glyphStorage[mpreDest + i] = mpreSave[i];
|
||||
glyphStorage.setCharIndex(mpreDest, indexSave[i], success);
|
||||
glyphStorage[mpreDest + i] = mpreSave[i];
|
||||
glyphStorage.setCharIndex(mpreDest, indexSave[i], success);
|
||||
}
|
||||
|
||||
LE_DELETE_ARRAY(indexSave);
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)MarkArrays.cpp 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998, 1999, 2000, 2001 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)MarkArrays.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)MarkToBasePosnSubtables.cpp 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -67,11 +66,11 @@ le_int32 MarkToBasePositioningSubtable::process(GlyphIterator *glyphIterator, co
|
||||
const AnchorTable *anchorTable = (const AnchorTable *) ((char *) baseArray + anchorTableOffset);
|
||||
LEPoint baseAnchor, markAdvance, pixels;
|
||||
|
||||
if (anchorTableOffset == 0) {
|
||||
// this means the table is mal-formed...
|
||||
glyphIterator->setCurrGlyphBaseOffset(baseIterator.getCurrStreamPosition());
|
||||
return 0;
|
||||
}
|
||||
if (anchorTableOffset == 0) {
|
||||
// this means the table is mal-formed...
|
||||
glyphIterator->setCurrGlyphBaseOffset(baseIterator.getCurrStreamPosition());
|
||||
return 0;
|
||||
}
|
||||
|
||||
anchorTable->getAnchor(baseGlyph, fontInstance, baseAnchor);
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)MarkToBasePosnSubtables.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)MarkToLigaturePosnSubtables.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)MarkToMarkPosnSubtables.cpp 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)MarkToMarkPosnSubtables.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)MorphStateTables.h 1.4 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* %W% %E%
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -63,20 +62,20 @@ le_uint32 MultipleSubstitutionSubtable::process(GlyphIterator *glyphIterator, co
|
||||
}
|
||||
}
|
||||
|
||||
LEGlyphID *newGlyphs = glyphIterator->insertGlyphs(glyphCount);
|
||||
le_int32 insert = 0, direction = 1;
|
||||
LEGlyphID *newGlyphs = glyphIterator->insertGlyphs(glyphCount);
|
||||
le_int32 insert = 0, direction = 1;
|
||||
|
||||
if (glyphIterator->isRightToLeft()) {
|
||||
insert = glyphCount - 1;
|
||||
direction = -1;
|
||||
}
|
||||
if (glyphIterator->isRightToLeft()) {
|
||||
insert = glyphCount - 1;
|
||||
direction = -1;
|
||||
}
|
||||
|
||||
for (le_int32 i = 0; i < glyphCount; i += 1) {
|
||||
TTGlyphID substitute = SWAPW(sequenceTable->substituteArray[i]);
|
||||
for (le_int32 i = 0; i < glyphCount; i += 1) {
|
||||
TTGlyphID substitute = SWAPW(sequenceTable->substituteArray[i]);
|
||||
|
||||
newGlyphs[insert] = LE_SET_GLYPH(glyph, substitute);
|
||||
insert += direction;
|
||||
}
|
||||
newGlyphs[insert] = LE_SET_GLYPH(glyph, substitute);
|
||||
insert += direction;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)MultipleSubstSubtables.h 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)NonContextualGlyphSubstProc.cpp 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998, 1999, 2000, 2001 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -24,7 +23,7 @@ NonContextualGlyphSubstitutionProcessor::NonContextualGlyphSubstitutionProcessor
|
||||
}
|
||||
|
||||
NonContextualGlyphSubstitutionProcessor::NonContextualGlyphSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader)
|
||||
: SubtableProcessor(morphSubtableHeader)
|
||||
: SubtableProcessor(morphSubtableHeader)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
|
||||
/*
|
||||
* %W% %W%
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
@ -102,7 +101,7 @@ void OpenTypeLayoutEngine::setScriptAndLanguageTags()
|
||||
}
|
||||
|
||||
le_int32 OpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
|
||||
LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
|
||||
LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
|
||||
{
|
||||
if (LE_FAILURE(success)) {
|
||||
return 0;
|
||||
@ -132,7 +131,7 @@ le_int32 OpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_i
|
||||
// Input: characters, tags
|
||||
// Output: glyphs, char indices
|
||||
le_int32 OpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
|
||||
LEGlyphStorage &glyphStorage, LEErrorCode &success)
|
||||
LEGlyphStorage &glyphStorage, LEErrorCode &success)
|
||||
{
|
||||
if (LE_FAILURE(success)) {
|
||||
return 0;
|
||||
@ -162,18 +161,18 @@ le_int32 OpenTypeLayoutEngine::glyphPostProcessing(LEGlyphStorage &tempGlyphStor
|
||||
return 0;
|
||||
}
|
||||
|
||||
glyphStorage.adoptGlyphArray(tempGlyphStorage);
|
||||
glyphStorage.adoptCharIndicesArray(tempGlyphStorage);
|
||||
glyphStorage.adoptAuxDataArray(tempGlyphStorage);
|
||||
glyphStorage.adoptGlyphCount(tempGlyphStorage);
|
||||
glyphStorage.adoptGlyphArray(tempGlyphStorage);
|
||||
glyphStorage.adoptCharIndicesArray(tempGlyphStorage);
|
||||
glyphStorage.adoptAuxDataArray(tempGlyphStorage);
|
||||
glyphStorage.adoptGlyphCount(tempGlyphStorage);
|
||||
|
||||
return glyphStorage.getGlyphCount();
|
||||
return glyphStorage.getGlyphCount();
|
||||
}
|
||||
|
||||
le_int32 OpenTypeLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success)
|
||||
{
|
||||
LEUnicode *outChars = NULL;
|
||||
LEGlyphStorage fakeGlyphStorage;
|
||||
LEGlyphStorage fakeGlyphStorage;
|
||||
le_int32 outCharCount, outGlyphCount, fakeGlyphCount;
|
||||
|
||||
if (LE_FAILURE(success)) {
|
||||
@ -214,7 +213,7 @@ void OpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int3
|
||||
return;
|
||||
}
|
||||
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
|
||||
if (glyphCount > 0 && fGPOSTable != NULL) {
|
||||
GlyphPositionAdjustment *adjustments = new GlyphPositionAdjustment[glyphCount];
|
||||
@ -226,8 +225,8 @@ void OpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int3
|
||||
}
|
||||
|
||||
#if 0
|
||||
// Don't need to do this if we allocate
|
||||
// the adjustments array w/ new...
|
||||
// Don't need to do this if we allocate
|
||||
// the adjustments array w/ new...
|
||||
for (i = 0; i < glyphCount; i += 1) {
|
||||
adjustments[i].setXPlacement(0);
|
||||
adjustments[i].setYPlacement(0);
|
||||
@ -262,21 +261,21 @@ void OpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int3
|
||||
yPlacement += adjustments[base].getYPlacement();
|
||||
}
|
||||
|
||||
xPlacement = fFontInstance->xUnitsToPoints(xPlacement);
|
||||
yPlacement = fFontInstance->yUnitsToPoints(yPlacement);
|
||||
glyphStorage.adjustPosition(i, xAdjust + xPlacement, -(yAdjust + yPlacement), success);
|
||||
xPlacement = fFontInstance->xUnitsToPoints(xPlacement);
|
||||
yPlacement = fFontInstance->yUnitsToPoints(yPlacement);
|
||||
glyphStorage.adjustPosition(i, xAdjust + xPlacement, -(yAdjust + yPlacement), success);
|
||||
|
||||
xAdjust += fFontInstance->xUnitsToPoints(xAdvance);
|
||||
yAdjust += fFontInstance->yUnitsToPoints(yAdvance);
|
||||
}
|
||||
|
||||
glyphStorage.adjustPosition(glyphCount, xAdjust, -yAdjust, success);
|
||||
glyphStorage.adjustPosition(glyphCount, xAdjust, -yAdjust, success);
|
||||
|
||||
delete[] adjustments;
|
||||
}
|
||||
|
||||
#if 0
|
||||
// Don't know why this is here...
|
||||
// Don't know why this is here...
|
||||
LE_DELETE_ARRAY(fFeatureTags);
|
||||
fFeatureTags = NULL;
|
||||
#endif
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)OpenTypeTables.h 1.7 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)OpenTypeUtilities.cpp 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)OpenTypeUtilities.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)PairPositioningSubtables.cpp 1.7 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)PairPositioningSubtables.h 1.7 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)ScriptAndLanguage.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -36,11 +36,11 @@ SegmentArrayProcessor::~SegmentArrayProcessor()
|
||||
void SegmentArrayProcessor::process(LEGlyphStorage &glyphStorage)
|
||||
{
|
||||
const LookupSegment *segments = segmentArrayLookupTable->segments;
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyph;
|
||||
|
||||
for (glyph = 0; glyph < glyphCount; glyph += 1) {
|
||||
LEGlyphID thisGlyph = glyphStorage[glyph];
|
||||
LEGlyphID thisGlyph = glyphStorage[glyph];
|
||||
const LookupSegment *lookupSegment = segmentArrayLookupTable->lookupSegment(segments, thisGlyph);
|
||||
|
||||
if (lookupSegment != NULL) {
|
||||
|
@ -36,17 +36,17 @@ SegmentSingleProcessor::~SegmentSingleProcessor()
|
||||
void SegmentSingleProcessor::process(LEGlyphStorage &glyphStorage)
|
||||
{
|
||||
const LookupSegment *segments = segmentSingleLookupTable->segments;
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyph;
|
||||
|
||||
for (glyph = 0; glyph < glyphCount; glyph += 1) {
|
||||
LEGlyphID thisGlyph = glyphStorage[glyph];
|
||||
LEGlyphID thisGlyph = glyphStorage[glyph];
|
||||
const LookupSegment *lookupSegment = segmentSingleLookupTable->lookupSegment(segments, thisGlyph);
|
||||
|
||||
if (lookupSegment != NULL) {
|
||||
TTGlyphID newGlyph = (TTGlyphID) LE_GET_GLYPH(thisGlyph) + SWAPW(lookupSegment->value);
|
||||
|
||||
glyphStorage[glyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
|
||||
glyphStorage[glyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -35,15 +35,15 @@ SimpleArrayProcessor::~SimpleArrayProcessor()
|
||||
|
||||
void SimpleArrayProcessor::process(LEGlyphStorage &glyphStorage)
|
||||
{
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyph;
|
||||
|
||||
for (glyph = 0; glyph < glyphCount; glyph += 1) {
|
||||
LEGlyphID thisGlyph = glyphStorage[glyph];
|
||||
LEGlyphID thisGlyph = glyphStorage[glyph];
|
||||
if (LE_GET_GLYPH(thisGlyph) < 0xFFFF) {
|
||||
TTGlyphID newGlyph = SWAPW(simpleArrayLookupTable->valueArray[LE_GET_GLYPH(thisGlyph)]);
|
||||
|
||||
glyphStorage[glyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
|
||||
glyphStorage[glyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)SinglePositioningSubtables.cpp 1.8 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)SinglePositioningSubtables.h 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)SingleSubstitutionSubtables.cpp 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)SingleSubstitutionSubtables.h 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -37,7 +37,7 @@ void SingleTableProcessor::process(LEGlyphStorage &glyphStorage)
|
||||
{
|
||||
const LookupSingle *entries = singleTableLookupTable->entries;
|
||||
le_int32 glyph;
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
|
||||
for (glyph = 0; glyph < glyphCount; glyph += 1) {
|
||||
const LookupSingle *lookupSingle = singleTableLookupTable->lookupSingle(entries, glyphStorage[glyph]);
|
||||
|
@ -46,7 +46,7 @@ void StateTableProcessor::process(LEGlyphStorage &glyphStorage)
|
||||
|
||||
// XXX: reverse?
|
||||
le_int32 currGlyph = 0;
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
|
||||
beginStateTable();
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)StateTables.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)SubstitutionLookups.cpp 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998, 1999, 2000 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)SubstitutionLookups.h 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)SubtableProcessor.cpp 1.5 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998, 1999, 2000, 2001 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -74,7 +74,7 @@ le_int32 ThaiLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offse
|
||||
return 0;
|
||||
}
|
||||
|
||||
glyphStorage.allocateGlyphArray(count * 2, FALSE, success);
|
||||
glyphStorage.allocateGlyphArray(count * 2, FALSE, success);
|
||||
|
||||
if (LE_FAILURE(success)) {
|
||||
LE_DELETE_ARRAY(outChars);
|
||||
@ -87,7 +87,7 @@ le_int32 ThaiLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offse
|
||||
|
||||
LE_DELETE_ARRAY(outChars);
|
||||
|
||||
glyphStorage.adoptGlyphCount(glyphCount);
|
||||
glyphStorage.adoptGlyphCount(glyphCount);
|
||||
return glyphCount;
|
||||
}
|
||||
|
||||
|
@ -145,7 +145,7 @@ LEUnicode ThaiShaping::noDescenderCOD(LEUnicode cod, le_uint8 glyphSet)
|
||||
le_uint8 ThaiShaping::doTransition (StateTransition transition, LEUnicode currChar, le_int32 inputIndex, le_uint8 glyphSet,
|
||||
LEUnicode errorChar, LEUnicode *outputBuffer, LEGlyphStorage &glyphStorage, le_int32 &outputIndex)
|
||||
{
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
LEErrorCode success = LE_NO_ERROR;
|
||||
|
||||
switch (transition.action) {
|
||||
case tA:
|
||||
|
@ -37,17 +37,17 @@ TrimmedArrayProcessor::~TrimmedArrayProcessor()
|
||||
|
||||
void TrimmedArrayProcessor::process(LEGlyphStorage &glyphStorage)
|
||||
{
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyphCount = glyphStorage.getGlyphCount();
|
||||
le_int32 glyph;
|
||||
|
||||
for (glyph = 0; glyph < glyphCount; glyph += 1) {
|
||||
LEGlyphID thisGlyph = glyphStorage[glyph];
|
||||
LEGlyphID thisGlyph = glyphStorage[glyph];
|
||||
TTGlyphID ttGlyph = (TTGlyphID) LE_GET_GLYPH(thisGlyph);
|
||||
|
||||
if ((ttGlyph > firstGlyph) && (ttGlyph < lastGlyph)) {
|
||||
TTGlyphID newGlyph = SWAPW(trimmedArrayLookupTable->valueArray[ttGlyph - firstGlyph]);
|
||||
|
||||
glyphStorage[glyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
|
||||
glyphStorage[glyph] = LE_SET_GLYPH(thisGlyph, newGlyph);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)ValueRecords.cpp 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998, 1999, 2000, 2001 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)ValueRecords.h 1.6 00/03/15
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)loengine.cpp 1.0 00/12/07
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998, 1999, 2000 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/*
|
||||
* @(#)loengine.h 1.0 00/12/11
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
**********************************************************************
|
||||
* Copyright (C) 2002-2003, International Business Machines
|
||||
* Copyright (C) 2002-2004, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
**********************************************************************
|
||||
*/
|
||||
@ -217,7 +217,7 @@ ParagraphLayout::ParagraphLayout(const LEUnicode chars[], le_int32 count,
|
||||
const ValueRuns *scriptRuns,
|
||||
const LocaleRuns *localeRuns,
|
||||
UBiDiLevel paragraphLevel, le_bool vertical,
|
||||
LEErrorCode &status)
|
||||
LEErrorCode &status)
|
||||
: fChars(chars), fCharCount(count),
|
||||
fFontRuns(NULL), fLevelRuns(levelRuns), fScriptRuns(scriptRuns), fLocaleRuns(localeRuns),
|
||||
fVertical(vertical), fClientLevels(TRUE), fClientScripts(TRUE), fClientLocales(TRUE), fEmbeddingLevels(NULL),
|
||||
@ -230,10 +230,10 @@ ParagraphLayout::ParagraphLayout(const LEUnicode chars[], le_int32 count,
|
||||
fFirstVisualRun(-1), fLastVisualRun(-1),*/ fVisualRunLastX(0), fVisualRunLastY(0)
|
||||
{
|
||||
|
||||
if (LE_FAILURE(status)) {
|
||||
fCharCount = -1;
|
||||
return;
|
||||
}
|
||||
if (LE_FAILURE(status)) {
|
||||
fCharCount = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
// FIXME: should check the limit arrays for consistency...
|
||||
|
||||
@ -249,11 +249,11 @@ ParagraphLayout::ParagraphLayout(const LEUnicode chars[], le_int32 count,
|
||||
|
||||
computeSubFonts(fontRuns, status);
|
||||
|
||||
if (LE_FAILURE(status)) {
|
||||
//other stuff?
|
||||
fCharCount = -1;
|
||||
return;
|
||||
}
|
||||
if (LE_FAILURE(status)) {
|
||||
//other stuff?
|
||||
fCharCount = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
// now intersect the font, direction and script runs...
|
||||
const RunArray *styleRunArrays[] = {fFontRuns, fLevelRuns, fScriptRuns, fLocaleRuns};
|
||||
@ -301,13 +301,13 @@ ParagraphLayout::ParagraphLayout(const LEUnicode chars[], le_int32 count,
|
||||
// For each layout get the positions and convert them into glyph widths, in
|
||||
// logical order. Get the glyph-to-char mapping, offset by starting index in the
|
||||
// character array. Swap the glyph width and glyph-to-char arrays into logical order.
|
||||
// Finally, fill in the char-to-glyph mappings.
|
||||
// Finally, fill in the char-to-glyph mappings.
|
||||
fGlyphWidths = LE_NEW_ARRAY(float, fGlyphCount);
|
||||
fGlyphToCharMap = LE_NEW_ARRAY(le_int32, fGlyphCount + 1);
|
||||
fCharToMinGlyphMap = LE_NEW_ARRAY(le_int32, fCharCount + 1);
|
||||
fCharToMaxGlyphMap = LE_NEW_ARRAY(le_int32, fCharCount + 1);
|
||||
fCharToMaxGlyphMap = LE_NEW_ARRAY(le_int32, fCharCount + 1);
|
||||
|
||||
le_int32 glyph;
|
||||
le_int32 glyph;
|
||||
|
||||
for (runStart = 0, run = 0; run < fStyleRunCount; run += 1) {
|
||||
LayoutEngine *engine = fStyleRunInfo[run].engine;
|
||||
@ -338,21 +338,21 @@ ParagraphLayout::ParagraphLayout(const LEUnicode chars[], le_int32 count,
|
||||
|
||||
fGlyphToCharMap[fGlyphCount] = fCharCount;
|
||||
|
||||
for (glyph = fGlyphCount - 1; glyph >= 0; glyph -= 1) {
|
||||
le_int32 ch = fGlyphToCharMap[glyph];
|
||||
for (glyph = fGlyphCount - 1; glyph >= 0; glyph -= 1) {
|
||||
le_int32 ch = fGlyphToCharMap[glyph];
|
||||
|
||||
fCharToMinGlyphMap[ch] = glyph;
|
||||
}
|
||||
fCharToMinGlyphMap[ch] = glyph;
|
||||
}
|
||||
|
||||
fCharToMinGlyphMap[fCharCount] = fGlyphCount;
|
||||
|
||||
for (glyph = 0; glyph < fGlyphCount; glyph += 1) {
|
||||
le_int32 ch = fGlyphToCharMap[glyph];
|
||||
for (glyph = 0; glyph < fGlyphCount; glyph += 1) {
|
||||
le_int32 ch = fGlyphToCharMap[glyph];
|
||||
|
||||
fCharToMaxGlyphMap[ch] = glyph;
|
||||
}
|
||||
fCharToMaxGlyphMap[ch] = glyph;
|
||||
}
|
||||
|
||||
fCharToMaxGlyphMap[fCharCount] = fGlyphCount;
|
||||
fCharToMaxGlyphMap[fCharCount] = fGlyphCount;
|
||||
}
|
||||
|
||||
ParagraphLayout::~ParagraphLayout()
|
||||
@ -395,10 +395,10 @@ ParagraphLayout::~ParagraphLayout()
|
||||
fCharToMinGlyphMap = NULL;
|
||||
}
|
||||
|
||||
if (fCharToMaxGlyphMap != NULL) {
|
||||
LE_DELETE_ARRAY(fCharToMaxGlyphMap);
|
||||
fCharToMaxGlyphMap = NULL;
|
||||
}
|
||||
if (fCharToMaxGlyphMap != NULL) {
|
||||
LE_DELETE_ARRAY(fCharToMaxGlyphMap);
|
||||
fCharToMaxGlyphMap = NULL;
|
||||
}
|
||||
|
||||
if (fGlyphWidths != NULL) {
|
||||
LE_DELETE_ARRAY(fGlyphWidths);
|
||||
@ -516,11 +516,11 @@ ParagraphLayout::Line *ParagraphLayout::nextLine(float width)
|
||||
fLineEnd = previousBreak(fGlyphToCharMap[glyph]);
|
||||
|
||||
// If this break is at or before the last one,
|
||||
// find a glyph, starting at the one which didn't
|
||||
// fit, that produces a break after the last one.
|
||||
while (fLineEnd <= fLineStart) {
|
||||
fLineEnd = fGlyphToCharMap[glyph++];
|
||||
}
|
||||
// find a glyph, starting at the one which didn't
|
||||
// fit, that produces a break after the last one.
|
||||
while (fLineEnd <= fLineStart) {
|
||||
fLineEnd = fGlyphToCharMap[glyph++];
|
||||
}
|
||||
} else {
|
||||
fLineEnd = fCharCount;
|
||||
}
|
||||
@ -602,9 +602,9 @@ void ParagraphLayout::computeLocales()
|
||||
|
||||
void ParagraphLayout::computeSubFonts(const FontRuns *fontRuns, LEErrorCode &status)
|
||||
{
|
||||
if (LE_FAILURE(status)) {
|
||||
return;
|
||||
}
|
||||
if (LE_FAILURE(status)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const RunArray *styleRunArrays[] = {fontRuns, fScriptRuns};
|
||||
le_int32 styleCount = sizeof styleRunArrays / sizeof styleRunArrays[0];
|
||||
@ -627,10 +627,10 @@ void ParagraphLayout::computeSubFonts(const FontRuns *fontRuns, LEErrorCode &sta
|
||||
while (offset < styleRunLimits[run]) {
|
||||
const LEFontInstance *subFont = runFont->getSubFont(fChars, &offset, styleRunLimits[run], script, status);
|
||||
|
||||
if (LE_FAILURE(status)) {
|
||||
delete subFontRuns;
|
||||
goto cleanUp;
|
||||
}
|
||||
if (LE_FAILURE(status)) {
|
||||
delete subFontRuns;
|
||||
goto cleanUp;
|
||||
}
|
||||
|
||||
subFontRuns->add(subFont, offset);
|
||||
}
|
||||
@ -844,7 +844,7 @@ void ParagraphLayout::appendRun(ParagraphLayout::Line *line, le_int32 run, le_in
|
||||
|
||||
for (ch = firstChar; ch <= lastChar; ch += 1) {
|
||||
le_int32 minGlyph = fCharToMinGlyphMap[ch];
|
||||
le_int32 maxGlyph = fCharToMaxGlyphMap[ch];
|
||||
le_int32 maxGlyph = fCharToMaxGlyphMap[ch];
|
||||
|
||||
if (minGlyph < leftGlyph) {
|
||||
leftGlyph = minGlyph;
|
||||
@ -873,7 +873,7 @@ void ParagraphLayout::appendRun(ParagraphLayout::Line *line, le_int32 run, le_in
|
||||
// want the left-most glyph to start at the final x position of the
|
||||
// previous run, even though this glyph may be in the middle of the
|
||||
// run.
|
||||
fVisualRunLastX -= fStyleRunInfo[run].positions[leftGlyph * 2];
|
||||
fVisualRunLastX -= fStyleRunInfo[run].positions[leftGlyph * 2];
|
||||
|
||||
// Make rightGlyph be the glyph just to the right of
|
||||
// the run's glyphs
|
||||
@ -975,11 +975,11 @@ le_int32 ParagraphLayout::Line::getLeading() const
|
||||
|
||||
le_int32 ParagraphLayout::Line::getWidth() const
|
||||
{
|
||||
const VisualRun *lastRun = getVisualRun(fRunCount - 1);
|
||||
le_int32 glyphCount = lastRun->getGlyphCount();
|
||||
const float *positions = lastRun->getPositions();
|
||||
|
||||
return (le_int32) positions[glyphCount * 2];
|
||||
const VisualRun *lastRun = getVisualRun(fRunCount - 1);
|
||||
le_int32 glyphCount = lastRun->getGlyphCount();
|
||||
const float *positions = lastRun->getPositions();
|
||||
|
||||
return (le_int32) positions[glyphCount * 2];
|
||||
}
|
||||
|
||||
const ParagraphLayout::VisualRun *ParagraphLayout::Line::getVisualRun(le_int32 runIndex) const
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
**********************************************************************
|
||||
* Copyright (C) 2002-2003, International Business Machines
|
||||
* Copyright (C) 2002-2004, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
**********************************************************************
|
||||
*/
|
||||
@ -104,16 +104,16 @@ public:
|
||||
*/
|
||||
le_int32 getLeading() const;
|
||||
|
||||
/**
|
||||
* Get the width of the line. This is a convenience method
|
||||
* which returns the last X position of the last visual run
|
||||
* in the line.
|
||||
*
|
||||
* @return the width of the line.
|
||||
*
|
||||
* @draft ICU 2.8
|
||||
*/
|
||||
le_int32 getWidth() const;
|
||||
/**
|
||||
* Get the width of the line. This is a convenience method
|
||||
* which returns the last X position of the last visual run
|
||||
* in the line.
|
||||
*
|
||||
* @return the width of the line.
|
||||
*
|
||||
* @draft ICU 2.8
|
||||
*/
|
||||
le_int32 getWidth() const;
|
||||
|
||||
/**
|
||||
* Get a <code>ParagraphLayout::VisualRun</code> object for a given
|
||||
@ -166,8 +166,8 @@ public:
|
||||
VisualRun **fRuns;
|
||||
|
||||
Line();
|
||||
Line(const Line &other);
|
||||
Line &operator=(const Line & /*other*/) { return *this; };
|
||||
Line(const Line &other);
|
||||
Line &operator=(const Line & /*other*/) { return *this; };
|
||||
|
||||
void computeMetrics();
|
||||
|
||||
@ -329,8 +329,8 @@ public:
|
||||
friend class Line;
|
||||
|
||||
VisualRun();
|
||||
VisualRun(const VisualRun &other);
|
||||
VisualRun &operator=(const VisualRun &other) { return *this; };
|
||||
VisualRun(const VisualRun &other);
|
||||
VisualRun &operator=(const VisualRun &other) { return *this; };
|
||||
|
||||
VisualRun(const LEFontInstance *font, UBiDiDirection direction, le_int32 glyphCount,
|
||||
const LEGlyphID glyphs[], const float positions[], const le_int32 glyphToCharMap[]);
|
||||
@ -346,9 +346,9 @@ public:
|
||||
*
|
||||
* Clients can optionally specify directional runs and / or script runs. If these aren't specified
|
||||
* they will be computed.
|
||||
*
|
||||
* If any errors are encountered during construction, <code>status</code> will be set, and the object
|
||||
* will be set to be empty.
|
||||
*
|
||||
* If any errors are encountered during construction, <code>status</code> will be set, and the object
|
||||
* will be set to be empty.
|
||||
*
|
||||
* @param chars is an array of the characters in the paragraph
|
||||
*
|
||||
@ -372,7 +372,7 @@ public:
|
||||
*
|
||||
* @param vertical is <code>TRUE</code> if the paragraph should be set vertically.
|
||||
*
|
||||
* @param status will be set to any error code encountered during construction.
|
||||
* @param status will be set to any error code encountered during construction.
|
||||
*
|
||||
* @see ubidi.h
|
||||
* @see LEFontInstance.h
|
||||
@ -387,7 +387,7 @@ public:
|
||||
const ValueRuns *scriptRuns,
|
||||
const LocaleRuns *localeRuns,
|
||||
UBiDiLevel paragraphLevel, le_bool vertical,
|
||||
LEErrorCode &status);
|
||||
LEErrorCode &status);
|
||||
|
||||
/**
|
||||
* The destructor. Virtual so that it works correctly with
|
||||
@ -505,7 +505,7 @@ public:
|
||||
*
|
||||
* @return a <code>ParagraphLayout::Line</code> object which represents the line. The caller
|
||||
* is responsible for deleting the object. Returns <code>NULL</code> if there are no
|
||||
* more lines in the paragraph.
|
||||
* more lines in the paragraph.
|
||||
*
|
||||
* @see ParagraphLayout::Line
|
||||
*
|
||||
@ -598,7 +598,7 @@ private:
|
||||
|
||||
le_int32 *fGlyphToCharMap;
|
||||
le_int32 *fCharToMinGlyphMap;
|
||||
le_int32 *fCharToMaxGlyphMap;
|
||||
le_int32 *fCharToMaxGlyphMap;
|
||||
float *fGlyphWidths;
|
||||
le_int32 fGlyphCount;
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
**********************************************************************
|
||||
* Copyright (C) 2003, International Business Machines
|
||||
* Copyright (C) 2003-2004, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
**********************************************************************
|
||||
*/
|
||||
@ -48,7 +48,7 @@ public:
|
||||
* array of limit indices.
|
||||
*
|
||||
* @param limits is an array of limit indices. This array must remain
|
||||
* valid until the <code>RunArray</code> object is destroyed.
|
||||
* valid until the <code>RunArray</code> object is destroyed.
|
||||
*
|
||||
* @param count is the number of entries in the limit array.
|
||||
*
|
||||
@ -195,9 +195,9 @@ private:
|
||||
|
||||
le_int32 ensureCapacity();
|
||||
|
||||
RunArray();
|
||||
RunArray(const RunArray & /*other*/);
|
||||
RunArray &operator=(const RunArray & /*other*/) { return *this; };
|
||||
RunArray();
|
||||
RunArray(const RunArray & /*other*/);
|
||||
RunArray &operator=(const RunArray & /*other*/) { return *this; };
|
||||
|
||||
const le_int32 *fLimits;
|
||||
le_int32 fCount;
|
||||
@ -205,15 +205,15 @@ private:
|
||||
};
|
||||
|
||||
inline RunArray::RunArray()
|
||||
: UObject(), fClientArrays(FALSE), fLimits(NULL), fCount(0), fCapacity(0)
|
||||
: UObject(), fClientArrays(FALSE), fLimits(NULL), fCount(0), fCapacity(0)
|
||||
{
|
||||
// nothing else to do...
|
||||
// nothing else to do...
|
||||
}
|
||||
|
||||
inline RunArray::RunArray(const RunArray & /*other*/)
|
||||
: UObject(), fClientArrays(FALSE), fLimits(NULL), fCount(0), fCapacity(0)
|
||||
: UObject(), fClientArrays(FALSE), fLimits(NULL), fCount(0), fCapacity(0)
|
||||
{
|
||||
// nothing else to do...
|
||||
// nothing else to do...
|
||||
}
|
||||
|
||||
inline RunArray::RunArray(const le_int32 *limits, le_int32 count)
|
||||
@ -255,11 +255,11 @@ public:
|
||||
* and limit indices.
|
||||
*
|
||||
* @param fonts is the address of an array of pointers to <code>LEFontInstance</code> objects. This
|
||||
* array, and the <code>LEFontInstance</code> objects to which it points must remain
|
||||
* valid until the <code>FontRuns</code> object is destroyed.
|
||||
* array, and the <code>LEFontInstance</code> objects to which it points must remain
|
||||
* valid until the <code>FontRuns</code> object is destroyed.
|
||||
*
|
||||
* @param limits is the address of an array of limit indices. This array must remain valid until
|
||||
* the <code>FontRuns</code> object is destroyed.
|
||||
* the <code>FontRuns</code> object is destroyed.
|
||||
*
|
||||
* @param count is the number of entries in the two arrays.
|
||||
*
|
||||
@ -317,7 +317,7 @@ public:
|
||||
* arrays, and use the returned run index to store data their own arrays.
|
||||
*
|
||||
* @param font is the address of the <code>LEFontInstance</code> to add. This object must
|
||||
* remain valid until the <code>FontRuns</code> object is destroyed.
|
||||
* remain valid until the <code>FontRuns</code> object is destroyed.
|
||||
*
|
||||
* @param limit is the limit index to add
|
||||
*
|
||||
@ -347,9 +347,9 @@ protected:
|
||||
|
||||
private:
|
||||
|
||||
FontRuns();
|
||||
FontRuns(const FontRuns &other);
|
||||
FontRuns &operator=(const FontRuns & /*other*/) { return *this; };
|
||||
FontRuns();
|
||||
FontRuns(const FontRuns &other);
|
||||
FontRuns &operator=(const FontRuns & /*other*/) { return *this; };
|
||||
|
||||
/**
|
||||
* The address of this static class variable serves as this class's ID
|
||||
@ -361,15 +361,15 @@ private:
|
||||
};
|
||||
|
||||
inline FontRuns::FontRuns()
|
||||
: RunArray(0), fFonts(NULL)
|
||||
: RunArray(0), fFonts(NULL)
|
||||
{
|
||||
// nothing else to do...
|
||||
// nothing else to do...
|
||||
}
|
||||
|
||||
inline FontRuns::FontRuns(const FontRuns & /*other*/)
|
||||
: RunArray(0), fFonts(NULL)
|
||||
: RunArray(0), fFonts(NULL)
|
||||
{
|
||||
// nothing else to do...
|
||||
// nothing else to do...
|
||||
}
|
||||
|
||||
inline FontRuns::FontRuns(const LEFontInstance **fonts, const le_int32 *limits, le_int32 count)
|
||||
@ -392,11 +392,11 @@ public:
|
||||
* and limit indices.
|
||||
*
|
||||
* @param locales is the address of an array of pointers to <code>Locale</code> objects. This array,
|
||||
* and the <code>Locale</code> objects to which it points, must remain valid until
|
||||
* the <code>LocaleRuns</code> object is destroyed.
|
||||
* and the <code>Locale</code> objects to which it points, must remain valid until
|
||||
* the <code>LocaleRuns</code> object is destroyed.
|
||||
*
|
||||
* @param limits is the address of an array of limit indices. This array must remain valid until the
|
||||
* <code>LocaleRuns</code> object is destroyed.
|
||||
* <code>LocaleRuns</code> object is destroyed.
|
||||
*
|
||||
* @param count is the number of entries in the two arrays.
|
||||
*
|
||||
@ -454,7 +454,7 @@ public:
|
||||
* arrays, and use the returned run index to store data their own arrays.
|
||||
*
|
||||
* @param locale is the address of the <code>Locale</code> to add. This object must remain valid
|
||||
* until the <code>LocaleRuns</code> object is destroyed.
|
||||
* until the <code>LocaleRuns</code> object is destroyed.
|
||||
*
|
||||
* @param limit is the limit index to add
|
||||
*
|
||||
@ -484,9 +484,9 @@ protected:
|
||||
|
||||
private:
|
||||
|
||||
LocaleRuns();
|
||||
LocaleRuns(const LocaleRuns &other);
|
||||
LocaleRuns &operator=(const LocaleRuns & /*other*/) { return *this; };
|
||||
LocaleRuns();
|
||||
LocaleRuns(const LocaleRuns &other);
|
||||
LocaleRuns &operator=(const LocaleRuns & /*other*/) { return *this; };
|
||||
|
||||
/**
|
||||
* The address of this static class variable serves as this class's ID
|
||||
@ -498,15 +498,15 @@ private:
|
||||
};
|
||||
|
||||
inline LocaleRuns::LocaleRuns()
|
||||
: RunArray(0), fLocales(NULL)
|
||||
: RunArray(0), fLocales(NULL)
|
||||
{
|
||||
// nothing else to do...
|
||||
// nothing else to do...
|
||||
}
|
||||
|
||||
inline LocaleRuns::LocaleRuns(const LocaleRuns & /*other*/)
|
||||
: RunArray(0), fLocales(NULL)
|
||||
: RunArray(0), fLocales(NULL)
|
||||
{
|
||||
// nothing else to do...
|
||||
// nothing else to do...
|
||||
}
|
||||
|
||||
inline LocaleRuns::LocaleRuns(const Locale **locales, const le_int32 *limits, le_int32 count)
|
||||
@ -528,10 +528,10 @@ public:
|
||||
* and limit indices.
|
||||
*
|
||||
* @param values is the address of an array of integer. This array must remain valid until
|
||||
* the <code>ValueRuns</code> object is destroyed.
|
||||
* the <code>ValueRuns</code> object is destroyed.
|
||||
*
|
||||
* @param limits is the address of an array of limit indices. This array must remain valid until
|
||||
* the <code>ValueRuns</code> object is destroyed.
|
||||
* the <code>ValueRuns</code> object is destroyed.
|
||||
*
|
||||
* @param count is the number of entries in the two arrays.
|
||||
*
|
||||
@ -618,9 +618,9 @@ protected:
|
||||
|
||||
private:
|
||||
|
||||
ValueRuns();
|
||||
ValueRuns(const ValueRuns &other);
|
||||
ValueRuns &operator=(const ValueRuns & /*other*/) { return *this; };
|
||||
ValueRuns();
|
||||
ValueRuns(const ValueRuns &other);
|
||||
ValueRuns &operator=(const ValueRuns & /*other*/) { return *this; };
|
||||
|
||||
/**
|
||||
* The address of this static class variable serves as this class's ID
|
||||
@ -632,15 +632,15 @@ private:
|
||||
};
|
||||
|
||||
inline ValueRuns::ValueRuns()
|
||||
: RunArray(0), fValues(NULL)
|
||||
: RunArray(0), fValues(NULL)
|
||||
{
|
||||
// nothing else to do...
|
||||
// nothing else to do...
|
||||
}
|
||||
|
||||
inline ValueRuns::ValueRuns(const ValueRuns & /*other*/)
|
||||
: RunArray(0), fValues(NULL)
|
||||
: RunArray(0), fValues(NULL)
|
||||
{
|
||||
// nothing else to do...
|
||||
// nothing else to do...
|
||||
}
|
||||
|
||||
inline ValueRuns::ValueRuns(const le_int32 *values, const le_int32 *limits, le_int32 count)
|
||||
|
Loading…
Reference in New Issue
Block a user