| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "mojo/services/view_manager/display_manager.h" | 5 #include "mojo/services/view_manager/display_manager.h" |
| 6 | 6 |
| 7 #include "base/numerics/safe_conversions.h" | 7 #include "base/numerics/safe_conversions.h" |
| 8 #include "cc/surfaces/surface_id_allocator.h" | 8 #include "cc/surfaces/surface_id_allocator.h" |
| 9 #include "mojo/converters/geometry/geometry_type_converters.h" | 9 #include "mojo/converters/geometry/geometry_type_converters.h" |
| 10 #include "mojo/converters/surfaces/surfaces_type_converters.h" | 10 #include "mojo/converters/surfaces/surfaces_type_converters.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 const ServerView* view, | 24 const ServerView* view, |
| 25 const gfx::Vector2d& offset) { | 25 const gfx::Vector2d& offset) { |
| 26 if (!view->visible()) | 26 if (!view->visible()) |
| 27 return; | 27 return; |
| 28 | 28 |
| 29 const gfx::Rect node_bounds = view->bounds() + offset; | 29 const gfx::Rect node_bounds = view->bounds() + offset; |
| 30 std::vector<const ServerView*> children(view->GetChildren()); | 30 std::vector<const ServerView*> children(view->GetChildren()); |
| 31 for (std::vector<const ServerView*>::reverse_iterator it = children.rbegin(); | 31 for (std::vector<const ServerView*>::reverse_iterator it = children.rbegin(); |
| 32 it != children.rend(); | 32 it != children.rend(); |
| 33 ++it) { | 33 ++it) { |
| 34 DrawViewTree(pass, *it, offset + view->bounds().OffsetFromOrigin()); | 34 DrawViewTree(pass, *it, node_bounds.OffsetFromOrigin()); |
| 35 } | 35 } |
| 36 | 36 |
| 37 cc::SurfaceId node_id = view->surface_id(); | 37 cc::SurfaceId node_id = view->surface_id(); |
| 38 | 38 |
| 39 SurfaceQuadStatePtr surface_quad_state = SurfaceQuadState::New(); | 39 SurfaceQuadStatePtr surface_quad_state = SurfaceQuadState::New(); |
| 40 surface_quad_state->surface = SurfaceId::From(node_id); | 40 surface_quad_state->surface = SurfaceId::From(node_id); |
| 41 | 41 |
| 42 gfx::Transform node_transform; | 42 gfx::Transform node_transform; |
| 43 node_transform.Translate(node_bounds.x(), node_bounds.y()); | 43 node_transform.Translate(node_bounds.x(), node_bounds.y()); |
| 44 | 44 |
| 45 QuadPtr surface_quad = Quad::New(); | 45 QuadPtr surface_quad = Quad::New(); |
| 46 surface_quad->material = Material::MATERIAL_SURFACE_CONTENT; | 46 surface_quad->material = Material::MATERIAL_SURFACE_CONTENT; |
| 47 surface_quad->rect = Rect::From(node_bounds); | 47 surface_quad->rect = Rect::From(node_bounds); |
| 48 surface_quad->opaque_rect = Rect::From(node_bounds); | 48 surface_quad->opaque_rect = Rect::From(node_bounds); |
| 49 surface_quad->visible_rect = Rect::From(node_bounds); | 49 surface_quad->visible_rect = Rect::From(node_bounds); |
| 50 surface_quad->needs_blending = true; | 50 surface_quad->needs_blending = true; |
| 51 surface_quad->shared_quad_state_index = | 51 surface_quad->shared_quad_state_index = |
| 52 base::saturated_cast<int32_t>(pass->shared_quad_states.size()); | 52 base::saturated_cast<int32_t>(pass->shared_quad_states.size()); |
| 53 surface_quad->surface_quad_state = surface_quad_state.Pass(); | 53 surface_quad->surface_quad_state = surface_quad_state.Pass(); |
| 54 | 54 |
| 55 SharedQuadStatePtr sqs = CreateDefaultSQS(*Size::From(node_bounds.size())); | 55 SharedQuadStatePtr sqs = CreateDefaultSQS(*Size::From(node_bounds.size())); |
| 56 sqs->blend_mode = SK_XFERMODE_kSrcOver_Mode; |
| 57 sqs->opacity = view->opacity(); |
| 56 sqs->content_to_target_transform = Transform::From(node_transform); | 58 sqs->content_to_target_transform = Transform::From(node_transform); |
| 57 | 59 |
| 58 pass->quads.push_back(surface_quad.Pass()); | 60 pass->quads.push_back(surface_quad.Pass()); |
| 59 pass->shared_quad_states.push_back(sqs.Pass()); | 61 pass->shared_quad_states.push_back(sqs.Pass()); |
| 60 } | 62 } |
| 61 | 63 |
| 62 } // namespace | 64 } // namespace |
| 63 | 65 |
| 64 DefaultDisplayManager::DefaultDisplayManager( | 66 DefaultDisplayManager::DefaultDisplayManager( |
| 65 ApplicationConnection* app_connection, | 67 ApplicationConnection* app_connection, |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 SchedulePaint(connection_manager_->root(), gfx::Rect(size_)); | 172 SchedulePaint(connection_manager_->root(), gfx::Rect(size_)); |
| 171 } | 173 } |
| 172 | 174 |
| 173 void DefaultDisplayManager::ReturnResources( | 175 void DefaultDisplayManager::ReturnResources( |
| 174 Array<ReturnedResourcePtr> resources) { | 176 Array<ReturnedResourcePtr> resources) { |
| 175 DCHECK_EQ(0u, resources.size()); | 177 DCHECK_EQ(0u, resources.size()); |
| 176 } | 178 } |
| 177 | 179 |
| 178 } // namespace service | 180 } // namespace service |
| 179 } // namespace mojo | 181 } // namespace mojo |
| OLD | NEW |