OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #ifdef SAMPLE_PDF_FILE_VIEWER | 9 #ifdef SAMPLE_PDF_FILE_VIEWER |
10 | 10 |
(...skipping 19 matching lines...) Expand all Loading... |
30 #include "SkXfermode.h" | 30 #include "SkXfermode.h" |
31 | 31 |
32 #include "SkPdfRenderer.h" | 32 #include "SkPdfRenderer.h" |
33 | 33 |
34 class PdfFileViewer : public SampleView { | 34 class PdfFileViewer : public SampleView { |
35 private: | 35 private: |
36 SkString fFilename; | 36 SkString fFilename; |
37 SkPicture* fPicture; // TODO(edisonn): multiple pages, one page / picture,
make it an array | 37 SkPicture* fPicture; // TODO(edisonn): multiple pages, one page / picture,
make it an array |
38 | 38 |
39 static SkPicture* LoadPdf(const char path[]) { | 39 static SkPicture* LoadPdf(const char path[]) { |
40 SkPicture* pic = NULL; | 40 SkAutoTDelete<SkPdfRenderer> renderer(SkPdfRenderer::CreateFromFile(path
)); |
| 41 if (NULL == renderer.get()) { |
| 42 return NULL; |
| 43 } |
41 | 44 |
42 SkPdfRenderer renderer; | 45 SkPicture* pic = SkNEW(SkPicture); |
43 SkString skpath; | 46 SkCanvas* canvas = pic->beginRecording((int) renderer->MediaBox(0).width
(), |
44 skpath.append(path); | 47 (int) renderer->MediaBox(0).heigh
t()); |
45 renderer.load(skpath); | 48 renderer->renderPage(0, canvas, renderer->MediaBox(0)); |
46 if (renderer.loaded()) { | 49 pic->endRecording(); |
47 pic = SkNEW(SkPicture); | |
48 SkCanvas* canvas = pic->beginRecording((int)renderer.MediaBox(0).wid
th(), (int)renderer.MediaBox(0).height()); | |
49 renderer.renderPage(0, canvas, renderer.MediaBox(0)); | |
50 pic->endRecording(); | |
51 } | |
52 return pic; | 50 return pic; |
53 } | 51 } |
54 | 52 |
55 public: | 53 public: |
56 PdfFileViewer(const char name[] = NULL) : fFilename(name) { | 54 PdfFileViewer(const char name[] = NULL) : fFilename(name) { |
57 fPicture = NULL; | 55 fPicture = NULL; |
58 } | 56 } |
59 | 57 |
60 virtual ~PdfFileViewer() { | 58 virtual ~PdfFileViewer() { |
61 SkSafeUnref(fPicture); | 59 SkSafeUnref(fPicture); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 } | 98 } |
101 | 99 |
102 ////////////////////////////////////////////////////////////////////////////// | 100 ////////////////////////////////////////////////////////////////////////////// |
103 | 101 |
104 #if 0 | 102 #if 0 |
105 static SkView* MyFactory() { return new PdfFileViewer; } | 103 static SkView* MyFactory() { return new PdfFileViewer; } |
106 static SkViewRegister reg(MyFactory); | 104 static SkViewRegister reg(MyFactory); |
107 #endif | 105 #endif |
108 | 106 |
109 #endif // SAMPLE_PDF_FILE_VIEWER | 107 #endif // SAMPLE_PDF_FILE_VIEWER |
OLD | NEW |