Index: include/core/SkSurface.h |
diff --git a/include/core/SkSurface.h b/include/core/SkSurface.h |
index c420c524c1f9cb6ae583be4c5d8429f3f0789ec3..ec76d268882edca0e3fb4becdc68d0c69737f9ff 100644 |
--- a/include/core/SkSurface.h |
+++ b/include/core/SkSurface.h |
@@ -37,16 +37,16 @@ public: |
* If the requested surface cannot be created, or the request is not a |
* supported configuration, NULL will be returned. |
*/ |
- static SkSurface* NewRasterDirect(const SkImageInfo&, void* pixels, size_t rowBytes, |
- const SkSurfaceProps* = NULL); |
+ static sk_sp<SkSurface> MakeRasterDirect(const SkImageInfo&, void* pixels, size_t rowBytes, |
+ const SkSurfaceProps* = nullptr); |
/** |
* The same as NewRasterDirect, but also accepts a call-back routine, which is invoked |
* when the surface is deleted, and is passed the pixel memory and the specified context. |
*/ |
- static SkSurface* NewRasterDirectReleaseProc(const SkImageInfo&, void* pixels, size_t rowBytes, |
+ static sk_sp<SkSurface> MakeRasterDirectReleaseProc(const SkImageInfo&, void* pixels, size_t rowBytes, |
void (*releaseProc)(void* pixels, void* context), |
- void* context, const SkSurfaceProps* = NULL); |
+ void* context, const SkSurfaceProps* = nullptr); |
/** |
* Return a new surface, with the memory for the pixels automatically allocated, but respecting |
@@ -57,30 +57,28 @@ public: |
* If the requested surface cannot be created, or the request is not a |
* supported configuration, NULL will be returned. |
*/ |
- static SkSurface* NewRaster(const SkImageInfo&, size_t rowBytes, const SkSurfaceProps*); |
+ static sk_sp<SkSurface> MakeRaster(const SkImageInfo&, size_t rowBytes, const SkSurfaceProps*); |
/** |
* Allocate a new surface, automatically computing the rowBytes. |
*/ |
- static SkSurface* NewRaster(const SkImageInfo&, const SkSurfaceProps* = NULL); |
+ static sk_sp<SkSurface> MakeRaster(const SkImageInfo&, const SkSurfaceProps* = nullptr); |
/** |
* Helper version of NewRaster. It creates a SkImageInfo with the |
* specified width and height, and populates the rest of info to match |
* pixels in SkPMColor format. |
*/ |
- static SkSurface* NewRasterN32Premul(int width, int height, const SkSurfaceProps* props = NULL) { |
- return NewRaster(SkImageInfo::MakeN32Premul(width, height), props); |
+ static sk_sp<SkSurface> MakeRasterN32Premul(int width, int height, |
+ const SkSurfaceProps* props = nullptr) { |
+ return MakeRaster(SkImageInfo::MakeN32Premul(width, height), props); |
} |
/** |
* Return a new surface using the specified render target. |
*/ |
- static SkSurface* NewRenderTargetDirect(GrRenderTarget*, const SkSurfaceProps*); |
- |
- static SkSurface* NewRenderTargetDirect(GrRenderTarget* target) { |
- return NewRenderTargetDirect(target, NULL); |
- } |
+ static sk_sp<SkSurface> MakeRenderTargetDirect(GrRenderTarget*, |
+ const SkSurfaceProps* = nullptr); |
/** |
* Used to wrap a pre-existing backend 3D API texture as a SkSurface. The kRenderTarget flag |
@@ -88,21 +86,17 @@ public: |
* of the texture and the client must ensure the texture is valid for the lifetime of the |
* SkSurface. |
*/ |
- static SkSurface* NewFromBackendTexture(GrContext*, const GrBackendTextureDesc&, |
- const SkSurfaceProps*); |
- // Legacy alias |
- static SkSurface* NewWrappedRenderTarget(GrContext* ctx, const GrBackendTextureDesc& desc, |
- const SkSurfaceProps* props) { |
- return NewFromBackendTexture(ctx, desc, props); |
- } |
+ static sk_sp<SkSurface> MakeFromBackendTexture(GrContext*, const GrBackendTextureDesc&, |
+ const SkSurfaceProps*); |
/** |
* Used to wrap a pre-existing 3D API rendering target as a SkSurface. Skia will not assume |
* ownership of the render target and the client must ensure the render target is valid for the |
* lifetime of the SkSurface. |
*/ |
- static SkSurface* NewFromBackendRenderTarget(GrContext*, const GrBackendRenderTargetDesc&, |
- const SkSurfaceProps*); |
+ static sk_sp<SkSurface> MakeFromBackendRenderTarget(GrContext*, |
+ const GrBackendRenderTargetDesc&, |
+ const SkSurfaceProps*); |
/** |
* Used to wrap a pre-existing 3D API texture as a SkSurface. Skia will treat the texture as |
@@ -112,7 +106,7 @@ public: |
* of the texture and the client must ensure the texture is valid for the lifetime of the |
* SkSurface. |
*/ |
- static SkSurface* NewFromBackendTextureAsRenderTarget( |
+ static sk_sp<SkSurface> MakeFromBackendTextureAsRenderTarget( |
GrContext*, const GrBackendTextureDesc&, const SkSurfaceProps*); |
/** |
@@ -122,13 +116,71 @@ public: |
* The GrTextureStorageAllocator will be reused if SkImage snapshots create |
* additional textures. |
*/ |
- static SkSurface* NewRenderTarget( |
- GrContext*, SkBudgeted, const SkImageInfo&, int sampleCount, |
- const SkSurfaceProps* = NULL, GrTextureStorageAllocator = GrTextureStorageAllocator()); |
+ static sk_sp<SkSurface> MakeRenderTarget( |
+ GrContext*, SkBudgeted, const SkImageInfo&, int sampleCount, const SkSurfaceProps*, |
+ GrTextureStorageAllocator = GrTextureStorageAllocator()); |
+ |
+ static sk_sp<SkSurface> MakeRenderTarget(GrContext* gr, SkBudgeted b, const SkImageInfo& info) { |
+ return MakeRenderTarget(gr, b, info, 0, nullptr); |
+ } |
+#ifdef SK_SUPPORT_LEGACY_NEW_SURFACE_API |
+ static SkSurface* NewRasterDirect(const SkImageInfo& info, void* pixels, size_t rowBytes, |
+ const SkSurfaceProps* props = NULL) { |
+ return MakeRasterDirect(info, pixels, rowBytes, props).release(); |
+ } |
+ static SkSurface* NewRasterDirectReleaseProc(const SkImageInfo& info, void* pixels, |
+ size_t rowBytes, |
+ void (*releaseProc)(void* pixels, void* context), |
+ void* context, const SkSurfaceProps* props = NULL){ |
+ return MakeRasterDirectReleaseProc(info, pixels, rowBytes, releaseProc, context, |
+ props).release(); |
+ } |
+ static SkSurface* NewRaster(const SkImageInfo& info, size_t rowBytes, |
+ const SkSurfaceProps* props) { |
+ return MakeRaster(info, rowBytes, props).release(); |
+ } |
+ static SkSurface* NewRaster(const SkImageInfo& info, const SkSurfaceProps* props = NULL) { |
+ return MakeRaster(info, props).release(); |
+ } |
+ static SkSurface* NewRasterN32Premul(int width, int height, |
+ const SkSurfaceProps* props = NULL) { |
+ return NewRaster(SkImageInfo::MakeN32Premul(width, height), props); |
+ } |
+ static SkSurface* NewRenderTargetDirect(GrRenderTarget* rt, const SkSurfaceProps* props) { |
+ return MakeRenderTargetDirect(rt, props).release(); |
+ } |
+ static SkSurface* NewRenderTargetDirect(GrRenderTarget* target) { |
+ return NewRenderTargetDirect(target, NULL); |
+ } |
+ static SkSurface* NewFromBackendTexture(GrContext* ctx, const GrBackendTextureDesc& desc, |
+ const SkSurfaceProps* props) { |
+ return MakeFromBackendTexture(ctx, desc, props).release(); |
+ } |
+ // Legacy alias |
+ static SkSurface* NewWrappedRenderTarget(GrContext* ctx, const GrBackendTextureDesc& desc, |
+ const SkSurfaceProps* props) { |
+ return NewFromBackendTexture(ctx, desc, props); |
+ } |
+ static SkSurface* NewFromBackendRenderTarget(GrContext* ctx, const GrBackendRenderTargetDesc& d, |
+ const SkSurfaceProps* props) { |
+ return MakeFromBackendRenderTarget(ctx, d, props).release(); |
+ } |
+ static SkSurface* NewFromBackendTextureAsRenderTarget(GrContext* ctx, |
+ const GrBackendTextureDesc& desc, |
+ const SkSurfaceProps* props) { |
+ return MakeFromBackendTextureAsRenderTarget(ctx, desc, props).release(); |
+ } |
+ static SkSurface* NewRenderTarget(GrContext* ctx, SkBudgeted b, const SkImageInfo& info, |
+ int sampleCount, const SkSurfaceProps* props = NULL, |
+ GrTextureStorageAllocator a = GrTextureStorageAllocator()) { |
+ return MakeRenderTarget(ctx, b, info, sampleCount, props, a).release(); |
+ } |
static SkSurface* NewRenderTarget(GrContext* gr, SkBudgeted b, const SkImageInfo& info) { |
return NewRenderTarget(gr, b, info, 0); |
} |
+ SkSurface* newSurface(const SkImageInfo& info) { return this->makeSurface(info).release(); } |
+#endif |
int width() const { return fWidth; } |
int height() const { return fHeight; } |
@@ -223,7 +275,7 @@ public: |
* ... // draw using canvasB |
* canvasA->drawSurface(surfaceB); // <--- this will always be optimal! |
*/ |
- SkSurface* newSurface(const SkImageInfo&); |
+ sk_sp<SkSurface> makeSurface(const SkImageInfo&); |
/** |
* Returns an image of the current state of the surface pixels up to this |