Index: src/gpu/SkGpuDevice.cpp |
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp |
index 82038f6232c07393fbed85d80396c73899618074..ab4b319ed08a7d151fe1f5494554acccb6b78067 100644 |
--- a/src/gpu/SkGpuDevice.cpp |
+++ b/src/gpu/SkGpuDevice.cpp |
@@ -10,13 +10,15 @@ |
#include "GrBlurUtils.h" |
#include "GrContext.h" |
#include "GrContextPriv.h" |
-#include "SkDraw.h" |
+#include "GrDrawContextPriv.h" |
#include "GrGpu.h" |
#include "GrGpuResourcePriv.h" |
#include "GrImageIDTextureAdjuster.h" |
#include "GrStyle.h" |
#include "GrTracing.h" |
+ |
#include "SkCanvasPriv.h" |
+#include "SkDraw.h" |
#include "SkErrorInternals.h" |
#include "SkGlyphCache.h" |
#include "SkGr.h" |
@@ -147,7 +149,6 @@ sk_sp<SkGpuDevice> SkGpuDevice::Make(GrContext* context, SkBudgeted budgeted, |
SkGpuDevice::SkGpuDevice(sk_sp<GrDrawContext> drawContext, int width, int height, unsigned flags) |
: INHERITED(drawContext->surfaceProps()) |
, fContext(SkRef(drawContext->accessRenderTarget()->getContext())) |
- , fRenderTarget(drawContext->renderTarget()) |
, fDrawContext(std::move(drawContext)) { |
fSize.set(width, height); |
fOpaque = SkToBool(flags & kIsOpaque_Flag); |
@@ -229,8 +230,10 @@ bool SkGpuDevice::onReadPixels(const SkImageInfo& dstInfo, void* dstPixels, size |
if (kUnpremul_SkAlphaType == dstInfo.alphaType()) { |
flags = GrContext::kUnpremul_PixelOpsFlag; |
} |
- return fRenderTarget->readPixels(x, y, dstInfo.width(), dstInfo.height(), config, dstPixels, |
- dstRowBytes, flags); |
+ return fDrawContext->accessRenderTarget()->readPixels(x, y, |
+ dstInfo.width(), dstInfo.height(), |
+ config, dstPixels, |
+ dstRowBytes, flags); |
} |
bool SkGpuDevice::onWritePixels(const SkImageInfo& info, const void* pixels, size_t rowBytes, |
@@ -245,8 +248,8 @@ bool SkGpuDevice::onWritePixels(const SkImageInfo& info, const void* pixels, siz |
if (kUnpremul_SkAlphaType == info.alphaType()) { |
flags = GrContext::kUnpremul_PixelOpsFlag; |
} |
- fRenderTarget->writePixels(x, y, info.width(), info.height(), config, pixels, rowBytes, flags); |
- |
+ fDrawContext->accessRenderTarget()->writePixels(x, y, info.width(), info.height(), |
+ config, pixels, rowBytes, flags); |
return true; |
} |
@@ -279,7 +282,7 @@ void SkGpuDevice::clearAll() { |
void SkGpuDevice::replaceDrawContext(bool shouldRetainContent) { |
ASSERT_SINGLE_OWNER |
- SkBudgeted budgeted = fRenderTarget->resourcePriv().isBudgeted(); |
+ SkBudgeted budgeted = fDrawContext->drawContextPriv().isBudgeted(); |
sk_sp<GrDrawContext> newDC(MakeDrawContext(this->context(), |
budgeted, |
@@ -292,7 +295,7 @@ void SkGpuDevice::replaceDrawContext(bool shouldRetainContent) { |
} |
if (shouldRetainContent) { |
- if (fRenderTarget->wasDestroyed()) { |
+ if (fDrawContext->wasAbandoned()) { |
return; |
} |
newDC->copySurface(fDrawContext->asTexture().get(), |
@@ -300,10 +303,6 @@ void SkGpuDevice::replaceDrawContext(bool shouldRetainContent) { |
SkIPoint::Make(0, 0)); |
} |
- SkASSERT(fDrawContext->accessRenderTarget() != newDC->accessRenderTarget()); |
- |
- fRenderTarget = newDC->renderTarget(); |
- |
fDrawContext = newDC; |
} |