aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental
diff options
context:
space:
mode:
authorGravatar edisonn@google.com <edisonn@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-07-11 14:50:12 +0000
committerGravatar edisonn@google.com <edisonn@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-07-11 14:50:12 +0000
commit1310238d828c9fc9285875a7cc2185d5b53faa4b (patch)
treecc735e983749958904d9c4c373b50781ecf4608a /experimental
parentd1a874aaa820e32590c5046fe13267b3a132263b (diff)
pdfviewer: render in the same way regadless if we write the result to a file or not.
Review URL: https://codereview.chromium.org/18503013 git-svn-id: http://skia.googlecode.com/svn/trunk@10008 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'experimental')
-rw-r--r--experimental/PdfViewer/pdf_viewer_main.cpp21
1 files changed, 7 insertions, 14 deletions
diff --git a/experimental/PdfViewer/pdf_viewer_main.cpp b/experimental/PdfViewer/pdf_viewer_main.cpp
index 14c29ca9b9..a28e56197f 100644
--- a/experimental/PdfViewer/pdf_viewer_main.cpp
+++ b/experimental/PdfViewer/pdf_viewer_main.cpp
@@ -28,7 +28,6 @@ DEFINE_double(DPI, 72, "DPI to be used for rendering (scale).");
// TODO(edisonn): add config for device target(gpu, raster, pdf), + ability not to render at all
// TODO(edisonn): add ability to do the op N times, bench (either load N times, render n times or load + render n times)
-
/**
* Given list of directories and files to use as input, expects to find .pdf
* files and it will convert them to .png files writing them in the same directory
@@ -98,23 +97,13 @@ static void setup_bitmap(SkBitmap* bitmap, int width, int height, SkColor color
* @param page -1 means there is only one page (0), and render in a file without page extension
*/
+extern "C" SkBitmap* gDumpBitmap;
+extern "C" SkCanvas* gDumpCanvas;
+
static bool render_page(const SkString& outputDir,
const SkString& inputFilename,
const SkPdfRenderer& renderer,
int page) {
- if (outputDir.isEmpty()) {
- SkBitmap bitmap;
- setup_bitmap(&bitmap, 1, 1);
- SkAutoTUnref<SkDevice> device(SkNEW_ARGS(SkDevice, (bitmap)));
- SkCanvas canvas(device);
- return renderer.renderPage(page < 0 ? 0 : page, &canvas);
- }
-
- SkString outputPath;
- if (!make_output_filepath(&outputPath, outputDir, inputFilename, page)) {
- return false;
- }
-
SkRect rect = renderer.MediaBox(page < 0 ? 0 :page);
SkBitmap bitmap;
@@ -131,6 +120,10 @@ static bool render_page(const SkString& outputDir,
gDumpCanvas = &canvas;
renderer.renderPage(page < 0 ? 0 : page, &canvas);
+ SkString outputPath;
+ if (!make_output_filepath(&outputPath, outputDir, inputFilename, page)) {
+ return false;
+ }
SkImageEncoder::EncodeFile(outputPath.c_str(), bitmap, SkImageEncoder::kPNG_Type, 100);
if (FLAGS_showMemoryUsage) {