| Index: src/ports/SkFontConfigInterface_direct_google3.cpp
|
| diff --git a/src/ports/SkFontConfigInterface_direct_google3.cpp b/src/ports/SkFontConfigInterface_direct_google3.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d3f34d0abcff27407a2f26a51c7f84b5144d5ebc
|
| --- /dev/null
|
| +++ b/src/ports/SkFontConfigInterface_direct_google3.cpp
|
| @@ -0,0 +1,34 @@
|
| +/*
|
| + * Copyright 2009-2015 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +/* migrated from chrome/src/skia/ext/SkFontHost_fontconfig_direct.cpp */
|
| +
|
| +#include "google_font_file_buffering.h"
|
| +
|
| +#include "SkFontConfigInterface_direct_google3.h"
|
| +#include "SkStream.h"
|
| +#include "SkString.h"
|
| +#include "SkTypes.h"
|
| +
|
| +bool SkFontConfigInterfaceDirectGoogle3::isAccessible(const char* filename) {
|
| + // Check if this font has been pre-loaded into memory.
|
| + const char* unused;
|
| + if (GoogleFreeType::GoogleFt2ReadFontFromMemory(filename, &unused) >= 0) {
|
| + return true;
|
| + }
|
| + return this->INHERITED::isAccessible(filename);
|
| +}
|
| +
|
| +SkStreamAsset* SkFontConfigInterfaceDirectGoogle3::openStream(const FontIdentity& identity) {
|
| + const char* c_filename = identity.fString.c_str();
|
| + // Read the system fonts from the fonts we've pre-loaded into memory.
|
| + const char* buffer;
|
| + int length = GoogleFreeType::GoogleFt2ReadFontFromMemory(
|
| + c_filename, &buffer);
|
| + if (length >= 0) return new SkMemoryStream(buffer, length);
|
| + return this->INHERITED::openStream(identity);
|
| +}
|
|
|