1/*
2 * Copyright 2020 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#ifndef GrSDFTOptions_DEFINED
9#define GrSDFTOptions_DEFINED
10
11#include "include/core/SkFont.h"
12#include "include/core/SkScalar.h"
13
14class SkMatrix;
15class SkSurfaceProps;
16
17class GrSDFTOptions {
18public:
19 GrSDFTOptions(SkScalar min, SkScalar max);
20
21 bool canDrawAsDistanceFields(const SkPaint&, const SkFont&, const SkMatrix& viewMatrix,
22 const SkSurfaceProps& props,
23 bool contextSupportsDistanceFieldText) const;
24 SkFont getSDFFont(const SkFont& font,
25 const SkMatrix& viewMatrix,
26 SkScalar* textRatio) const;
27 std::pair<SkScalar, SkScalar> computeSDFMinMaxScale(
28 SkScalar textSize, const SkMatrix& viewMatrix) const;
29private:
30 // Below this size (in device space) distance field text will not be used.
31 const SkScalar fMinDistanceFieldFontSize;
32
33 // Above this size (in device space) distance field text will not be used and glyphs will
34 // be rendered from outline as individual paths.
35 const SkScalar fMaxDistanceFieldFontSize;
36};
37
38#endif // GrSDFTOptions_DEFINED
39