| Index: src/gpu/SkGpuDevice.cpp
|
| diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
|
| index 0e6eb92537c6794f3f9e8b19e9350a46f6a9d24b..98da472581bbba469d47668b346e1a47038bac07 100644
|
| --- a/src/gpu/SkGpuDevice.cpp
|
| +++ b/src/gpu/SkGpuDevice.cpp
|
| @@ -127,13 +127,15 @@ bool SkGpuDevice::CheckAlphaTypeAndGetFlags(
|
| return true;
|
| }
|
|
|
| -SkGpuDevice* SkGpuDevice::Create(GrRenderTarget* rt, const SkSurfaceProps* props,
|
| - InitContents init) {
|
| - return SkGpuDevice::Create(rt, rt->width(), rt->height(), props, init);
|
| +sk_sp<SkGpuDevice> SkGpuDevice::Make(sk_sp<GrRenderTarget> rt, const SkSurfaceProps* props,
|
| + InitContents init) {
|
| + const int width = rt->width();
|
| + const int height = rt->height();
|
| + return SkGpuDevice::Make(std::move(rt), width, height, props, init);
|
| }
|
|
|
| -SkGpuDevice* SkGpuDevice::Create(GrRenderTarget* rt, int width, int height,
|
| - const SkSurfaceProps* props, InitContents init) {
|
| +sk_sp<SkGpuDevice> SkGpuDevice::Make(sk_sp<GrRenderTarget> rt, int width, int height,
|
| + const SkSurfaceProps* props, InitContents init) {
|
| if (!rt || rt->wasDestroyed()) {
|
| return nullptr;
|
| }
|
| @@ -141,23 +143,23 @@ SkGpuDevice* SkGpuDevice::Create(GrRenderTarget* rt, int width, int height,
|
| if (!CheckAlphaTypeAndGetFlags(nullptr, init, &flags)) {
|
| return nullptr;
|
| }
|
| - return new SkGpuDevice(rt, width, height, props, flags);
|
| + return sk_sp<SkGpuDevice>(new SkGpuDevice(rt.get(), width, height, props, flags));
|
| }
|
|
|
| -SkGpuDevice* SkGpuDevice::Create(GrContext* context, SkBudgeted budgeted,
|
| - const SkImageInfo& info, int sampleCount,
|
| - const SkSurfaceProps* props, InitContents init) {
|
| +sk_sp<SkGpuDevice> SkGpuDevice::Make(GrContext* context, SkBudgeted budgeted,
|
| + const SkImageInfo& info, int sampleCount,
|
| + const SkSurfaceProps* props, InitContents init) {
|
| unsigned flags;
|
| if (!CheckAlphaTypeAndGetFlags(&info, init, &flags)) {
|
| return nullptr;
|
| }
|
|
|
| SkAutoTUnref<GrRenderTarget> rt(CreateRenderTarget(context, budgeted, info, sampleCount));
|
| - if (nullptr == rt) {
|
| + if (!rt) {
|
| return nullptr;
|
| }
|
|
|
| - return new SkGpuDevice(rt, info.width(), info.height(), props, flags);
|
| + return sk_sp<SkGpuDevice>(new SkGpuDevice(rt, info.width(), info.height(), props, flags));
|
| }
|
|
|
| SkGpuDevice::SkGpuDevice(GrRenderTarget* rt, int width, int height,
|
| @@ -1756,8 +1758,9 @@ SkBaseDevice* SkGpuDevice::onCreateDevice(const CreateInfo& cinfo, const SkPaint
|
|
|
| if (texture) {
|
| SkSurfaceProps props(this->surfaceProps().flags(), cinfo.fPixelGeometry);
|
| - return SkGpuDevice::Create(
|
| - texture->asRenderTarget(), cinfo.fInfo.width(), cinfo.fInfo.height(), &props, init);
|
| + return SkGpuDevice::Make(sk_ref_sp(texture->asRenderTarget()),
|
| + cinfo.fInfo.width(), cinfo.fInfo.height(),
|
| + &props, init).release();
|
| } else {
|
| SkErrorInternals::SetError( kInternalError_SkError,
|
| "---- failed to create gpu device texture [%d %d]\n",
|
|
|