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

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

Issue 2391943002: Rewrap comments to 80 columns in platform/graphics/{compositing,cpu,gpu,skia}/. (Closed)
Patch Set: One space Created 4 years, 2 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 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 115
116 if (!rasterInvalidationInfo || rect.IsEmpty()) 116 if (!rasterInvalidationInfo || rect.IsEmpty())
117 return; 117 return;
118 118
119 RasterInvalidationTracking& tracking = 119 RasterInvalidationTracking& tracking =
120 ccLayersRasterInvalidationTrackingMap().add(m_ccPictureLayer.get()); 120 ccLayersRasterInvalidationTrackingMap().add(m_ccPictureLayer.get());
121 121
122 tracking.trackedRasterInvalidations.append(*rasterInvalidationInfo); 122 tracking.trackedRasterInvalidations.append(*rasterInvalidationInfo);
123 123
124 if (RuntimeEnabledFeatures::paintUnderInvalidationCheckingEnabled()) { 124 if (RuntimeEnabledFeatures::paintUnderInvalidationCheckingEnabled()) {
125 // TODO(crbug.com/496260): Some antialiasing effects overflows the paint i nvalidation rect. 125 // TODO(crbug.com/496260): Some antialiasing effects overflow the paint
126 // invalidation rect.
126 IntRect r = rasterInvalidationInfo->rect; 127 IntRect r = rasterInvalidationInfo->rect;
127 r.inflate(1); 128 r.inflate(1);
128 tracking.rasterInvalidationRegionSinceLastPaint.unite(r); 129 tracking.rasterInvalidationRegionSinceLastPaint.unite(r);
129 } 130 }
130 } 131 }
131 132
132 std::unique_ptr<JSONObject> layerAsJSON() { 133 std::unique_ptr<JSONObject> layerAsJSON() {
133 std::unique_ptr<JSONObject> json = JSONObject::create(); 134 std::unique_ptr<JSONObject> json = JSONObject::create();
134 json->setString("name", m_debugName); 135 json->setString("name", m_debugName);
135 IntSize bounds(m_ccPictureLayer->bounds().width(), 136 IntSize bounds(m_ccPictureLayer->bounds().width(),
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 } 271 }
271 272
272 // cc's property trees use 0 for the root node (always non-null). 273 // cc's property trees use 0 for the root node (always non-null).
273 constexpr int kRealRootNodeId = 0; 274 constexpr int kRealRootNodeId = 0;
274 // cc allocates special nodes for root effects such as the device scale. 275 // cc allocates special nodes for root effects such as the device scale.
275 constexpr int kSecondaryRootNodeId = 1; 276 constexpr int kSecondaryRootNodeId = 1;
276 constexpr int kPropertyTreeSequenceNumber = 1; 277 constexpr int kPropertyTreeSequenceNumber = 1;
277 278
278 // Creates a minimal set of property trees for the compositor. 279 // Creates a minimal set of property trees for the compositor.
279 void setMinimalPropertyTrees(cc::PropertyTrees* propertyTrees, int ownerId) { 280 void setMinimalPropertyTrees(cc::PropertyTrees* propertyTrees, int ownerId) {
280 // cc is hardcoded to use transform node index 1 for device scale and transfor m. 281 // cc is hardcoded to use transform node index 1 for device scale and
282 // transform.
281 cc::TransformTree& transformTree = propertyTrees->transform_tree; 283 cc::TransformTree& transformTree = propertyTrees->transform_tree;
282 transformTree.clear(); 284 transformTree.clear();
283 cc::TransformNode& transformNode = *transformTree.Node( 285 cc::TransformNode& transformNode = *transformTree.Node(
284 transformTree.Insert(cc::TransformNode(), kRealRootNodeId)); 286 transformTree.Insert(cc::TransformNode(), kRealRootNodeId));
285 DCHECK_EQ(transformNode.id, kSecondaryRootNodeId); 287 DCHECK_EQ(transformNode.id, kSecondaryRootNodeId);
286 transformNode.source_node_id = transformNode.parent_id; 288 transformNode.source_node_id = transformNode.parent_id;
287 transformTree.SetTargetId(transformNode.id, kRealRootNodeId); 289 transformTree.SetTargetId(transformNode.id, kRealRootNodeId);
288 transformTree.SetContentTargetId(transformNode.id, kRealRootNodeId); 290 transformTree.SetContentTargetId(transformNode.id, kRealRootNodeId);
289 291
290 // cc is hardcoded to use clip node index 1 for viewport clip. 292 // cc is hardcoded to use clip node index 1 for viewport clip.
(...skipping 22 matching lines...) Expand all
313 scrollNode.owner_id = ownerId; 315 scrollNode.owner_id = ownerId;
314 scrollNode.transform_id = kRealRootNodeId; 316 scrollNode.transform_id = kRealRootNodeId;
315 } 317 }
316 318
317 } // namespace 319 } // namespace
318 320
319 std::unique_ptr<PaintArtifactCompositor::ContentLayerClientImpl> 321 std::unique_ptr<PaintArtifactCompositor::ContentLayerClientImpl>
320 PaintArtifactCompositor::clientForPaintChunk( 322 PaintArtifactCompositor::clientForPaintChunk(
321 const PaintChunk& paintChunk, 323 const PaintChunk& paintChunk,
322 const PaintArtifact& paintArtifact) { 324 const PaintArtifact& paintArtifact) {
323 // TODO(chrishtr): for now, just using a linear walk. In the future we can opt imize this by using the same techniques used in 325 // TODO(chrishtr): for now, just using a linear walk. In the future we can
324 // PaintController for display lists. 326 // optimize this by using the same techniques used in PaintController for
327 // display lists.
325 for (auto& client : m_contentLayerClients) { 328 for (auto& client : m_contentLayerClients) {
326 if (client && client->matches(paintChunk)) 329 if (client && client->matches(paintChunk))
327 return std::move(client); 330 return std::move(client);
328 } 331 }
329 332
330 return wrapUnique(new ContentLayerClientImpl( 333 return wrapUnique(new ContentLayerClientImpl(
331 paintChunk.id 334 paintChunk.id
332 ? *paintChunk.id 335 ? *paintChunk.id
333 : paintArtifact.getDisplayItemList()[paintChunk.beginIndex].getId())); 336 : paintArtifact.getDisplayItemList()[paintChunk.beginIndex].getId()));
334 } 337 }
(...skipping 29 matching lines...) Expand all
364 if (paintChunk.knownToBeOpaque) 367 if (paintChunk.knownToBeOpaque)
365 ccPictureLayer->SetContentsOpaque(true); 368 ccPictureLayer->SetContentsOpaque(true);
366 DCHECK(!tracking || 369 DCHECK(!tracking ||
367 tracking->trackedRasterInvalidations.size() == 370 tracking->trackedRasterInvalidations.size() ==
368 paintChunk.rasterInvalidationRects.size()); 371 paintChunk.rasterInvalidationRects.size());
369 for (unsigned index = 0; index < paintChunk.rasterInvalidationRects.size(); 372 for (unsigned index = 0; index < paintChunk.rasterInvalidationRects.size();
370 ++index) { 373 ++index) {
371 IntRect rect(enclosingIntRect(paintChunk.rasterInvalidationRects[index])); 374 IntRect rect(enclosingIntRect(paintChunk.rasterInvalidationRects[index]));
372 gfx::Rect ccInvalidationRect(rect.x(), rect.y(), std::max(0, rect.width()), 375 gfx::Rect ccInvalidationRect(rect.x(), rect.y(), std::max(0, rect.width()),
373 std::max(0, rect.height())); 376 std::max(0, rect.height()));
377 // Raster paintChunk.rasterInvalidationRects is in the space of the
378 // containing transform node, so need to subtract off the layer offset.
374 ccInvalidationRect.Offset(-combinedBounds.OffsetFromOrigin()); 379 ccInvalidationRect.Offset(-combinedBounds.OffsetFromOrigin());
375 // Raster paintChunk.rasterInvalidationRects is in the space of the containi ng transform node, so need to subtract off the layer offset.
376 contentLayerClient->setNeedsDisplayRect( 380 contentLayerClient->setNeedsDisplayRect(
377 ccInvalidationRect, 381 ccInvalidationRect,
378 tracking ? &tracking->trackedRasterInvalidations[index] : nullptr); 382 tracking ? &tracking->trackedRasterInvalidations[index] : nullptr);
379 } 383 }
380 384
381 newContentLayerClients.append(std::move(contentLayerClient)); 385 newContentLayerClients.append(std::move(contentLayerClient));
382 return ccPictureLayer; 386 return ccPictureLayer;
383 } 387 }
384 388
385 namespace { 389 namespace {
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 buildEffectNodesRecursively(nextEffect->parent()); 654 buildEffectNodesRecursively(nextEffect->parent());
651 DCHECK_EQ(nextEffect->parent(), currentEffectNode()); 655 DCHECK_EQ(nextEffect->parent(), currentEffectNode());
652 656
653 #if DCHECK_IS_ON() 657 #if DCHECK_IS_ON()
654 DCHECK(!m_effectNodesConverted.contains(nextEffect)) 658 DCHECK(!m_effectNodesConverted.contains(nextEffect))
655 << "Malformed paint artifact. Paint chunks under the same effect should " 659 << "Malformed paint artifact. Paint chunks under the same effect should "
656 "be contiguous."; 660 "be contiguous.";
657 m_effectNodesConverted.add(nextEffect); 661 m_effectNodesConverted.add(nextEffect);
658 #endif 662 #endif
659 663
660 // We currently create dummy layers to host effect nodes and corresponding ren der surface. 664 // We currently create dummy layers to host effect nodes and corresponding
661 // This should be removed once cc implements better support for freestanding p roperty trees. 665 // render surfaces. This should be removed once cc implements better support
666 // for freestanding property trees.
662 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create(); 667 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create();
663 m_rootLayer->AddChild(dummyLayer); 668 m_rootLayer->AddChild(dummyLayer);
664 669
665 // Also cc assumes a clip node is always created by a layer that creates rende r surface. 670 // Also cc assumes a clip node is always created by a layer that creates
671 // render surface.
666 cc::ClipNode& dummyClip = 672 cc::ClipNode& dummyClip =
667 *clipTree().Node(clipTree().Insert(cc::ClipNode(), kSecondaryRootNodeId)); 673 *clipTree().Node(clipTree().Insert(cc::ClipNode(), kSecondaryRootNodeId));
668 dummyClip.owner_id = dummyLayer->id(); 674 dummyClip.owner_id = dummyLayer->id();
669 dummyClip.transform_id = kRealRootNodeId; 675 dummyClip.transform_id = kRealRootNodeId;
670 dummyClip.target_transform_id = kRealRootNodeId; 676 dummyClip.target_transform_id = kRealRootNodeId;
671 677
672 cc::EffectNode& effectNode = *effectTree().Node(effectTree().Insert( 678 cc::EffectNode& effectNode = *effectTree().Node(effectTree().Insert(
673 cc::EffectNode(), compositorIdForCurrentEffectNode())); 679 cc::EffectNode(), compositorIdForCurrentEffectNode()));
674 effectNode.owner_id = dummyLayer->id(); 680 effectNode.owner_id = dummyLayer->id();
675 effectNode.clip_id = dummyClip.id; 681 effectNode.clip_id = dummyClip.id;
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 } 762 }
757 m_contentLayerClients.clear(); 763 m_contentLayerClients.clear();
758 m_contentLayerClients.swap(newContentLayerClients); 764 m_contentLayerClients.swap(newContentLayerClients);
759 765
760 // Mark the property trees as having been rebuilt. 766 // Mark the property trees as having been rebuilt.
761 layerTree->property_trees()->sequence_number = kPropertyTreeSequenceNumber; 767 layerTree->property_trees()->sequence_number = kPropertyTreeSequenceNumber;
762 layerTree->property_trees()->needs_rebuild = false; 768 layerTree->property_trees()->needs_rebuild = false;
763 } 769 }
764 770
765 } // namespace blink 771 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698