diff options
-rw-r--r-- | bench/RecordingBench.cpp | 15 | ||||
-rw-r--r-- | bench/RecordingBench.h | 3 |
2 files changed, 13 insertions, 5 deletions
diff --git a/bench/RecordingBench.cpp b/bench/RecordingBench.cpp index 030bcc8415..d8034ce5d5 100644 --- a/bench/RecordingBench.cpp +++ b/bench/RecordingBench.cpp @@ -13,13 +13,20 @@ RecordingBench::RecordingBench(const char* name, const SkPicture* pic, bool useBBH, bool lite) : fName(name) - , fUseBBH(useBBH) - , fLite(lite) { + , fUseBBH(useBBH) { // Flatten the source picture in case it's trivially nested (useless for timing). SkPictureRecorder rec; pic->playback(rec.beginRecording(pic->cullRect(), nullptr, SkPictureRecorder::kPlaybackDrawPicture_RecordFlag)); fSrc = rec.finishRecordingAsPicture(); + + // If we're recording into an SkLiteDL, also record _from_ one. + if (lite) { + fDL = SkLiteDL::New(pic->cullRect()); + SkLiteRecorder r; + r.reset(fDL.get()); + fSrc->playback(&r); + } } const char* RecordingBench::onGetName() { @@ -36,12 +43,12 @@ SkIPoint RecordingBench::onGetSize() { } void RecordingBench::onDraw(int loops, SkCanvas*) { - if (fLite) { + if (fDL) { SkLiteRecorder rec; while (loops --> 0) { sk_sp<SkLiteDL> dl = SkLiteDL::New(fSrc->cullRect()); rec.reset(dl.get()); - fSrc->playback(&rec); + fDL->draw(&rec); dl->makeThreadsafe(); } diff --git a/bench/RecordingBench.h b/bench/RecordingBench.h index a5793b3ac9..8e0e12ee96 100644 --- a/bench/RecordingBench.h +++ b/bench/RecordingBench.h @@ -10,6 +10,7 @@ #include "Benchmark.h" #include "SkPicture.h" +#include "SkLiteDL.h" class RecordingBench : public Benchmark { public: @@ -24,8 +25,8 @@ protected: private: sk_sp<const SkPicture> fSrc; SkString fName; + sk_sp<SkLiteDL> fDL; bool fUseBBH; - bool fLite; typedef Benchmark INHERITED; }; |