Chromium Code Reviews| Index: src/image/SkSurface_Raster.cpp |
| diff --git a/src/image/SkSurface_Raster.cpp b/src/image/SkSurface_Raster.cpp |
| index 13f215589f190f9aa0cbb2d45ac5a1ff841c83e6..117ec60c9da54d3cf2814d60aba91969d8a33def 100644 |
| --- a/src/image/SkSurface_Raster.cpp |
| +++ b/src/image/SkSurface_Raster.cpp |
| @@ -18,8 +18,9 @@ public: |
| static bool Valid(const SkImageInfo&, size_t rb = kIgnoreRowBytesValue); |
| SkSurface_Raster(const SkImageInfo&, void*, size_t rb, |
| - void (*releaseProc)(void* pixels, void* context), void* context); |
| - SkSurface_Raster(SkPixelRef*); |
| + void (*releaseProc)(void* pixels, void* context), void* context, |
| + const Props*); |
| + SkSurface_Raster(SkPixelRef*, const Props*); |
| virtual SkCanvas* onNewCanvas() SK_OVERRIDE; |
| virtual SkSurface* onNewSurface(const SkImageInfo&) SK_OVERRIDE; |
| @@ -78,15 +79,16 @@ bool SkSurface_Raster::Valid(const SkImageInfo& info, size_t rowBytes) { |
| } |
| SkSurface_Raster::SkSurface_Raster(const SkImageInfo& info, void* pixels, size_t rb, |
| - void (*releaseProc)(void* pixels, void* context), void* context) |
| - : INHERITED(info) |
| + void (*releaseProc)(void* pixels, void* context), void* context, |
| + const Props* props) |
| + : INHERITED(info, props ? *props : Props()) |
| { |
| fBitmap.installPixels(info, pixels, rb, NULL, releaseProc, context); |
| fWeOwnThePixels = false; // We are "Direct" |
| } |
| -SkSurface_Raster::SkSurface_Raster(SkPixelRef* pr) |
| - : INHERITED(pr->info().width(), pr->info().height()) |
| +SkSurface_Raster::SkSurface_Raster(SkPixelRef* pr, const Props* props) |
| + : INHERITED(pr->info().width(), pr->info().height(), props ? *props : Props()) |
| { |
| const SkImageInfo& info = pr->info(); |
| @@ -100,7 +102,8 @@ SkSurface_Raster::SkSurface_Raster(SkPixelRef* pr) |
| } |
| SkCanvas* SkSurface_Raster::onNewCanvas() { |
|
robertphillips
2014/09/16 14:15:19
const SkSurfacePropos& props = ?
reed1
2014/09/16 18:16:01
Done.
|
| - return SkNEW_ARGS(SkCanvas, (fBitmap)); |
| + SkSurfaceProps props = this->props(); |
| + return SkNEW_ARGS(SkCanvas, (fBitmap, &props)); |
| } |
| SkSurface* SkSurface_Raster::onNewSurface(const SkImageInfo& info) { |
| @@ -140,7 +143,7 @@ void SkSurface_Raster::onCopyOnWrite(ContentChangeMode mode) { |
| SkSurface* SkSurface::NewRasterDirectReleaseProc(const SkImageInfo& info, void* pixels, size_t rb, |
| void (*releaseProc)(void* pixels, void* context), |
| - void* context) { |
| + void* context, const Props* props) { |
| if (NULL == releaseProc) { |
| context = NULL; |
| } |
| @@ -151,14 +154,15 @@ SkSurface* SkSurface::NewRasterDirectReleaseProc(const SkImageInfo& info, void* |
| return NULL; |
| } |
| - return SkNEW_ARGS(SkSurface_Raster, (info, pixels, rb, releaseProc, context)); |
| + return SkNEW_ARGS(SkSurface_Raster, (info, pixels, rb, releaseProc, context, props)); |
| } |
| -SkSurface* SkSurface::NewRasterDirect(const SkImageInfo& info, void* pixels, size_t rowBytes) { |
| - return NewRasterDirectReleaseProc(info, pixels, rowBytes, NULL, NULL); |
| +SkSurface* SkSurface::NewRasterDirect(const SkImageInfo& info, void* pixels, size_t rowBytes, |
| + const Props* props) { |
| + return NewRasterDirectReleaseProc(info, pixels, rowBytes, NULL, NULL, props); |
| } |
| -SkSurface* SkSurface::NewRaster(const SkImageInfo& info) { |
| +SkSurface* SkSurface::NewRaster(const SkImageInfo& info, const Props* props) { |
| if (!SkSurface_Raster::Valid(info)) { |
| return NULL; |
| } |
| @@ -167,5 +171,5 @@ SkSurface* SkSurface::NewRaster(const SkImageInfo& info) { |
| if (NULL == pr.get()) { |
| return NULL; |
| } |
| - return SkNEW_ARGS(SkSurface_Raster, (pr)); |
| + return SkNEW_ARGS(SkSurface_Raster, (pr, props)); |
| } |