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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp

Issue 2122973002: [SPv2] Rename TransformTreeManager to PropertyTreeManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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 | « no previous file | 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 "platform/graphics/compositing/PaintArtifactCompositor.h" 5 #include "platform/graphics/compositing/PaintArtifactCompositor.h"
6 6
7 #include "cc/layers/content_layer_client.h" 7 #include "cc/layers/content_layer_client.h"
8 #include "cc/layers/layer.h" 8 #include "cc/layers/layer.h"
9 #include "cc/layers/picture_layer.h" 9 #include "cc/layers/picture_layer.h"
10 #include "cc/playback/display_item_list.h" 10 #include "cc/playback/display_item_list.h"
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 layer->SetBounds(combinedBounds.size()); 330 layer->SetBounds(combinedBounds.size());
331 layer->SetIsDrawable(true); 331 layer->SetIsDrawable(true);
332 if (paintChunk.knownToBeOpaque) 332 if (paintChunk.knownToBeOpaque)
333 layer->SetContentsOpaque(true); 333 layer->SetContentsOpaque(true);
334 m_contentLayerClients.append(std::move(contentLayerClient)); 334 m_contentLayerClients.append(std::move(contentLayerClient));
335 return layer; 335 return layer;
336 } 336 }
337 337
338 namespace { 338 namespace {
339 339
340 class TransformTreeManager { 340 class PropertyTreeManager {
341 WTF_MAKE_NONCOPYABLE(TransformTreeManager); 341 WTF_MAKE_NONCOPYABLE(PropertyTreeManager);
342 public: 342 public:
343 TransformTreeManager(cc::TransformTree& transformTree, cc::Layer* rootLayer) 343 PropertyTreeManager(cc::PropertyTrees& propertyTrees, cc::Layer* rootLayer)
344 : m_transformTree(transformTree) 344 : m_propertyTrees(propertyTrees)
345 , m_rootLayer(rootLayer) {} 345 , m_rootLayer(rootLayer) {}
346 346
347 int compositorIdForNode(const TransformPaintPropertyNode*); 347 int compositorIdForTransformNode(const TransformPaintPropertyNode*);
348 348
349 private: 349 private:
350 // Transform tree which should be updated by the manager. 350 cc::TransformTree& transformTree() { return m_propertyTrees.transform_tree; }
351 cc::TransformTree& m_transformTree; 351
352 // Property trees which should be updated by the manager.
353 cc::PropertyTrees& m_propertyTrees;
352 354
353 // Layer to which transform "owner" layers should be added. These will not 355 // Layer to which transform "owner" layers should be added. These will not
354 // have any actual children, but at present must exist in the tree. 356 // have any actual children, but at present must exist in the tree.
355 cc::Layer* m_rootLayer; 357 cc::Layer* m_rootLayer;
356 358
357 // Map from Blink-side transform nodes to cc transform node indices. 359 // Map from Blink-side transform nodes to cc transform node indices.
358 HashMap<const TransformPaintPropertyNode*, int> m_nodeMap; 360 HashMap<const TransformPaintPropertyNode*, int> m_transformNodeMap;
359 }; 361 };
360 362
361 int TransformTreeManager::compositorIdForNode(const TransformPaintPropertyNode* transformNode) 363 int PropertyTreeManager::compositorIdForTransformNode(const TransformPaintProper tyNode* transformNode)
362 { 364 {
363 if (!transformNode) 365 if (!transformNode)
364 return kSecondaryRootNodeId; 366 return kSecondaryRootNodeId;
365 367
366 auto it = m_nodeMap.find(transformNode); 368 auto it = m_transformNodeMap.find(transformNode);
367 if (it != m_nodeMap.end()) 369 if (it != m_transformNodeMap.end())
368 return it->value; 370 return it->value;
369 371
370 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create(); 372 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create();
371 int parentId = compositorIdForNode(transformNode->parent()); 373 int parentId = compositorIdForTransformNode(transformNode->parent());
372 int id = m_transformTree.Insert(cc::TransformNode(), parentId); 374 int id = transformTree().Insert(cc::TransformNode(), parentId);
373 375
374 cc::TransformNode& compositorNode = *m_transformTree.Node(id); 376 cc::TransformNode& compositorNode = *transformTree().Node(id);
375 m_transformTree.SetTargetId(id, kRealRootNodeId); 377 transformTree().SetTargetId(id, kRealRootNodeId);
376 m_transformTree.SetContentTargetId(id, kRealRootNodeId); 378 transformTree().SetContentTargetId(id, kRealRootNodeId);
377 compositorNode.data.source_node_id = parentId; 379 compositorNode.data.source_node_id = parentId;
378 380
379 FloatPoint3D origin = transformNode->origin(); 381 FloatPoint3D origin = transformNode->origin();
380 compositorNode.data.pre_local.matrix().setTranslate( 382 compositorNode.data.pre_local.matrix().setTranslate(
381 -origin.x(), -origin.y(), -origin.z()); 383 -origin.x(), -origin.y(), -origin.z());
382 compositorNode.data.local.matrix() = TransformationMatrix::toSkMatrix44(tran sformNode->matrix()); 384 compositorNode.data.local.matrix() = TransformationMatrix::toSkMatrix44(tran sformNode->matrix());
383 compositorNode.data.post_local.matrix().setTranslate( 385 compositorNode.data.post_local.matrix().setTranslate(
384 origin.x(), origin.y(), origin.z()); 386 origin.x(), origin.y(), origin.z());
385 compositorNode.data.needs_local_transform_update = true; 387 compositorNode.data.needs_local_transform_update = true;
386 388
387 m_rootLayer->AddChild(dummyLayer); 389 m_rootLayer->AddChild(dummyLayer);
388 dummyLayer->SetTransformTreeIndex(id); 390 dummyLayer->SetTransformTreeIndex(id);
389 dummyLayer->SetClipTreeIndex(kSecondaryRootNodeId); 391 dummyLayer->SetClipTreeIndex(kSecondaryRootNodeId);
390 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId); 392 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId);
391 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); 393 dummyLayer->SetScrollTreeIndex(kRealRootNodeId);
392 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); 394 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber);
393 395
394 auto result = m_nodeMap.set(transformNode, id); 396 auto result = m_transformNodeMap.set(transformNode, id);
395 DCHECK(result.isNewEntry); 397 DCHECK(result.isNewEntry);
396 m_transformTree.set_needs_update(true); 398 transformTree().set_needs_update(true);
397 return id; 399 return id;
398 } 400 }
399 401
400 } // namespace 402 } // namespace
401 403
402 void PaintArtifactCompositor::updateInLayerListMode(const PaintArtifact& paintAr tifact) 404 void PaintArtifactCompositor::updateInLayerListMode(const PaintArtifact& paintAr tifact)
403 { 405 {
404 cc::LayerTreeHost* host = m_rootLayer->layer_tree_host(); 406 cc::LayerTreeHost* host = m_rootLayer->layer_tree_host();
405 407
406 setMinimalPropertyTrees(host->property_trees(), m_rootLayer->id()); 408 setMinimalPropertyTrees(host->property_trees(), m_rootLayer->id());
407 m_rootLayer->RemoveAllChildren(); 409 m_rootLayer->RemoveAllChildren();
408 m_rootLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); 410 m_rootLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber);
409 m_rootLayer->SetTransformTreeIndex(kSecondaryRootNodeId); 411 m_rootLayer->SetTransformTreeIndex(kSecondaryRootNodeId);
410 m_rootLayer->SetClipTreeIndex(kSecondaryRootNodeId); 412 m_rootLayer->SetClipTreeIndex(kSecondaryRootNodeId);
411 m_rootLayer->SetEffectTreeIndex(kSecondaryRootNodeId); 413 m_rootLayer->SetEffectTreeIndex(kSecondaryRootNodeId);
412 m_rootLayer->SetScrollTreeIndex(kRealRootNodeId); 414 m_rootLayer->SetScrollTreeIndex(kRealRootNodeId);
413 415
414 TransformTreeManager transformTreeManager(host->property_trees()->transform_ tree, m_rootLayer.get()); 416 PropertyTreeManager propertyTreeManager(*host->property_trees(), m_rootLayer .get());
415 m_contentLayerClients.clear(); 417 m_contentLayerClients.clear();
416 m_contentLayerClients.reserveCapacity(paintArtifact.paintChunks().size()); 418 m_contentLayerClients.reserveCapacity(paintArtifact.paintChunks().size());
417 for (const PaintChunk& paintChunk : paintArtifact.paintChunks()) { 419 for (const PaintChunk& paintChunk : paintArtifact.paintChunks()) {
418 gfx::Vector2dF layerOffset; 420 gfx::Vector2dF layerOffset;
419 scoped_refptr<cc::Layer> layer = layerForPaintChunk(paintArtifact, paint Chunk, layerOffset); 421 scoped_refptr<cc::Layer> layer = layerForPaintChunk(paintArtifact, paint Chunk, layerOffset);
420 422
421 int transformId = transformTreeManager.compositorIdForNode(paintChunk.pr operties.transform.get()); 423 int transformId = propertyTreeManager.compositorIdForTransformNode(paint Chunk.properties.transform.get());
422 layer->set_offset_to_transform_parent(layerOffset); 424 layer->set_offset_to_transform_parent(layerOffset);
423 425
424 m_rootLayer->AddChild(layer); 426 m_rootLayer->AddChild(layer);
425 layer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); 427 layer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber);
426 layer->SetTransformTreeIndex(transformId); 428 layer->SetTransformTreeIndex(transformId);
427 layer->SetClipTreeIndex(kSecondaryRootNodeId); 429 layer->SetClipTreeIndex(kSecondaryRootNodeId);
428 layer->SetEffectTreeIndex(kSecondaryRootNodeId); 430 layer->SetEffectTreeIndex(kSecondaryRootNodeId);
429 layer->SetScrollTreeIndex(kRealRootNodeId); 431 layer->SetScrollTreeIndex(kRealRootNodeId);
430 432
431 if (m_extraDataForTestingEnabled) 433 if (m_extraDataForTestingEnabled)
432 m_extraDataForTesting->contentLayers.append(layer); 434 m_extraDataForTesting->contentLayers.append(layer);
433 } 435 }
434 436
435 // Mark the property trees as having been rebuilt. 437 // Mark the property trees as having been rebuilt.
436 host->property_trees()->sequence_number = kPropertyTreeSequenceNumber; 438 host->property_trees()->sequence_number = kPropertyTreeSequenceNumber;
437 host->property_trees()->needs_rebuild = false; 439 host->property_trees()->needs_rebuild = false;
438 } 440 }
439 441
440 } // namespace blink 442 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698