| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 1652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1663 if (active_tree_->hud_layer()) { | 1663 if (active_tree_->hud_layer()) { |
| 1664 TRACE_EVENT0("cc", "DrawLayers.UpdateHudTexture"); | 1664 TRACE_EVENT0("cc", "DrawLayers.UpdateHudTexture"); |
| 1665 active_tree_->hud_layer()->UpdateHudTexture(draw_mode, | 1665 active_tree_->hud_layer()->UpdateHudTexture(draw_mode, |
| 1666 resource_provider_.get()); | 1666 resource_provider_.get()); |
| 1667 } | 1667 } |
| 1668 | 1668 |
| 1669 if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE) { | 1669 if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE) { |
| 1670 bool disable_picture_quad_image_filtering = | 1670 bool disable_picture_quad_image_filtering = |
| 1671 IsActivelyScrolling() || animation_host_->NeedsAnimateLayers(); | 1671 IsActivelyScrolling() || animation_host_->NeedsAnimateLayers(); |
| 1672 | 1672 |
| 1673 // We must disable the image hijack canvas when using GPU rasterization but |
| 1674 // performing a resourceless software draw. Otherwise, we will attempt to |
| 1675 // use the GPU ImageDecodeController during software raster. |
| 1676 bool use_image_hijack_canvas = !use_gpu_rasterization_; |
| 1677 |
| 1673 std::unique_ptr<SoftwareRenderer> temp_software_renderer = | 1678 std::unique_ptr<SoftwareRenderer> temp_software_renderer = |
| 1674 SoftwareRenderer::Create(this, &settings_.renderer_settings, | 1679 SoftwareRenderer::Create(this, &settings_.renderer_settings, |
| 1675 output_surface_, NULL); | 1680 output_surface_, nullptr, |
| 1681 use_image_hijack_canvas); |
| 1676 temp_software_renderer->DrawFrame( | 1682 temp_software_renderer->DrawFrame( |
| 1677 &frame->render_passes, active_tree_->device_scale_factor(), | 1683 &frame->render_passes, active_tree_->device_scale_factor(), |
| 1678 DeviceViewport(), DeviceClip(), disable_picture_quad_image_filtering); | 1684 DeviceViewport(), DeviceClip(), disable_picture_quad_image_filtering); |
| 1679 } else { | 1685 } else { |
| 1680 renderer_->DrawFrame(&frame->render_passes, | 1686 renderer_->DrawFrame(&frame->render_passes, |
| 1681 active_tree_->device_scale_factor(), DeviceViewport(), | 1687 active_tree_->device_scale_factor(), DeviceViewport(), |
| 1682 DeviceClip(), false); | 1688 DeviceClip(), false); |
| 1683 } | 1689 } |
| 1684 // The render passes should be consumed by the renderer. | 1690 // The render passes should be consumed by the renderer. |
| 1685 DCHECK(frame->render_passes.empty()); | 1691 DCHECK(frame->render_passes.empty()); |
| (...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2123 if (output_surface_->capabilities().delegated_rendering) { | 2129 if (output_surface_->capabilities().delegated_rendering) { |
| 2124 renderer_ = | 2130 renderer_ = |
| 2125 DelegatingRenderer::Create(this, &settings_.renderer_settings, | 2131 DelegatingRenderer::Create(this, &settings_.renderer_settings, |
| 2126 output_surface_, resource_provider_.get()); | 2132 output_surface_, resource_provider_.get()); |
| 2127 } else if (output_surface_->context_provider()) { | 2133 } else if (output_surface_->context_provider()) { |
| 2128 renderer_ = GLRenderer::Create( | 2134 renderer_ = GLRenderer::Create( |
| 2129 this, &settings_.renderer_settings, output_surface_, | 2135 this, &settings_.renderer_settings, output_surface_, |
| 2130 resource_provider_.get(), texture_mailbox_deleter_.get(), | 2136 resource_provider_.get(), texture_mailbox_deleter_.get(), |
| 2131 settings_.renderer_settings.highp_threshold_min); | 2137 settings_.renderer_settings.highp_threshold_min); |
| 2132 } else if (output_surface_->software_device()) { | 2138 } else if (output_surface_->software_device()) { |
| 2133 renderer_ = | 2139 renderer_ = SoftwareRenderer::Create( |
| 2134 SoftwareRenderer::Create(this, &settings_.renderer_settings, | 2140 this, &settings_.renderer_settings, output_surface_, |
| 2135 output_surface_, resource_provider_.get()); | 2141 resource_provider_.get(), true /* use_image_hijack_canvas */); |
| 2136 } | 2142 } |
| 2137 DCHECK(renderer_); | 2143 DCHECK(renderer_); |
| 2138 | 2144 |
| 2139 renderer_->SetVisible(visible_); | 2145 renderer_->SetVisible(visible_); |
| 2140 SetFullRootLayerDamage(); | 2146 SetFullRootLayerDamage(); |
| 2141 | 2147 |
| 2142 // See note in LayerTreeImpl::UpdateDrawProperties. Renderer needs to be | 2148 // See note in LayerTreeImpl::UpdateDrawProperties. Renderer needs to be |
| 2143 // initialized to get max texture size. Also, after releasing resources, | 2149 // initialized to get max texture size. Also, after releasing resources, |
| 2144 // trees need another update to generate new ones. | 2150 // trees need another update to generate new ones. |
| 2145 active_tree_->set_needs_update_draw_properties(); | 2151 active_tree_->set_needs_update_draw_properties(); |
| (...skipping 1857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4003 const { | 4009 const { |
| 4004 return fixed_raster_scale_attempted_scale_change_history_.count() >= | 4010 return fixed_raster_scale_attempted_scale_change_history_.count() >= |
| 4005 kFixedRasterScaleAttemptedScaleChangeThreshold; | 4011 kFixedRasterScaleAttemptedScaleChangeThreshold; |
| 4006 } | 4012 } |
| 4007 | 4013 |
| 4008 void LayerTreeHostImpl::SetFixedRasterScaleAttemptedToChangeScale() { | 4014 void LayerTreeHostImpl::SetFixedRasterScaleAttemptedToChangeScale() { |
| 4009 fixed_raster_scale_attempted_scale_change_history_.set(0); | 4015 fixed_raster_scale_attempted_scale_change_history_.set(0); |
| 4010 } | 4016 } |
| 4011 | 4017 |
| 4012 } // namespace cc | 4018 } // namespace cc |
| OLD | NEW |