aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkRemoteGlyphCache.h
diff options
context:
space:
mode:
authorGravatar Herb Derby <herb@google.com>2018-03-27 14:40:53 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-03-27 21:51:44 +0000
commit39e45df22d07549cc09760dfc9946734eed17a41 (patch)
treea8a18e7a2ca40adda7e576466c9b2ecc481d64e1 /src/core/SkRemoteGlyphCache.h
parentd24c32545233692d66bcf658b46aedab381b669c (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.h66
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