Chromium Code Reviews| 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 |