Chromium Code Reviews| Index: src/pdf/SkPDFDevice.cpp |
| diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp |
| index ab4d71d37f8f24bd9a91ae188ca34bdd208b0cd6..f4db93799d9f1fdeb0648a9c5ed8e87383653a59 100644 |
| --- a/src/pdf/SkPDFDevice.cpp |
| +++ b/src/pdf/SkPDFDevice.cpp |
| @@ -702,8 +702,8 @@ private: |
| //////////////////////////////////////////////////////////////////////////////// |
|
robertphillips
2014/06/27 12:02:58
Shouldn't this be make_content_info ?
reed1
2014/06/27 12:39:42
Done.
|
| -static inline SkBitmap makeContentBitmap(const SkISize& contentSize, |
| - const SkMatrix* initialTransform) { |
| +static inline SkImageInfo makeContentInfo(const SkISize& contentSize, |
| + const SkMatrix* initialTransform) { |
| SkImageInfo info; |
| if (initialTransform) { |
| // Compute the size of the drawing area. |
| @@ -723,24 +723,21 @@ static inline SkBitmap makeContentBitmap(const SkISize& contentSize, |
| info = SkImageInfo::MakeUnknown(abs(contentSize.fWidth), |
| abs(contentSize.fHeight)); |
| } |
| - |
| - SkBitmap bitmap; |
| - bitmap.setInfo(info); |
| - return bitmap; |
| + return info; |
| } |
| // TODO(vandebo) change pageSize to SkSize. |
|
robertphillips
2014/06/27 12:02:58
Remove this TODO ?
reed1
2014/06/27 12:39:42
Done.
|
| // TODO: inherit from SkBaseDevice instead of SkBitmapDevice |
| SkPDFDevice::SkPDFDevice(const SkISize& pageSize, const SkISize& contentSize, |
| const SkMatrix& initialTransform) |
| - : SkBitmapDevice(makeContentBitmap(contentSize, &initialTransform)), |
| - fPageSize(pageSize), |
| - fContentSize(contentSize), |
| - fLastContentEntry(NULL), |
| - fLastMarginContentEntry(NULL), |
| - fClipStack(NULL), |
| - fEncoder(NULL), |
| - fRasterDpi(72.0f) { |
| + : fPageSize(pageSize) |
| + , fContentSize(contentSize) |
| + , fLastContentEntry(NULL) |
| + , fLastMarginContentEntry(NULL) |
| + , fClipStack(NULL) |
| + , fEncoder(NULL) |
| + , fRasterDpi(72.0f) |
| +{ |
| // Just report that PDF does not supports perspective in the |
| // initial transform. |
| NOT_IMPLEMENTED(initialTransform.hasPerspective(), true); |
| @@ -754,7 +751,7 @@ SkPDFDevice::SkPDFDevice(const SkISize& pageSize, const SkISize& contentSize, |
| SkIRect existingClip = SkIRect::MakeWH(this->width(), this->height()); |
| fExistingClipRegion.setRect(existingClip); |
| - |
| + fLegacyBitmap.setInfo(makeContentInfo(contentSize, &initialTransform)); |
| this->init(); |
| } |
| @@ -762,17 +759,19 @@ SkPDFDevice::SkPDFDevice(const SkISize& pageSize, const SkISize& contentSize, |
| SkPDFDevice::SkPDFDevice(const SkISize& layerSize, |
| const SkClipStack& existingClipStack, |
| const SkRegion& existingClipRegion) |
| - : SkBitmapDevice(makeContentBitmap(layerSize, NULL)), |
| - fPageSize(layerSize), |
| - fContentSize(layerSize), |
| - fExistingClipStack(existingClipStack), |
| - fExistingClipRegion(existingClipRegion), |
| - fLastContentEntry(NULL), |
| - fLastMarginContentEntry(NULL), |
| - fClipStack(NULL), |
| - fEncoder(NULL), |
| - fRasterDpi(72.0f) { |
| + : fPageSize(layerSize) |
| + , fContentSize(layerSize) |
| + , fExistingClipStack(existingClipStack) |
| + , fExistingClipRegion(existingClipRegion) |
| + , fLastContentEntry(NULL) |
| + , fLastMarginContentEntry(NULL) |
| + , fClipStack(NULL) |
| + , fEncoder(NULL) |
| + , fRasterDpi(72.0f) |
| +{ |
| fInitialTransform.reset(); |
| + fLegacyBitmap.setInfo(makeContentInfo(layerSize, NULL)); |
| + |
| this->init(); |
| } |
| @@ -961,13 +960,18 @@ void SkPDFDevice::drawRect(const SkDraw& d, const SkRect& rect, |
| &content.entry()->fContent); |
| } |
| -void SkPDFDevice::drawRRect(const SkDraw& draw, const SkRRect& rrect, |
| - const SkPaint& paint) { |
| +void SkPDFDevice::drawRRect(const SkDraw& draw, const SkRRect& rrect, const SkPaint& paint) { |
| SkPath path; |
| path.addRRect(rrect); |
| this->drawPath(draw, path, paint, NULL, true); |
| } |
| +void SkPDFDevice::drawOval(const SkDraw& draw, const SkRect& oval, const SkPaint& paint) { |
| + SkPath path; |
| + path.addOval(oval); |
| + this->drawPath(draw, path, paint, NULL, true); |
| +} |
| + |
| void SkPDFDevice::drawPath(const SkDraw& d, const SkPath& origPath, |
| const SkPaint& paint, const SkMatrix* prePathMatrix, |
| bool pathIsMutable) { |
| @@ -2237,8 +2241,7 @@ void SkPDFDevice::internalDrawBitmap(const SkMatrix& origMatrix, |
| } |
| perspectiveBitmap.eraseColor(SK_ColorTRANSPARENT); |
| - SkBitmapDevice device(perspectiveBitmap); |
| - SkCanvas canvas(&device); |
| + SkCanvas canvas(perspectiveBitmap); |
| SkScalar deltaX = bounds.left(); |
| SkScalar deltaY = bounds.top(); |
| @@ -2305,6 +2308,10 @@ void SkPDFDevice::internalDrawBitmap(const SkMatrix& origMatrix, |
| &content.entry()->fContent); |
| } |
|
robertphillips
2014/06/27 12:02:58
Can these last two be put in the header ?
reed1
2014/06/27 12:39:42
Done.
|
| +const SkBitmap& SkPDFDevice::onAccessBitmap() { |
| + return fLegacyBitmap; |
| +} |
| + |
| bool SkPDFDevice::allowImageFilter(const SkImageFilter*) { |
| return false; |
| } |