diff options
author | Herb Derby <herb@google.com> | 2018-03-27 14:40:53 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-03-27 21:51:44 +0000 |
commit | 39e45df22d07549cc09760dfc9946734eed17a41 (patch) | |
tree | a8a18e7a2ca40adda7e576466c9b2ecc481d64e1 /src/core/SkRemoteGlyphCache.h | |
parent | d24c32545233692d66bcf658b46aedab381b669c (diff) |
Various cleanup to remote_demo
Integrate SkRemoteGlyphCacheRenderer into SkStrikeServer
Add a Timer.
Remove unused code.
BUG=skia:7515
Change-Id: Idffb477af71cbcc4035df190e29e8910b61aa6e5
Reviewed-on: https://skia-review.googlesource.com/116485
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Diffstat (limited to 'src/core/SkRemoteGlyphCache.h')
-rw-r--r-- | src/core/SkRemoteGlyphCache.h | 66 |
1 files changed, 29 insertions, 37 deletions
diff --git a/src/core/SkRemoteGlyphCache.h b/src/core/SkRemoteGlyphCache.h index 021431e656..a655c74f65 100644 --- a/src/core/SkRemoteGlyphCache.h +++ b/src/core/SkRemoteGlyphCache.h @@ -25,11 +25,13 @@ #include "SkTypeface.h" #include "SkTypeface_remote.h" -class SkTransport { +class SkScalerContextRecDescriptor; + +class SkRemoteStrikeTransport { public: enum IOResult : bool {kFail = false, kSuccess = true}; - virtual ~SkTransport() {} + virtual ~SkRemoteStrikeTransport() {} virtual IOResult write(const void*, size_t) = 0; virtual std::tuple<size_t, IOResult> read(void*, size_t) = 0; IOResult writeSkData(const SkData&); @@ -90,25 +92,6 @@ private: } fDescriptor; }; -class SkRemoteGlyphCacheRenderer { -public: - void prepareSerializeProcs(SkSerialProcs* procs); - - SkScalerContext* generateScalerContext( - const SkScalerContextRecDescriptor& desc, SkFontID typefaceId); - -private: - sk_sp<SkData> encodeTypeface(SkTypeface* tf); - - SkTHashMap<SkFontID, sk_sp<SkTypeface>> fTypefaceMap; - - using DescriptorToContextMap = SkTHashMap<SkScalerContextRecDescriptor, - std::unique_ptr<SkScalerContext>, - SkScalerContextRecDescriptor::Hash>; - - DescriptorToContextMap fScalerContextMap; -}; - class SkStrikeCacheDifferenceSpec { class StrikeDifferences; @@ -145,7 +128,6 @@ private: DescMap fDescMap{16, DescHash(), DescEq()}; }; - class SkTextBlobCacheDiffCanvas : public SkNoDrawCanvas { public: SkTextBlobCacheDiffCanvas(int width, int height, @@ -179,35 +161,45 @@ private: SkStrikeCacheDifferenceSpec* const fStrikeCacheDiff; }; - class SkStrikeServer { public: - SkStrikeServer(SkTransport* transport); + SkStrikeServer(SkRemoteStrikeTransport* transport); - int serve(); - void prepareSerializeProcs(SkSerialProcs* procs) { - fRendererCache.prepareSerializeProcs(procs); - } + // embedding clients call these methods + int serve(); // very negotiable + void prepareSerializeProcs(SkSerialProcs* procs); + + // mostly called internally by Skia + SkScalerContext* generateScalerContext( + const SkScalerContextRecDescriptor& desc, SkFontID typefaceId); private: - SkTransport* const fTransport; - SkRemoteGlyphCacheRenderer fRendererCache; + using DescriptorToContextMap = SkTHashMap<SkScalerContextRecDescriptor, + std::unique_ptr<SkScalerContext>, + SkScalerContextRecDescriptor::Hash>; + + sk_sp<SkData> encodeTypeface(SkTypeface* tf); + + SkRemoteStrikeTransport* const fTransport; + SkTHashMap<SkFontID, sk_sp<SkTypeface>> fTypefaceMap; + DescriptorToContextMap fScalerContextMap; }; class SkStrikeClient { public: - SkStrikeClient(SkTransport*); + SkStrikeClient(SkRemoteStrikeTransport*); + + // embedding clients call these methods + void primeStrikeCache(const SkStrikeCacheDifferenceSpec&); + void prepareDeserializeProcs(SkDeserialProcs* procs); + + // mostly called internally by Skia void generateFontMetrics( const SkTypefaceProxy&, const SkScalerContextRec&, SkPaint::FontMetrics*); void generateMetricsAndImage( const SkTypefaceProxy&, const SkScalerContextRec&, SkArenaAlloc*, SkGlyph*); void generatePath( const SkTypefaceProxy&, const SkScalerContextRec&, SkGlyphID glyph, SkPath* path); - - void primeStrikeCache(const SkStrikeCacheDifferenceSpec&); - - void prepareDeserializeProcs(SkDeserialProcs* procs); - SkTypeface* lookupTypeface(SkFontID id); private: @@ -216,7 +208,7 @@ private: // TODO: Figure out how to manage the entries for the following maps. SkTHashMap<SkFontID, sk_sp<SkTypefaceProxy>> fMapIdToTypeface; - SkTransport* const fTransport; + SkRemoteStrikeTransport* const fTransport; }; #endif // SkRemoteGlyphCache_DEFINED |