From e4579adfdfb4b9f195d162835a69d9c2a974a6ac Mon Sep 17 00:00:00 2001 From: bsalomon Date: Wed, 8 Apr 2015 08:38:40 -0700 Subject: Add helper for creating a SkSurface from a client created texture. Review URL: https://codereview.chromium.org/1071603002 --- src/image/SkSurface_Gpu.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/image/SkSurface_Gpu.cpp') diff --git a/src/image/SkSurface_Gpu.cpp b/src/image/SkSurface_Gpu.cpp index b94e4e30bd..ac2f7fe25e 100644 --- a/src/image/SkSurface_Gpu.cpp +++ b/src/image/SkSurface_Gpu.cpp @@ -99,4 +99,24 @@ SkSurface* SkSurface::NewRenderTarget(GrContext* ctx, Budgeted budgeted, const S return SkNEW_ARGS(SkSurface_Gpu, (device)); } +SkSurface* SkSurface::NewWrappedRenderTarget(GrContext* context, GrBackendTextureDesc desc, + const SkSurfaceProps* props) { + if (NULL == context) { + return NULL; + } + if (!SkToBool(desc.fFlags & kRenderTarget_GrBackendTextureFlag)) { + return NULL; + } + SkAutoTUnref surface(context->wrapBackendTexture(desc)); + if (!surface) { + return NULL; + } + SkAutoTUnref device(SkGpuDevice::Create(surface->asRenderTarget(), props, + SkGpuDevice::kNeedClear_Flag)); + if (!device) { + return NULL; + } + return SkNEW_ARGS(SkSurface_Gpu, (device)); +} + #endif -- cgit v1.2.3