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 "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 Loading... |
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 |
OLD | NEW |