@ -50,13 +50,13 @@ exporting functions are converted to list of unique UTF-32 characters.
You don ' t need to do most of the redundant sanity checks , these things are
checked by the implementation :
- Functions ` doExportFontTo * ( ) ` are called only if @ ref Feature " Feature::ExportFont "
- Functions ` doExportFontTo * ( ) ` are called only if @ ref Feature : : ExportFont
is supported , functions ` doExportGlyphCacheTo * ( ) ` are called only if
@ ref Feature " Feature::ExportGlyphCache " is supported .
@ ref Feature : : ExportGlyphCache is supported .
- Functions ` doImportGlyphCacheFrom * ( ) ` are called only if
@ ref Feature " Feature::ImportGlyphCache " is supported .
@ ref Feature : : ImportGlyphCache is supported .
- Functions ` doExport * To * Data ( ) ` and ` doImport * From * Data ( ) ` are called only
if @ ref Feature " Feature::ConvertData " is supported .
if @ ref Feature : : ConvertData is supported .
- Function ` doImport * FromData ( ) ` is called only if there is at least one data
array passed .
*/
@ -67,33 +67,42 @@ class MAGNUM_TEXT_EXPORT AbstractFontConverter: public PluginManager::AbstractPl
/**
* @ brief Features supported by this converter
*
* @ see Features , features ( )
* @ see @ ref Features , @ ref features ( )
*/
enum class Feature : UnsignedByte {
/**
* Exporting font using exportToFile ( ) or exportToData ( )
* @ see @ ref Feature " Feature::ConvertData "
* Exporting font using @ ref exportFontToFile ( ) , @ ref exportFontToData ( )
* or @ ref exportFontToSingleData ( )
* @ see @ ref Feature : : ConvertData
*/
ExportFont = 1 < < 0 ,
/**
* Export glyph cache using exportToFile ( ) or exportToData ( )
* @ see @ ref Feature " Feature::ConvertData "
* Export glyph cache using @ ref exportGlyphCacheToFile ( ) ,
* @ ref exportGlyphCacheToData ( ) or @ ref exportGlyphCacheToSingleData ( )
* @ see @ ref Feature : : ConvertData
*/
ExportGlyphCache = 1 < < 1 ,
/**
* Import glyph cache using importFromFile ( ) or importFromData ( )
* @ see @ ref Feature " Feature::ConvertData "
* Import glyph cache using @ ref importGlyphCacheFromFile ( ) ,
* @ ref importGlyphCacheFromData ( ) or @ ref importGlyphCacheFromSingleData ( )
* @ see @ ref Feature : : ConvertData
*/
ImportGlyphCache = 1 < < 2 ,
/** Convert from/to data using exportToData() or importFromData() */
/**
* Convert from / to data using @ ref exportFontToData ( ) ,
* @ ref exportFontToSingleData ( ) , @ ref exportGlyphCacheToData ( ) ,
* @ ref exportGlyphCacheToSingleData ( ) , @ ref importGlyphCacheFromData ( )
* or @ ref importGlyphCacheFromSingleData ( )
*/
ConvertData = 1 < < 4 ,
/**
* The format is multi - file , thus exportToSingleData ( ) and
* importFromSingleData ( ) convenience functions cannot be used .
* The format is multi - file , thus @ ref exportFontToSingleData ( ) ,
* @ ref exportGlyphCacheToSingleData ( ) and @ ref importGlyphCacheFromSingleData ( )
* convenience functions cannot be used .
*/
MultiFile = 1 < < 5
} ;
@ -121,38 +130,39 @@ class MAGNUM_TEXT_EXPORT AbstractFontConverter: public PluginManager::AbstractPl
* @ param filename Output filename
* @ param characters Characters to export
*
* Available only if @ ref Feature " Feature::ConvertData " and
* @ ref Feature " Feature::ExportFont " is supported . Returns pairs of
* filename and data on success , empty vector otherwise . All data will
* be sharing common basename derived from @ p filename . If the plugin
* doesn ' t have @ ref Feature " Feature::MultiFile " , only one pair is
* returned , thus using exportFontToSingleData ( ) might be more convenient
* in that case .
* @ see features ( ) , exportFontToFile ( ) , exportGlyphCacheToData ( )
* Available only if @ ref Feature : : ConvertData and @ ref Feature : : ExportFont
* is supported . Returns pairs of filename and data on success , empty
* vector otherwise . All data will be sharing common basename derived
* from @ p filename . If the plugin doesn ' t have @ ref Feature : : MultiFile ,
* only one pair is returned , thus using @ ref exportFontToSingleData ( )
* might be more convenient in that case .
* @ see @ ref features ( ) , @ ref exportFontToFile ( ) ,
* @ ref exportGlyphCacheToData ( )
*/
std : : vector < std : : pair < std : : string , Containers : : Array < unsigned char > > > exportFontToData ( AbstractFont & font , GlyphCache & cache , const std : : string & filename , const std : : string & characters ) const ;
/**
* @ brief Export font to single raw data
*
* Available only if @ ref Feature " Feature::ConvertData " and
* @ ref Feature " Feature::ExportFont " is supported and the plugin
* doesn ' t have @ ref Feature " Feature::MultiFile " . Returns data on
* success , zero - sized array otherwise . See exportFontToData ( ) for
* more information .
* @ see features ( ) , exportFontToFile ( ) , importFrom SingleData( )
* Available only if @ ref Feature : : ConvertData and @ ref Feature : : ExportFont
* is supported and the plugin doesn ' t have @ ref Feature : : MultiFile .
* Returns data on success , zero - sized array otherwise . See
* @ ref exportFontToData ( ) for more information .
* @ see @ ref features ( ) , @ ref exportFontToFile ( ) ,
* @ ref exportGlyphCacheTo SingleData ( )
*/
Containers : : Array < unsigned char > exportFontToSingleData ( AbstractFont & font , GlyphCache & cache , const std : : string & characters ) const ;
/**
* @ brief Export font to file
*
* Available only if @ ref Feature " Feature::ExportFont " is supported .
* If the plugin has @ ref Feature " Feature::MultiFile " , the function
* will create more than one file in given path , all sharing common
* basename derived from @ p filename . Returns ` true ` on success ,
* ` false ` otherwise . See exportFontToData ( ) for more information .
* @ see features ( ) , exportFontToData ( ) , exportGlyphCacheToFile ( )
* Available only if @ ref Feature : : ExportFont is supported . If the
* plugin has @ ref Feature : : MultiFile , the function will create more
* than one file in given path , all sharing common basename derived
* from @ p filename . Returns ` true ` on success , ` false ` otherwise . See
* @ ref exportFontToData ( ) for more information .
* @ see @ ref features ( ) , @ ref exportFontToData ( ) ,
* @ ref exportGlyphCacheToFile ( )
*/
bool exportFontToFile ( AbstractFont & font , GlyphCache & cache , const std : : string & filename , const std : : string & characters ) const ;
@ -161,41 +171,42 @@ class MAGNUM_TEXT_EXPORT AbstractFontConverter: public PluginManager::AbstractPl
* @ param cache Populated glyph cache
* @ param filename Output filename
*
* Available only if @ ref Feature " Feature::ConvertData " and
* @ ref Feature " Feature::ExportGlyphCache " is supported . Returns pairs
* of filename and data on success , empty vector otherwise . All data
* will be sharing common basename derived from @ p filename . If the
* plugin doesn ' t have @ ref Feature " Feature::MultiFile " , only one pair
* is returned , thus using exportGlyphCacheToSingleData ( ) might be more
* convenient in that case .
* Available only if @ ref Feature : : ConvertData and @ ref Feature : : ExportGlyphCache
* is supported . Returns pairs of filename and data on success , empty
* vector otherwise . All data will be sharing common basename derived
* from @ p filename . If the plugin doesn ' t have @ ref Feature : : MultiFile ,
* only one pair is returned , thus using @ ref exportGlyphCacheToSingleData ( )
* might be more convenient in that case .
*
* All glyphs from given cache will be exported . If you want to export
* smaller subset , fill the cache with less characters .
* @ see features ( ) , exportGlyphCacheToFile ( ) , exportFontToData ( )
* @ see @ ref features ( ) , @ ref exportGlyphCacheToFile ( ) ,
* @ ref exportFontToData ( )
*/
std : : vector < std : : pair < std : : string , Containers : : Array < unsigned char > > > exportGlyphCacheToData ( GlyphCache & cache , const std : : string & filename ) const ;
/**
* @ brief Export glyph cache to single raw data
*
* Available only if @ ref Feature " Feature::ConvertData " and
* @ ref Feature " Feature::ExportGlyphCache " is supported and the plugin
* doesn ' t have @ ref Feature " Feature::MultiFile " . Returns data on
* success , zero - sized array otherwise . See exportGlyphCacheToData ( )
* for more information .
* @ see features ( ) , exportGlyphCacheToFile ( ) , importGlyphCacheFromSingleData ( )
* Available only if @ ref Feature : : ConvertData and @ ref Feature : : ExportGlyphCache
* is supported and the plugin doesn ' t have @ ref Feature : : MultiFile .
* Returns data on success , zero - sized array otherwise . See
* @ ref exportGlyphCacheToData ( ) for more information .
* @ see @ ref features ( ) , @ ref exportGlyphCacheToFile ( ) ,
* @ ref importGlyphCacheFromSingleData ( )
*/
Containers : : Array < unsigned char > exportGlyphCacheToSingleData ( GlyphCache & cache ) const ;
/**
* @ brief Export glyph cache to file
*
* Available only if @ ref Feature " Feature::ExportGlyphCache " is
* supported . If the plugin has @ ref Feature " Feature::MultiFile " , the
* function will create more than one file in given path , all sharing
* common basename derived from @ p filename . Returns ` true ` on success ,
* ` false ` otherwise .
* @ see features ( ) , exportGlyphCacheToData ( ) , exportFontToFile ( )
* Available only if @ ref Feature : : ExportGlyphCache is supported . If
* the plugin has @ ref Feature : : MultiFile , the function will create
* more than one file in given path , all sharing common basename
* derived from @ p filename . Returns ` true ` on success , ` false `
* otherwise .
* @ see @ ref features ( ) , @ ref exportGlyphCacheToData ( ) ,
* @ ref exportFontToFile ( )
*/
bool exportGlyphCacheToFile ( GlyphCache & cache , const std : : string & filename ) const ;
@ -203,37 +214,38 @@ class MAGNUM_TEXT_EXPORT AbstractFontConverter: public PluginManager::AbstractPl
* @ brief Import glyph cache from raw data
* @ param data Pairs of filename and file data
*
* Available only if @ ref Feature " Feature::ConvertData " and
* @ ref Feature " Feature::ImportGlyphCache " is supported . Returns
* imported cache on success , ` nullptr ` otherwise . If the plugin
* doesn ' t have @ ref Feature " Feature::MultiFile " , only one file is
* needed , thus using convertToSingleData ( ) might be more convenient in
* that case .
* @ see features ( ) , importFromFile ( ) , export ToData( )
* Available only if @ ref Feature : : ConvertData and @ ref Feature : : ImportGlyphCache
* is supported . Returns imported cache on success , ` nullptr `
* otherwise . If the plugin doesn ' t have @ ref Feature : : MultiFile , only
* one file is needed , thus using @ ref importGlyphCacheFromSingleData ( )
* might be more convenient in that case .
* @ see @ ref features ( ) , @ ref importGlyphCacheFromFile ( ) ,
* @ ref exportGlyphCache ToData ( )
*/
GlyphCache * importGlyphCacheFromData ( const std : : vector < std : : pair < std : : string , Containers : : ArrayReference < const unsigned char > > > & data ) const ;
/**
* @ brief Import glyph cache from single raw data
*
* Available only if @ ref Feature " Feature::ConvertData " and
* @ ref Feature " Feature::ImportGlyphCache " is supported and the plugin
* doesn ' t have @ ref Feature " Feature::MultiFile " . Returns imported
* cache on success , ` nullptr ` otherwise . See importFromData ( ) for
* multi - file conversion .
* @ see features ( ) , importFromFile ( ) , expor tToSingleData( )
* Available only if @ ref Feature : : ConvertData and @ ref Feature : : ImportGlyphCache
* is supported and the plugin doesn ' t have @ ref Feature : : MultiFile .
* Returns imported cache on success , ` nullptr ` otherwise . See
* @ ref importGlyphCacheFromData ( ) for multi - file conversion .
* @ see @ ref features ( ) , @ ref importGlyphCacheFromFile ( ) ,
* @ ref exportFon tToSingleData ( )
*/
GlyphCache * importGlyphCacheFromSingleData ( Containers : : ArrayReference < const unsigned char > data ) const ;
/**
* @ brief Import glyph cache from file
*
* Available only if @ ref Feature " Feature::ImportGlyphCache " is
* supported . If the plugin has @ ref Feature " Feature::MultiFile " , the
* function will use additional files in given path , all sharing common
* basename derived from @ p filename . Returns imported cache on
* success , ` nullptr ` otherwise .
* @ see features ( ) , importFromData ( ) , exportToFile ( )
* Available only if @ ref Feature : : ImportGlyphCache is supported . If
* the plugin has @ ref Feature : : MultiFile , the function will use
* additional files in given path , all sharing common basename derived
* from @ p filename . Returns imported cache on success , ` nullptr `
* otherwise .
* @ see @ ref features ( ) , @ ref importGlyphCacheFromData ( ) ,
* @ ref exportGlyphCacheToFile ( )
*/
GlyphCache * importGlyphCacheFromFile ( const std : : string & filename ) const ;
@ -242,14 +254,14 @@ class MAGNUM_TEXT_EXPORT AbstractFontConverter: public PluginManager::AbstractPl
# else
protected :
# endif
/** @brief Implementation for features() */
/** @brief Implementation for @ref features() */
virtual Features doFeatures ( ) const = 0 ;
/**
* @ brief Implementation for exportFontToData ( )
* @ brief Implementation for @ ref exportFontToData ( )
*
* If the plugin doesn ' t have @ ref Feature " Feature::MultiFile " ,
* default implementation calls doExportFontToSingleData ( ) .
* If the plugin doesn ' t have @ ref Feature : : MultiFile , default
* implementation calls @ ref doExportFontToSingleData ( ) .
* @ note On Windows uses ` std : : vector < char32_t > ` instead of
* ` std : : u32string ` . See @ ref Corrade : : Utility : : Unicode : : utf32 ( )
* for more information .
@ -261,7 +273,7 @@ class MAGNUM_TEXT_EXPORT AbstractFontConverter: public PluginManager::AbstractPl
# endif
/**
* @ brief Implementation for exportFontToSingleData ( )
* @ brief Implementation for @ ref exportFontToSingleData ( )
*
* @ note On Windows uses ` std : : vector < char32_t > ` instead of
* ` std : : u32string ` . See @ ref Corrade : : Utility : : Unicode : : utf32 ( )
@ -274,11 +286,10 @@ class MAGNUM_TEXT_EXPORT AbstractFontConverter: public PluginManager::AbstractPl
# endif
/**
* @ brief Implementation for exportFontToFile ( )
* @ brief Implementation for @ ref exportFontToFile ( )
*
* If @ ref Feature " Feature::ConvertData " is supported , default
* implementation calls doExportFontToData ( ) and saves the result to
* given file ( s ) .
* If @ ref Feature : : ConvertData is supported , default implementation
* calls doExportFontToData ( ) and saves the result to given file ( s ) .
* @ note On Windows uses ` std : : vector < char32_t > ` instead of
* ` std : : u32string ` . See @ ref Corrade : : Utility : : Unicode : : utf32 ( )
* for more information .
@ -290,10 +301,10 @@ class MAGNUM_TEXT_EXPORT AbstractFontConverter: public PluginManager::AbstractPl
# endif
/**
* @ brief Implementation for exportGlyphCacheToData ( )
* @ brief Implementation for @ ref exportGlyphCacheToData ( )
*
* If the plugin doesn ' t have @ ref Feature " Feature::MultiFile " ,
* default implementation calls doExportGlyphCacheToSingleData ( ) .
* If the plugin doesn ' t have @ ref Feature : : MultiFile , default
* implementation calls @ ref doExportGlyphCacheToSingleData ( ) .
*/
virtual std : : vector < std : : pair < std : : string , Containers : : Array < unsigned char > > > doExportGlyphCacheToData ( GlyphCache & cache , const std : : string & filename ) const ;
@ -301,19 +312,19 @@ class MAGNUM_TEXT_EXPORT AbstractFontConverter: public PluginManager::AbstractPl
virtual Containers : : Array < unsigned char > doExportGlyphCacheToSingleData ( GlyphCache & cache ) const ;
/**
* @ brief Implementation for exportGlyphCacheToFile ( )
* @ brief Implementation for @ ref exportGlyphCacheToFile ( )
*
* If @ ref Feature " Feature::ConvertData " is supported , default
* implementation calls doExportGlyphCacheToData ( ) and saves the result
* to given file ( s ) .
* If @ ref Feature : : ConvertData is supported , default implementation
* calls @ ref doExportGlyphCacheToData ( ) and saves the result to given
* file ( s ) .
*/
virtual bool doExportGlyphCacheToFile ( GlyphCache & cache , const std : : string & filename ) const ;
/**
* @ brief Implementation for importGlyphCacheFromData ( )
* @ brief Implementation for @ ref importGlyphCacheFromData ( )
*
* If the plugin doesn ' t have @ ref Feature " Feature::MultiFile " ,
* default implementation calls doImportGlyphCacheFromSingleData ( ) .
* If the plugin doesn ' t have @ ref Feature : : MultiFile , default
* implementation calls @ ref doImportGlyphCacheFromSingleData ( ) .
*/
virtual GlyphCache * doImportGlyphCacheFromData ( const std : : vector < std : : pair < std : : string , Containers : : ArrayReference < const unsigned char > > > & data ) const ;
@ -321,12 +332,11 @@ class MAGNUM_TEXT_EXPORT AbstractFontConverter: public PluginManager::AbstractPl
virtual GlyphCache * doImportGlyphCacheFromSingleData ( Containers : : ArrayReference < const unsigned char > data ) const ;
/**
* @ brief Implementation for importGlyphCacheFromFile ( )
* @ brief Implementation for @ ref importGlyphCacheFromFile ( )
*
* If @ ref Feature " Feature::ConvertData " is supported and the plugin
* doesn ' t have @ ref Feature " Feature::MultiFile " , default
* implementation opens the file and calls doImportGlyphCacheFromSingleData ( )
* with its contents .
* If @ ref Feature : : ConvertData is supported and the plugin doesn ' t
* have @ ref Feature : : MultiFile , default implementation opens the file
* and calls @ ref doImportGlyphCacheFromSingleData ( ) with its contents .
*/
virtual GlyphCache * doImportGlyphCacheFromFile ( const std : : string & filename ) const ;