diff options
author | Khushal <khushalsagar@chromium.org> | 2018-05-23 15:45:01 -0700 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-05-24 01:11:21 +0000 |
commit | 3e7548ca60d9139b650e1f099e6c724b3711dd81 (patch) | |
tree | b12b2d045d8844214bfac0161676e0994bf93783 /src/core/SkRemoteGlyphCache.h | |
parent | daef06ae3bdf6b61bdd13ed1eeb20f51fbedd763 (diff) |
Reland fonts: Add support for distance field text to font remoting.
This reverts commit 7257e22e43a56a5f4f772b687034580061cd011f.
TBR=herb@google.com, bsalomon@google.com
Bug: skia:7913
Change-Id: I51ca5bccdda64cd98e2ad59874e7136ee58cec10
Reviewed-on: https://skia-review.googlesource.com/129809
Reviewed-by: Khusal Sagar <khushalsagar@chromium.org>
Commit-Queue: Khusal Sagar <khushalsagar@chromium.org>
Diffstat (limited to 'src/core/SkRemoteGlyphCache.h')
-rw-r--r-- | src/core/SkRemoteGlyphCache.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/core/SkRemoteGlyphCache.h b/src/core/SkRemoteGlyphCache.h index 60d880791f..d1119cf70a 100644 --- a/src/core/SkRemoteGlyphCache.h +++ b/src/core/SkRemoteGlyphCache.h @@ -28,6 +28,7 @@ class Serializer; class SkDescriptor; class SkGlyphCache; struct SkPackedGlyphID; +enum SkScalerContextFlags : uint32_t; class SkScalerContextRecDescriptor; class SkTextBlobRunIterator; class SkTypefaceProxy; @@ -51,8 +52,17 @@ using SkDescriptorSet = // which will be serialized and renderered using the SkStrikeClient. class SK_API SkTextBlobCacheDiffCanvas : public SkNoDrawCanvas { public: + struct SK_API Settings { + Settings(); + ~Settings(); + + bool fContextSupportsDistanceFieldText = true; + SkScalar fMinDistanceFieldFontSize = -1.f; + SkScalar fMaxDistanceFieldFontSize = -1.f; + }; SkTextBlobCacheDiffCanvas(int width, int height, const SkMatrix& deviceMatrix, - const SkSurfaceProps& props, SkStrikeServer* strikeserver); + const SkSurfaceProps& props, SkStrikeServer* strikeserver, + Settings settings = Settings()); ~SkTextBlobCacheDiffCanvas() override; protected: @@ -70,10 +80,13 @@ private: const SkTextBlobRunIterator& it, const SkPaint& runPaint); void processGlyphRunForPaths(const SkTextBlobRunIterator& it, const SkPaint& runPaint); + void processGlyphRunForDFT(const SkTextBlobRunIterator& it, const SkPaint& runPaint, + SkScalerContextFlags flags); const SkMatrix fDeviceMatrix; const SkSurfaceProps fSurfaceProps; SkStrikeServer* const fStrikeServer; + const Settings fSettings; }; using SkDiscardableHandleId = uint32_t; @@ -161,7 +174,7 @@ public: }; SkGlyphCacheState* getOrCreateCache(const SkPaint&, const SkSurfaceProps*, const SkMatrix*, - SkScalerContextRec* deviceRec, + SkScalerContextFlags flags, SkScalerContextRec* deviceRec, SkScalerContextEffects* effects); private: |