27 std::vector<SkTextBlobTrace::Record> trace;
29 uint32_t typefaceCount;
30 if (!stream->readU32(&typefaceCount)) {
34 std::vector<sk_sp<SkTypeface>> typefaceArray;
35 for (uint32_t i = 0; i < typefaceCount; i++) {
40 if (!stream->readU32(&restOfFile)) {
45 readBuffer.setTypefaceArray(typefaceArray.data(), typefaceArray.size());
47 while (!readBuffer.eof()) {
50 record.
paint = readBuffer.readPaint();
51 readBuffer.readPoint(&record.
offset);
53 trace.push_back(std::move(record));
61 const SkPaint& p = record.paint;
63 || p.getMaskFilter() !=
nullptr
64 || p.getPathEffect() !=
nullptr;
67 blob->
uniqueID(), record.offset.x(), record.offset.y(), weirdPaint);
70 while (!iter.
done()) {
73 SkDebugf(
"Font %u %g %g %g %d %d %d\n ",
74 font.getTypeface()->uniqueID(),
79 (
int)font.getEdging(),
80 (
int)font.getHinting());
83 for (uint32_t i = 0; i < glyphCount; i++) {
static void Flatten(const SkTextBlob &, SkWriteBuffer &)
static sk_sp< SkTextBlob > MakeFromBuffer(SkReadBuffer &)
const uint16_t * glyphs() const
uint32_t glyphCount() const
const SkFont & font() const
void capture(const sktext::GlyphRunList &, const SkPaint &)
void dump(SkWStream *dst=nullptr) const
uint32_t uniqueID() const
const SkTextBlob * blob() const
std::vector< SkTextBlobTrace::Record > CreateBlobTrace(SkStream *stream, sk_sp< SkFontMgr > lastResortMgr)
void DumpTrace(const std::vector< SkTextBlobTrace::Record > &)