Index: src/gpu/SkGpuDevice.cpp |
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp |
index 89273be9a3823e419fb19051c1c3ecafa02da799..cd678af880a723992c79cd12a1dabe05ce9da5de 100644 |
--- a/src/gpu/SkGpuDevice.cpp |
+++ b/src/gpu/SkGpuDevice.cpp |
@@ -10,7 +10,6 @@ |
#include "GrBlurUtils.h" |
#include "GrContext.h" |
#include "SkDraw.h" |
-#include "GrDrawContext.h" |
#include "GrGpu.h" |
#include "GrGpuResourcePriv.h" |
#include "GrImageIDTextureAdjuster.h" |
@@ -171,13 +170,11 @@ SkGpuDevice* SkGpuDevice::Create(GrContext* context, SkSurface::Budgeted budgete |
SkGpuDevice::SkGpuDevice(GrRenderTarget* rt, int width, int height, |
const SkSurfaceProps* props, unsigned flags) |
: INHERITED(SkSurfacePropsCopyOrDefault(props)) |
-{ |
- fContext = SkRef(rt->getContext()); |
+ , fContext(SkRef(rt->getContext())) |
+ , fRenderTarget(SkRef(rt)) { |
fNeedClear = SkToBool(flags & kNeedClear_Flag); |
fOpaque = SkToBool(flags & kIsOpaque_Flag); |
- fRenderTarget = SkRef(rt); |
- |
SkAlphaType at = fOpaque ? kOpaque_SkAlphaType : kPremul_SkAlphaType; |
SkImageInfo info = rt->surfacePriv().info(at).makeWH(width, height); |
SkPixelRef* pr = new SkGrPixelRef(info, rt); |
@@ -226,11 +223,6 @@ GrRenderTarget* SkGpuDevice::CreateRenderTarget(GrContext* context, SkSurface::B |
return texture->asRenderTarget(); |
} |
-SkGpuDevice::~SkGpuDevice() { |
- fRenderTarget->unref(); |
- fContext->unref(); |
-} |
- |
/////////////////////////////////////////////////////////////////////////////// |
bool SkGpuDevice::onReadPixels(const SkImageInfo& dstInfo, void* dstPixels, size_t dstRowBytes, |
@@ -346,8 +338,7 @@ void SkGpuDevice::replaceRenderTarget(bool shouldRetainContent) { |
SkASSERT(fRenderTarget != newRT); |
- fRenderTarget->unref(); |
- fRenderTarget = newRT.detach(); |
+ fRenderTarget.reset(newRT.detach()); |
#ifdef SK_DEBUG |
SkImageInfo info = fRenderTarget->surfacePriv().info(fOpaque ? kOpaque_SkAlphaType : |