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/delegated_renderer_layer_impl.h" | 5 #include "cc/layers/delegated_renderer_layer_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 gfx::Size frame_size = new_root_pass->output_rect.size(); | 148 gfx::Size frame_size = new_root_pass->output_rect.size(); |
149 gfx::RectF damage_in_layer = MathUtil::MapClippedRect( | 149 gfx::RectF damage_in_layer = MathUtil::MapClippedRect( |
150 DelegatedFrameToLayerSpaceTransform(frame_size), damage_in_frame); | 150 DelegatedFrameToLayerSpaceTransform(frame_size), damage_in_frame); |
151 SetUpdateRect(gfx::IntersectRects( | 151 SetUpdateRect(gfx::IntersectRects( |
152 gfx::UnionRects(update_rect(), damage_in_layer), gfx::Rect(bounds()))); | 152 gfx::UnionRects(update_rect(), damage_in_layer), gfx::Rect(bounds()))); |
153 | 153 |
154 SetRenderPasses(&render_pass_list); | 154 SetRenderPasses(&render_pass_list); |
155 have_render_passes_to_push_ = true; | 155 have_render_passes_to_push_ = true; |
156 } | 156 } |
157 | 157 |
158 void DelegatedRendererLayerImpl::SetDisplaySize(const gfx::Size& size) { | 158 void DelegatedRendererLayerImpl::SetDisplaySize(gfx::Size size) { |
159 if (display_size_ == size) | 159 if (display_size_ == size) |
160 return; | 160 return; |
161 display_size_ = size; | 161 display_size_ = size; |
162 NoteLayerPropertyChanged(); | 162 NoteLayerPropertyChanged(); |
163 } | 163 } |
164 | 164 |
165 void DelegatedRendererLayerImpl::SetRenderPasses( | 165 void DelegatedRendererLayerImpl::SetRenderPasses( |
166 ScopedPtrVector<RenderPass>* render_passes_in_draw_order) { | 166 ScopedPtrVector<RenderPass>* render_passes_in_draw_order) { |
167 ClearRenderPasses(); | 167 ClearRenderPasses(); |
168 | 168 |
(...skipping 21 matching lines...) Expand all Loading... |
190 return DelegatedRendererLayerImpl::Create( | 190 return DelegatedRendererLayerImpl::Create( |
191 tree_impl, id()).PassAs<LayerImpl>(); | 191 tree_impl, id()).PassAs<LayerImpl>(); |
192 } | 192 } |
193 | 193 |
194 void DelegatedRendererLayerImpl::ReleaseResources() { | 194 void DelegatedRendererLayerImpl::ReleaseResources() { |
195 ClearRenderPasses(); | 195 ClearRenderPasses(); |
196 ClearChildId(); | 196 ClearChildId(); |
197 } | 197 } |
198 | 198 |
199 gfx::Transform DelegatedRendererLayerImpl::DelegatedFrameToLayerSpaceTransform( | 199 gfx::Transform DelegatedRendererLayerImpl::DelegatedFrameToLayerSpaceTransform( |
200 const gfx::Size& frame_size) const { | 200 gfx::Size frame_size) const { |
201 gfx::Size display_size = display_size_.IsEmpty() ? bounds() : display_size_; | 201 gfx::Size display_size = display_size_.IsEmpty() ? bounds() : display_size_; |
202 | 202 |
203 gfx::Transform delegated_frame_to_layer_space_transform; | 203 gfx::Transform delegated_frame_to_layer_space_transform; |
204 delegated_frame_to_layer_space_transform.Scale( | 204 delegated_frame_to_layer_space_transform.Scale( |
205 static_cast<double>(display_size.width()) / frame_size.width(), | 205 static_cast<double>(display_size.width()) / frame_size.width(), |
206 static_cast<double>(display_size.height()) / frame_size.height()); | 206 static_cast<double>(display_size.height()) / frame_size.height()); |
207 return delegated_frame_to_layer_space_transform; | 207 return delegated_frame_to_layer_space_transform; |
208 } | 208 } |
209 | 209 |
210 static inline int IndexToId(int index) { return index + 1; } | 210 static inline int IndexToId(int index) { return index + 1; } |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 shared_quad_state, right, colors[i % kNumColors], false); | 387 shared_quad_state, right, colors[i % kNumColors], false); |
388 quad_sink->Append(right_quad.PassAs<DrawQuad>(), append_quads_data); | 388 quad_sink->Append(right_quad.PassAs<DrawQuad>(), append_quads_data); |
389 } | 389 } |
390 } | 390 } |
391 } | 391 } |
392 | 392 |
393 void DelegatedRendererLayerImpl::AppendRenderPassQuads( | 393 void DelegatedRendererLayerImpl::AppendRenderPassQuads( |
394 QuadSink* quad_sink, | 394 QuadSink* quad_sink, |
395 AppendQuadsData* append_quads_data, | 395 AppendQuadsData* append_quads_data, |
396 const RenderPass* delegated_render_pass, | 396 const RenderPass* delegated_render_pass, |
397 const gfx::Size& frame_size) const { | 397 gfx::Size frame_size) const { |
398 | 398 |
399 const SharedQuadState* delegated_shared_quad_state = NULL; | 399 const SharedQuadState* delegated_shared_quad_state = NULL; |
400 SharedQuadState* output_shared_quad_state = NULL; | 400 SharedQuadState* output_shared_quad_state = NULL; |
401 | 401 |
402 for (size_t i = 0; i < delegated_render_pass->quad_list.size(); ++i) { | 402 for (size_t i = 0; i < delegated_render_pass->quad_list.size(); ++i) { |
403 const DrawQuad* delegated_quad = delegated_render_pass->quad_list[i]; | 403 const DrawQuad* delegated_quad = delegated_render_pass->quad_list[i]; |
404 | 404 |
405 if (delegated_quad->shared_quad_state != delegated_shared_quad_state) { | 405 if (delegated_quad->shared_quad_state != delegated_shared_quad_state) { |
406 delegated_shared_quad_state = delegated_quad->shared_quad_state; | 406 delegated_shared_quad_state = delegated_quad->shared_quad_state; |
407 output_shared_quad_state = quad_sink->UseSharedQuadState( | 407 output_shared_quad_state = quad_sink->UseSharedQuadState( |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
482 if (own_child_id_) { | 482 if (own_child_id_) { |
483 ResourceProvider* provider = layer_tree_impl()->resource_provider(); | 483 ResourceProvider* provider = layer_tree_impl()->resource_provider(); |
484 provider->DestroyChild(child_id_); | 484 provider->DestroyChild(child_id_); |
485 } | 485 } |
486 | 486 |
487 resources_.clear(); | 487 resources_.clear(); |
488 child_id_ = 0; | 488 child_id_ = 0; |
489 } | 489 } |
490 | 490 |
491 } // namespace cc | 491 } // namespace cc |
OLD | NEW |