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(); |
} |