aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkRemoteGlyphCache.h
diff options
context:
space:
mode:
authorGravatar Khushal <khushalsagar@chromium.org>2018-05-23 15:45:01 -0700
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-05-24 01:11:21 +0000
commit3e7548ca60d9139b650e1f099e6c724b3711dd81 (patch)
treeb12b2d045d8844214bfac0161676e0994bf93783 /src/core/SkRemoteGlyphCache.h
parentdaef06ae3bdf6b61bdd13ed1eeb20f51fbedd763 (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.h17
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: