| 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 |