OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 return true; | 204 return true; |
205 } | 205 } |
206 | 206 |
207 void GraphicsLayer::addChildInternal(GraphicsLayer* childLayer) { | 207 void GraphicsLayer::addChildInternal(GraphicsLayer* childLayer) { |
208 DCHECK_NE(childLayer, this); | 208 DCHECK_NE(childLayer, this); |
209 | 209 |
210 if (childLayer->parent()) | 210 if (childLayer->parent()) |
211 childLayer->removeFromParent(); | 211 childLayer->removeFromParent(); |
212 | 212 |
213 childLayer->setParent(this); | 213 childLayer->setParent(this); |
214 m_children.append(childLayer); | 214 m_children.push_back(childLayer); |
215 | 215 |
216 // Don't call updateChildList here, this function is used in cases where it | 216 // Don't call updateChildList here, this function is used in cases where it |
217 // should not be called until all children are processed. | 217 // should not be called until all children are processed. |
218 } | 218 } |
219 | 219 |
220 void GraphicsLayer::addChild(GraphicsLayer* childLayer) { | 220 void GraphicsLayer::addChild(GraphicsLayer* childLayer) { |
221 addChildInternal(childLayer); | 221 addChildInternal(childLayer); |
222 updateChildList(); | 222 updateChildList(); |
223 } | 223 } |
224 | 224 |
225 void GraphicsLayer::addChildBelow(GraphicsLayer* childLayer, | 225 void GraphicsLayer::addChildBelow(GraphicsLayer* childLayer, |
226 GraphicsLayer* sibling) { | 226 GraphicsLayer* sibling) { |
227 DCHECK_NE(childLayer, this); | 227 DCHECK_NE(childLayer, this); |
228 childLayer->removeFromParent(); | 228 childLayer->removeFromParent(); |
229 | 229 |
230 bool found = false; | 230 bool found = false; |
231 for (unsigned i = 0; i < m_children.size(); i++) { | 231 for (unsigned i = 0; i < m_children.size(); i++) { |
232 if (sibling == m_children[i]) { | 232 if (sibling == m_children[i]) { |
233 m_children.insert(i, childLayer); | 233 m_children.insert(i, childLayer); |
234 found = true; | 234 found = true; |
235 break; | 235 break; |
236 } | 236 } |
237 } | 237 } |
238 | 238 |
239 childLayer->setParent(this); | 239 childLayer->setParent(this); |
240 | 240 |
241 if (!found) | 241 if (!found) |
242 m_children.append(childLayer); | 242 m_children.push_back(childLayer); |
243 | 243 |
244 updateChildList(); | 244 updateChildList(); |
245 } | 245 } |
246 | 246 |
247 void GraphicsLayer::removeAllChildren() { | 247 void GraphicsLayer::removeAllChildren() { |
248 while (!m_children.isEmpty()) { | 248 while (!m_children.isEmpty()) { |
249 GraphicsLayer* curLayer = m_children.back(); | 249 GraphicsLayer* curLayer = m_children.back(); |
250 DCHECK(curLayer->parent()); | 250 DCHECK(curLayer->parent()); |
251 curLayer->removeFromParent(); | 251 curLayer->removeFromParent(); |
252 } | 252 } |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
546 | 546 |
547 RasterInvalidationTracking& tracking = | 547 RasterInvalidationTracking& tracking = |
548 rasterInvalidationTrackingMap().add(this); | 548 rasterInvalidationTrackingMap().add(this); |
549 | 549 |
550 if (m_isTrackingRasterInvalidations) { | 550 if (m_isTrackingRasterInvalidations) { |
551 RasterInvalidationInfo info; | 551 RasterInvalidationInfo info; |
552 info.client = &client; | 552 info.client = &client; |
553 info.clientDebugName = client.debugName(); | 553 info.clientDebugName = client.debugName(); |
554 info.rect = rect; | 554 info.rect = rect; |
555 info.reason = reason; | 555 info.reason = reason; |
556 tracking.trackedRasterInvalidations.append(info); | 556 tracking.trackedRasterInvalidations.push_back(info); |
557 } | 557 } |
558 | 558 |
559 if (RuntimeEnabledFeatures::paintUnderInvalidationCheckingEnabled()) { | 559 if (RuntimeEnabledFeatures::paintUnderInvalidationCheckingEnabled()) { |
560 // TODO(crbug.com/496260): Some antialiasing effects overflow the paint | 560 // TODO(crbug.com/496260): Some antialiasing effects overflow the paint |
561 // invalidation rect. | 561 // invalidation rect. |
562 IntRect r = rect; | 562 IntRect r = rect; |
563 r.inflate(1); | 563 r.inflate(1); |
564 tracking.rasterInvalidationRegionSinceLastPaint.unite(r); | 564 tracking.rasterInvalidationRegionSinceLastPaint.unite(r); |
565 } | 565 } |
566 } | 566 } |
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1149 | 1149 |
1150 void GraphicsLayer::setPaintingPhase(GraphicsLayerPaintingPhase phase) { | 1150 void GraphicsLayer::setPaintingPhase(GraphicsLayerPaintingPhase phase) { |
1151 if (m_paintingPhase == phase) | 1151 if (m_paintingPhase == phase) |
1152 return; | 1152 return; |
1153 m_paintingPhase = phase; | 1153 m_paintingPhase = phase; |
1154 setNeedsDisplay(); | 1154 setNeedsDisplay(); |
1155 } | 1155 } |
1156 | 1156 |
1157 void GraphicsLayer::addLinkHighlight(LinkHighlight* linkHighlight) { | 1157 void GraphicsLayer::addLinkHighlight(LinkHighlight* linkHighlight) { |
1158 DCHECK(linkHighlight && !m_linkHighlights.contains(linkHighlight)); | 1158 DCHECK(linkHighlight && !m_linkHighlights.contains(linkHighlight)); |
1159 m_linkHighlights.append(linkHighlight); | 1159 m_linkHighlights.push_back(linkHighlight); |
1160 linkHighlight->layer()->setLayerClient(this); | 1160 linkHighlight->layer()->setLayerClient(this); |
1161 updateChildList(); | 1161 updateChildList(); |
1162 } | 1162 } |
1163 | 1163 |
1164 void GraphicsLayer::removeLinkHighlight(LinkHighlight* linkHighlight) { | 1164 void GraphicsLayer::removeLinkHighlight(LinkHighlight* linkHighlight) { |
1165 m_linkHighlights.remove(m_linkHighlights.find(linkHighlight)); | 1165 m_linkHighlights.remove(m_linkHighlights.find(linkHighlight)); |
1166 updateChildList(); | 1166 updateChildList(); |
1167 } | 1167 } |
1168 | 1168 |
1169 void GraphicsLayer::setScrollableArea(ScrollableArea* scrollableArea, | 1169 void GraphicsLayer::setScrollableArea(ScrollableArea* scrollableArea, |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1312 for (int bitmapX = 0; bitmapX < rect.width(); ++bitmapX) { | 1312 for (int bitmapX = 0; bitmapX < rect.width(); ++bitmapX) { |
1313 int layerX = bitmapX + rect.x(); | 1313 int layerX = bitmapX + rect.x(); |
1314 SkColor oldPixel = oldBitmap.getColor(bitmapX, bitmapY); | 1314 SkColor oldPixel = oldBitmap.getColor(bitmapX, bitmapY); |
1315 SkColor newPixel = newBitmap.getColor(bitmapX, bitmapY); | 1315 SkColor newPixel = newBitmap.getColor(bitmapX, bitmapY); |
1316 if (pixelsDiffer(oldPixel, newPixel) && | 1316 if (pixelsDiffer(oldPixel, newPixel) && |
1317 !tracking->rasterInvalidationRegionSinceLastPaint.contains( | 1317 !tracking->rasterInvalidationRegionSinceLastPaint.contains( |
1318 IntPoint(layerX, layerY))) { | 1318 IntPoint(layerX, layerY))) { |
1319 if (mismatchingPixels < maxMismatchesToReport) { | 1319 if (mismatchingPixels < maxMismatchesToReport) { |
1320 UnderPaintInvalidation underPaintInvalidation = {layerX, layerY, | 1320 UnderPaintInvalidation underPaintInvalidation = {layerX, layerY, |
1321 oldPixel, newPixel}; | 1321 oldPixel, newPixel}; |
1322 tracking->underPaintInvalidations.append(underPaintInvalidation); | 1322 tracking->underPaintInvalidations.push_back(underPaintInvalidation); |
1323 LOG(ERROR) << debugName() | 1323 LOG(ERROR) << debugName() |
1324 << " Uninvalidated old/new pixels mismatch at " << layerX | 1324 << " Uninvalidated old/new pixels mismatch at " << layerX |
1325 << "," << layerY << " old:" << std::hex << oldPixel | 1325 << "," << layerY << " old:" << std::hex << oldPixel |
1326 << " new:" << newPixel; | 1326 << " new:" << newPixel; |
1327 } else if (mismatchingPixels == maxMismatchesToReport) { | 1327 } else if (mismatchingPixels == maxMismatchesToReport) { |
1328 LOG(ERROR) << "and more..."; | 1328 LOG(ERROR) << "and more..."; |
1329 } | 1329 } |
1330 ++mismatchingPixels; | 1330 ++mismatchingPixels; |
1331 *newBitmap.getAddr32(bitmapX, bitmapY) = | 1331 *newBitmap.getAddr32(bitmapX, bitmapY) = |
1332 SkColorSetARGB(0xFF, 0xA0, 0, 0); // Dark red. | 1332 SkColorSetARGB(0xFF, 0xA0, 0, 0); // Dark red. |
(...skipping 22 matching lines...) Expand all Loading... |
1355 void showGraphicsLayerTree(const blink::GraphicsLayer* layer) { | 1355 void showGraphicsLayerTree(const blink::GraphicsLayer* layer) { |
1356 if (!layer) { | 1356 if (!layer) { |
1357 LOG(INFO) << "Cannot showGraphicsLayerTree for (nil)."; | 1357 LOG(INFO) << "Cannot showGraphicsLayerTree for (nil)."; |
1358 return; | 1358 return; |
1359 } | 1359 } |
1360 | 1360 |
1361 String output = layer->layerTreeAsText(blink::LayerTreeIncludesDebugInfo); | 1361 String output = layer->layerTreeAsText(blink::LayerTreeIncludesDebugInfo); |
1362 LOG(INFO) << output.utf8().data(); | 1362 LOG(INFO) << output.utf8().data(); |
1363 } | 1363 } |
1364 #endif | 1364 #endif |
OLD | NEW |