Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: services/gfx/compositor/graph/node_def.cc

Issue 1729343004: Reverse scene node drawing order. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/services/gfx/composition/interfaces/nodes.mojom ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « mojo/services/gfx/composition/interfaces/nodes.mojom ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698