Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Side by Side Diff: experimental/PdfViewer/SkPdfRenderer.cpp

Issue 22436003: pdfviewer: remove text save/restore (not needed) and verify that colorspace dictionary exists befor… (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkCanvas.h" 8 #include "SkCanvas.h"
9 #include "SkDevice.h" 9 #include "SkDevice.h"
10 #include "SkForceLinking.h" 10 #include "SkForceLinking.h"
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 if (pdfContext->fGraphicsState.fCurFontSize != 0) { 381 if (pdfContext->fGraphicsState.fCurFontSize != 0) {
382 paint.setTextSize(SkDoubleToScalar(pdfContext->fGraphicsState.fCurFontSi ze)); 382 paint.setTextSize(SkDoubleToScalar(pdfContext->fGraphicsState.fCurFontSi ze));
383 } 383 }
384 384
385 // if (fCurFont && fCurFont->GetFontScale() != 0) { 385 // if (fCurFont && fCurFont->GetFontScale() != 0) {
386 // paint.setTextScaleX(SkFloatToScalar(fCurFont->GetFontScale() / 100.0)) ; 386 // paint.setTextScaleX(SkFloatToScalar(fCurFont->GetFontScale() / 100.0)) ;
387 // } 387 // }
388 388
389 pdfContext->fGraphicsState.applyGraphicsState(&paint, false); 389 pdfContext->fGraphicsState.applyGraphicsState(&paint, false);
390 390
391 canvas->save();
392
393 skfont->drawText(decoded, &paint, pdfContext, canvas); 391 skfont->drawText(decoded, &paint, pdfContext, canvas);
394 canvas->restore();
395 392
396 return kOK_PdfResult; 393 return kOK_PdfResult;
397 } 394 }
398 395
399 // TODO(edisonn): create header files with declarations! 396 // TODO(edisonn): create header files with declarations!
400 PdfResult PdfOp_q(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** loo per); 397 PdfResult PdfOp_q(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** loo per);
401 PdfResult PdfOp_Q(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** loo per); 398 PdfResult PdfOp_Q(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** loo per);
402 PdfResult PdfOp_Tw(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** lo oper); 399 PdfResult PdfOp_Tw(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** lo oper);
403 PdfResult PdfOp_Tc(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** lo oper); 400 PdfResult PdfOp_Tc(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** lo oper);
404 401
(...skipping 1169 matching lines...) Expand 10 before | Expand all | Expand 10 after
1574 } 1571 }
1575 return kPartial_PdfResult; // TODO(edisonn): Implement fully DrawText befor e returing OK. 1572 return kPartial_PdfResult; // TODO(edisonn): Implement fully DrawText befor e returing OK.
1576 } 1573 }
1577 1574
1578 static PdfResult PdfOp_CS_cs(PdfContext* pdfContext, SkCanvas* canvas, SkPdfColo rOperator* colorOperator) { 1575 static PdfResult PdfOp_CS_cs(PdfContext* pdfContext, SkCanvas* canvas, SkPdfColo rOperator* colorOperator) {
1579 SkPdfObject* name = pdfContext->fObjectStack.top(); pdfContext->fObjectSt ack.pop(); 1576 SkPdfObject* name = pdfContext->fObjectStack.top(); pdfContext->fObjectSt ack.pop();
1580 1577
1581 //Next, get the ColorSpace Dictionary from the Resource Dictionary: 1578 //Next, get the ColorSpace Dictionary from the Resource Dictionary:
1582 SkPdfDictionary* colorSpaceResource = pdfContext->fGraphicsState.fResources- >ColorSpace(pdfContext->fPdfDoc); 1579 SkPdfDictionary* colorSpaceResource = pdfContext->fGraphicsState.fResources- >ColorSpace(pdfContext->fPdfDoc);
1583 1580
1584 SkPdfObject* colorSpace = pdfContext->fPdfDoc->resolveReference(colorSpaceRe source->get(name)); 1581 SkPdfObject* colorSpace = colorSpaceResource ? pdfContext->fPdfDoc->resolveR eference(colorSpaceResource->get(name)) : name;
1585 1582
1586 if (colorSpace == NULL) { 1583 if (colorSpace == NULL) {
1587 colorOperator->fColorSpace = name->strRef(); 1584 colorOperator->fColorSpace = name->strRef();
1588 } else { 1585 } else {
1589 #ifdef PDF_TRACE 1586 #ifdef PDF_TRACE
1590 printf("CS = %s\n", colorSpace->toString(0, 0).c_str()); 1587 printf("CS = %s\n", colorSpace->toString(0, 0).c_str());
1591 #endif // PDF_TRACE 1588 #endif // PDF_TRACE
1592 if (colorSpace->isName()) { 1589 if (colorSpace->isName()) {
1593 colorOperator->fColorSpace = colorSpace->strRef(); 1590 colorOperator->fColorSpace = colorSpace->strRef();
1594 } else if (colorSpace->isArray()) { 1591 } else if (colorSpace->isArray()) {
(...skipping 1058 matching lines...) Expand 10 before | Expand all | Expand 10 after
2653 2650
2654 rect = SkRect::MakeWH(width, height); 2651 rect = SkRect::MakeWH(width, height);
2655 2652
2656 setup_bitmap(output, (int)SkScalarToDouble(width), (int)SkScalarToDouble(hei ght)); 2653 setup_bitmap(output, (int)SkScalarToDouble(width), (int)SkScalarToDouble(hei ght));
2657 2654
2658 SkAutoTUnref<SkDevice> device(SkNEW_ARGS(SkDevice, (*output))); 2655 SkAutoTUnref<SkDevice> device(SkNEW_ARGS(SkDevice, (*output)));
2659 SkCanvas canvas(device); 2656 SkCanvas canvas(device);
2660 2657
2661 return renderer.renderPage(page, &canvas, rect); 2658 return renderer.renderPage(page, &canvas, rect);
2662 } 2659 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698