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

Unified Diff: cc/trees/layer_tree_host_impl.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: mojom 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
« no previous file with comments | « cc/test/pixel_test.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host_impl.cc
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 0c6928e146f1adbc9f84f16f92f45777d26c8447..56e3c65a22d22a8b0ae6212921895ac4b7745943 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -1595,6 +1595,11 @@ CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() const {
!OuterViewportScrollLayer()->user_scrollable_vertical();
}
+ if (GetDrawMode() == DRAW_MODE_RESOURCELESS_SOFTWARE) {
+ metadata.is_resourceless_software_draw_with_scroll_or_animation =
+ IsActivelyScrolling() || animation_host_->NeedsAnimateLayers();
+ }
+
for (LayerImpl* surface_layer : active_tree_->SurfaceLayers()) {
metadata.referenced_surfaces.push_back(
static_cast<SurfaceLayerImpl*>(surface_layer)->surface_id());
@@ -1669,28 +1674,9 @@ void LayerTreeHostImpl::DrawLayers(FrameData* frame) {
resource_provider_.get());
}
- if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE) {
- bool disable_picture_quad_image_filtering =
- IsActivelyScrolling() || animation_host_->NeedsAnimateLayers();
-
- // We must disable the image hijack canvas when using GPU rasterization but
- // performing a resourceless software draw. Otherwise, we will attempt to
- // use the GPU ImageDecodeController during software raster.
- bool use_image_hijack_canvas = !use_gpu_rasterization_;
-
- std::unique_ptr<SoftwareRenderer> temp_software_renderer =
- SoftwareRenderer::Create(this, &settings_.renderer_settings,
- output_surface_, nullptr,
- use_image_hijack_canvas);
- temp_software_renderer->DrawFrame(
- &frame->render_passes, active_tree_->device_scale_factor(),
- gfx::ColorSpace(), DeviceViewport(), DeviceClip(),
- disable_picture_quad_image_filtering);
- } else {
- renderer_->DrawFrame(&frame->render_passes,
- active_tree_->device_scale_factor(), gfx::ColorSpace(),
- DeviceViewport(), DeviceClip(), false);
- }
+ renderer_->DrawFrame(&frame->render_passes,
+ active_tree_->device_scale_factor(), gfx::ColorSpace(),
+ DeviceViewport(), DeviceClip());
// The render passes should be consumed by the renderer.
DCHECK(frame->render_passes.empty());
@@ -2147,9 +2133,9 @@ void LayerTreeHostImpl::CreateAndSetRenderer() {
resource_provider_.get(), texture_mailbox_deleter_.get(),
settings_.renderer_settings.highp_threshold_min);
} else if (output_surface_->software_device()) {
- renderer_ = SoftwareRenderer::Create(
- this, &settings_.renderer_settings, output_surface_,
- resource_provider_.get(), true /* use_image_hijack_canvas */);
+ renderer_ =
+ SoftwareRenderer::Create(this, &settings_.renderer_settings,
+ output_surface_, resource_provider_.get());
}
DCHECK(renderer_);
« no previous file with comments | « cc/test/pixel_test.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698