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

Side by Side Diff: src/pdf/SkPDFDevice.cpp

Issue 1773033002: SkPDF: use sk_make_sp<T> when it makes sense. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 2016-03-08 (Tuesday) 06:54:33 EST Created 4 years, 9 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
« no previous file with comments | « src/doc/SkDocument_PDF.cpp ('k') | src/pdf/SkPDFFont.cpp » ('j') | 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 2011 Google Inc. 2 * Copyright 2011 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 "SkPDFDevice.h" 8 #include "SkPDFDevice.h"
9 9
10 #include "SkAnnotationKeys.h" 10 #include "SkAnnotationKeys.h"
(...skipping 862 matching lines...) Expand 10 before | Expand all | Expand 10 after
873 SkPDFUtils::ClosePath(&content.entry()->fContent); 873 SkPDFUtils::ClosePath(&content.entry()->fContent);
874 SkPDFUtils::StrokePath(&content.entry()->fContent); 874 SkPDFUtils::StrokePath(&content.entry()->fContent);
875 } 875 }
876 break; 876 break;
877 default: 877 default:
878 SkASSERT(false); 878 SkASSERT(false);
879 } 879 }
880 } 880 }
881 881
882 static SkPDFDict* create_link_annotation(const SkRect& translatedRect) { 882 static SkPDFDict* create_link_annotation(const SkRect& translatedRect) {
883 sk_sp<SkPDFDict> annotation(new SkPDFDict("Annot")); 883 auto annotation = sk_make_sp<SkPDFDict>("Annot");
884 annotation->insertName("Subtype", "Link"); 884 annotation->insertName("Subtype", "Link");
885 885
886 sk_sp<SkPDFArray> border(new SkPDFArray); 886 auto border = sk_make_sp<SkPDFArray>();
887 border->reserve(3); 887 border->reserve(3);
888 border->appendInt(0); // Horizontal corner radius. 888 border->appendInt(0); // Horizontal corner radius.
889 border->appendInt(0); // Vertical corner radius. 889 border->appendInt(0); // Vertical corner radius.
890 border->appendInt(0); // Width, 0 = no border. 890 border->appendInt(0); // Width, 0 = no border.
891 annotation->insertObject("Border", border.release()); 891 annotation->insertObject("Border", border.release());
892 892
893 sk_sp<SkPDFArray> rect(new SkPDFArray); 893 auto rect = sk_make_sp<SkPDFArray>();
894 rect->reserve(4); 894 rect->reserve(4);
895 rect->appendScalar(translatedRect.fLeft); 895 rect->appendScalar(translatedRect.fLeft);
896 rect->appendScalar(translatedRect.fTop); 896 rect->appendScalar(translatedRect.fTop);
897 rect->appendScalar(translatedRect.fRight); 897 rect->appendScalar(translatedRect.fRight);
898 rect->appendScalar(translatedRect.fBottom); 898 rect->appendScalar(translatedRect.fBottom);
899 annotation->insertObject("Rect", rect.release()); 899 annotation->insertObject("Rect", rect.release());
900 900
901 return annotation.release(); 901 return annotation.release();
902 } 902 }
903 903
904 static SkPDFDict* create_link_to_url(const SkData* urlData, const SkRect& r) { 904 static SkPDFDict* create_link_to_url(const SkData* urlData, const SkRect& r) {
905 sk_sp<SkPDFDict> annotation(create_link_annotation(r)); 905 sk_sp<SkPDFDict> annotation(create_link_annotation(r));
906 906
907 SkString url(static_cast<const char *>(urlData->data()), 907 SkString url(static_cast<const char *>(urlData->data()),
908 urlData->size() - 1); 908 urlData->size() - 1);
909 sk_sp<SkPDFDict> action(new SkPDFDict("Action")); 909 auto action = sk_make_sp<SkPDFDict>("Action");
910 action->insertName("S", "URI"); 910 action->insertName("S", "URI");
911 action->insertString("URI", url); 911 action->insertString("URI", url);
912 annotation->insertObject("A", action.release()); 912 annotation->insertObject("A", action.release());
913 return annotation.release(); 913 return annotation.release();
914 } 914 }
915 915
916 static SkPDFDict* create_link_named_dest(const SkData* nameData, 916 static SkPDFDict* create_link_named_dest(const SkData* nameData,
917 const SkRect& r) { 917 const SkRect& r) {
918 sk_sp<SkPDFDict> annotation(create_link_annotation(r)); 918 sk_sp<SkPDFDict> annotation(create_link_annotation(r));
919 SkString name(static_cast<const char *>(nameData->data()), 919 SkString name(static_cast<const char *>(nameData->data()),
(...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after
1441 SkPath shape; 1441 SkPath shape;
1442 shape.addRect(SkRect::MakeXYWH(SkIntToScalar(x), SkIntToScalar(y), 1442 shape.addRect(SkRect::MakeXYWH(SkIntToScalar(x), SkIntToScalar(y),
1443 SkIntToScalar(device->width()), 1443 SkIntToScalar(device->width()),
1444 SkIntToScalar(device->height()))); 1444 SkIntToScalar(device->height())));
1445 content.setShape(shape); 1445 content.setShape(shape);
1446 } 1446 }
1447 if (!content.needSource()) { 1447 if (!content.needSource()) {
1448 return; 1448 return;
1449 } 1449 }
1450 1450
1451 sk_sp<SkPDFFormXObject> xObject(new SkPDFFormXObject(pdfDevice)); 1451 auto xObject = sk_make_sp<SkPDFFormXObject>(pdfDevice);
1452 SkPDFUtils::DrawFormXObject(this->addXObjectResource(xObject.get()), 1452 SkPDFUtils::DrawFormXObject(this->addXObjectResource(xObject.get()),
1453 &content.entry()->fContent); 1453 &content.entry()->fContent);
1454 1454
1455 // Merge glyph sets from the drawn device. 1455 // Merge glyph sets from the drawn device.
1456 fFontGlyphUsage->merge(pdfDevice->getFontGlyphUsage()); 1456 fFontGlyphUsage->merge(pdfDevice->getFontGlyphUsage());
1457 } 1457 }
1458 1458
1459 SkImageInfo SkPDFDevice::imageInfo() const { 1459 SkImageInfo SkPDFDevice::imageInfo() const {
1460 return fLegacyBitmap.info(); 1460 return fLegacyBitmap.info();
1461 } 1461 }
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1520 &fonts); 1520 &fonts);
1521 } 1521 }
1522 1522
1523 const SkTDArray<SkPDFFont*>& SkPDFDevice::getFontResources() const { 1523 const SkTDArray<SkPDFFont*>& SkPDFDevice::getFontResources() const {
1524 return fFontResources; 1524 return fFontResources;
1525 } 1525 }
1526 1526
1527 SkPDFArray* SkPDFDevice::copyMediaBox() const { 1527 SkPDFArray* SkPDFDevice::copyMediaBox() const {
1528 // should this be a singleton? 1528 // should this be a singleton?
1529 1529
1530 sk_sp<SkPDFArray> mediaBox(new SkPDFArray); 1530 auto mediaBox = sk_make_sp<SkPDFArray>();
1531 mediaBox->reserve(4); 1531 mediaBox->reserve(4);
1532 mediaBox->appendInt(0); 1532 mediaBox->appendInt(0);
1533 mediaBox->appendInt(0); 1533 mediaBox->appendInt(0);
1534 mediaBox->appendInt(fPageSize.fWidth); 1534 mediaBox->appendInt(fPageSize.fWidth);
1535 mediaBox->appendInt(fPageSize.fHeight); 1535 mediaBox->appendInt(fPageSize.fHeight);
1536 return mediaBox.release(); 1536 return mediaBox.release();
1537 } 1537 }
1538 1538
1539 SkStreamAsset* SkPDFDevice::content() const { 1539 SkStreamAsset* SkPDFDevice::content() const {
1540 SkDynamicMemoryWStream buffer; 1540 SkDynamicMemoryWStream buffer;
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
1704 for (const RectWithData& linkToDestination : fLinkToDestinations) { 1704 for (const RectWithData& linkToDestination : fLinkToDestinations) {
1705 SkRect r; 1705 SkRect r;
1706 fInitialTransform.mapRect(&r, linkToDestination.rect); 1706 fInitialTransform.mapRect(&r, linkToDestination.rect);
1707 array->appendObject( 1707 array->appendObject(
1708 create_link_named_dest(linkToDestination.data.get(), r)); 1708 create_link_named_dest(linkToDestination.data.get(), r));
1709 } 1709 }
1710 } 1710 }
1711 1711
1712 void SkPDFDevice::appendDestinations(SkPDFDict* dict, SkPDFObject* page) const { 1712 void SkPDFDevice::appendDestinations(SkPDFDict* dict, SkPDFObject* page) const {
1713 for (const NamedDestination& dest : fNamedDestinations) { 1713 for (const NamedDestination& dest : fNamedDestinations) {
1714 sk_sp<SkPDFArray> pdfDest(new SkPDFArray); 1714 auto pdfDest = sk_make_sp<SkPDFArray>();
1715 pdfDest->reserve(5); 1715 pdfDest->reserve(5);
1716 pdfDest->appendObjRef(SkRef(page)); 1716 pdfDest->appendObjRef(SkRef(page));
1717 pdfDest->appendName("XYZ"); 1717 pdfDest->appendName("XYZ");
1718 SkPoint p = fInitialTransform.mapXY(dest.point.x(), dest.point.y()); 1718 SkPoint p = fInitialTransform.mapXY(dest.point.x(), dest.point.y());
1719 pdfDest->appendScalar(p.x()); 1719 pdfDest->appendScalar(p.x());
1720 pdfDest->appendScalar(p.y()); 1720 pdfDest->appendScalar(p.y());
1721 pdfDest->appendInt(0); // Leave zoom unchanged 1721 pdfDest->appendInt(0); // Leave zoom unchanged
1722 SkString name(static_cast<const char*>(dest.nameData->data())); 1722 SkString name(static_cast<const char*>(dest.nameData->data()));
1723 dict->insertObject(name, pdfDest.release()); 1723 dict->insertObject(name, pdfDest.release());
1724 } 1724 }
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
2328 pdfimage.reset(SkPDFCreateBitmapObject( 2328 pdfimage.reset(SkPDFCreateBitmapObject(
2329 image, fCanon->getPixelSerializer())); 2329 image, fCanon->getPixelSerializer()));
2330 if (!pdfimage) { 2330 if (!pdfimage) {
2331 return; 2331 return;
2332 } 2332 }
2333 fCanon->addPDFBitmap(image->uniqueID(), pdfimage.get()); 2333 fCanon->addPDFBitmap(image->uniqueID(), pdfimage.get());
2334 } 2334 }
2335 SkPDFUtils::DrawFormXObject(this->addXObjectResource(pdfimage.get()), 2335 SkPDFUtils::DrawFormXObject(this->addXObjectResource(pdfimage.get()),
2336 &content.entry()->fContent); 2336 &content.entry()->fContent);
2337 } 2337 }
OLDNEW
« no previous file with comments | « src/doc/SkDocument_PDF.cpp ('k') | src/pdf/SkPDFFont.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698