1/*
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
8#include "SkPaint.h"
9
10#include "SkSemaphore.h"
11#include "SkTypeface_remote.h"
12#include <iostream>
13
14SkScalerContextProxy::SkScalerContextProxy(
15        sk_sp<SkTypeface> tf,
16        const SkScalerContextEffects& effects,
17        const SkDescriptor* desc,
18        SkRemoteScalerContext* rsc)
19    : SkScalerContext{std::move(tf), effects, desc}
20    , fRemote{rsc} {}
21
22void SkScalerContextProxy::generateMetrics(SkGlyph* glyph) {
23    fRemote->generateMetrics(*this->typefaceProxy(), this->getRec(), glyph);
24}
25
26void SkScalerContextProxy::generateImage(const SkGlyph& glyph) {
27    fRemote->generateImage(*this->typefaceProxy(), this->getRec(), glyph);
28}
29
30void SkScalerContextProxy::generatePath(SkGlyphID glyphID, SkPath* path) {
31    fRemote->generatePath(*this->typefaceProxy(), this->getRec(), glyphID, path);
32}
33
34void SkScalerContextProxy::generateFontMetrics(SkPaint::FontMetrics* metrics) {
35    fRemote->generateFontMetrics(*this->typefaceProxy(), this->getRec(), metrics);
36}
37
38SkTypefaceProxy* SkScalerContextProxy::typefaceProxy() {
39    auto up = this->getTypeface();
40    return (SkTypefaceProxy *)up;
41}
42