OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "services/gfx/compositor/graph/node_def.h" | 5 #include "services/gfx/compositor/graph/node_def.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
9 #include "mojo/services/gfx/composition/cpp/formatting.h" | 9 #include "mojo/services/gfx/composition/cpp/formatting.h" |
10 #include "mojo/skia/type_converters.h" | 10 #include "mojo/skia/type_converters.h" |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 RectNodeOp::RectNodeOp(const mojo::Rect& content_rect, | 184 RectNodeOp::RectNodeOp(const mojo::Rect& content_rect, |
185 const mojo::gfx::composition::Color& color) | 185 const mojo::gfx::composition::Color& color) |
186 : content_rect_(content_rect), color_(color) {} | 186 : content_rect_(content_rect), color_(color) {} |
187 | 187 |
188 RectNodeOp::~RectNodeOp() {} | 188 RectNodeOp::~RectNodeOp() {} |
189 | 189 |
190 bool RectNodeOp::Snapshot(SnapshotBuilder* snapshot_builder, | 190 bool RectNodeOp::Snapshot(SnapshotBuilder* snapshot_builder, |
191 RenderLayerBuilder* layer_builder, | 191 RenderLayerBuilder* layer_builder, |
192 SceneDef* scene, | 192 SceneDef* scene, |
193 NodeDef* node) { | 193 NodeDef* node) { |
194 if (!node->SnapshotChildren(snapshot_builder, layer_builder, scene)) | |
195 return false; | |
196 | |
197 SkPaint paint; | 194 SkPaint paint; |
198 paint.setColor(MakeSkColor(color_)); | 195 paint.setColor(MakeSkColor(color_)); |
199 layer_builder->DrawRect(content_rect_.To<SkRect>(), paint); | 196 layer_builder->DrawRect(content_rect_.To<SkRect>(), paint); |
200 return true; | 197 |
| 198 return node->SnapshotChildren(snapshot_builder, layer_builder, scene); |
201 } | 199 } |
202 | 200 |
203 ImageNodeOp::ImageNodeOp(const mojo::Rect& content_rect, | 201 ImageNodeOp::ImageNodeOp(const mojo::Rect& content_rect, |
204 mojo::RectPtr image_rect, | 202 mojo::RectPtr image_rect, |
205 uint32 image_resource_id, | 203 uint32 image_resource_id, |
206 mojo::gfx::composition::BlendPtr blend) | 204 mojo::gfx::composition::BlendPtr blend) |
207 : content_rect_(content_rect), | 205 : content_rect_(content_rect), |
208 image_rect_(image_rect.Pass()), | 206 image_rect_(image_rect.Pass()), |
209 image_resource_id_(image_resource_id), | 207 image_resource_id_(image_resource_id), |
210 blend_(blend.Pass()) {} | 208 blend_(blend.Pass()) {} |
(...skipping 20 matching lines...) Expand all Loading... |
231 if (!image_resource_->image()) { | 229 if (!image_resource_->image()) { |
232 if (snapshot_builder->block_log()) { | 230 if (snapshot_builder->block_log()) { |
233 *snapshot_builder->block_log() | 231 *snapshot_builder->block_log() |
234 << "Node blocked due to its referenced image " | 232 << "Node blocked due to its referenced image " |
235 "resource being unavailable: " | 233 "resource being unavailable: " |
236 << node->FormattedLabel(scene) << std::endl; | 234 << node->FormattedLabel(scene) << std::endl; |
237 } | 235 } |
238 return false; | 236 return false; |
239 } | 237 } |
240 | 238 |
241 if (!node->SnapshotChildren(snapshot_builder, layer_builder, scene)) | |
242 return false; | |
243 | |
244 layer_builder->DrawImage( | 239 layer_builder->DrawImage( |
245 image_resource_->image(), content_rect_.To<SkRect>(), | 240 image_resource_->image(), content_rect_.To<SkRect>(), |
246 image_rect_ ? image_rect_->To<SkRect>() | 241 image_rect_ ? image_rect_->To<SkRect>() |
247 : SkRect::MakeWH(image_resource_->image()->width(), | 242 : SkRect::MakeWH(image_resource_->image()->width(), |
248 image_resource_->image()->height()), | 243 image_resource_->image()->height()), |
249 blend_ ? MakePaintForBlend(*blend_) : SkPaint()); | 244 blend_ ? MakePaintForBlend(*blend_) : SkPaint()); |
250 return true; | 245 |
| 246 return node->SnapshotChildren(snapshot_builder, layer_builder, scene); |
251 } | 247 } |
252 | 248 |
253 SceneNodeOp::SceneNodeOp(uint32_t scene_resource_id, uint32_t scene_version) | 249 SceneNodeOp::SceneNodeOp(uint32_t scene_resource_id, uint32_t scene_version) |
254 : scene_resource_id_(scene_resource_id), scene_version_(scene_version) {} | 250 : scene_resource_id_(scene_resource_id), scene_version_(scene_version) {} |
255 | 251 |
256 SceneNodeOp::~SceneNodeOp() {} | 252 SceneNodeOp::~SceneNodeOp() {} |
257 | 253 |
258 bool SceneNodeOp::Validate(SceneDef* scene, NodeDef* node, std::ostream& err) { | 254 bool SceneNodeOp::Validate(SceneDef* scene, NodeDef* node, std::ostream& err) { |
259 scene_resource_ = scene->FindSceneResource(scene_resource_id_); | 255 scene_resource_ = scene->FindSceneResource(scene_resource_id_); |
260 if (!scene_resource_) { | 256 if (!scene_resource_) { |
(...skipping 30 matching lines...) Expand all Loading... |
291 *snapshot_builder->block_log() | 287 *snapshot_builder->block_log() |
292 << "Node blocked due to its referenced scene " | 288 << "Node blocked due to its referenced scene " |
293 "resource not having the desired version: " | 289 "resource not having the desired version: " |
294 << node->FormattedLabel(scene) | 290 << node->FormattedLabel(scene) |
295 << ", requested_version=" << scene_version_ | 291 << ", requested_version=" << scene_version_ |
296 << ", actual_version=" << actual_version << std::endl; | 292 << ", actual_version=" << actual_version << std::endl; |
297 } | 293 } |
298 return false; | 294 return false; |
299 } | 295 } |
300 | 296 |
301 if (!node->SnapshotChildren(snapshot_builder, layer_builder, scene)) | 297 if (!referenced_scene->Snapshot(snapshot_builder, layer_builder)) |
302 return false; | 298 return false; |
303 | 299 |
304 return referenced_scene->Snapshot(snapshot_builder, layer_builder); | 300 return node->SnapshotChildren(snapshot_builder, layer_builder, scene); |
305 } | 301 } |
306 | 302 |
307 LayerNodeOp::LayerNodeOp(const mojo::Size& size, | 303 LayerNodeOp::LayerNodeOp(const mojo::Size& size, |
308 mojo::gfx::composition::BlendPtr blend) | 304 mojo::gfx::composition::BlendPtr blend) |
309 : size_(size), blend_(blend.Pass()) {} | 305 : size_(size), blend_(blend.Pass()) {} |
310 | 306 |
311 LayerNodeOp::~LayerNodeOp() {} | 307 LayerNodeOp::~LayerNodeOp() {} |
312 | 308 |
313 bool LayerNodeOp::Snapshot(SnapshotBuilder* snapshot_builder, | 309 bool LayerNodeOp::Snapshot(SnapshotBuilder* snapshot_builder, |
314 RenderLayerBuilder* layer_builder, | 310 RenderLayerBuilder* layer_builder, |
315 SceneDef* scene, | 311 SceneDef* scene, |
316 NodeDef* node) { | 312 NodeDef* node) { |
317 SkRect content_rect = SkRect::MakeWH(size_.width, size_.height); | 313 SkRect content_rect = SkRect::MakeWH(size_.width, size_.height); |
318 RenderLayerBuilder children_layer_builder(&content_rect); | 314 RenderLayerBuilder children_layer_builder(&content_rect); |
319 if (!node->SnapshotChildren(snapshot_builder, &children_layer_builder, scene)) | 315 if (!node->SnapshotChildren(snapshot_builder, &children_layer_builder, scene)) |
320 return false; | 316 return false; |
321 | 317 |
322 layer_builder->DrawSavedLayer( | 318 layer_builder->DrawSavedLayer( |
323 children_layer_builder.Build(), content_rect, | 319 children_layer_builder.Build(), content_rect, |
324 blend_ ? MakePaintForBlend(*blend_) : SkPaint()); | 320 blend_ ? MakePaintForBlend(*blend_) : SkPaint()); |
325 return true; | 321 return true; |
326 } | 322 } |
327 | 323 |
328 } // namespace compositor | 324 } // namespace compositor |
OLD | NEW |