diff options
author | Nathaniel Nifong <nifong@google.com> | 2020-02-04 17:48:20 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-02-04 17:48:20 +0000 |
commit | 73420dd351fc96d0a5bc8e8621944055c3570d27 (patch) | |
tree | 6d9d584c06ade44afe066244be587e769d1d65f3 /libs/hwui/pipeline/skia/SkiaPipeline.cpp | |
parent | be15e3e218900f5df0ce96a3dcff8843bcc111f5 (diff) | |
parent | 429fff4bcc73be620e9eb8ee1269963fa3fd2dc8 (diff) |
Merge "Provide a typeface proc during SKP serialization that forces typefaces to be written."
Diffstat (limited to 'libs/hwui/pipeline/skia/SkiaPipeline.cpp')
-rw-r--r-- | libs/hwui/pipeline/skia/SkiaPipeline.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/hwui/pipeline/skia/SkiaPipeline.cpp b/libs/hwui/pipeline/skia/SkiaPipeline.cpp index b940cff04713..6f4af3d26b3a 100644 --- a/libs/hwui/pipeline/skia/SkiaPipeline.cpp +++ b/libs/hwui/pipeline/skia/SkiaPipeline.cpp @@ -24,6 +24,7 @@ #include <SkOverdrawColorFilter.h> #include <SkPicture.h> #include <SkPictureRecorder.h> +#include <SkTypeface.h> #include <SkSerialProcs.h> #include "LightingInfo.h" #include "VectorDrawable.h" @@ -264,6 +265,9 @@ bool SkiaPipeline::setupMultiFrameCapture() { SkSerialProcs procs; procs.fImageProc = SkSharingSerialContext::serializeImage; procs.fImageCtx = mSerialContext.get(); + procs.fTypefaceProc = [](SkTypeface* tf, void* ctx){ + return tf->serialize(SkTypeface::SerializeBehavior::kDoIncludeData); + }; // SkDocuments don't take owership of the streams they write. // we need to keep it until after mMultiPic.close() // procs is passed as a pointer, but just as a method of having an optional default. @@ -405,6 +409,10 @@ void SkiaPipeline::endCapture(SkSurface* surface) { std::invoke(mPictureCapturedCallback, std::move(picture)); } else { // single frame skp to file + SkSerialProcs procs; + procs.fTypefaceProc = [](SkTypeface* tf, void* ctx){ + return tf->serialize(SkTypeface::SerializeBehavior::kDoIncludeData); + }; auto data = picture->serialize(); savePictureAsync(data, mCapturedFile); mCaptureSequence = 0; |