Index: cc/output/gl_renderer.cc |
diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc |
index ac449a46f5df84bc66ffe091b6470f8c6a394cb9..71ec436195b2269241dfa00aff10a82f5a2d2936 100644 |
--- a/cc/output/gl_renderer.cc |
+++ b/cc/output/gl_renderer.cc |
@@ -661,10 +661,9 @@ static skia::RefPtr<SkImage> ApplyImageFilter( |
desc.fHeight = source.height(); |
desc.fConfig = kSkia8888_GrPixelConfig; |
desc.fOrigin = kBottomLeft_GrSurfaceOrigin; |
- GrAutoScratchTexture scratch_texture( |
- use_gr_context->context(), desc, GrContext::kExact_ScratchTexMatch); |
skia::RefPtr<GrTexture> backing_store = |
- skia::AdoptRef(scratch_texture.detach()); |
+ skia::AdoptRef(use_gr_context->context()->refScratchTexture( |
+ desc, GrContext::kExact_ScratchTexMatch)); |
if (!backing_store) { |
TRACE_EVENT_INSTANT0("cc", |
"ApplyImageFilter scratch texture allocation failed", |
@@ -823,10 +822,9 @@ static skia::RefPtr<SkImage> ApplyBlendModeWithBackdrop( |
desc.fHeight = source.height(); |
desc.fConfig = kSkia8888_GrPixelConfig; |
desc.fOrigin = kBottomLeft_GrSurfaceOrigin; |
- GrAutoScratchTexture scratch_texture( |
- use_gr_context->context(), desc, GrContext::kExact_ScratchTexMatch); |
skia::RefPtr<GrTexture> backing_store = |
- skia::AdoptRef(scratch_texture.detach()); |
+ skia::AdoptRef(use_gr_context->context()->refScratchTexture( |
+ desc, GrContext::kExact_ScratchTexMatch)); |
if (!backing_store) { |
TRACE_EVENT_INSTANT0( |
"cc", |
@@ -1091,7 +1089,7 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame, |
// TODO(senorblanco): Cache this value so that we don't have to do it for both |
// the surface and its replica. Apply filters to the contents texture. |
- skia::RefPtr<SkImage> filter_bitmap; |
+ skia::RefPtr<SkImage> filter_image; |
SkScalar color_matrix[20]; |
bool use_color_matrix = false; |
if (!quad->filters.IsEmpty()) { |
@@ -1111,13 +1109,12 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame, |
// in the compositor. |
use_color_matrix = true; |
} else { |
- filter_bitmap = |
- ApplyImageFilter(ScopedUseGrContext::Create(this, frame), |
- resource_provider_, |
- quad->rect.origin(), |
- quad->filters_scale, |
- filter.get(), |
- contents_texture); |
+ filter_image = ApplyImageFilter(ScopedUseGrContext::Create(this, frame), |
+ resource_provider_, |
+ quad->rect.origin(), |
+ quad->filters_scale, |
+ filter.get(), |
+ contents_texture); |
} |
} |
} |
@@ -1144,10 +1141,10 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame, |
// If blending is applied using shaders, the background texture with |
// filters will be used as backdrop for blending operation, so we don't |
// need to copy it to the frame buffer. |
- filter_bitmap = |
+ filter_image = |
ApplyBlendModeWithBackdrop(ScopedUseGrContext::Create(this, frame), |
resource_provider_, |
- filter_bitmap, |
+ filter_image, |
contents_texture, |
background_texture.get(), |
quad->shared_quad_state->blend_mode); |
@@ -1182,8 +1179,8 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame, |
// this draw instead of having a separate copy of the background texture. |
scoped_ptr<ResourceProvider::ScopedSamplerGL> contents_resource_lock; |
- if (filter_bitmap) { |
- GrTexture* texture = filter_bitmap->getTexture(); |
+ if (filter_image) { |
+ GrTexture* texture = filter_image->getTexture(); |
DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_)); |
gl_->BindTexture(GL_TEXTURE_2D, texture->getTextureHandle()); |
} else { |
@@ -1441,7 +1438,7 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame, |
// Flush the compositor context before the filter bitmap goes out of |
// scope, so the draw gets processed before the filter texture gets deleted. |
- if (filter_bitmap) |
+ if (filter_image) |
GLC(gl_, gl_->Flush()); |
if (CanApplyBlendModeUsingBlendFunc(blend_mode)) |