Index: tools/PictureRenderer.cpp |
diff --git a/tools/PictureRenderer.cpp b/tools/PictureRenderer.cpp |
index 72c72a5536bfb602681e74059927286deec0f869..ed5bdfe6125e697e5babbb545081f9ffe5dd25a0 100644 |
--- a/tools/PictureRenderer.cpp |
+++ b/tools/PictureRenderer.cpp |
@@ -191,7 +191,7 @@ void PictureRenderer::end() { |
int PictureRenderer::getViewWidth() { |
SkASSERT(fPicture != NULL); |
- int width = SkScalarCeilToInt(fPicture->width() * fScaleFactor); |
+ int width = SkScalarCeilToInt(fPicture->cullRect().width() * fScaleFactor); |
if (fViewport.width() > 0) { |
width = SkMin32(width, fViewport.width()); |
} |
@@ -200,7 +200,7 @@ int PictureRenderer::getViewWidth() { |
int PictureRenderer::getViewHeight() { |
SkASSERT(fPicture != NULL); |
- int height = SkScalarCeilToInt(fPicture->height() * fScaleFactor); |
+ int height = SkScalarCeilToInt(fPicture->cullRect().height() * fScaleFactor); |
if (fViewport.height() > 0) { |
height = SkMin32(height, fViewport.height()); |
} |
@@ -216,7 +216,8 @@ void PictureRenderer::buildBBoxHierarchy() { |
if (kNone_BBoxHierarchyType != fBBoxHierarchyType && NULL != fPicture) { |
SkAutoTDelete<SkBBHFactory> factory(this->getFactory()); |
SkPictureRecorder recorder; |
- SkCanvas* canvas = recorder.beginRecording(fPicture->width(), fPicture->height(), |
+ SkCanvas* canvas = recorder.beginRecording(fPicture->cullRect().width(), |
+ fPicture->cullRect().height(), |
factory.get(), |
this->recordFlags()); |
fPicture->draw(canvas); |
@@ -355,7 +356,8 @@ static SkData* encode_bitmap_to_data(size_t*, const SkBitmap& bm) { |
bool RecordPictureRenderer::render(SkBitmap** out) { |
SkAutoTDelete<SkBBHFactory> factory(this->getFactory()); |
SkPictureRecorder recorder; |
- SkCanvas* canvas = recorder.beginRecording(this->getViewWidth(), this->getViewHeight(), |
+ SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(this->getViewWidth()), |
+ SkIntToScalar(this->getViewHeight()), |
factory.get(), |
this->recordFlags()); |
this->scaleToScaleFactor(canvas); |
@@ -392,7 +394,8 @@ bool PipePictureRenderer::render(SkBitmap** out) { |
fCanvas->flush(); |
if (NULL != out) { |
*out = SkNEW(SkBitmap); |
- setup_bitmap(*out, fPicture->width(), fPicture->height()); |
+ setup_bitmap(*out, SkScalarCeilToInt(fPicture->cullRect().width()), |
+ SkScalarCeilToInt(fPicture->cullRect().height())); |
fCanvas->readPixels(*out, 0, 0); |
} |
if (fEnableWrites) { |
@@ -427,7 +430,8 @@ bool SimplePictureRenderer::render(SkBitmap** out) { |
fCanvas->flush(); |
if (NULL != out) { |
*out = SkNEW(SkBitmap); |
- setup_bitmap(*out, fPicture->width(), fPicture->height()); |
+ setup_bitmap(*out, SkScalarCeilToInt(fPicture->cullRect().width()), |
+ SkScalarCeilToInt(fPicture->cullRect().height())); |
fCanvas->readPixels(*out, 0, 0); |
} |
if (fEnableWrites) { |
@@ -479,10 +483,10 @@ void TiledPictureRenderer::init(const SkPicture* pict, const SkString* writePath |
this->buildBBoxHierarchy(); |
if (fTileWidthPercentage > 0) { |
- fTileWidth = sk_float_ceil2int(float(fTileWidthPercentage * fPicture->width() / 100)); |
+ fTileWidth = SkScalarCeilToInt(float(fTileWidthPercentage * fPicture->cullRect().width() / 100)); |
} |
if (fTileHeightPercentage > 0) { |
- fTileHeight = sk_float_ceil2int(float(fTileHeightPercentage * fPicture->height() / 100)); |
+ fTileHeight = SkScalarCeilToInt(float(fTileHeightPercentage * fPicture->cullRect().height() / 100)); |
} |
if (fTileMinPowerOf2Width > 0) { |
@@ -647,7 +651,8 @@ bool TiledPictureRenderer::render(SkBitmap** out) { |
SkBitmap bitmap; |
if (out){ |
*out = SkNEW(SkBitmap); |
- setup_bitmap(*out, fPicture->width(), fPicture->height()); |
+ setup_bitmap(*out, SkScalarCeilToInt(fPicture->cullRect().width()), |
+ SkScalarCeilToInt(fPicture->cullRect().height())); |
setup_bitmap(&bitmap, fTileWidth, fTileHeight); |
} |
bool success = true; |
@@ -712,7 +717,8 @@ SkString TiledPictureRenderer::getConfigNameInternal() { |
void PlaybackCreationRenderer::setup() { |
SkAutoTDelete<SkBBHFactory> factory(this->getFactory()); |
fRecorder.reset(SkNEW(SkPictureRecorder)); |
- SkCanvas* canvas = fRecorder->beginRecording(this->getViewWidth(), this->getViewHeight(), |
+ SkCanvas* canvas = fRecorder->beginRecording(SkIntToScalar(this->getViewWidth()), |
+ SkIntToScalar(this->getViewHeight()), |
factory.get(), |
this->recordFlags()); |
this->scaleToScaleFactor(canvas); |
@@ -754,8 +760,8 @@ public: |
#endif |
virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE { |
- SkRect bounds = SkRect::MakeWH(SkIntToScalar(fPicture->width()), |
- SkIntToScalar(fPicture->height())); |
+ SkRect bounds = SkRect::MakeWH(SkIntToScalar(fPicture->cullRect().width()), |
+ SkIntToScalar(fPicture->cullRect().height())); |
SkData* data = SkPictureUtils::GatherPixelRefs(fPicture, bounds); |
SkSafeUnref(data); |