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 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
385 compositorNode.source_node_id = parentId; | 385 compositorNode.source_node_id = parentId; |
386 | 386 |
387 FloatPoint3D origin = transformNode->origin(); | 387 FloatPoint3D origin = transformNode->origin(); |
388 compositorNode.pre_local.matrix().setTranslate( | 388 compositorNode.pre_local.matrix().setTranslate( |
389 -origin.x(), -origin.y(), -origin.z()); | 389 -origin.x(), -origin.y(), -origin.z()); |
390 compositorNode.local.matrix() = TransformationMatrix::toSkMatrix44(transform Node->matrix()); | 390 compositorNode.local.matrix() = TransformationMatrix::toSkMatrix44(transform Node->matrix()); |
391 compositorNode.post_local.matrix().setTranslate( | 391 compositorNode.post_local.matrix().setTranslate( |
392 origin.x(), origin.y(), origin.z()); | 392 origin.x(), origin.y(), origin.z()); |
393 compositorNode.needs_local_transform_update = true; | 393 compositorNode.needs_local_transform_update = true; |
394 | 394 |
395 // cc's notion of flattening and Blink's differ based on whether they apply | |
chrishtr
2016/07/13 20:30:50
Why is there such a difference? Is there something
chrishtr
2016/07/13 20:32:44
Sorry, mean to say "adopting cc's semantics".
jbroman
2016/07/13 21:47:13
We cannot adopt cc's semantics in CSS (because the
| |
396 // before or after the local transform. | |
397 compositorNode.flattens_inherited_transform = | |
398 transformNode->parent() ? transformNode->parent()->flattensTransform() : true; | |
trchen
2016/07/13 04:39:44
I'd rather avoid this ambiguity. A transform node
| |
399 | |
400 const TransformPaintPropertyNode* renderingContextRoot = transformNode->rend eringContextRoot(); | |
401 compositorNode.sorting_context_id = | |
402 renderingContextRoot ? PtrHash<const TransformPaintPropertyNode>::hash(r enderingContextRoot) : 0; | |
403 | |
395 m_rootLayer->AddChild(dummyLayer); | 404 m_rootLayer->AddChild(dummyLayer); |
396 dummyLayer->SetTransformTreeIndex(id); | 405 dummyLayer->SetTransformTreeIndex(id); |
397 dummyLayer->SetClipTreeIndex(kSecondaryRootNodeId); | 406 dummyLayer->SetClipTreeIndex(kSecondaryRootNodeId); |
398 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId); | 407 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId); |
399 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); | 408 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); |
400 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); | 409 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); |
401 | 410 |
402 auto result = m_transformNodeMap.set(transformNode, id); | 411 auto result = m_transformNodeMap.set(transformNode, id); |
403 DCHECK(result.isNewEntry); | 412 DCHECK(result.isNewEntry); |
404 transformTree().set_needs_update(true); | 413 transformTree().set_needs_update(true); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
468 | 477 |
469 layer->set_offset_to_transform_parent(layerOffset); | 478 layer->set_offset_to_transform_parent(layerOffset); |
470 | 479 |
471 m_rootLayer->AddChild(layer); | 480 m_rootLayer->AddChild(layer); |
472 layer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); | 481 layer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); |
473 layer->SetTransformTreeIndex(transformId); | 482 layer->SetTransformTreeIndex(transformId); |
474 layer->SetClipTreeIndex(clipId); | 483 layer->SetClipTreeIndex(clipId); |
475 layer->SetEffectTreeIndex(kSecondaryRootNodeId); | 484 layer->SetEffectTreeIndex(kSecondaryRootNodeId); |
476 layer->SetScrollTreeIndex(kRealRootNodeId); | 485 layer->SetScrollTreeIndex(kRealRootNodeId); |
477 | 486 |
487 // TODO(jbroman): This probably shouldn't be necessary, but it is still | |
488 // queried by RenderSurfaceImpl. | |
489 layer->Set3dSortingContextId(host->property_trees()->transform_tree.Node (transformId)->sorting_context_id); | |
490 | |
478 if (m_extraDataForTestingEnabled) | 491 if (m_extraDataForTestingEnabled) |
479 m_extraDataForTesting->contentLayers.append(layer); | 492 m_extraDataForTesting->contentLayers.append(layer); |
480 } | 493 } |
481 | 494 |
482 // Mark the property trees as having been rebuilt. | 495 // Mark the property trees as having been rebuilt. |
483 host->property_trees()->sequence_number = kPropertyTreeSequenceNumber; | 496 host->property_trees()->sequence_number = kPropertyTreeSequenceNumber; |
484 host->property_trees()->needs_rebuild = false; | 497 host->property_trees()->needs_rebuild = false; |
485 } | 498 } |
486 | 499 |
487 } // namespace blink | 500 } // namespace blink |
OLD | NEW |