SkRemoteGlyphCache Add tracing to diff canvas
Use `extra_cflags=["-DSK_CAPTURE_DRAW_TEXT_BLOB"]` to enable.
Change-Id: I1d6db478ee91696cdce090647b889c17a83a2718
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250259
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Herb Derby <herb@google.com>
diff --git a/tests/SkRemoteGlyphCacheTest.cpp b/tests/SkRemoteGlyphCacheTest.cpp
index 7ffc68a..51dd5b5 100644
--- a/tests/SkRemoteGlyphCacheTest.cpp
+++ b/tests/SkRemoteGlyphCacheTest.cpp
@@ -93,7 +93,7 @@
SkAutoMutexExclusive l(fMutex);
for (uint32_t i = 0; i <= SkStrikeClient::CacheMissType::kLast; ++i) {
- if (fCacheMissCount[i] > 0) return true;
+ if (fCacheMissCount[i] > 0) { return true; }
}
return false;
}
@@ -211,7 +211,19 @@
auto props = FindSurfaceProps(ctxInfo.grContext());
SkTextBlobCacheDiffCanvas cache_diff_canvas(10, 10, props, &server,
ctxInfo.grContext()->supportsDistanceFieldText());
+ #ifdef SK_CAPTURE_DRAW_TEXT_BLOB
+ {
+ SkDynamicMemoryWStream wStream;
+ server.fCapture.reset(new SkTextBlobTrace::Capture);
+ cache_diff_canvas.drawTextBlob(serverBlob.get(), 0, 0, paint);
+ server.fCapture->dump(&wStream);
+ std::unique_ptr<SkStreamAsset> stream = wStream.detachAsStream();
+ std::vector<SkTextBlobTrace::Record> trace = SkTextBlobTrace::CreateBlobTrace(stream.get());
+ REPORTER_ASSERT(reporter, trace.size() == 1);
+ }
+ #else
cache_diff_canvas.drawTextBlob(serverBlob.get(), 0, 0, paint);
+ #endif
std::vector<uint8_t> serverStrikeData;
server.writeStrikeData(&serverStrikeData);