Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(805)

Unified Diff: content/renderer/gpu/compositor_software_output_device.cc

Issue 297573003: Make delegated software renderer work on Mac (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebas Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/gpu/compositor_software_output_device.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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, &region) ||
previous->FindDamageDifferenceFrom(current, &region);
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();
}
« no previous file with comments | « content/renderer/gpu/compositor_software_output_device.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698