Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/trees/layer_tree_host_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
| (...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 596 LayerIteratorType::End(frame->render_surface_layer_list); | 596 LayerIteratorType::End(frame->render_surface_layer_list); |
| 597 for (LayerIteratorType it = | 597 for (LayerIteratorType it = |
| 598 LayerIteratorType::Begin(frame->render_surface_layer_list); | 598 LayerIteratorType::Begin(frame->render_surface_layer_list); |
| 599 it != end; | 599 it != end; |
| 600 ++it) { | 600 ++it) { |
| 601 RenderPass::Id target_render_pass_id = | 601 RenderPass::Id target_render_pass_id = |
| 602 it.target_render_surface_layer()->render_surface()->RenderPassId(); | 602 it.target_render_surface_layer()->render_surface()->RenderPassId(); |
| 603 RenderPass* target_render_pass = | 603 RenderPass* target_render_pass = |
| 604 frame->render_passes_by_id[target_render_pass_id]; | 604 frame->render_passes_by_id[target_render_pass_id]; |
| 605 | 605 |
| 606 if (output_surface_->ForcedDrawToSoftwareDevice() && | |
| 607 !it->CanDrawInTilelessSoftwareMode()) { | |
| 608 continue; | |
| 609 } | |
| 610 | |
| 606 bool prevent_occlusion = it.target_render_surface_layer()->HasCopyRequest(); | 611 bool prevent_occlusion = it.target_render_surface_layer()->HasCopyRequest(); |
| 607 occlusion_tracker.EnterLayer(it, prevent_occlusion); | 612 occlusion_tracker.EnterLayer(it, prevent_occlusion); |
| 608 | 613 |
| 609 AppendQuadsData append_quads_data(target_render_pass->id); | 614 AppendQuadsData append_quads_data(target_render_pass->id); |
| 610 if (output_surface_->ForcedDrawToSoftwareDevice()) | 615 if (output_surface_->ForcedDrawToSoftwareDevice()) |
| 611 append_quads_data.allow_tile_draw_quads = false; | 616 append_quads_data.allow_tile_draw_quads = false; |
|
aelias_OOO_until_Jul13
2013/05/30 00:46:51
Nit: I suggest moving up the AppendQuadsData to th
| |
| 612 | 617 |
| 613 if (it.represents_target_render_surface()) { | 618 if (it.represents_target_render_surface()) { |
| 614 if (it->HasCopyRequest()) { | 619 if (it->HasCopyRequest()) { |
| 615 have_copy_request = true; | 620 have_copy_request = true; |
| 616 it->TakeCopyRequests(&target_render_pass->copy_requests); | 621 it->TakeCopyRequests(&target_render_pass->copy_requests); |
| 617 } | 622 } |
| 618 } else if (it.represents_contributing_render_surface()) { | 623 } else if (it.represents_contributing_render_surface()) { |
| 619 RenderPass::Id contributing_render_pass_id = | 624 RenderPass::Id contributing_render_pass_id = |
| 620 it->render_surface()->RenderPassId(); | 625 it->render_surface()->RenderPassId(); |
| 621 RenderPass* contributing_render_pass = | 626 RenderPass* contributing_render_pass = |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 634 it->visible_content_rect(), | 639 it->visible_content_rect(), |
| 635 it->draw_transform(), | 640 it->draw_transform(), |
| 636 impl_draw_transform_is_unknown, | 641 impl_draw_transform_is_unknown, |
| 637 it->is_clipped(), | 642 it->is_clipped(), |
| 638 it->clip_rect(), | 643 it->clip_rect(), |
| 639 &has_occlusion_from_outside_target_surface)) { | 644 &has_occlusion_from_outside_target_surface)) { |
| 640 append_quads_data.had_occlusion_from_outside_target_surface |= | 645 append_quads_data.had_occlusion_from_outside_target_surface |= |
| 641 has_occlusion_from_outside_target_surface; | 646 has_occlusion_from_outside_target_surface; |
| 642 } else { | 647 } else { |
| 643 DCHECK_EQ(active_tree_, it->layer_tree_impl()); | 648 DCHECK_EQ(active_tree_, it->layer_tree_impl()); |
| 649 | |
|
aelias_OOO_until_Jul13
2013/05/30 00:46:51
Nit: newline
| |
| 644 it->WillDraw(resource_provider_.get()); | 650 it->WillDraw(resource_provider_.get()); |
| 645 frame->will_draw_layers.push_back(*it); | 651 frame->will_draw_layers.push_back(*it); |
| 646 | 652 |
| 647 if (it->HasContributingDelegatedRenderPasses()) { | 653 if (it->HasContributingDelegatedRenderPasses()) { |
| 648 RenderPass::Id contributing_render_pass_id = | 654 RenderPass::Id contributing_render_pass_id = |
| 649 it->FirstContributingRenderPassId(); | 655 it->FirstContributingRenderPassId(); |
| 650 while (frame->render_passes_by_id.find(contributing_render_pass_id) != | 656 while (frame->render_passes_by_id.find(contributing_render_pass_id) != |
| 651 frame->render_passes_by_id.end()) { | 657 frame->render_passes_by_id.end()) { |
| 652 RenderPass* render_pass = | 658 RenderPass* render_pass = |
| 653 frame->render_passes_by_id[contributing_render_pass_id]; | 659 frame->render_passes_by_id[contributing_render_pass_id]; |
| (...skipping 1588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2242 } | 2248 } |
| 2243 | 2249 |
| 2244 void LayerTreeHostImpl::SetDebugState(const LayerTreeDebugState& debug_state) { | 2250 void LayerTreeHostImpl::SetDebugState(const LayerTreeDebugState& debug_state) { |
| 2245 if (debug_state_.continuous_painting != debug_state.continuous_painting) | 2251 if (debug_state_.continuous_painting != debug_state.continuous_painting) |
| 2246 paint_time_counter_->ClearHistory(); | 2252 paint_time_counter_->ClearHistory(); |
| 2247 | 2253 |
| 2248 debug_state_ = debug_state; | 2254 debug_state_ = debug_state; |
| 2249 } | 2255 } |
| 2250 | 2256 |
| 2251 } // namespace cc | 2257 } // namespace cc |
| OLD | NEW |