blob: 3b58af93663db2eac9cdd8499fe40844c0adab13 [file] [log] [blame]
Mike Kleina8a51ce2018-01-09 12:34:11 -05001/*
2 * Copyright 2018 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
Mike Kleina8a51ce2018-01-09 12:34:11 -05008#include "SkTypeface_remote.h"
Mike Klein8a232022018-05-02 13:54:11 +00009#include "SkRemoteGlyphCache.h"
Khushal101d5632018-05-01 10:49:04 -070010
Khushal38a08432018-05-02 10:29:37 -070011#include "SkPaint.h"
12
13SkScalerContextProxy::SkScalerContextProxy(sk_sp<SkTypeface> tf,
14 const SkScalerContextEffects& effects,
15 const SkDescriptor* desc,
16 SkStrikeClient* rsc)
17 : SkScalerContext{std::move(tf), effects, desc}, fClient{rsc} {}
Herb Derby97be88f2018-03-21 16:23:49 -040018
19unsigned SkScalerContextProxy::generateGlyphCount() {
20 SK_ABORT("Should never be called.");
21 return 0;
22}
23
24uint16_t SkScalerContextProxy::generateCharToGlyph(SkUnichar) {
25 SK_ABORT("Should never be called.");
26 return 0;
27}
28
29void SkScalerContextProxy::generateAdvance(SkGlyph* glyph) {
30 this->generateMetrics(glyph);
31}
Mike Kleina8a51ce2018-01-09 12:34:11 -050032
33void SkScalerContextProxy::generateMetrics(SkGlyph* glyph) {
Herb Derby97be88f2018-03-21 16:23:49 -040034 fClient->generateMetricsAndImage(*this->typefaceProxy(), this->getRec(), &fAlloc, glyph);
Mike Kleina8a51ce2018-01-09 12:34:11 -050035}
36
37void SkScalerContextProxy::generateImage(const SkGlyph& glyph) {
Mike Kleina8a51ce2018-01-09 12:34:11 -050038}
39
Ben Wagner5ddb3082018-03-29 11:18:06 -040040bool SkScalerContextProxy::generatePath(SkGlyphID glyphID, SkPath* path) {
Khushal38a08432018-05-02 10:29:37 -070041 fClient->generatePath(*this->typefaceProxy(), this->getRec(), glyphID, path);
42 return true;
Mike Kleina8a51ce2018-01-09 12:34:11 -050043}
44
45void SkScalerContextProxy::generateFontMetrics(SkPaint::FontMetrics* metrics) {
Herb Derby97be88f2018-03-21 16:23:49 -040046 fClient->generateFontMetrics(*this->typefaceProxy(), this->getRec(), metrics);
Mike Kleina8a51ce2018-01-09 12:34:11 -050047}
48
49SkTypefaceProxy* SkScalerContextProxy::typefaceProxy() {
Herb Derby67c47f22018-02-07 17:47:59 -050050 return SkTypefaceProxy::DownCast(this->getTypeface());
Mike Kleina8a51ce2018-01-09 12:34:11 -050051}