Android FontHost cannot use FontMgr yet.
git-svn-id: http://skia.googlecode.com/svn/trunk@12221 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
e0f04689c8
commit
451b5962c9
@ -446,6 +446,7 @@
|
|||||||
{
|
{
|
||||||
'defines': [
|
'defines': [
|
||||||
'SK_BUILD_FOR_ANDROID',
|
'SK_BUILD_FOR_ANDROID',
|
||||||
|
'SK_FONTHOST_DOES_NOT_USE_FONTMGR',
|
||||||
],
|
],
|
||||||
'configurations': {
|
'configurations': {
|
||||||
'Debug': {
|
'Debug': {
|
||||||
|
@ -208,6 +208,8 @@ SkFontMgr* SkFontMgr::RefDefault() {
|
|||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef SK_FONTHOST_DOES_NOT_USE_FONTMGR
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
static SkFontStyle TypefaceStyleBitsToFontStyle(SkTypeface::Style styleBits) {
|
static SkFontStyle TypefaceStyleBitsToFontStyle(SkTypeface::Style styleBits) {
|
||||||
SkFontStyle::Weight weight = (styleBits & SkTypeface::kBold) ?
|
SkFontStyle::Weight weight = (styleBits & SkTypeface::kBold) ?
|
||||||
@ -248,3 +250,5 @@ SkTypeface* SkFontHost::CreateTypefaceFromStream(SkStream* stream) {
|
|||||||
SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault());
|
SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault());
|
||||||
return fm->createFromStream(stream);
|
return fm->createFromStream(stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -930,6 +930,5 @@ SkTypeface* SkCreateTypefaceForScript(HB_Script script, SkTypeface::Style style,
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
SkFontMgr* SkFontMgr::Factory() {
|
SkFontMgr* SkFontMgr::Factory() {
|
||||||
SkFontConfigInterface* fci = SkFontConfigInterface::GetSingletonDirectInterface();
|
return NULL;
|
||||||
return fci ? SkNEW_ARGS(SkFontMgr_fontconfig, (fci)) : NULL;
|
|
||||||
}
|
}
|
||||||
|
@ -124,6 +124,45 @@ SkTypeface* FontConfigTypeface::LegacyCreateTypeface(
|
|||||||
return face;
|
return face;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef SK_FONTHOST_DOES_NOT_USE_FONTMGR
|
||||||
|
|
||||||
|
SkTypeface* SkFontHost::CreateTypeface(const SkTypeface* familyFace,
|
||||||
|
const char familyName[],
|
||||||
|
SkTypeface::Style style) {
|
||||||
|
return FontConfigTypeface::LegacyCreateTypeface(familyFace, familyName,
|
||||||
|
style);
|
||||||
|
}
|
||||||
|
|
||||||
|
SkTypeface* SkFontHost::CreateTypefaceFromStream(SkStream* stream) {
|
||||||
|
if (!stream) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
const size_t length = stream->getLength();
|
||||||
|
if (!length) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (length >= 1024 * 1024 * 1024) {
|
||||||
|
return NULL; // don't accept too large fonts (>= 1GB) for safety.
|
||||||
|
}
|
||||||
|
|
||||||
|
// ask freetype for reported style and if it is a fixed width font
|
||||||
|
SkTypeface::Style style = SkTypeface::kNormal;
|
||||||
|
bool isFixedWidth = false;
|
||||||
|
if (!find_name_and_attributes(stream, NULL, &style, &isFixedWidth)) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
SkTypeface* face = SkNEW_ARGS(FontConfigTypeface, (style, isFixedWidth, stream));
|
||||||
|
return face;
|
||||||
|
}
|
||||||
|
|
||||||
|
SkTypeface* SkFontHost::CreateTypefaceFromFile(const char path[]) {
|
||||||
|
SkAutoTUnref<SkStream> stream(SkStream::NewFromFile(path));
|
||||||
|
return stream.get() ? CreateTypefaceFromStream(stream) : NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
SkStream* FontConfigTypeface::onOpenStream(int* ttcIndex) const {
|
SkStream* FontConfigTypeface::onOpenStream(int* ttcIndex) const {
|
||||||
|
Loading…
Reference in New Issue
Block a user