Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Unified Diff: src/gpu/GrContext.cpp

Issue 638403003: Remove uses of GrAutoScratchTexture. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: comment change Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/gpu/GrContext.cpp
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index a722eed88ac5cac8a663adbe9f7fc14ac1d6315d..6060870ec3fa8c5f972424fac81c4ec820d45e06 100755
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -448,9 +448,8 @@ GrTexture* GrContext::createNewScratchTexture(const GrTextureDesc& desc) {
return texture;
}
-GrTexture* GrContext::lockAndRefScratchTexture(const GrTextureDesc& inDesc, ScratchTexMatch match,
- bool calledDuringFlush) {
-
+GrTexture* GrContext::refScratchTexture(const GrTextureDesc& inDesc, ScratchTexMatch match,
+ bool calledDuringFlush) {
// kNoStencil has no meaning if kRT isn't set.
SkASSERT((inDesc.fFlags & kRenderTarget_GrTextureFlagBit) ||
!(inDesc.fFlags & kNoStencil_GrTextureFlagBit));
@@ -1288,17 +1287,14 @@ bool GrContext::readTexturePixels(GrTexture* texture,
// TODO: make this more efficient for cases where we're reading the entire
// texture, i.e., use GetTexImage() instead
- // create scratch rendertarget and read from that
- GrAutoScratchTexture ast;
GrTextureDesc desc;
desc.fFlags = kRenderTarget_GrTextureFlagBit;
desc.fWidth = width;
desc.fHeight = height;
desc.fConfig = config;
desc.fOrigin = kTopLeft_GrSurfaceOrigin;
- ast.set(this, desc, kExact_ScratchTexMatch);
- GrTexture* dst = ast.texture();
- if (dst && (target = dst->asRenderTarget())) {
+ SkAutoTUnref<GrTexture> dst(this->refScratchTexture(desc, kExact_ScratchTexMatch));
+ if (dst) {
robertphillips 2014/10/09 17:19:50 target = dst->asRenderTarget(); ?
bsalomon 2014/10/13 15:42:02 this code was removed.
this->copySurface(target, texture, SkIRect::MakeXYWH(top, left, width, height),
SkIPoint::Make(0,0));
return this->readRenderTargetPixels(target,
@@ -1372,7 +1368,6 @@ bool GrContext::readRenderTargetPixels(GrRenderTarget* target,
// conversions in the draw we set the corresponding bool to false so that we don't reapply it
// on the read back pixels.
GrTexture* src = target->asTexture();
- GrAutoScratchTexture ast;
if (src && (swapRAndB || unpremul || flipY)) {
// Make the scratch a render target because we don't have a robust readTexturePixels as of
// yet. It calls this function.
@@ -1395,8 +1390,7 @@ bool GrContext::readRenderTargetPixels(GrRenderTarget* target,
fGpu->fullReadPixelsIsFasterThanPartial()) {
match = kExact_ScratchTexMatch;
}
- ast.set(this, desc, match);
- GrTexture* texture = ast.texture();
+ SkAutoTUnref<GrTexture> texture(this->refScratchTexture(desc, match));
if (texture) {
// compute a matrix to perform the draw
SkMatrix textureMatrix;
@@ -1564,9 +1558,8 @@ bool GrContext::writeRenderTargetPixels(GrRenderTarget* renderTarget,
desc.fWidth = width;
desc.fHeight = height;
desc.fConfig = writeConfig;
- GrAutoScratchTexture ast(this, desc);
- GrTexture* texture = ast.texture();
- if (NULL == texture) {
+ SkAutoTUnref<GrTexture> texture(this->refScratchTexture(desc, kApprox_ScratchTexMatch));
+ if (!texture) {
return false;
}

Powered by Google App Engine
This is Rietveld 408576698