Index: dm/DMSrcSink.cpp |
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp |
index 31e15741910bcf382a298d97148e9ff449b9b910..638af13b7b5c00f03e34a283b04aa5a3ef1d82c2 100644 |
--- a/dm/DMSrcSink.cpp |
+++ b/dm/DMSrcSink.cpp |
@@ -21,6 +21,8 @@ |
#include "SkImageGenerator.h" |
#include "SkImageGeneratorCG.h" |
#include "SkImageGeneratorWIC.h" |
+#include "SkLiteDL.h" |
+#include "SkLiteRecorder.h" |
#include "SkMallocPixelRef.h" |
#include "SkMultiPictureDraw.h" |
#include "SkNullCanvas.h" |
@@ -1613,15 +1615,18 @@ |
Error ViaLite::draw(const Src& src, SkBitmap* bitmap, SkWStream* stream, SkString* log) const { |
auto size = src.size(); |
+ SkRect bounds = {0,0, (SkScalar)size.width(), (SkScalar)size.height()}; |
return draw_to_canvas(fSink, bitmap, stream, log, size, [&](SkCanvas* canvas) -> Error { |
- SkPictureRecorder_Lite recorder; |
- Error err = src.draw(recorder.beginRecording(SkIntToScalar(size.width()), |
- SkIntToScalar(size.height()))); |
+ sk_sp<SkLiteDL> dl = SkLiteDL::New(bounds); |
+ |
+ SkLiteRecorder rec; |
+ rec.reset(dl.get()); |
+ |
+ Error err = src.draw(&rec); |
if (!err.isEmpty()) { |
return err; |
} |
- sk_sp<SkDrawable> dl = recorder.finishRecordingAsDrawable(); |
- canvas->drawDrawable(dl.get()); |
+ dl->draw(canvas); |
return check_against_reference(bitmap, src, fSink); |
}); |
} |