Index: cc/output/software_renderer.cc |
diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc |
index 442cd8d5aea01c8ea12a18bb3bcb09d5f8d68161..ddd3473ad34a1c114cd47a6d3185cab1accf3400 100644 |
--- a/cc/output/software_renderer.cc |
+++ b/cc/output/software_renderer.cc |
@@ -63,7 +63,7 @@ static SkShader::TileMode WrapModeToTileMode(GLint wrap_mode) { |
scoped_ptr<SoftwareRenderer> SoftwareRenderer::Create( |
RendererClient* client, |
- const LayerTreeSettings* settings, |
+ const RendererSettings* settings, |
OutputSurface* output_surface, |
ResourceProvider* resource_provider) { |
return make_scoped_ptr(new SoftwareRenderer( |
@@ -71,7 +71,7 @@ scoped_ptr<SoftwareRenderer> SoftwareRenderer::Create( |
} |
SoftwareRenderer::SoftwareRenderer(RendererClient* client, |
- const LayerTreeSettings* settings, |
+ const RendererSettings* settings, |
OutputSurface* output_surface, |
ResourceProvider* resource_provider) |
: DirectRenderer(client, settings, output_surface, resource_provider), |
@@ -108,6 +108,7 @@ void SoftwareRenderer::BeginDrawingFrame(DrawingFrame* frame) { |
void SoftwareRenderer::FinishDrawingFrame(DrawingFrame* frame) { |
TRACE_EVENT0("cc", "SoftwareRenderer::FinishDrawingFrame"); |
current_framebuffer_lock_ = nullptr; |
+ current_framebuffer_canvas_.clear(); |
current_canvas_ = NULL; |
root_canvas_ = NULL; |
@@ -151,6 +152,7 @@ void SoftwareRenderer::Finish() {} |
void SoftwareRenderer::BindFramebufferToOutputSurface(DrawingFrame* frame) { |
DCHECK(!output_surface_->HasExternalStencilTest()); |
current_framebuffer_lock_ = nullptr; |
+ current_framebuffer_canvas_.clear(); |
current_canvas_ = root_canvas_; |
} |
@@ -161,7 +163,9 @@ bool SoftwareRenderer::BindFramebufferToTexture( |
current_framebuffer_lock_ = make_scoped_ptr( |
new ResourceProvider::ScopedWriteLockSoftware( |
resource_provider_, texture->id())); |
- current_canvas_ = current_framebuffer_lock_->sk_canvas(); |
+ current_framebuffer_canvas_ = |
+ skia::AdoptRef(new SkCanvas(current_framebuffer_lock_->sk_bitmap())); |
+ current_canvas_ = current_framebuffer_canvas_.get(); |
InitializeViewport(frame, |
target_rect, |
gfx::Rect(target_rect.size()), |