ICU-4970 Remove isBogus function, add error code on constructors
X-SVN-Rev: 25034
This commit is contained in:
parent
d9124b0ce0
commit
1f46e60401
@ -1,7 +1,7 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -34,16 +34,16 @@ le_bool CharSubstitutionFilter::accept(LEGlyphID glyph) const
|
||||
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ArabicOpenTypeLayoutEngine)
|
||||
|
||||
ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success)
|
||||
{
|
||||
fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
|
||||
fFeatureOrder = TRUE;
|
||||
}
|
||||
|
||||
ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
|
||||
le_int32 typoFlags, LEErrorCode &success)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success)
|
||||
{
|
||||
fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
|
||||
|
||||
@ -126,8 +126,8 @@ void ArabicOpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], l
|
||||
}
|
||||
}
|
||||
|
||||
UnicodeArabicOpenTypeLayoutEngine::UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
|
||||
: ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
|
||||
UnicodeArabicOpenTypeLayoutEngine::UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags, LEErrorCode &success)
|
||||
: ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success)
|
||||
{
|
||||
fGSUBTable = (const GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable;
|
||||
fGDEFTable = (const GlyphDefinitionTableHeader *) CanonShaping::glyphDefinitionTable;
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -41,6 +41,7 @@ public:
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param gsubTable - the GSUB table
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see LayoutEngine::layoutEngineFactory
|
||||
* @see OpenTypeLayoutEngine
|
||||
@ -49,7 +50,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* This constructor is used when the font requires a "canned" GSUB table which can't be known
|
||||
@ -58,6 +59,7 @@ public:
|
||||
* @param fontInstance - the font
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see OpenTypeLayoutEngine
|
||||
* @see ScriptAndLanguageTags.h for script and language codes
|
||||
@ -65,7 +67,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags);
|
||||
le_int32 typoFlags, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* The destructor, virtual for correct polymorphic invocation.
|
||||
@ -159,6 +161,7 @@ public:
|
||||
* @param fontInstance - the font
|
||||
* @param scriptCode - the script
|
||||
* @param languageCode - the language
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see LEFontInstance
|
||||
* @see ScriptAndLanguageTags.h for script and language codes
|
||||
@ -166,7 +169,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags);
|
||||
le_int32 typoFlags, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* The destructor, virtual for correct polymorphic invocation.
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -16,8 +16,8 @@ U_NAMESPACE_BEGIN
|
||||
|
||||
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(GXLayoutEngine)
|
||||
|
||||
GXLayoutEngine::GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, const MorphTableHeader *morphTable)
|
||||
: LayoutEngine(fontInstance, scriptCode, languageCode, 0), fMorphTable(morphTable)
|
||||
GXLayoutEngine::GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, const MorphTableHeader *morphTable, LEErrorCode &success)
|
||||
: LayoutEngine(fontInstance, scriptCode, languageCode, 0, success), fMorphTable(morphTable)
|
||||
{
|
||||
// nothing else to do?
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -42,13 +42,14 @@ public:
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param morphTable - the 'mort' table
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see LayoutEngine::layoutEngineFactory
|
||||
* @see ScriptAndLangaugeTags.h for script and language codes
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, const MorphTableHeader *morphTable);
|
||||
GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, const MorphTableHeader *morphTable, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* The destructor, virtual for correct polymorphic invocation.
|
||||
|
@ -25,12 +25,11 @@ void GlyphPositioningTableHeader::process(LEGlyphStorage &glyphStorage, GlyphPos
|
||||
return;
|
||||
}
|
||||
|
||||
GlyphPositioningLookupProcessor processor(this, scriptTag, languageTag, featureMap, featureMapCount, featureOrder);
|
||||
if (processor.isBogus()) {
|
||||
success = LE_MEMORY_ALLOCATION_ERROR;
|
||||
GlyphPositioningLookupProcessor processor(this, scriptTag, languageTag, featureMap, featureMapCount, featureOrder, success);
|
||||
if (LE_FAILURE(success)) {
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
processor.process(glyphStorage, glyphPositionAdjustments, rightToLeft, glyphDefinitionTableHeader, fontInstance, success);
|
||||
|
||||
glyphPositionAdjustments->applyCursiveAdjustments(glyphStorage, rightToLeft, fontInstance);
|
||||
|
@ -33,13 +33,24 @@ typedef ChainingContextualSubstitutionSubtable ChainingContextualPositioningSubt
|
||||
|
||||
GlyphPositioningLookupProcessor::GlyphPositioningLookupProcessor(
|
||||
const GlyphPositioningTableHeader *glyphPositioningTableHeader,
|
||||
LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
|
||||
LETag scriptTag,
|
||||
LETag languageTag,
|
||||
const FeatureMap *featureMap,
|
||||
le_int32 featureMapCount,
|
||||
le_bool featureOrder,
|
||||
LEErrorCode& success)
|
||||
: LookupProcessor(
|
||||
(char *) glyphPositioningTableHeader,
|
||||
SWAPW(glyphPositioningTableHeader->scriptListOffset),
|
||||
SWAPW(glyphPositioningTableHeader->featureListOffset),
|
||||
SWAPW(glyphPositioningTableHeader->lookupListOffset),
|
||||
scriptTag, languageTag, featureMap, featureMapCount, featureOrder)
|
||||
scriptTag,
|
||||
languageTag,
|
||||
featureMap,
|
||||
featureMapCount,
|
||||
featureOrder,
|
||||
success
|
||||
)
|
||||
{
|
||||
// anything?
|
||||
}
|
||||
|
@ -27,7 +27,12 @@ class GlyphPositioningLookupProcessor : public LookupProcessor
|
||||
{
|
||||
public:
|
||||
GlyphPositioningLookupProcessor(const GlyphPositioningTableHeader *glyphPositioningTableHeader,
|
||||
LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
|
||||
LETag scriptTag,
|
||||
LETag languageTag,
|
||||
const FeatureMap *featureMap,
|
||||
le_int32 featureMapCount,
|
||||
le_bool featureOrder,
|
||||
LEErrorCode& success);
|
||||
|
||||
virtual ~GlyphPositioningLookupProcessor();
|
||||
|
||||
|
@ -27,13 +27,19 @@ U_NAMESPACE_BEGIN
|
||||
|
||||
GlyphSubstitutionLookupProcessor::GlyphSubstitutionLookupProcessor(
|
||||
const GlyphSubstitutionTableHeader *glyphSubstitutionTableHeader,
|
||||
LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
|
||||
LETag scriptTag,
|
||||
LETag languageTag,
|
||||
const LEGlyphFilter *filter,
|
||||
const FeatureMap *featureMap,
|
||||
le_int32 featureMapCount,
|
||||
le_bool featureOrder,
|
||||
LEErrorCode& success)
|
||||
: LookupProcessor(
|
||||
(char *) glyphSubstitutionTableHeader,
|
||||
SWAPW(glyphSubstitutionTableHeader->scriptListOffset),
|
||||
SWAPW(glyphSubstitutionTableHeader->featureListOffset),
|
||||
SWAPW(glyphSubstitutionTableHeader->lookupListOffset),
|
||||
scriptTag, languageTag, featureMap, featureMapCount, featureOrder), fFilter(filter)
|
||||
scriptTag, languageTag, featureMap, featureMapCount, featureOrder, success), fFilter(filter)
|
||||
{
|
||||
// anything?
|
||||
}
|
||||
|
@ -28,7 +28,13 @@ class GlyphSubstitutionLookupProcessor : public LookupProcessor
|
||||
{
|
||||
public:
|
||||
GlyphSubstitutionLookupProcessor(const GlyphSubstitutionTableHeader *glyphSubstitutionTableHeader,
|
||||
LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
|
||||
LETag scriptTag,
|
||||
LETag languageTag,
|
||||
const LEGlyphFilter *filter,
|
||||
const FeatureMap *featureMap,
|
||||
le_int32 featureMapCount,
|
||||
le_bool featureOrder,
|
||||
LEErrorCode& success);
|
||||
|
||||
virtual ~GlyphSubstitutionLookupProcessor();
|
||||
|
||||
|
@ -32,7 +32,7 @@ le_int32 GlyphSubstitutionTableHeader::process(LEGlyphStorage &glyphStorage,
|
||||
return 0;
|
||||
}
|
||||
|
||||
GlyphSubstitutionLookupProcessor processor(this, scriptTag, languageTag, filter, featureMap, featureMapCount, featureOrder);
|
||||
GlyphSubstitutionLookupProcessor processor(this, scriptTag, languageTag, filter, featureMap, featureMapCount, featureOrder, success);
|
||||
return processor.process(glyphStorage, NULL, rightToLeft, glyphDefinitionTableHeader, NULL, success);
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* HanLayoutEngine.cpp: OpenType processing for Han fonts.
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved.
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "LETypes.h"
|
||||
@ -39,8 +39,8 @@ static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
|
||||
#define features (loclFeatureMask)
|
||||
|
||||
HanOpenTypeLayoutEngine::HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success)
|
||||
{
|
||||
fFeatureMap = featureMap;
|
||||
fFeatureMapCount = featureMapCount;
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* HanLayoutEngine.h: OpenType processing for Han fonts.
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved.
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved.
|
||||
*/
|
||||
|
||||
#ifndef __HANLAYOUTENGINE_H
|
||||
@ -39,6 +39,7 @@ public:
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param gsubTable - the GSUB table
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see LayoutEngine::layoutEngineFactory
|
||||
* @see OpenTypeLayoutEngine
|
||||
@ -47,7 +48,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTablem, LEErrorCode &success);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* HangulLayoutEngine.cpp: OpenType processing for Han fonts.
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved.
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "LETypes.h"
|
||||
@ -184,8 +184,8 @@ static le_int32 getCharClass(LEUnicode ch, LEUnicode &lead, LEUnicode &vowel, LE
|
||||
}
|
||||
|
||||
HangulOpenTypeLayoutEngine::HangulOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 /*languageCode*/,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, korLanguageCode, typoFlags, gsubTable)
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, korLanguageCode, typoFlags, gsubTable, success)
|
||||
{
|
||||
fFeatureMap = featureMap;
|
||||
fFeatureMapCount = featureMapCount;
|
||||
@ -193,8 +193,8 @@ HangulOpenTypeLayoutEngine::HangulOpenTypeLayoutEngine(const LEFontInstance *fon
|
||||
}
|
||||
|
||||
HangulOpenTypeLayoutEngine::HangulOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 /*languageCode*/,
|
||||
le_int32 typoFlags)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, korLanguageCode, typoFlags)
|
||||
le_int32 typoFlags, LEErrorCode &success)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, korLanguageCode, typoFlags, success)
|
||||
{
|
||||
fFeatureMap = featureMap;
|
||||
fFeatureMapCount = featureMapCount;
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -46,6 +46,7 @@ public:
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param gsubTable - the GSUB table
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see LayoutEngine::layoutEngineFactory
|
||||
* @see OpenTypeLayoutEngine
|
||||
@ -54,7 +55,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
HangulOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* This constructor is used when the font requires a "canned" GSUB table which can't be known
|
||||
@ -63,6 +64,7 @@ public:
|
||||
* @param fontInstance - the font
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see OpenTypeLayoutEngine
|
||||
* @see ScriptAndLangaugeTags.h for script and language codes
|
||||
@ -70,7 +72,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
HangulOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags);
|
||||
le_int32 typoFlags, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* The destructor, virtual for correct polymorphic invocation.
|
||||
|
@ -25,8 +25,8 @@ U_NAMESPACE_BEGIN
|
||||
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(IndicOpenTypeLayoutEngine)
|
||||
|
||||
IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable), fMPreFixups(NULL)
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success), fMPreFixups(NULL)
|
||||
{
|
||||
fFeatureMap = IndicReordering::getFeatureMap(fFeatureMapCount);
|
||||
fFeatureOrder = TRUE;
|
||||
@ -34,8 +34,8 @@ IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontI
|
||||
fFilterZeroWidth = IndicReordering::getFilterZeroWidth(fScriptCode);
|
||||
}
|
||||
|
||||
IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fMPreFixups(NULL)
|
||||
IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags, LEErrorCode &success)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success), fMPreFixups(NULL)
|
||||
{
|
||||
fFeatureMap = IndicReordering::getFeatureMap(fFeatureMapCount);
|
||||
fFeatureOrder = TRUE;
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -47,6 +47,7 @@ public:
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param gsubTable - the GSUB table
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see LayoutEngine::layoutEngineFactory
|
||||
* @see OpenTypeLayoutEngine
|
||||
@ -55,7 +56,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* This constructor is used when the font requires a "canned" GSUB table which can't be known
|
||||
@ -64,6 +65,7 @@ public:
|
||||
* @param fontInstance - the font
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see OpenTypeLayoutEngine
|
||||
* @see ScriptAndLangaugeTags.h for script and language codes
|
||||
@ -71,7 +73,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags);
|
||||
le_int32 typoFlags, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* The destructor, virtual for correct polymorphic invocation.
|
||||
|
@ -1,6 +1,6 @@
|
||||
|
||||
/*
|
||||
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
|
||||
*
|
||||
* This file is a modification of the ICU file IndicLayoutEngine.cpp
|
||||
* by Jens Herden and Javier Sola for Khmer language
|
||||
@ -18,16 +18,16 @@ U_NAMESPACE_BEGIN
|
||||
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(KhmerOpenTypeLayoutEngine)
|
||||
|
||||
KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success)
|
||||
{
|
||||
fFeatureMap = KhmerReordering::getFeatureMap(fFeatureMapCount);
|
||||
fFeatureOrder = TRUE;
|
||||
}
|
||||
|
||||
KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
|
||||
le_int32 typoFlags, LEErrorCode &success)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success)
|
||||
{
|
||||
fFeatureMap = KhmerReordering::getFeatureMap(fFeatureMapCount);
|
||||
fFeatureOrder = TRUE;
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
|
||||
*
|
||||
* This file is a modification of the ICU file IndicLayoutEngine.h
|
||||
* by Jens Herden and Javier Sola for Khmer language
|
||||
@ -49,6 +49,7 @@ public:
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param gsubTable - the GSUB table
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see LayoutEngine::layoutEngineFactory
|
||||
* @see OpenTypeLayoutEngine
|
||||
@ -57,7 +58,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* This constructor is used when the font requires a "canned" GSUB table which can't be known
|
||||
@ -66,6 +67,7 @@ public:
|
||||
* @param fontInstance - the font
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see OpenTypeLayoutEngine
|
||||
* @see ScriptAndLangaugeTags.h for script and language codes
|
||||
@ -73,7 +75,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags);
|
||||
le_int32 typoFlags, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* The destructor, virtual for correct polymorphic invocation.
|
||||
|
@ -134,16 +134,22 @@ static const FeatureMap canonFeatureMap[] =
|
||||
|
||||
static const le_int32 canonFeatureMapCount = LE_ARRAY_SIZE(canonFeatureMap);
|
||||
|
||||
LayoutEngine::LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
|
||||
LayoutEngine::LayoutEngine(const LEFontInstance *fontInstance,
|
||||
le_int32 scriptCode,
|
||||
le_int32 languageCode,
|
||||
le_int32 typoFlags,
|
||||
LEErrorCode &success)
|
||||
: fGlyphStorage(NULL), fFontInstance(fontInstance), fScriptCode(scriptCode), fLanguageCode(languageCode),
|
||||
fTypoFlags(typoFlags), fFilterZeroWidth(TRUE)
|
||||
{
|
||||
fGlyphStorage = new LEGlyphStorage();
|
||||
}
|
||||
if (LE_FAILURE(success)) {
|
||||
return;
|
||||
}
|
||||
|
||||
le_bool LayoutEngine::isBogus()
|
||||
{
|
||||
return fGlyphStorage == NULL;
|
||||
fGlyphStorage = new LEGlyphStorage();
|
||||
if (fGlyphStorage == NULL) {
|
||||
success = LE_MEMORY_ALLOCATION_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
le_int32 LayoutEngine::getGlyphCount() const
|
||||
@ -534,15 +540,15 @@ LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstan
|
||||
case tamlScriptCode:
|
||||
case teluScriptCode:
|
||||
case sinhScriptCode:
|
||||
result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
|
||||
result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success);
|
||||
break;
|
||||
|
||||
case arabScriptCode:
|
||||
result = new ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
|
||||
result = new ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success);
|
||||
break;
|
||||
|
||||
case hangScriptCode:
|
||||
result = new HangulOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
|
||||
result = new HangulOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success);
|
||||
break;
|
||||
|
||||
case haniScriptCode:
|
||||
@ -554,35 +560,35 @@ LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstan
|
||||
case zhtLanguageCode:
|
||||
case zhsLanguageCode:
|
||||
if (gsubTable->coversScriptAndLanguage(scriptTag, languageTag, TRUE)) {
|
||||
result = new HanOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
|
||||
result = new HanOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success);
|
||||
break;
|
||||
}
|
||||
|
||||
// note: falling through to default case.
|
||||
default:
|
||||
result = new OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
|
||||
result = new OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success);
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case tibtScriptCode:
|
||||
result = new TibetanOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
|
||||
result = new TibetanOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success);
|
||||
break;
|
||||
|
||||
case khmrScriptCode:
|
||||
result = new KhmerOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
|
||||
result = new KhmerOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success);
|
||||
break;
|
||||
|
||||
default:
|
||||
result = new OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
|
||||
result = new OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
const MorphTableHeader *morphTable = (MorphTableHeader *) fontInstance->getFontTable(mortTableTag);
|
||||
|
||||
if (morphTable != NULL) {
|
||||
result = new GXLayoutEngine(fontInstance, scriptCode, languageCode, morphTable);
|
||||
result = new GXLayoutEngine(fontInstance, scriptCode, languageCode, morphTable, success);
|
||||
} else {
|
||||
switch (scriptCode) {
|
||||
case bengScriptCode:
|
||||
@ -596,34 +602,34 @@ LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstan
|
||||
case teluScriptCode:
|
||||
case sinhScriptCode:
|
||||
{
|
||||
result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
|
||||
result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success);
|
||||
break;
|
||||
}
|
||||
|
||||
case arabScriptCode:
|
||||
//case hebrScriptCode:
|
||||
result = new UnicodeArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
|
||||
result = new UnicodeArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success);
|
||||
break;
|
||||
|
||||
//case hebrScriptCode:
|
||||
// return new HebrewOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
|
||||
|
||||
case thaiScriptCode:
|
||||
result = new ThaiLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
|
||||
result = new ThaiLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success);
|
||||
break;
|
||||
|
||||
case hangScriptCode:
|
||||
result = new HangulOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
|
||||
result = new HangulOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success);
|
||||
break;
|
||||
|
||||
default:
|
||||
result = new LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
|
||||
result = new LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (result && result->isBogus()) {
|
||||
if (result && LE_FAILURE(success)) {
|
||||
delete result;
|
||||
result = NULL;
|
||||
}
|
||||
|
@ -124,21 +124,18 @@ protected:
|
||||
* @param languageCode - the language for the text
|
||||
* @param typoFlags - the typographic control flags for the text. Set bit 1 if kerning
|
||||
* is desired, set bit 2 if ligature formation is desired. Others are reserved.
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see LEFontInstance
|
||||
* @see ScriptAndLanguageTags.h
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
|
||||
|
||||
/**
|
||||
* Returns true if the constructor failed, leaving the object in an
|
||||
* inconsistent state.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
le_bool isBogus();
|
||||
LayoutEngine(const LEFontInstance *fontInstance,
|
||||
le_int32 scriptCode,
|
||||
le_int32 languageCode,
|
||||
le_int32 typoFlags,
|
||||
LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* This overrides the default no argument constructor to make it
|
||||
|
@ -120,7 +120,8 @@ le_int32 LookupProcessor::selectLookups(const FeatureTable *featureTable, Featur
|
||||
|
||||
LookupProcessor::LookupProcessor(const char *baseAddress,
|
||||
Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
|
||||
LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool orderFeatures)
|
||||
LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool orderFeatures,
|
||||
LEErrorCode& success)
|
||||
: lookupListTable(NULL), featureListTable(NULL), lookupSelectArray(NULL),
|
||||
lookupOrderArray(NULL), lookupOrderCount(0)
|
||||
{
|
||||
@ -130,6 +131,10 @@ LookupProcessor::LookupProcessor(const char *baseAddress,
|
||||
le_uint16 lookupListCount = 0;
|
||||
le_uint16 requiredFeatureIndex;
|
||||
|
||||
if (LE_FAILURE(success)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (scriptListOffset != 0) {
|
||||
scriptListTable = (const ScriptListTable *) (baseAddress + scriptListOffset);
|
||||
langSysTable = scriptListTable->findLanguage(scriptTag, languageTag);
|
||||
@ -157,6 +162,7 @@ LookupProcessor::LookupProcessor(const char *baseAddress,
|
||||
|
||||
lookupSelectArray = LE_NEW_ARRAY(FeatureMask, lookupListCount);
|
||||
if (lookupSelectArray == NULL) {
|
||||
success = LE_MEMORY_ALLOCATION_ERROR;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -190,6 +196,7 @@ LookupProcessor::LookupProcessor(const char *baseAddress,
|
||||
|
||||
lookupOrderArray = LE_NEW_ARRAY(le_uint16, featureReferences);
|
||||
if (lookupOrderArray == NULL) {
|
||||
success = LE_MEMORY_ALLOCATION_ERROR;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -285,11 +292,6 @@ LookupProcessor::LookupProcessor()
|
||||
lookupSelectArray = NULL;
|
||||
}
|
||||
|
||||
le_bool LookupProcessor::isBogus()
|
||||
{
|
||||
return lookupOrderArray && lookupSelectArray;
|
||||
}
|
||||
|
||||
LookupProcessor::~LookupProcessor()
|
||||
{
|
||||
LE_DELETE_ARRAY(lookupOrderArray);
|
||||
|
@ -33,8 +33,6 @@ struct LookupTable;
|
||||
|
||||
class LookupProcessor : public UMemory {
|
||||
public:
|
||||
le_bool isBogus();
|
||||
|
||||
le_int32 process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
|
||||
le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, const LEFontInstance *fontInstance, LEErrorCode& success) const;
|
||||
|
||||
@ -48,11 +46,18 @@ public:
|
||||
virtual ~LookupProcessor();
|
||||
|
||||
protected:
|
||||
LookupProcessor(const char *baseAddress,
|
||||
Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
|
||||
LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool orderFeatures);
|
||||
LookupProcessor(const char *baseAddress,
|
||||
Offset scriptListOffset,
|
||||
Offset featureListOffset,
|
||||
Offset lookupListOffset,
|
||||
LETag scriptTag,
|
||||
LETag languageTag,
|
||||
const FeatureMap *featureMap,
|
||||
le_int32 featureMapCount,
|
||||
le_bool orderFeatures,
|
||||
LEErrorCode& success);
|
||||
|
||||
LookupProcessor();
|
||||
LookupProcessor();
|
||||
|
||||
le_int32 selectLookups(const FeatureTable *featureTable, FeatureMask featureMask, le_int32 order);
|
||||
|
||||
|
@ -71,8 +71,8 @@ static const FeatureMap featureMap[] =
|
||||
static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
|
||||
|
||||
OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
|
||||
: LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fFeatureMask(minimalFeatures),
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success)
|
||||
: LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success), fFeatureMask(minimalFeatures),
|
||||
fFeatureMap(featureMap), fFeatureMapCount(featureMapCount), fFeatureOrder(FALSE),
|
||||
fGSUBTable(gsubTable), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL)
|
||||
{
|
||||
@ -112,8 +112,8 @@ void OpenTypeLayoutEngine::reset()
|
||||
}
|
||||
|
||||
OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags)
|
||||
: LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fFeatureOrder(FALSE),
|
||||
le_int32 typoFlags, LEErrorCode &success)
|
||||
: LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success), fFeatureOrder(FALSE),
|
||||
fGSUBTable(NULL), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL)
|
||||
{
|
||||
setScriptAndLanguageTags();
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -55,6 +55,7 @@ public:
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param gsubTable - the GSUB table
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see LayoutEngine::layoutEngineFactory
|
||||
* @see ScriptAndLangaugeTags.h for script and language codes
|
||||
@ -62,7 +63,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* This constructor is used when the font requires a "canned" GSUB table which can't be known
|
||||
@ -71,11 +72,12 @@ public:
|
||||
* @param fontInstance - the font
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags);
|
||||
le_int32 typoFlags, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* The destructor, virtual for correct polymorphic invocation.
|
||||
|
@ -19,8 +19,8 @@ U_NAMESPACE_BEGIN
|
||||
|
||||
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ThaiLayoutEngine)
|
||||
|
||||
ThaiLayoutEngine::ThaiLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
|
||||
: LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
|
||||
ThaiLayoutEngine::ThaiLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags, LEErrorCode &success)
|
||||
: LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success)
|
||||
{
|
||||
fErrorChar = 0x25CC;
|
||||
|
||||
|
@ -37,13 +37,14 @@ public:
|
||||
* @param fontInstance - the font
|
||||
* @param scriptCode - the script
|
||||
* @param languageCode - the language
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see LEFontInstance
|
||||
* @see ScriptAndLanguageTags.h for script and language codes
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
ThaiLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
|
||||
ThaiLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* The destructor, virtual for correct polymorphic invocation.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
|
||||
*
|
||||
* Developed at DIT - Government of Bhutan
|
||||
*
|
||||
@ -24,16 +24,16 @@ U_NAMESPACE_BEGIN
|
||||
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TibetanOpenTypeLayoutEngine)
|
||||
|
||||
TibetanOpenTypeLayoutEngine::TibetanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success)
|
||||
{
|
||||
fFeatureMap = TibetanReordering::getFeatureMap(fFeatureMapCount);
|
||||
fFeatureOrder = TRUE;
|
||||
}
|
||||
|
||||
TibetanOpenTypeLayoutEngine::TibetanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
|
||||
le_int32 typoFlags, LEErrorCode &success)
|
||||
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success)
|
||||
{
|
||||
fFeatureMap = TibetanReordering::getFeatureMap(fFeatureMapCount);
|
||||
fFeatureOrder = TRUE;
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
|
||||
*
|
||||
* Developed at DIT - Government of Bhutan
|
||||
*
|
||||
@ -49,6 +49,7 @@ public:
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param gsubTable - the GSUB table
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see LayoutEngine::layoutEngineFactory
|
||||
* @see OpenTypeLayoutEngine
|
||||
@ -57,7 +58,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
TibetanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
|
||||
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* This constructor is used when the font requires a "canned" GSUB table which can't be known
|
||||
@ -66,6 +67,7 @@ public:
|
||||
* @param fontInstance - the font
|
||||
* @param scriptCode - the script
|
||||
* @param langaugeCode - the language
|
||||
* @param success - set to an error code if the operation fails
|
||||
*
|
||||
* @see OpenTypeLayoutEngine
|
||||
* @see ScriptAndLangaugeTags.h for script and language codes
|
||||
@ -73,7 +75,7 @@ public:
|
||||
* @internal
|
||||
*/
|
||||
TibetanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
|
||||
le_int32 typoFlags);
|
||||
le_int32 typoFlags, LEErrorCode &success);
|
||||
|
||||
/**
|
||||
* The destructor, virtual for correct polymorphic invocation.
|
||||
|
Loading…
Reference in New Issue
Block a user