| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/layers/picture_layer_impl.h" | 5 #include "cc/layers/picture_layer_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 gfx::Transform scaled_draw_transform = draw_transform(); | 154 gfx::Transform scaled_draw_transform = draw_transform(); |
| 155 scaled_draw_transform.Scale(SK_MScalar1 / max_contents_scale, | 155 scaled_draw_transform.Scale(SK_MScalar1 / max_contents_scale, |
| 156 SK_MScalar1 / max_contents_scale); | 156 SK_MScalar1 / max_contents_scale); |
| 157 gfx::Size scaled_content_bounds = | 157 gfx::Size scaled_content_bounds = |
| 158 gfx::ToCeiledSize(gfx::ScaleSize(content_bounds(), max_contents_scale)); | 158 gfx::ToCeiledSize(gfx::ScaleSize(content_bounds(), max_contents_scale)); |
| 159 | 159 |
| 160 gfx::Rect scaled_visible_content_rect = | 160 gfx::Rect scaled_visible_content_rect = |
| 161 gfx::ScaleToEnclosingRect(visible_content_rect(), max_contents_scale); | 161 gfx::ScaleToEnclosingRect(visible_content_rect(), max_contents_scale); |
| 162 scaled_visible_content_rect.Intersect(gfx::Rect(scaled_content_bounds)); | 162 scaled_visible_content_rect.Intersect(gfx::Rect(scaled_content_bounds)); |
| 163 | 163 |
| 164 Occlusion occlusion = |
| 165 occlusion_tracker.GetCurrentOcclusionForLayer(scaled_draw_transform); |
| 166 |
| 164 SharedQuadState* shared_quad_state = | 167 SharedQuadState* shared_quad_state = |
| 165 render_pass->CreateAndAppendSharedQuadState(); | 168 render_pass->CreateAndAppendSharedQuadState(); |
| 166 shared_quad_state->SetAll(scaled_draw_transform, | 169 shared_quad_state->SetAll(scaled_draw_transform, |
| 167 scaled_content_bounds, | 170 scaled_content_bounds, |
| 168 scaled_visible_content_rect, | 171 scaled_visible_content_rect, |
| 169 draw_properties().clip_rect, | 172 draw_properties().clip_rect, |
| 170 draw_properties().is_clipped, | 173 draw_properties().is_clipped, |
| 171 draw_properties().opacity, | 174 draw_properties().opacity, |
| 172 blend_mode(), | 175 blend_mode(), |
| 173 sorting_context_id_); | 176 sorting_context_id_); |
| 174 | 177 |
| 175 if (current_draw_mode_ == DRAW_MODE_RESOURCELESS_SOFTWARE) { | 178 if (current_draw_mode_ == DRAW_MODE_RESOURCELESS_SOFTWARE) { |
| 176 AppendDebugBorderQuad( | 179 AppendDebugBorderQuad( |
| 177 render_pass, | 180 render_pass, |
| 178 scaled_content_bounds, | 181 scaled_content_bounds, |
| 179 shared_quad_state, | 182 shared_quad_state, |
| 180 append_quads_data, | 183 append_quads_data, |
| 181 DebugColors::DirectPictureBorderColor(), | 184 DebugColors::DirectPictureBorderColor(), |
| 182 DebugColors::DirectPictureBorderWidth(layer_tree_impl())); | 185 DebugColors::DirectPictureBorderWidth(layer_tree_impl())); |
| 183 | 186 |
| 184 gfx::Rect geometry_rect = scaled_visible_content_rect; | 187 gfx::Rect geometry_rect = scaled_visible_content_rect; |
| 185 gfx::Rect opaque_rect = contents_opaque() ? geometry_rect : gfx::Rect(); | 188 gfx::Rect opaque_rect = contents_opaque() ? geometry_rect : gfx::Rect(); |
| 186 gfx::Rect visible_geometry_rect = occlusion_tracker.UnoccludedContentRect( | 189 gfx::Rect visible_geometry_rect = |
| 187 geometry_rect, scaled_draw_transform); | 190 occlusion.GetUnoccludedContentRect(geometry_rect); |
| 188 if (visible_geometry_rect.IsEmpty()) | 191 if (visible_geometry_rect.IsEmpty()) |
| 189 return; | 192 return; |
| 190 | 193 |
| 191 gfx::Size texture_size = scaled_visible_content_rect.size(); | 194 gfx::Size texture_size = scaled_visible_content_rect.size(); |
| 192 gfx::RectF texture_rect = gfx::RectF(texture_size); | 195 gfx::RectF texture_rect = gfx::RectF(texture_size); |
| 193 gfx::Rect quad_content_rect = scaled_visible_content_rect; | 196 gfx::Rect quad_content_rect = scaled_visible_content_rect; |
| 194 | 197 |
| 195 PictureDrawQuad* quad = | 198 PictureDrawQuad* quad = |
| 196 render_pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 199 render_pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| 197 quad->SetNew(shared_quad_state, | 200 quad->SetNew(shared_quad_state, |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 size_t missing_tile_count = 0u; | 275 size_t missing_tile_count = 0u; |
| 273 size_t on_demand_missing_tile_count = 0u; | 276 size_t on_demand_missing_tile_count = 0u; |
| 274 for (PictureLayerTilingSet::CoverageIterator iter(tilings_.get(), | 277 for (PictureLayerTilingSet::CoverageIterator iter(tilings_.get(), |
| 275 max_contents_scale, | 278 max_contents_scale, |
| 276 scaled_visible_content_rect, | 279 scaled_visible_content_rect, |
| 277 ideal_contents_scale_); | 280 ideal_contents_scale_); |
| 278 iter; | 281 iter; |
| 279 ++iter) { | 282 ++iter) { |
| 280 gfx::Rect geometry_rect = iter.geometry_rect(); | 283 gfx::Rect geometry_rect = iter.geometry_rect(); |
| 281 gfx::Rect opaque_rect = contents_opaque() ? geometry_rect : gfx::Rect(); | 284 gfx::Rect opaque_rect = contents_opaque() ? geometry_rect : gfx::Rect(); |
| 282 gfx::Rect visible_geometry_rect = occlusion_tracker.UnoccludedContentRect( | 285 gfx::Rect visible_geometry_rect = |
| 283 geometry_rect, scaled_draw_transform); | 286 occlusion.GetUnoccludedContentRect(geometry_rect); |
| 284 if (visible_geometry_rect.IsEmpty()) | 287 if (visible_geometry_rect.IsEmpty()) |
| 285 continue; | 288 continue; |
| 286 | 289 |
| 287 append_quads_data->visible_content_area += | 290 append_quads_data->visible_content_area += |
| 288 visible_geometry_rect.width() * visible_geometry_rect.height(); | 291 visible_geometry_rect.width() * visible_geometry_rect.height(); |
| 289 | 292 |
| 290 bool has_draw_quad = false; | 293 bool has_draw_quad = false; |
| 291 if (*iter && iter->IsReadyToDraw()) { | 294 if (*iter && iter->IsReadyToDraw()) { |
| 292 const ManagedTileState::TileVersion& tile_version = | 295 const ManagedTileState::TileVersion& tile_version = |
| 293 iter->GetTileVersionForDrawing(); | 296 iter->GetTileVersionForDrawing(); |
| (...skipping 1464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1758 PictureLayerTilingSet::TilingRange tiling_range = CurrentTilingRange(); | 1761 PictureLayerTilingSet::TilingRange tiling_range = CurrentTilingRange(); |
| 1759 size_t current_tiling_range_offset = current_tiling_ - tiling_range.start; | 1762 size_t current_tiling_range_offset = current_tiling_ - tiling_range.start; |
| 1760 return tiling_range.end - 1 - current_tiling_range_offset; | 1763 return tiling_range.end - 1 - current_tiling_range_offset; |
| 1761 } | 1764 } |
| 1762 } | 1765 } |
| 1763 NOTREACHED(); | 1766 NOTREACHED(); |
| 1764 return 0; | 1767 return 0; |
| 1765 } | 1768 } |
| 1766 | 1769 |
| 1767 } // namespace cc | 1770 } // namespace cc |
| OLD | NEW |