Index: experimental/tools/PageCachingDocument.cpp |
diff --git a/experimental/tools/PageCachingDocument.cpp b/experimental/tools/PageCachingDocument.cpp |
deleted file mode 100644 |
index 9baf45c72169e89b7ebada9ad00f65915ecfe5e7..0000000000000000000000000000000000000000 |
--- a/experimental/tools/PageCachingDocument.cpp |
+++ /dev/null |
@@ -1,98 +0,0 @@ |
-/* |
- * Copyright 2014 Google Inc. |
- * |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
- |
-#include "PageCachingDocument.h" |
-#include "SkCanvas.h" |
-#include "SkDocument.h" |
-#include "SkPictureRecorder.h" |
-#include "SkRect.h" |
-#include "SkTDArray.h" |
- |
-namespace { |
- |
-typedef void (*DoneProc)(SkWStream*, bool); |
-typedef SkData* (*Encoder)(size_t*, const SkBitmap&); |
- |
-// This class allows us to compare the relative memory consumption of |
-// the PDF and SkPicture backends. |
-class PageCachingDocument : public SkDocument { |
-public: |
- PageCachingDocument(SkWStream*, DoneProc, Encoder, SkScalar rasterDpi); |
- virtual ~PageCachingDocument(); |
- virtual SkCanvas* onBeginPage(SkScalar width, |
- SkScalar height, |
- const SkRect& content) override; |
- void onEndPage() override; |
- bool onClose(SkWStream*) override; |
- void onAbort() override; |
- |
-private: |
- struct Page { |
- SkScalar fWidth; |
- SkScalar fHeight; |
- SkAutoTUnref<SkPicture> fPic; |
- }; |
- SkPictureRecorder fRecorder; |
- SkTDArray<Page> fPages; |
- Encoder fEncoder; |
- SkScalar fRasterDpi; |
-}; |
- |
-PageCachingDocument::PageCachingDocument(SkWStream* stream, |
- DoneProc done, |
- Encoder encoder, |
- SkScalar rasterDpi) |
- : SkDocument(stream, done), fEncoder(encoder), fRasterDpi(rasterDpi) { |
-} |
- |
-PageCachingDocument::~PageCachingDocument() { |
- for (Page* p = fPages.begin(); p != fPages.end(); ++p) { |
- p->~Page(); |
- } |
-} |
- |
-SkCanvas* PageCachingDocument::onBeginPage(SkScalar width, |
- SkScalar height, |
- const SkRect& content) { |
- Page* page = fPages.push(); |
- sk_bzero(page, sizeof(*page)); |
- page->fWidth = width; |
- page->fHeight = height; |
- SkASSERT(!page->fPic.get()); |
- SkCanvas* canvas = fRecorder.beginRecording(content); |
- return canvas; |
-} |
- |
-void PageCachingDocument::onEndPage() { |
- SkASSERT(fPages.count() > 0); |
- SkASSERT(!fPages[fPages.count() - 1].fPic); |
- fPages[fPages.count() - 1].fPic.reset(fRecorder.endRecording()); |
-} |
- |
-bool PageCachingDocument::onClose(SkWStream* stream) { |
- SkAutoTUnref<SkDocument> doc( |
- SkDocument::CreatePDF(stream, NULL, fEncoder, fRasterDpi)); |
- for (Page* page = fPages.begin(); page != fPages.end(); ++page) { |
- SkRect cullRect = page->fPic->cullRect(); |
- SkCanvas* canvas = |
- doc->beginPage(page->fWidth, page->fHeight, &cullRect); |
- canvas->drawPicture(page->fPic); |
- doc->endPage(); |
- } |
- return doc->close(); |
-} |
- |
-void PageCachingDocument::onAbort() { |
-} |
-} // namespace |
- |
-SkDocument* CreatePageCachingDocument(SkWStream* stream, |
- DoneProc done, |
- Encoder encoder, |
- SkScalar rasterDpi) { |
- return SkNEW_ARGS(PageCachingDocument, (stream, done, encoder, rasterDpi)); |
-} |