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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 1666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1677 if (active_tree_->hud_layer()) { | 1677 if (active_tree_->hud_layer()) { |
| 1678 TRACE_EVENT0("cc", "DrawLayers.UpdateHudTexture"); | 1678 TRACE_EVENT0("cc", "DrawLayers.UpdateHudTexture"); |
| 1679 active_tree_->hud_layer()->UpdateHudTexture(draw_mode, | 1679 active_tree_->hud_layer()->UpdateHudTexture(draw_mode, |
| 1680 resource_provider_.get()); | 1680 resource_provider_.get()); |
| 1681 } | 1681 } |
| 1682 | 1682 |
| 1683 if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE) { | 1683 if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE) { |
| 1684 bool disable_picture_quad_image_filtering = | 1684 bool disable_picture_quad_image_filtering = |
| 1685 IsActivelyScrolling() || animation_host_->NeedsAnimateLayers(); | 1685 IsActivelyScrolling() || animation_host_->NeedsAnimateLayers(); |
| 1686 | 1686 |
| 1687 // We must disable the image hijack canvas when using GPU rasterization but | |
| 1688 // performing a resourceless software draw. Otherwise, we will attempt to | |
| 1689 // use the GPU ImageDecodeController during software raster. | |
| 1690 bool use_image_hijack_canvas = !use_gpu_rasterization_; | |
| 1691 | |
| 1687 std::unique_ptr<SoftwareRenderer> temp_software_renderer = | 1692 std::unique_ptr<SoftwareRenderer> temp_software_renderer = |
| 1688 SoftwareRenderer::Create(this, &settings_.renderer_settings, | 1693 SoftwareRenderer::Create(this, &settings_.renderer_settings, |
| 1689 output_surface_, NULL); | 1694 output_surface_, NULL, |
|
vmpstr
2016/06/02 19:57:47
nit: nullptr while here.
ericrk
2016/06/02 20:45:36
Done.
| |
| 1695 use_image_hijack_canvas); | |
| 1690 temp_software_renderer->DrawFrame( | 1696 temp_software_renderer->DrawFrame( |
| 1691 &frame->render_passes, active_tree_->device_scale_factor(), | 1697 &frame->render_passes, active_tree_->device_scale_factor(), |
| 1692 DeviceViewport(), DeviceClip(), disable_picture_quad_image_filtering); | 1698 DeviceViewport(), DeviceClip(), disable_picture_quad_image_filtering); |
| 1693 } else { | 1699 } else { |
| 1694 renderer_->DrawFrame(&frame->render_passes, | 1700 renderer_->DrawFrame(&frame->render_passes, |
| 1695 active_tree_->device_scale_factor(), DeviceViewport(), | 1701 active_tree_->device_scale_factor(), DeviceViewport(), |
| 1696 DeviceClip(), false); | 1702 DeviceClip(), false); |
| 1697 } | 1703 } |
| 1698 // The render passes should be consumed by the renderer. | 1704 // The render passes should be consumed by the renderer. |
| 1699 DCHECK(frame->render_passes.empty()); | 1705 DCHECK(frame->render_passes.empty()); |
| (...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2148 if (output_surface_->capabilities().delegated_rendering) { | 2154 if (output_surface_->capabilities().delegated_rendering) { |
| 2149 renderer_ = | 2155 renderer_ = |
| 2150 DelegatingRenderer::Create(this, &settings_.renderer_settings, | 2156 DelegatingRenderer::Create(this, &settings_.renderer_settings, |
| 2151 output_surface_, resource_provider_.get()); | 2157 output_surface_, resource_provider_.get()); |
| 2152 } else if (output_surface_->context_provider()) { | 2158 } else if (output_surface_->context_provider()) { |
| 2153 renderer_ = GLRenderer::Create( | 2159 renderer_ = GLRenderer::Create( |
| 2154 this, &settings_.renderer_settings, output_surface_, | 2160 this, &settings_.renderer_settings, output_surface_, |
| 2155 resource_provider_.get(), texture_mailbox_deleter_.get(), | 2161 resource_provider_.get(), texture_mailbox_deleter_.get(), |
| 2156 settings_.renderer_settings.highp_threshold_min); | 2162 settings_.renderer_settings.highp_threshold_min); |
| 2157 } else if (output_surface_->software_device()) { | 2163 } else if (output_surface_->software_device()) { |
| 2158 renderer_ = | 2164 renderer_ = SoftwareRenderer::Create( |
| 2159 SoftwareRenderer::Create(this, &settings_.renderer_settings, | 2165 this, &settings_.renderer_settings, output_surface_, |
| 2160 output_surface_, resource_provider_.get()); | 2166 resource_provider_.get(), true /* use_image_hijack_canvas */); |
| 2161 } | 2167 } |
| 2162 DCHECK(renderer_); | 2168 DCHECK(renderer_); |
| 2163 | 2169 |
| 2164 renderer_->SetVisible(visible_); | 2170 renderer_->SetVisible(visible_); |
| 2165 SetFullRootLayerDamage(); | 2171 SetFullRootLayerDamage(); |
| 2166 | 2172 |
| 2167 // See note in LayerTreeImpl::UpdateDrawProperties. Renderer needs to be | 2173 // See note in LayerTreeImpl::UpdateDrawProperties. Renderer needs to be |
| 2168 // initialized to get max texture size. Also, after releasing resources, | 2174 // initialized to get max texture size. Also, after releasing resources, |
| 2169 // trees need another update to generate new ones. | 2175 // trees need another update to generate new ones. |
| 2170 active_tree_->set_needs_update_draw_properties(); | 2176 active_tree_->set_needs_update_draw_properties(); |
| (...skipping 1876 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4047 const { | 4053 const { |
| 4048 return fixed_raster_scale_attempted_scale_change_history_.count() >= | 4054 return fixed_raster_scale_attempted_scale_change_history_.count() >= |
| 4049 kFixedRasterScaleAttemptedScaleChangeThreshold; | 4055 kFixedRasterScaleAttemptedScaleChangeThreshold; |
| 4050 } | 4056 } |
| 4051 | 4057 |
| 4052 void LayerTreeHostImpl::SetFixedRasterScaleAttemptedToChangeScale() { | 4058 void LayerTreeHostImpl::SetFixedRasterScaleAttemptedToChangeScale() { |
| 4053 fixed_raster_scale_attempted_scale_change_history_.set(0); | 4059 fixed_raster_scale_attempted_scale_change_history_.set(0); |
| 4054 } | 4060 } |
| 4055 | 4061 |
| 4056 } // namespace cc | 4062 } // namespace cc |
| OLD | NEW |