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

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

Issue 2615813003: Migrate WTF::Vector::append() to ::push_back() [part 14 of N] (Closed)
Patch Set: rebase, small fix in FontSettings.h Created 3 years, 11 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/compositing_display_item.h" 10 #include "cc/playback/compositing_display_item.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 : m_id(paintChunkId), 76 : m_id(paintChunkId),
77 m_debugName(paintChunkId.client.debugName()), 77 m_debugName(paintChunkId.client.debugName()),
78 m_ccPictureLayer(cc::PictureLayer::Create(this)) {} 78 m_ccPictureLayer(cc::PictureLayer::Create(this)) {}
79 79
80 void SetDisplayList(scoped_refptr<cc::DisplayItemList> ccDisplayItemList) { 80 void SetDisplayList(scoped_refptr<cc::DisplayItemList> ccDisplayItemList) {
81 m_ccDisplayItemList = std::move(ccDisplayItemList); 81 m_ccDisplayItemList = std::move(ccDisplayItemList);
82 } 82 }
83 void SetPaintableRegion(gfx::Rect region) { m_paintableRegion = region; } 83 void SetPaintableRegion(gfx::Rect region) { m_paintableRegion = region; }
84 84
85 void addPaintChunkDebugData(std::unique_ptr<JSONArray> json) { 85 void addPaintChunkDebugData(std::unique_ptr<JSONArray> json) {
86 m_paintChunkDebugData.append(std::move(json)); 86 m_paintChunkDebugData.push_back(std::move(json));
87 } 87 }
88 void clearPaintChunkDebugData() { m_paintChunkDebugData.clear(); } 88 void clearPaintChunkDebugData() { m_paintChunkDebugData.clear(); }
89 89
90 // cc::ContentLayerClient 90 // cc::ContentLayerClient
91 gfx::Rect PaintableRegion() override { return m_paintableRegion; } 91 gfx::Rect PaintableRegion() override { return m_paintableRegion; }
92 scoped_refptr<cc::DisplayItemList> PaintContentsToDisplayList( 92 scoped_refptr<cc::DisplayItemList> PaintContentsToDisplayList(
93 PaintingControlSetting) override { 93 PaintingControlSetting) override {
94 return m_ccDisplayItemList; 94 return m_ccDisplayItemList;
95 } 95 }
96 bool FillsBoundsCompletely() const override { return false; } 96 bool FillsBoundsCompletely() const override { return false; }
(...skipping 25 matching lines...) Expand all
122 void setNeedsDisplayRect(const gfx::Rect& rect, 122 void setNeedsDisplayRect(const gfx::Rect& rect,
123 RasterInvalidationInfo* rasterInvalidationInfo) { 123 RasterInvalidationInfo* rasterInvalidationInfo) {
124 m_ccPictureLayer->SetNeedsDisplayRect(rect); 124 m_ccPictureLayer->SetNeedsDisplayRect(rect);
125 125
126 if (!rasterInvalidationInfo || rect.IsEmpty()) 126 if (!rasterInvalidationInfo || rect.IsEmpty())
127 return; 127 return;
128 128
129 RasterInvalidationTracking& tracking = 129 RasterInvalidationTracking& tracking =
130 ccLayersRasterInvalidationTrackingMap().add(m_ccPictureLayer.get()); 130 ccLayersRasterInvalidationTrackingMap().add(m_ccPictureLayer.get());
131 131
132 tracking.trackedRasterInvalidations.append(*rasterInvalidationInfo); 132 tracking.trackedRasterInvalidations.push_back(*rasterInvalidationInfo);
133 133
134 if (RuntimeEnabledFeatures::paintUnderInvalidationCheckingEnabled()) { 134 if (RuntimeEnabledFeatures::paintUnderInvalidationCheckingEnabled()) {
135 // TODO(crbug.com/496260): Some antialiasing effects overflow the paint 135 // TODO(crbug.com/496260): Some antialiasing effects overflow the paint
136 // invalidation rect. 136 // invalidation rect.
137 IntRect r = rasterInvalidationInfo->rect; 137 IntRect r = rasterInvalidationInfo->rect;
138 r.inflate(1); 138 r.inflate(1);
139 tracking.rasterInvalidationRegionSinceLastPaint.unite(r); 139 tracking.rasterInvalidationRegionSinceLastPaint.unite(r);
140 } 140 }
141 } 141 }
142 142
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 // Raster paintChunk.rasterInvalidationRects is in the space of the 571 // Raster paintChunk.rasterInvalidationRects is in the space of the
572 // containing transform node, so need to subtract off the layer offset. 572 // containing transform node, so need to subtract off the layer offset.
573 ccInvalidationRect.Offset(-ccCombinedBounds.OffsetFromOrigin()); 573 ccInvalidationRect.Offset(-ccCombinedBounds.OffsetFromOrigin());
574 contentLayerClient->setNeedsDisplayRect( 574 contentLayerClient->setNeedsDisplayRect(
575 ccInvalidationRect, 575 ccInvalidationRect,
576 rasterTracking ? &rasterTracking->trackedRasterInvalidations[index] 576 rasterTracking ? &rasterTracking->trackedRasterInvalidations[index]
577 : nullptr); 577 : nullptr);
578 } 578 }
579 } 579 }
580 580
581 newContentLayerClients.append(std::move(contentLayerClient)); 581 newContentLayerClients.push_back(std::move(contentLayerClient));
582 return ccPictureLayer; 582 return ccPictureLayer;
583 } 583 }
584 584
585 namespace { 585 namespace {
586 586
587 class PropertyTreeManager { 587 class PropertyTreeManager {
588 WTF_MAKE_NONCOPYABLE(PropertyTreeManager); 588 WTF_MAKE_NONCOPYABLE(PropertyTreeManager);
589 589
590 public: 590 public:
591 PropertyTreeManager(cc::PropertyTrees& propertyTrees, cc::Layer* rootLayer) 591 PropertyTreeManager(cc::PropertyTrees& propertyTrees, cc::Layer* rootLayer)
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 cc::EffectNode& effectNode = 743 cc::EffectNode& effectNode =
744 *effectTree.Node(effectTree.Insert(cc::EffectNode(), kInvalidNodeId)); 744 *effectTree.Node(effectTree.Insert(cc::EffectNode(), kInvalidNodeId));
745 DCHECK_EQ(effectNode.id, kSecondaryRootNodeId); 745 DCHECK_EQ(effectNode.id, kSecondaryRootNodeId);
746 effectNode.owning_layer_id = m_rootLayer->id(); 746 effectNode.owning_layer_id = m_rootLayer->id();
747 effectNode.transform_id = kRealRootNodeId; 747 effectNode.transform_id = kRealRootNodeId;
748 effectNode.clip_id = kSecondaryRootNodeId; 748 effectNode.clip_id = kSecondaryRootNodeId;
749 effectNode.has_render_surface = true; 749 effectNode.has_render_surface = true;
750 m_propertyTrees.effect_id_to_index_map[effectNode.owning_layer_id] = 750 m_propertyTrees.effect_id_to_index_map[effectNode.owning_layer_id] =
751 effectNode.id; 751 effectNode.id;
752 752
753 m_effectStack.append( 753 m_effectStack.push_back(
754 BlinkEffectAndCcIdPair{EffectPaintPropertyNode::root(), effectNode.id}); 754 BlinkEffectAndCcIdPair{EffectPaintPropertyNode::root(), effectNode.id});
755 m_rootLayer->SetEffectTreeIndex(effectNode.id); 755 m_rootLayer->SetEffectTreeIndex(effectNode.id);
756 } 756 }
757 757
758 void PropertyTreeManager::setupRootScrollNode() { 758 void PropertyTreeManager::setupRootScrollNode() {
759 cc::ScrollTree& scrollTree = m_propertyTrees.scroll_tree; 759 cc::ScrollTree& scrollTree = m_propertyTrees.scroll_tree;
760 scrollTree.clear(); 760 scrollTree.clear();
761 m_propertyTrees.scroll_id_to_index_map.clear(); 761 m_propertyTrees.scroll_id_to_index_map.clear();
762 cc::ScrollNode& scrollNode = 762 cc::ScrollNode& scrollNode =
763 *scrollTree.Node(scrollTree.Insert(cc::ScrollNode(), kRealRootNodeId)); 763 *scrollTree.Node(scrollTree.Insert(cc::ScrollNode(), kRealRootNodeId));
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
1023 // decision until later phase of the pipeline. Remove premature optimization 1023 // decision until later phase of the pipeline. Remove premature optimization
1024 // here once the work is ready. 1024 // here once the work is ready.
1025 if (!nextEffect->filter().isEmpty() || 1025 if (!nextEffect->filter().isEmpty() ||
1026 nextEffect->blendMode() != SkBlendMode::kSrcOver) 1026 nextEffect->blendMode() != SkBlendMode::kSrcOver)
1027 effectNode.has_render_surface = true; 1027 effectNode.has_render_surface = true;
1028 effectNode.opacity = nextEffect->opacity(); 1028 effectNode.opacity = nextEffect->opacity();
1029 effectNode.filters = nextEffect->filter().asCcFilterOperations(); 1029 effectNode.filters = nextEffect->filter().asCcFilterOperations();
1030 effectNode.blend_mode = nextEffect->blendMode(); 1030 effectNode.blend_mode = nextEffect->blendMode();
1031 m_propertyTrees.effect_id_to_index_map[effectNode.owning_layer_id] = 1031 m_propertyTrees.effect_id_to_index_map[effectNode.owning_layer_id] =
1032 effectNode.id; 1032 effectNode.id;
1033 m_effectStack.append(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); 1033 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id});
1034 1034
1035 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); 1035 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber);
1036 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); 1036 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId);
1037 dummyLayer->SetClipTreeIndex(outputClipId); 1037 dummyLayer->SetClipTreeIndex(outputClipId);
1038 dummyLayer->SetEffectTreeIndex(effectNode.id); 1038 dummyLayer->SetEffectTreeIndex(effectNode.id);
1039 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); 1039 dummyLayer->SetScrollTreeIndex(kRealRootNodeId);
1040 } 1040 }
1041 1041
1042 } // namespace 1042 } // namespace
1043 1043
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 1095
1096 return paintChunkScreenVisualRect.intersects(pendingLayerScreenVisualRect); 1096 return paintChunkScreenVisualRect.intersects(pendingLayerScreenVisualRect);
1097 } 1097 }
1098 1098
1099 PaintArtifactCompositor::PendingLayer::PendingLayer( 1099 PaintArtifactCompositor::PendingLayer::PendingLayer(
1100 const PaintChunk& firstPaintChunk) 1100 const PaintChunk& firstPaintChunk)
1101 : bounds(firstPaintChunk.bounds), 1101 : bounds(firstPaintChunk.bounds),
1102 knownToBeOpaque(firstPaintChunk.knownToBeOpaque), 1102 knownToBeOpaque(firstPaintChunk.knownToBeOpaque),
1103 backfaceHidden(firstPaintChunk.properties.backfaceHidden), 1103 backfaceHidden(firstPaintChunk.properties.backfaceHidden),
1104 propertyTreeState(firstPaintChunk.properties.propertyTreeState) { 1104 propertyTreeState(firstPaintChunk.properties.propertyTreeState) {
1105 paintChunks.append(&firstPaintChunk); 1105 paintChunks.push_back(&firstPaintChunk);
1106 } 1106 }
1107 1107
1108 void PaintArtifactCompositor::PendingLayer::add( 1108 void PaintArtifactCompositor::PendingLayer::add(
1109 const PaintChunk& paintChunk, 1109 const PaintChunk& paintChunk,
1110 GeometryMapper* geometryMapper) { 1110 GeometryMapper* geometryMapper) {
1111 DCHECK(paintChunk.properties.backfaceHidden == backfaceHidden); 1111 DCHECK(paintChunk.properties.backfaceHidden == backfaceHidden);
1112 paintChunks.append(&paintChunk); 1112 paintChunks.push_back(&paintChunk);
1113 FloatRect mappedBounds = paintChunk.bounds; 1113 FloatRect mappedBounds = paintChunk.bounds;
1114 if (geometryMapper) { 1114 if (geometryMapper) {
1115 bool success = false; 1115 bool success = false;
1116 mappedBounds = geometryMapper->localToAncestorRect( 1116 mappedBounds = geometryMapper->localToAncestorRect(
1117 mappedBounds, paintChunk.properties.propertyTreeState, 1117 mappedBounds, paintChunk.properties.propertyTreeState,
1118 propertyTreeState, success); 1118 propertyTreeState, success);
1119 DCHECK(success); 1119 DCHECK(success);
1120 } 1120 }
1121 bounds.unite(mappedBounds); 1121 bounds.unite(mappedBounds);
1122 if (bounds.size() != paintChunks[0]->bounds.size()) { 1122 if (bounds.size() != paintChunks[0]->bounds.size()) {
(...skipping 19 matching lines...) Expand all
1142 if (canMergeInto(paintArtifact, paintChunk, *candidatePendingLayer)) { 1142 if (canMergeInto(paintArtifact, paintChunk, *candidatePendingLayer)) {
1143 candidatePendingLayer->add(paintChunk, &geometryMapper); 1143 candidatePendingLayer->add(paintChunk, &geometryMapper);
1144 createNew = false; 1144 createNew = false;
1145 break; 1145 break;
1146 } 1146 }
1147 if (mightOverlap(paintChunk, *candidatePendingLayer, geometryMapper)) { 1147 if (mightOverlap(paintChunk, *candidatePendingLayer, geometryMapper)) {
1148 break; 1148 break;
1149 } 1149 }
1150 } 1150 }
1151 if (createNew) 1151 if (createNew)
1152 pendingLayers.append(PendingLayer(paintChunk)); 1152 pendingLayers.push_back(PendingLayer(paintChunk));
1153 } 1153 }
1154 } 1154 }
1155 1155
1156 void PaintArtifactCompositor::update( 1156 void PaintArtifactCompositor::update(
1157 const PaintArtifact& paintArtifact, 1157 const PaintArtifact& paintArtifact,
1158 RasterInvalidationTrackingMap<const PaintChunk>* rasterChunkInvalidations, 1158 RasterInvalidationTrackingMap<const PaintChunk>* rasterChunkInvalidations,
1159 bool storeDebugInfo) { 1159 bool storeDebugInfo) {
1160 #ifndef NDEBUG 1160 #ifndef NDEBUG
1161 storeDebugInfo = true; 1161 storeDebugInfo = true;
1162 #endif 1162 #endif
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1213 1213
1214 // TODO(jbroman): This probably shouldn't be necessary, but it is still 1214 // TODO(jbroman): This probably shouldn't be necessary, but it is still
1215 // queried by RenderSurfaceImpl. 1215 // queried by RenderSurfaceImpl.
1216 layer->Set3dSortingContextId(layerTree->property_trees() 1216 layer->Set3dSortingContextId(layerTree->property_trees()
1217 ->transform_tree.Node(transformId) 1217 ->transform_tree.Node(transformId)
1218 ->sorting_context_id); 1218 ->sorting_context_id);
1219 1219
1220 layer->SetShouldCheckBackfaceVisibility(pendingLayer.backfaceHidden); 1220 layer->SetShouldCheckBackfaceVisibility(pendingLayer.backfaceHidden);
1221 1221
1222 if (m_extraDataForTestingEnabled) 1222 if (m_extraDataForTestingEnabled)
1223 m_extraDataForTesting->contentLayers.append(layer); 1223 m_extraDataForTesting->contentLayers.push_back(layer);
1224 } 1224 }
1225 m_contentLayerClients.clear(); 1225 m_contentLayerClients.clear();
1226 m_contentLayerClients.swap(newContentLayerClients); 1226 m_contentLayerClients.swap(newContentLayerClients);
1227 1227
1228 // Mark the property trees as having been rebuilt. 1228 // Mark the property trees as having been rebuilt.
1229 layerTree->property_trees()->sequence_number = kPropertyTreeSequenceNumber; 1229 layerTree->property_trees()->sequence_number = kPropertyTreeSequenceNumber;
1230 layerTree->property_trees()->needs_rebuild = false; 1230 layerTree->property_trees()->needs_rebuild = false;
1231 layerTree->property_trees()->ResetCachedData(); 1231 layerTree->property_trees()->ResetCachedData();
1232 } 1232 }
1233 1233
1234 #ifndef NDEBUG 1234 #ifndef NDEBUG
1235 void PaintArtifactCompositor::showDebugData() { 1235 void PaintArtifactCompositor::showDebugData() {
1236 LOG(ERROR) << layersAsJSON(LayerTreeIncludesDebugInfo) 1236 LOG(ERROR) << layersAsJSON(LayerTreeIncludesDebugInfo)
1237 ->toPrettyJSONString() 1237 ->toPrettyJSONString()
1238 .utf8() 1238 .utf8()
1239 .data(); 1239 .data();
1240 } 1240 }
1241 #endif 1241 #endif
1242 1242
1243 } // namespace blink 1243 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698