Changeset 139083 in webkit
- Timestamp:
- Jan 8, 2013 11:15:56 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r139081 r139083 1 2013-01-08 Alok Priyadarshi <alokp@chromium.org> 2 3 Added OpaqueRegionSkia::currentTrackingOpaqueRect 4 5 [chromium] Add OpaqueRegionSkia::currentTrackingOpaqueRect 6 https://bugs.webkit.org/show_bug.cgi?id=106267 7 8 Reviewed by Stephen White. 9 10 No new tests needed. No change in functionality. 11 12 * platform/graphics/skia/OpaqueRegionSkia.cpp: 13 (WebCore::OpaqueRegionSkia::applyOpaqueRegionFromLayer): 14 (WebCore::OpaqueRegionSkia::markRectAsOpaque): 15 (WebCore::OpaqueRegionSkia::markRectAsNonOpaque): 16 (WebCore::OpaqueRegionSkia::markAllAsNonOpaque): 17 (WebCore::OpaqueRegionSkia::currentTrackingOpaqueRect): 18 (WebCore): 19 * platform/graphics/skia/OpaqueRegionSkia.h: 20 (OpaqueRegionSkia): 21 1 22 2013-01-08 Zan Dobersek <zandobersek@gmail.com> 2 23 -
trunk/Source/WebCore/platform/graphics/skia/OpaqueRegionSkia.cpp
r126901 r139083 165 165 } 166 166 167 static inline SkRect& currentTrackingOpaqueRect(SkRect& rootOpaqueRect, Vector<OpaqueRegionSkia::CanvasLayerState, 3>& canvasLayerStack)168 {169 // If we are drawing into a canvas layer, then track the opaque rect in that layer.170 if (!canvasLayerStack.isEmpty())171 return canvasLayerStack.last().opaqueRect;172 return rootOpaqueRect;173 }174 175 167 void OpaqueRegionSkia::pushCanvasLayer(const SkPaint* paint) 176 168 { … … 334 326 SkRect sourceOpaqueRect = layerOpaqueRect; 335 327 // Save the opaque area in the destination, so we can preserve the parts of it under the source opaque area if possible. 336 SkRect destinationOpaqueRect = currentTrackingOpaqueRect( m_opaqueRect, m_canvasLayerStack);328 SkRect destinationOpaqueRect = currentTrackingOpaqueRect(); 337 329 338 330 bool outsideSourceOpaqueRectPreservesOpaque = xfermodePreservesOpaque(paint, false); … … 364 356 // without increasing the complexity. 365 357 366 SkRect& opaqueRect = currentTrackingOpaqueRect( m_opaqueRect, m_canvasLayerStack);358 SkRect& opaqueRect = currentTrackingOpaqueRect(); 367 359 368 360 if (rect.isEmpty()) … … 398 390 // rectangle inside m_opaqueRect that does not intersect with |rect|. 399 391 400 SkRect& opaqueRect = currentTrackingOpaqueRect( m_opaqueRect, m_canvasLayerStack);392 SkRect& opaqueRect = currentTrackingOpaqueRect(); 401 393 402 394 if (!SkRect::Intersects(rect, opaqueRect)) … … 433 425 void OpaqueRegionSkia::markAllAsNonOpaque() 434 426 { 435 SkRect& opaqueRect = currentTrackingOpaqueRect( m_opaqueRect, m_canvasLayerStack);427 SkRect& opaqueRect = currentTrackingOpaqueRect(); 436 428 opaqueRect.setEmpty(); 437 429 } 438 430 431 SkRect& OpaqueRegionSkia::currentTrackingOpaqueRect() 432 { 433 // If we are drawing into a canvas layer, then track the opaque rect in that layer. 434 return m_canvasLayerStack.isEmpty() ? m_opaqueRect : m_canvasLayerStack.last().opaqueRect; 435 } 436 439 437 } // namespace WebCore -
trunk/Source/WebCore/platform/graphics/skia/OpaqueRegionSkia.h
r136125 r139083 92 92 void markAllAsNonOpaque(); 93 93 94 SkRect& currentTrackingOpaqueRect(); 95 94 96 SkRect m_opaqueRect; 95 97
Note: See TracChangeset
for help on using the changeset viewer.