1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/*
2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2018 Google Inc.
3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot *
4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be
5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file.
6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */
7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkPaint.h"
9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkSemaphore.h"
11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkTypeface_remote.h"
12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include <iostream>
13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team RobotSkScalerContextProxy::SkScalerContextProxy(
15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot        sk_sp<SkTypeface> tf,
16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot        const SkScalerContextEffects& effects,
17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot        const SkDescriptor* desc,
18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot        SkRemoteScalerContext* rsc)
19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    : SkScalerContext{std::move(tf), effects, desc}
20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    , fRemote{rsc} {}
21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotvoid SkScalerContextProxy::generateMetrics(SkGlyph* glyph) {
23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    fRemote->generateMetrics(*this->typefaceProxy(), this->getRec(), glyph);
24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}
25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotvoid SkScalerContextProxy::generateImage(const SkGlyph& glyph) {
27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    fRemote->generateImage(*this->typefaceProxy(), this->getRec(), glyph);
28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}
29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotvoid SkScalerContextProxy::generatePath(SkGlyphID glyphID, SkPath* path) {
31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    fRemote->generatePath(*this->typefaceProxy(), this->getRec(), glyphID, path);
32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}
33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotvoid SkScalerContextProxy::generateFontMetrics(SkPaint::FontMetrics* metrics) {
35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    fRemote->generateFontMetrics(*this->typefaceProxy(), this->getRec(), metrics);
36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}
37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team RobotSkTypefaceProxy* SkScalerContextProxy::typefaceProxy() {
39fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    auto up = this->getTypeface();
40fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    return (SkTypefaceProxy *)up;
41fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}
42