/* * Copyright 2018 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "SkTypeface_remote.h" #include "SkRemoteGlyphCache.h" #include "SkPaint.h" SkScalerContextProxy::SkScalerContextProxy(sk_sp tf, const SkScalerContextEffects& effects, const SkDescriptor* desc, SkStrikeClient* rsc) : SkScalerContext{std::move(tf), effects, desc}, fClient{rsc} {} unsigned SkScalerContextProxy::generateGlyphCount() { SK_ABORT("Should never be called."); return 0; } uint16_t SkScalerContextProxy::generateCharToGlyph(SkUnichar) { SK_ABORT("Should never be called."); return 0; } void SkScalerContextProxy::generateAdvance(SkGlyph* glyph) { this->generateMetrics(glyph); } void SkScalerContextProxy::generateMetrics(SkGlyph* glyph) { fClient->generateMetricsAndImage(*this->typefaceProxy(), this->getRec(), &fAlloc, glyph); } void SkScalerContextProxy::generateImage(const SkGlyph& glyph) { } bool SkScalerContextProxy::generatePath(SkGlyphID glyphID, SkPath* path) { fClient->generatePath(*this->typefaceProxy(), this->getRec(), glyphID, path); return false; } void SkScalerContextProxy::generateFontMetrics(SkPaint::FontMetrics* metrics) { fClient->generateFontMetrics(*this->typefaceProxy(), this->getRec(), metrics); } SkTypefaceProxy* SkScalerContextProxy::typefaceProxy() { return SkTypefaceProxy::DownCast(this->getTypeface()); }