diff options
Diffstat (limited to 'src/gpu/SkGpuDevice.cpp')
-rw-r--r-- | src/gpu/SkGpuDevice.cpp | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp index 89273be9a3..cd678af880 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 : |