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(); | |
msw
2014/11/18 23:37:42
q: will applying the same opacity throughout the v
sky
2014/11/19 00:49:39
Yes. Opacity is inherited.
msw
2014/11/19 01:27:51
Acknowledged.
| |
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 |