/*
* 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);
}