Index: dm/DMSrcSink.cpp |
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp |
index 4e79c63b4a32e2d866d2e275f4c8249346738534..affb844bc6aa39f76d5c2b5150f6c8954ea5fe94 100644 |
--- a/dm/DMSrcSink.cpp |
+++ b/dm/DMSrcSink.cpp |
@@ -4,7 +4,6 @@ |
#include "SkDocument.h" |
#include "SkMultiPictureDraw.h" |
#include "SkOSFile.h" |
-#include "SkPictureData.h" |
#include "SkPictureRecorder.h" |
#include "SkRandom.h" |
#include "SkStream.h" |
@@ -102,6 +101,8 @@ |
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ |
+static const SkRect kSKPViewport = {0,0, 1000,1000}; |
+ |
SKPSrc::SKPSrc(SkString path) : fPath(path) {} |
Error SKPSrc::draw(SkCanvas* canvas) const { |
@@ -114,27 +115,19 @@ |
return SkStringPrintf("Couldn't decode %s as a picture.", fPath.c_str()); |
} |
stream.reset((SkStream*)NULL); // Might as well drop this when we're done with it. |
+ canvas->clipRect(kSKPViewport); |
canvas->drawPicture(pic); |
return ""; |
} |
SkISize SKPSrc::size() const { |
- SkAutoTDelete<SkStream> stream(SkStream::NewFromFile(fPath.c_str())); |
- SkPictInfo info; |
- if (!stream || !SkPicture::InternalOnly_StreamIsSKP(stream, &info)) { |
- return SkISize::Make(0,0); |
- } |
- return info.fCullRect.roundOut().size(); |
+ // This may be unnecessarily large. |
+ return kSKPViewport.roundOut().size(); |
} |
Name SKPSrc::name() const { return SkOSPath::Basename(fPath.c_str()); } |
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ |
- |
-static SkISize limit_raster_dimensions(const SkISize& size) { |
- // This fits within a typical maximum texture, and puts a reasonable 16MB cap on raster bitmaps. |
- return SkISize::Make(SkTMin(2048, size.width()), SkTMin(2048, size.height())); |
-} |
GPUSink::GPUSink(GrContextFactory::GLContextType ct, |
GrGLStandard api, |
@@ -153,7 +146,7 @@ |
Error GPUSink::draw(const Src& src, SkBitmap* dst, SkWStream*) const { |
GrContextFactory factory; |
- const SkISize size = limit_raster_dimensions(src.size()); |
+ const SkISize size = src.size(); |
const SkImageInfo info = |
SkImageInfo::Make(size.width(), size.height(), kN32_SkColorType, kPremul_SkAlphaType); |
SkAutoTUnref<SkSurface> surface( |
@@ -200,7 +193,7 @@ |
RasterSink::RasterSink(SkColorType colorType) : fColorType(colorType) {} |
Error RasterSink::draw(const Src& src, SkBitmap* dst, SkWStream*) const { |
- const SkISize size = limit_raster_dimensions(src.size()); |
+ const SkISize size = src.size(); |
// If there's an appropriate alpha type for this color type, use it, otherwise use premul. |
SkAlphaType alphaType = kPremul_SkAlphaType; |
(void)SkColorTypeValidateAlphaType(fColorType, alphaType, &alphaType); |