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

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

Issue 2266223002: cc: Compute draw transforms dynamically. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix layout tests 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 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 int parentId = compositorIdForClipNode(clipNode->parent()); 309 int parentId = compositorIdForClipNode(clipNode->parent());
310 int id = clipTree().Insert(cc::ClipNode(), parentId); 310 int id = clipTree().Insert(cc::ClipNode(), parentId);
311 311
312 cc::ClipNode& compositorNode = *clipTree().Node(id); 312 cc::ClipNode& compositorNode = *clipTree().Node(id);
313 compositorNode.owner_id = dummyLayer->id(); 313 compositorNode.owner_id = dummyLayer->id();
314 314
315 // TODO(jbroman): Don't discard rounded corners. 315 // TODO(jbroman): Don't discard rounded corners.
316 compositorNode.clip = clipNode->clipRect().rect(); 316 compositorNode.clip = clipNode->clipRect().rect();
317 compositorNode.transform_id = compositorIdForTransformNode(clipNode->localTr ansformSpace()); 317 compositorNode.transform_id = compositorIdForTransformNode(clipNode->localTr ansformSpace());
318 compositorNode.target_transform_id = kRealRootNodeId; 318 compositorNode.target_transform_id = kRealRootNodeId;
319 compositorNode.target_effect_id = kSecondaryRootNodeId;
319 compositorNode.applies_local_clip = true; 320 compositorNode.applies_local_clip = true;
320 compositorNode.layers_are_clipped = true; 321 compositorNode.layers_are_clipped = true;
321 compositorNode.layers_are_clipped_when_surfaces_disabled = true; 322 compositorNode.layers_are_clipped_when_surfaces_disabled = true;
322 323
323 m_rootLayer->AddChild(dummyLayer); 324 m_rootLayer->AddChild(dummyLayer);
324 dummyLayer->SetTransformTreeIndex(compositorNode.transform_id); 325 dummyLayer->SetTransformTreeIndex(compositorNode.transform_id);
325 dummyLayer->SetClipTreeIndex(id); 326 dummyLayer->SetClipTreeIndex(id);
326 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId); 327 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId);
327 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); 328 dummyLayer->SetScrollTreeIndex(kRealRootNodeId);
328 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); 329 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 // We currently create dummy layers to host effect nodes and corresponding r ender surface. 397 // We currently create dummy layers to host effect nodes and corresponding r ender surface.
397 // This should be removed once cc implements better support for freestanding property trees. 398 // This should be removed once cc implements better support for freestanding property trees.
398 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create(); 399 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create();
399 m_rootLayer->AddChild(dummyLayer); 400 m_rootLayer->AddChild(dummyLayer);
400 401
401 // Also cc assumes a clip node is always created by a layer that creates ren der surface. 402 // Also cc assumes a clip node is always created by a layer that creates ren der surface.
402 cc::ClipNode& dummyClip = *clipTree().Node(clipTree().Insert(cc::ClipNode(), kSecondaryRootNodeId)); 403 cc::ClipNode& dummyClip = *clipTree().Node(clipTree().Insert(cc::ClipNode(), kSecondaryRootNodeId));
403 dummyClip.owner_id = dummyLayer->id(); 404 dummyClip.owner_id = dummyLayer->id();
404 dummyClip.transform_id = kRealRootNodeId; 405 dummyClip.transform_id = kRealRootNodeId;
405 dummyClip.target_transform_id = kRealRootNodeId; 406 dummyClip.target_transform_id = kRealRootNodeId;
407 dummyClip.target_effect_id = kSecondaryRootNodeId;
406 408
407 cc::EffectNode& effectNode = *effectTree().Node(effectTree().Insert(cc::Effe ctNode(), compositorIdForCurrentEffectNode())); 409 cc::EffectNode& effectNode = *effectTree().Node(effectTree().Insert(cc::Effe ctNode(), compositorIdForCurrentEffectNode()));
408 effectNode.owner_id = dummyLayer->id(); 410 effectNode.owner_id = dummyLayer->id();
409 effectNode.clip_id = dummyClip.id; 411 effectNode.clip_id = dummyClip.id;
410 effectNode.opacity = nextEffect->opacity(); 412 effectNode.opacity = nextEffect->opacity();
411 m_effectStack.append(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); 413 m_effectStack.append(BlinkEffectAndCcIdPair{nextEffect, effectNode.id});
412 414
413 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); 415 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber);
414 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); 416 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId);
415 dummyLayer->SetClipTreeIndex(dummyClip.id); 417 dummyLayer->SetClipTreeIndex(dummyClip.id);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 469
468 layer->SetShouldCheckBackfaceVisibility(paintChunk.properties.backfaceHi dden); 470 layer->SetShouldCheckBackfaceVisibility(paintChunk.properties.backfaceHi dden);
469 471
470 if (m_extraDataForTestingEnabled) 472 if (m_extraDataForTestingEnabled)
471 m_extraDataForTesting->contentLayers.append(layer); 473 m_extraDataForTesting->contentLayers.append(layer);
472 } 474 }
473 475
474 // Mark the property trees as having been rebuilt. 476 // Mark the property trees as having been rebuilt.
475 host->GetLayerTree()->property_trees()->sequence_number = kPropertyTreeSeque nceNumber; 477 host->GetLayerTree()->property_trees()->sequence_number = kPropertyTreeSeque nceNumber;
476 host->GetLayerTree()->property_trees()->needs_rebuild = false; 478 host->GetLayerTree()->property_trees()->needs_rebuild = false;
479 host->GetLayerTree()->property_trees()->ResetCachedData();
477 } 480 }
478 481
479 } // namespace blink 482 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698