| OLD | NEW |
| 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 #include "SkAnnotationKeys.h" | 9 #include "SkAnnotationKeys.h" |
| 10 #include "SkBitmapDevice.h" | 10 #include "SkBitmapDevice.h" |
| (...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 651 SkPDFDevice::SkPDFDevice(SkISize pageSize, SkScalar rasterDpi, SkPDFDocument* do
c, bool flip) | 651 SkPDFDevice::SkPDFDevice(SkISize pageSize, SkScalar rasterDpi, SkPDFDocument* do
c, bool flip) |
| 652 : INHERITED(SkSurfaceProps(0, kUnknown_SkPixelGeometry)) | 652 : INHERITED(SkSurfaceProps(0, kUnknown_SkPixelGeometry)) |
| 653 , fPageSize(pageSize) | 653 , fPageSize(pageSize) |
| 654 , fContentSize(pageSize) | 654 , fContentSize(pageSize) |
| 655 , fExistingClipRegion(SkIRect::MakeSize(pageSize)) | 655 , fExistingClipRegion(SkIRect::MakeSize(pageSize)) |
| 656 , fClipStack(nullptr) | 656 , fClipStack(nullptr) |
| 657 , fRasterDpi(rasterDpi) | 657 , fRasterDpi(rasterDpi) |
| 658 , fDocument(doc) { | 658 , fDocument(doc) { |
| 659 SkASSERT(pageSize.width() > 0); | 659 SkASSERT(pageSize.width() > 0); |
| 660 SkASSERT(pageSize.height() > 0); | 660 SkASSERT(pageSize.height() > 0); |
| 661 fLegacyBitmap.setInfo( | 661 |
| 662 SkImageInfo::MakeUnknown(pageSize.width(), pageSize.height())); | |
| 663 if (flip) { | 662 if (flip) { |
| 664 // Skia generally uses the top left as the origin but PDF | 663 // Skia generally uses the top left as the origin but PDF |
| 665 // natively has the origin at the bottom left. This matrix | 664 // natively has the origin at the bottom left. This matrix |
| 666 // corrects for that. But that only needs to be done once, we | 665 // corrects for that. But that only needs to be done once, we |
| 667 // don't do it when layering. | 666 // don't do it when layering. |
| 668 fInitialTransform.setTranslate(0, SkIntToScalar(pageSize.fHeight)); | 667 fInitialTransform.setTranslate(0, SkIntToScalar(pageSize.fHeight)); |
| 669 fInitialTransform.preScale(SK_Scalar1, -SK_Scalar1); | 668 fInitialTransform.preScale(SK_Scalar1, -SK_Scalar1); |
| 670 } else { | 669 } else { |
| 671 fInitialTransform.setIdentity(); | 670 fInitialTransform.setIdentity(); |
| 672 } | 671 } |
| (...skipping 722 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1395 if (!content.needSource()) { | 1394 if (!content.needSource()) { |
| 1396 return; | 1395 return; |
| 1397 } | 1396 } |
| 1398 | 1397 |
| 1399 auto xObject = sk_make_sp<SkPDFFormXObject>(pdfDevice); | 1398 auto xObject = sk_make_sp<SkPDFFormXObject>(pdfDevice); |
| 1400 SkPDFUtils::DrawFormXObject(this->addXObjectResource(xObject.get()), | 1399 SkPDFUtils::DrawFormXObject(this->addXObjectResource(xObject.get()), |
| 1401 &content.entry()->fContent); | 1400 &content.entry()->fContent); |
| 1402 } | 1401 } |
| 1403 | 1402 |
| 1404 SkImageInfo SkPDFDevice::imageInfo() const { | 1403 SkImageInfo SkPDFDevice::imageInfo() const { |
| 1405 return fLegacyBitmap.info(); | 1404 SkImageInfo info = SkImageInfo::MakeUnknown(fPageSize.width(), fPageSize.hei
ght()); |
| 1405 return info; |
| 1406 } | 1406 } |
| 1407 | 1407 |
| 1408 void SkPDFDevice::onAttachToCanvas(SkCanvas* canvas) { | 1408 void SkPDFDevice::onAttachToCanvas(SkCanvas* canvas) { |
| 1409 INHERITED::onAttachToCanvas(canvas); | 1409 INHERITED::onAttachToCanvas(canvas); |
| 1410 | 1410 |
| 1411 // Canvas promises that this ptr is valid until onDetachFromCanvas is called | 1411 // Canvas promises that this ptr is valid until onDetachFromCanvas is called |
| 1412 fClipStack = canvas->getClipStack(); | 1412 fClipStack = canvas->getClipStack(); |
| 1413 } | 1413 } |
| 1414 | 1414 |
| 1415 void SkPDFDevice::onDetachFromCanvas() { | 1415 void SkPDFDevice::onDetachFromCanvas() { |
| (...skipping 839 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2255 } | 2255 } |
| 2256 | 2256 |
| 2257 sk_sp<SkSpecialImage> SkPDFDevice::makeSpecial(const SkImage* image) { | 2257 sk_sp<SkSpecialImage> SkPDFDevice::makeSpecial(const SkImage* image) { |
| 2258 return SkSpecialImage::MakeFromImage(SkIRect::MakeWH(image->width(), image->
height()), | 2258 return SkSpecialImage::MakeFromImage(SkIRect::MakeWH(image->width(), image->
height()), |
| 2259 image->makeNonTextureImage()); | 2259 image->makeNonTextureImage()); |
| 2260 } | 2260 } |
| 2261 | 2261 |
| 2262 sk_sp<SkSpecialImage> SkPDFDevice::snapSpecial() { | 2262 sk_sp<SkSpecialImage> SkPDFDevice::snapSpecial() { |
| 2263 return nullptr; | 2263 return nullptr; |
| 2264 } | 2264 } |
| OLD | NEW |