| Index: content/renderer/gpu/compositor_software_output_device.cc
|
| diff --git a/content/renderer/gpu/compositor_software_output_device.cc b/content/renderer/gpu/compositor_software_output_device.cc
|
| index a8c893b18d3bc0583f6a00a75f77b2a19792707d..c656d452715601a562376e43c30764b5475016af 100644
|
| --- a/content/renderer/gpu/compositor_software_output_device.cc
|
| +++ b/content/renderer/gpu/compositor_software_output_device.cc
|
| @@ -78,7 +78,7 @@ unsigned CompositorSoftwareOutputDevice::GetNextId() {
|
| CompositorSoftwareOutputDevice::Buffer*
|
| CompositorSoftwareOutputDevice::CreateBuffer() {
|
| scoped_ptr<cc::SharedBitmap> shared_bitmap =
|
| - shared_bitmap_manager_->AllocateSharedBitmap(viewport_size_);
|
| + shared_bitmap_manager_->AllocateSharedBitmap(viewport_pixel_size_);
|
| CHECK(shared_bitmap);
|
| return new Buffer(GetNextId(), shared_bitmap.Pass());
|
| }
|
| @@ -94,10 +94,14 @@ size_t CompositorSoftwareOutputDevice::FindFreeBuffer(size_t hint) {
|
| return buffers_.size() - 1;
|
| }
|
|
|
| -void CompositorSoftwareOutputDevice::Resize(const gfx::Size& viewport_size) {
|
| +void CompositorSoftwareOutputDevice::Resize(
|
| + const gfx::Size& viewport_pixel_size,
|
| + float scale_factor) {
|
| DCHECK(CalledOnValidThread());
|
|
|
| - if (viewport_size_ == viewport_size)
|
| + scale_factor_ = scale_factor;
|
| +
|
| + if (viewport_pixel_size_ == viewport_pixel_size)
|
| return;
|
|
|
| // Keep non-ACKed buffers in awaiting_ack_ until they get acknowledged.
|
| @@ -110,7 +114,7 @@ void CompositorSoftwareOutputDevice::Resize(const gfx::Size& viewport_size) {
|
|
|
| buffers_.clear();
|
| current_index_ = -1;
|
| - viewport_size_ = viewport_size;
|
| + viewport_pixel_size_ = viewport_pixel_size;
|
| }
|
|
|
| void CompositorSoftwareOutputDevice::DiscardBackbuffer() {
|
| @@ -141,14 +145,14 @@ SkCanvas* CompositorSoftwareOutputDevice::BeginPaint(
|
| current->SetFree(false);
|
|
|
| // Set up a canvas for the current front buffer.
|
| - SkImageInfo info = SkImageInfo::MakeN32Premul(viewport_size_.width(),
|
| - viewport_size_.height());
|
| + SkImageInfo info = SkImageInfo::MakeN32Premul(viewport_pixel_size_.width(),
|
| + viewport_pixel_size_.height());
|
| SkBitmap bitmap;
|
| bitmap.installPixels(info, current->memory(), info.minRowBytes());
|
| canvas_ = skia::AdoptRef(new SkCanvas(bitmap));
|
|
|
| if (!previous) {
|
| - DCHECK(damage_rect == gfx::Rect(viewport_size_));
|
| + DCHECK(damage_rect == gfx::Rect(viewport_pixel_size_));
|
| } else {
|
| // Find the smallest damage region that needs
|
| // to be copied from the |previous| buffer.
|
| @@ -157,15 +161,15 @@ SkCanvas* CompositorSoftwareOutputDevice::BeginPaint(
|
| current->FindDamageDifferenceFrom(previous, ®ion) ||
|
| previous->FindDamageDifferenceFrom(current, ®ion);
|
| if (!found)
|
| - region = SkRegion(RectToSkIRect(gfx::Rect(viewport_size_)));
|
| + region = SkRegion(RectToSkIRect(gfx::Rect(viewport_pixel_size_)));
|
| region.op(RectToSkIRect(damage_rect), SkRegion::kDifference_Op);
|
|
|
| // Copy over the damage region.
|
| if (!region.isEmpty()) {
|
| SkBitmap back_bitmap;
|
| back_bitmap.setConfig(SkBitmap::kARGB_8888_Config,
|
| - viewport_size_.width(),
|
| - viewport_size_.height());
|
| + viewport_pixel_size_.width(),
|
| + viewport_pixel_size_.height());
|
| back_bitmap.setPixels(previous->memory());
|
|
|
| for (SkRegion::Iterator it(region); !it.done(); it.next()) {
|
| @@ -181,7 +185,7 @@ SkCanvas* CompositorSoftwareOutputDevice::BeginPaint(
|
| for (size_t i = 0; i < buffers_.size(); ++i) {
|
| Buffer* buffer = buffers_[i];
|
| if (buffer->parent() == current)
|
| - buffer->SetParent(NULL, gfx::Rect(viewport_size_));
|
| + buffer->SetParent(NULL, gfx::Rect(viewport_pixel_size_));
|
| }
|
| damage_rect_ = damage_rect;
|
|
|
| @@ -195,7 +199,7 @@ void CompositorSoftwareOutputDevice::EndPaint(
|
|
|
| Buffer* buffer = buffers_[current_index_];
|
| frame_data->id = buffer->id();
|
| - frame_data->size = viewport_size_;
|
| + frame_data->size = viewport_pixel_size_;
|
| frame_data->damage_rect = damage_rect_;
|
| frame_data->bitmap_id = buffer->shared_bitmap_id();
|
| }
|
|
|