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

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

Issue 2331983002: cc: Make LayerTreeHost a protected Layer member. (Closed)
Patch Set: settings Created 4 years, 3 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
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 476 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 dummyLayer->SetEffectTreeIndex(effectNode.id); 487 dummyLayer->SetEffectTreeIndex(effectNode.id);
488 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); 488 dummyLayer->SetScrollTreeIndex(kRealRootNodeId);
489 } 489 }
490 490
491 } // namespace 491 } // namespace
492 492
493 void PaintArtifactCompositor::update(const PaintArtifact& paintArtifact) 493 void PaintArtifactCompositor::update(const PaintArtifact& paintArtifact)
494 { 494 {
495 DCHECK(m_rootLayer); 495 DCHECK(m_rootLayer);
496 496
497 cc::LayerTreeHost* host = m_rootLayer->layer_tree_host(); 497 cc::LayerTree* layerTree = m_rootLayer->GetLayerTree();
498 498
499 // The host will be null after detaching and this update can be ignored. 499 // The tree will be null after detaching and this update can be ignored.
500 // See: WebViewImpl::detachPaintArtifactCompositor(). 500 // See: WebViewImpl::detachPaintArtifactCompositor().
501 if (!host) 501 if (!layerTree)
502 return; 502 return;
503 503
504 if (m_extraDataForTestingEnabled) 504 if (m_extraDataForTestingEnabled)
505 m_extraDataForTesting = wrapUnique(new ExtraDataForTesting); 505 m_extraDataForTesting = wrapUnique(new ExtraDataForTesting);
506 506
507 setMinimalPropertyTrees(host->GetLayerTree()->property_trees(), m_rootLayer- >id()); 507 setMinimalPropertyTrees(layerTree->property_trees(), m_rootLayer->id());
508 508
509 m_rootLayer->RemoveAllChildren(); 509 m_rootLayer->RemoveAllChildren();
510 m_rootLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); 510 m_rootLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber);
511 m_rootLayer->SetTransformTreeIndex(kSecondaryRootNodeId); 511 m_rootLayer->SetTransformTreeIndex(kSecondaryRootNodeId);
512 m_rootLayer->SetClipTreeIndex(kSecondaryRootNodeId); 512 m_rootLayer->SetClipTreeIndex(kSecondaryRootNodeId);
513 m_rootLayer->SetEffectTreeIndex(kSecondaryRootNodeId); 513 m_rootLayer->SetEffectTreeIndex(kSecondaryRootNodeId);
514 m_rootLayer->SetScrollTreeIndex(kRealRootNodeId); 514 m_rootLayer->SetScrollTreeIndex(kRealRootNodeId);
515 515
516 PropertyTreeManager propertyTreeManager(*host->GetLayerTree()->property_tree s(), m_rootLayer.get()); 516 PropertyTreeManager propertyTreeManager(*layerTree->property_trees(), m_root Layer.get());
517 propertyTreeManager.setDeviceScaleFactor(host->GetLayerTree()->device_scale_ factor()); 517 propertyTreeManager.setDeviceScaleFactor(layerTree->device_scale_factor());
518 518
519 m_contentLayerClients.clear(); 519 m_contentLayerClients.clear();
520 m_contentLayerClients.reserveCapacity(paintArtifact.paintChunks().size()); 520 m_contentLayerClients.reserveCapacity(paintArtifact.paintChunks().size());
521 for (const PaintChunk& paintChunk : paintArtifact.paintChunks()) { 521 for (const PaintChunk& paintChunk : paintArtifact.paintChunks()) {
522 gfx::Vector2dF layerOffset; 522 gfx::Vector2dF layerOffset;
523 scoped_refptr<cc::Layer> layer = layerForPaintChunk(paintArtifact, paint Chunk, layerOffset); 523 scoped_refptr<cc::Layer> layer = layerForPaintChunk(paintArtifact, paint Chunk, layerOffset);
524 524
525 int transformId = propertyTreeManager.compositorIdForTransformNode(paint Chunk.properties.transform.get()); 525 int transformId = propertyTreeManager.compositorIdForTransformNode(paint Chunk.properties.transform.get());
526 int scrollId = propertyTreeManager.compositorIdForScrollNode(paintChunk. properties.scroll.get()); 526 int scrollId = propertyTreeManager.compositorIdForScrollNode(paintChunk. properties.scroll.get());
527 int clipId = propertyTreeManager.compositorIdForClipNode(paintChunk.prop erties.clip.get()); 527 int clipId = propertyTreeManager.compositorIdForClipNode(paintChunk.prop erties.clip.get());
528 int effectId = propertyTreeManager.switchToEffectNode(*paintChunk.proper ties.effect.get()); 528 int effectId = propertyTreeManager.switchToEffectNode(*paintChunk.proper ties.effect.get());
529 529
530 propertyTreeManager.updateScrollOffset(layer->id(), scrollId); 530 propertyTreeManager.updateScrollOffset(layer->id(), scrollId);
531 531
532 layer->set_offset_to_transform_parent(layerOffset); 532 layer->set_offset_to_transform_parent(layerOffset);
533 533
534 m_rootLayer->AddChild(layer); 534 m_rootLayer->AddChild(layer);
535 layer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); 535 layer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber);
536 layer->SetTransformTreeIndex(transformId); 536 layer->SetTransformTreeIndex(transformId);
537 layer->SetClipTreeIndex(clipId); 537 layer->SetClipTreeIndex(clipId);
538 layer->SetEffectTreeIndex(effectId); 538 layer->SetEffectTreeIndex(effectId);
539 layer->SetScrollTreeIndex(scrollId); 539 layer->SetScrollTreeIndex(scrollId);
540 540
541 // TODO(jbroman): This probably shouldn't be necessary, but it is still 541 // TODO(jbroman): This probably shouldn't be necessary, but it is still
542 // queried by RenderSurfaceImpl. 542 // queried by RenderSurfaceImpl.
543 layer->Set3dSortingContextId(host->GetLayerTree()->property_trees()->tra nsform_tree.Node(transformId)->sorting_context_id); 543 layer->Set3dSortingContextId(layerTree->property_trees()->transform_tree .Node(transformId)->sorting_context_id);
544 544
545 layer->SetShouldCheckBackfaceVisibility(paintChunk.properties.backfaceHi dden); 545 layer->SetShouldCheckBackfaceVisibility(paintChunk.properties.backfaceHi dden);
546 546
547 if (m_extraDataForTestingEnabled) 547 if (m_extraDataForTestingEnabled)
548 m_extraDataForTesting->contentLayers.append(layer); 548 m_extraDataForTesting->contentLayers.append(layer);
549 } 549 }
550 550
551 // Mark the property trees as having been rebuilt. 551 // Mark the property trees as having been rebuilt.
552 host->GetLayerTree()->property_trees()->sequence_number = kPropertyTreeSeque nceNumber; 552 layerTree->property_trees()->sequence_number = kPropertyTreeSequenceNumber;
553 host->GetLayerTree()->property_trees()->needs_rebuild = false; 553 layerTree->property_trees()->needs_rebuild = false;
554 } 554 }
555 555
556 } // namespace blink 556 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698