skia2/include/ports/SkFontMgr_android.h
bungeman 7fa87cd09f Add factory for Android font manager.
This allows users to create an Android font manager with their own set
of fonts, or augment the system set. This will allow for removal of
the current globals which are used for a similar, but more constained,
purpose.

BUG=skia:2817,skia:3314,chromium:407340

Review URL: https://codereview.chromium.org/887113002
2015-02-06 07:59:19 -08:00

41 lines
1.3 KiB
C++

/*
* Copyright 2015 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SkFontMgr_android_DEFINED
#define SkFontMgr_android_DEFINED
#include "SkTypes.h"
class SkFontMgr;
struct SkFontMgr_Android_CustomFonts {
/** When specifying custom fonts, indicates how to use system fonts. */
enum SystemFontUse {
kOnlyCustom, /** Use only custom fonts. NDK compliant. */
kPreferCustom, /** Use custom fonts before system fonts. */
kPreferSystem /** Use system fonts before custom fonts. */
};
/** Whether or not to use system fonts. */
SystemFontUse fSystemFontUse;
/** Base path to resolve relative font file names. If a directory, should end with '/'. */
const char* fBasePath;
/** Optional custom configuration file to use. */
const char* fFontsXml;
/** Optional custom configuration file for fonts which provide fallback.
* In the new style (version > 21) fontsXml format is used, this should be NULL.
*/
const char* fFallbackFontsXml;
};
/** Create a font manager for Android. If 'custom' is NULL, use only system fonts. */
SK_API SkFontMgr* SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom);
#endif // SkFontMgr_android_DEFINED