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

Unified Diff: cc/surfaces/display.cc

Issue 2128113002: Use a cc::Display for WebView resourceless software draws. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: displaywebview: dcheck Created 4 years, 5 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
Index: cc/surfaces/display.cc
diff --git a/cc/surfaces/display.cc b/cc/surfaces/display.cc
index e4ad249b3f0f76a8b34993a821d85e2b2dc58bc3..04566734f210ffebc20fd50042acb877f0eba590 100644
--- a/cc/surfaces/display.cc
+++ b/cc/surfaces/display.cc
@@ -182,10 +182,10 @@ void Display::InitializeRenderer() {
#endif
} else {
std::unique_ptr<SoftwareRenderer> renderer = SoftwareRenderer::Create(
- this, &settings_, output_surface_.get(), resource_provider.get(),
- true /* use_image_hijack_canvas */);
+ this, &settings_, output_surface_.get(), resource_provider.get());
if (!renderer)
return;
+ software_renderer_ = renderer.get();
renderer_ = std::move(renderer);
}
@@ -290,14 +290,22 @@ bool Display::DrawAndSwap() {
gfx::Rect device_viewport_rect = gfx::Rect(current_surface_size_);
gfx::Rect device_clip_rect =
external_clip_.IsEmpty() ? device_viewport_rect : external_clip_;
- bool disable_picture_quad_image_filtering = false;
+
+ bool disable_image_filtering =
+ frame.metadata.is_resourceless_software_draw_with_scroll_or_animation;
+ if (software_renderer_) {
+ software_renderer_->SetDisablePictureQuadImageFiltering(
+ disable_image_filtering);
+ } else {
+ // This should only be set for software draws in synchronous compositor.
+ DCHECK(!disable_image_filtering);
+ }
renderer_->DecideRenderPassAllocationsForFrame(
frame_data->render_pass_list);
renderer_->DrawFrame(&frame_data->render_pass_list, device_scale_factor_,
device_color_space_, device_viewport_rect,
- device_clip_rect,
- disable_picture_quad_image_filtering);
+ device_clip_rect);
} else {
TRACE_EVENT_INSTANT0("cc", "Draw skipped.", TRACE_EVENT_SCOPE_THREAD);
}

Powered by Google App Engine
This is Rietveld 408576698