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

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

Issue 2137173002: [SPv2] Respect transform-style in the Blink and cc property trees. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix perspective 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
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 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698