diff options
author | reed <reed@google.com> | 2015-06-08 10:47:12 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-08 10:47:13 -0700 |
commit | c31af44336f5eb4a50e83e76e51962d46c3ed458 (patch) | |
tree | 244dcbfbeb638de8da65980dd59707ee323c5d24 /src/gpu/GrAADistanceFieldPathRenderer.cpp | |
parent | 77dcbdeb19d26e52428e392fca0ec9a72658b746 (diff) |
change SkDraw and all Blitters to use pixmap instead of bitmap
BUG=skia:
Review URL: https://codereview.chromium.org/1148793007
Diffstat (limited to 'src/gpu/GrAADistanceFieldPathRenderer.cpp')
-rwxr-xr-x | src/gpu/GrAADistanceFieldPathRenderer.cpp | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/src/gpu/GrAADistanceFieldPathRenderer.cpp b/src/gpu/GrAADistanceFieldPathRenderer.cpp index 21fbcb37fb..3c7648aae3 100755 --- a/src/gpu/GrAADistanceFieldPathRenderer.cpp +++ b/src/gpu/GrAADistanceFieldPathRenderer.cpp @@ -354,14 +354,12 @@ private: SkIRect pathBounds = SkIRect::MakeWH(devPathBounds.width(), devPathBounds.height()); - SkBitmap bmp; - const SkImageInfo bmImageInfo = SkImageInfo::MakeA8(pathBounds.fRight, - pathBounds.fBottom); - if (!bmp.tryAllocPixels(bmImageInfo)) { + SkAutoPixmapStorage dst; + if (!dst.tryAlloc(SkImageInfo::MakeA8(pathBounds.width(), + pathBounds.height()))) { return false; } - - sk_bzero(bmp.getPixels(), bmp.getSafeSize()); + sk_bzero(dst.writable_addr(), dst.getSafeSize()); // rasterize path SkPaint paint; @@ -388,7 +386,7 @@ private: draw.fRC = &rasterClip; draw.fClip = &rasterClip.bwRgn(); draw.fMatrix = &drawMatrix; - draw.fBitmap = &bmp; + draw.fDst = dst; draw.drawPathCoverage(path, paint); @@ -400,13 +398,9 @@ private: SkAutoSMalloc<1024> dfStorage(width * height * sizeof(unsigned char)); // Generate signed distance field - { - SkAutoLockPixels alp(bmp); - - SkGenerateDistanceFieldFromA8Image((unsigned char*)dfStorage.get(), - (const unsigned char*)bmp.getPixels(), - bmp.width(), bmp.height(), bmp.rowBytes()); - } + SkGenerateDistanceFieldFromA8Image((unsigned char*)dfStorage.get(), + (const unsigned char*)dst.addr(), + dst.width(), dst.height(), dst.rowBytes()); // add to atlas SkIPoint16 atlasLocation; |