diff options
author | Herb Derby <herb@google.com> | 2018-06-20 14:43:23 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-20 20:24:47 +0000 |
commit | 3e36ce6e660ad585c58c5cc5591f23a46fcab767 (patch) | |
tree | 1a63f02ccef4ba8414997378b5dff225750b44a7 /src/core/SkRemoteGlyphCache.cpp | |
parent | b70e3b4831398aff696b9e15ad7e8f581db8aa9d (diff) |
Make SkRemoteGlyphCache tests use private glyph cache
Change-Id: If6aa189f3badc7558ab8ecf71ee3d704b275b20f
Reviewed-on: https://skia-review.googlesource.com/136225
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Diffstat (limited to 'src/core/SkRemoteGlyphCache.cpp')
-rw-r--r-- | src/core/SkRemoteGlyphCache.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/core/SkRemoteGlyphCache.cpp b/src/core/SkRemoteGlyphCache.cpp index fa4767069f..10b1b41cbd 100644 --- a/src/core/SkRemoteGlyphCache.cpp +++ b/src/core/SkRemoteGlyphCache.cpp @@ -734,8 +734,11 @@ private: sk_sp<DiscardableHandleManager> fManager; }; -SkStrikeClient::SkStrikeClient(sk_sp<DiscardableHandleManager> discardableManager, bool isLogging) +SkStrikeClient::SkStrikeClient(sk_sp<DiscardableHandleManager> discardableManager, + bool isLogging, + SkStrikeCache* strikeCache) : fDiscardableHandleManager(std::move(discardableManager)) + , fStrikeCache{strikeCache ? strikeCache : SkStrikeCache::GetGlobalStrikeCache()} , fIsLogging{isLogging} {} SkStrikeClient::~SkStrikeClient() = default; @@ -792,18 +795,19 @@ bool SkStrikeClient::readStrikeData(const volatile void* memory, size_t memorySi SkAutoDescriptor ad; auto* client_desc = auto_descriptor_from_desc(sourceAd.getDesc(), tf->uniqueID(), &ad); - auto strike = SkStrikeCache::FindStrikeExclusive(*client_desc); + auto strike = fStrikeCache->findStrikeExclusive(*client_desc); if (strike == nullptr) { // Note that we don't need to deserialize the effects since we won't be generating any // glyphs here anyway, and the desc is still correct since it includes the serialized // effects. SkScalerContextEffects effects; auto scaler = SkStrikeCache::CreateScalerContext(*client_desc, effects, *tf); - strike = SkStrikeCache::CreateStrikeExclusive( + strike = fStrikeCache->createStrikeExclusive( *client_desc, std::move(scaler), &fontMetrics, skstd::make_unique<DiscardableStrikePinner>(spec.discardableHandleId, fDiscardableHandleManager)); - static_cast<SkScalerContextProxy*>(strike->getScalerContext())->initCache(strike.get()); + auto proxyContext = static_cast<SkScalerContextProxy*>(strike->getScalerContext()); + proxyContext->initCache(strike.get(), fStrikeCache); } size_t glyphImagesCount = 0u; @@ -865,7 +869,7 @@ sk_sp<SkTypeface> SkStrikeClient::deserializeTypeface(const void* buf, size_t le WireTypeface wire; if (len != sizeof(wire)) return nullptr; memcpy(&wire, buf, sizeof(wire)); - return addTypeface(wire); + return this->addTypeface(wire); } sk_sp<SkTypeface> SkStrikeClient::addTypeface(const WireTypeface& wire) { |