| Index: cc/output/software_renderer.cc
|
| diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc
|
| index d9898005e25f3d56fe7804a4daa4f79b3c64c997..1bd6fde0bbaba8b29e61f67c34a40b3acf2d52d1 100644
|
| --- a/cc/output/software_renderer.cc
|
| +++ b/cc/output/software_renderer.cc
|
| @@ -67,6 +67,7 @@ SoftwareRenderer::SoftwareRenderer(RendererClient* client,
|
| : DirectRenderer(client, resource_provider),
|
| visible_(true),
|
| is_scissor_enabled_(false),
|
| + is_viewport_changed_(true),
|
| output_surface_(output_surface),
|
| output_device_(output_surface->software_device()),
|
| current_canvas_(NULL) {
|
| @@ -81,8 +82,6 @@ SoftwareRenderer::SoftwareRenderer(RendererClient* client,
|
| if (Settings().compositor_frame_message && client_->HasImplThread())
|
| capabilities_.using_swap_complete_callback = true;
|
| compositor_frame_.software_frame_data.reset(new SoftwareFrameData());
|
| -
|
| - ViewportChanged();
|
| }
|
|
|
| SoftwareRenderer::~SoftwareRenderer() {}
|
| @@ -92,11 +91,15 @@ const RendererCapabilities& SoftwareRenderer::Capabilities() const {
|
| }
|
|
|
| void SoftwareRenderer::ViewportChanged() {
|
| - output_device_->Resize(ViewportSize());
|
| + is_viewport_changed_ = true;
|
| }
|
|
|
| void SoftwareRenderer::BeginDrawingFrame(DrawingFrame* frame) {
|
| TRACE_EVENT0("cc", "SoftwareRenderer::BeginDrawingFrame");
|
| + if (is_viewport_changed_) {
|
| + is_viewport_changed_ = false;
|
| + output_device_->Resize(ViewportSize());
|
| + }
|
| root_canvas_ = output_device_->BeginPaint(
|
| gfx::ToEnclosingRect(frame->root_damage_rect));
|
| }
|
|
|