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

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 23961003: cc: Remove most methods from RendererClient. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rendererclient: rebase Created 7 years, 3 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/trees/layer_tree_host_impl.h ('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 08e4ac16366b7a4e3b1de129cd5b81d1c7a994d1..816383a6eb136e180b8874cce0576b24b1852120 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -1112,10 +1112,6 @@ void LayerTreeHostImpl::UpdateTileManagerMemoryPolicy(
manage_tiles_needed_ = true;
}
-bool LayerTreeHostImpl::HasImplThread() const {
- return proxy_->HasImplThread();
-}
-
void LayerTreeHostImpl::DidInitializeVisibleTile() {
// TODO(reveman): Determine tiles that changed and only damage
// what's necessary.
@@ -1128,10 +1124,6 @@ void LayerTreeHostImpl::NotifyReadyToActivate() {
client_->NotifyReadyToActivate();
}
-bool LayerTreeHostImpl::ShouldClearRootRenderPass() const {
- return settings_.should_clear_root_render_pass;
-}
-
void LayerTreeHostImpl::SetMemoryPolicy(const ManagedMemoryPolicy& policy) {
SetManagedMemoryPolicy(policy, zero_budget_);
}
@@ -1200,10 +1192,6 @@ void LayerTreeHostImpl::SetExternalDrawConstraints(
device_viewport_valid_for_tile_management_ = valid_for_tile_management;
}
-void LayerTreeHostImpl::SetExternalStencilTest(bool enabled) {
- external_stencil_test_enabled_ = enabled;
-}
-
void LayerTreeHostImpl::SetNeedsRedrawRect(gfx::Rect damage_rect) {
client_->SetNeedsRedrawRectOnImplThread(damage_rect);
}
@@ -1251,17 +1239,6 @@ CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() const {
return metadata;
}
-bool LayerTreeHostImpl::AllowPartialSwap() const {
- // We don't track damage on the HUD layer (it interacts with damage tracking
- // visualizations), so disable partial swaps to make the HUD layer display
- // properly.
- return !debug_state_.ShowHudRects();
-}
-
-bool LayerTreeHostImpl::ExternalStencilTestEnabled() const {
- return external_stencil_test_enabled_;
-}
-
static void LayerTreeHostImplDidBeginTracingCallback(LayerImpl* layer) {
layer->DidBeginTracing();
}
@@ -1335,12 +1312,22 @@ void LayerTreeHostImpl::DrawLayers(FrameData* frame,
active_tree_->hud_layer()->UpdateHudTexture(resource_provider_.get());
if (output_surface_->ForcedDrawToSoftwareDevice()) {
+ bool allow_partial_swap = false;
+
scoped_ptr<SoftwareRenderer> temp_software_renderer =
- SoftwareRenderer::Create(this, output_surface_.get(), NULL);
- temp_software_renderer->DrawFrame(&frame->render_passes, NULL);
+ SoftwareRenderer::Create(this, &settings_, output_surface_.get(), NULL);
+ temp_software_renderer->DrawFrame(
+ &frame->render_passes, NULL, device_scale_factor_, allow_partial_swap);
} else {
+ // We don't track damage on the HUD layer (it interacts with damage tracking
+ // visualizations), so disable partial swaps to make the HUD layer display
+ // properly.
+ bool allow_partial_swap = !debug_state_.ShowHudRects();
+
renderer_->DrawFrame(&frame->render_passes,
- offscreen_context_provider_.get());
+ offscreen_context_provider_.get(),
+ device_scale_factor_,
+ allow_partial_swap);
}
// The render passes should be consumed by the renderer.
DCHECK(frame->render_passes.empty());
@@ -1348,6 +1335,8 @@ void LayerTreeHostImpl::DrawLayers(FrameData* frame,
// The next frame should start by assuming nothing has changed, and changes
// are noted as they occur.
+ // TODO(boliu): If we did a temporary software renderer frame, propogate the
+ // damage forward to the next frame.
for (size_t i = 0; i < frame->render_surface_layer_list->size(); i++) {
(*frame->render_surface_layer_list)[i]->render_surface()->damage_tracker()->
DidDrawDamagedArea();
@@ -1394,15 +1383,11 @@ void LayerTreeHostImpl::SetNeedsBeginFrame(bool enable) {
output_surface_->SetNeedsBeginFrame(enable);
}
-float LayerTreeHostImpl::DeviceScaleFactor() const {
- return device_scale_factor_;
-}
-
gfx::SizeF LayerTreeHostImpl::UnscaledScrollableViewportSize() const {
// The container layer bounds should be used if non-overlay scrollbars may
// exist since it adjusts for them.
LayerImpl* container_layer = active_tree_->RootContainerLayer();
- if (!Settings().solid_color_scrollbars && container_layer) {
+ if (!settings_.solid_color_scrollbars && container_layer) {
DCHECK(!top_controls_manager_);
DCHECK_EQ(0, overdraw_bottom_height_);
return container_layer->bounds();
@@ -1417,10 +1402,6 @@ gfx::SizeF LayerTreeHostImpl::UnscaledScrollableViewportSize() const {
dip_size.height() - top_offset - overdraw_bottom_height_);
}
-const LayerTreeSettings& LayerTreeHostImpl::Settings() const {
- return settings();
-}
-
void LayerTreeHostImpl::DidLoseOutputSurface() {
// TODO(jamesr): The renderer_ check is needed to make some of the
// LayerTreeHostContextTest tests pass, but shouldn't be necessary (or
@@ -1607,17 +1588,18 @@ void LayerTreeHostImpl::CreateAndSetRenderer(
bool skip_gl_renderer) {
DCHECK(!renderer_);
if (output_surface->capabilities().delegated_rendering) {
- renderer_ =
- DelegatingRenderer::Create(this, output_surface, resource_provider);
+ renderer_ = DelegatingRenderer::Create(
+ this, &settings_, output_surface, resource_provider);
} else if (output_surface->context_provider() && !skip_gl_renderer) {
renderer_ = GLRenderer::Create(this,
+ &settings_,
output_surface,
resource_provider,
settings_.highp_threshold_min,
settings_.force_direct_layer_drawing);
} else if (output_surface->software_device()) {
- renderer_ =
- SoftwareRenderer::Create(this, output_surface, resource_provider);
+ renderer_ = SoftwareRenderer::Create(
+ this, &settings_, output_surface, resource_provider);
}
if (renderer_) {
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698