haikuwebkit/LayoutTests/compositing/culling/filter-occlusion-alpha-larg...

2 lines
1 B
Raw Permalink Normal View History

[Chromium] Occlusion tracking with CSS filters https://bugs.webkit.org/show_bug.cgi?id=77498 Patch by Dana Jansens <danakj@chromium.org> on 2012-02-16 Reviewed by James Robinson. Source/WebCore: The new CSS filter support within the compositor changes how occlusion tracking needs to function. A filter can change the alpha value of pixels, making an otherwise opaque pixel no longer so. Secondly, a filter may move color values around on a surface, which can cause otherwise occluded areas to become visible and require painting. New unit tests: CCLayerTreeHostTest.cpp Tests: compositing/culling/filter-occlusion-alpha-large.html compositing/culling/filter-occlusion-alpha.html compositing/culling/filter-occlusion-blur-large.html compositing/culling/filter-occlusion-blur.html * platform/graphics/chromium/RenderSurfaceChromium.cpp: (WebCore::RenderSurfaceChromium::RenderSurfaceChromium): * platform/graphics/chromium/RenderSurfaceChromium.h: (WebCore::RenderSurfaceChromium::setFilters): (WebCore::RenderSurfaceChromium::filters): (WebCore::RenderSurfaceChromium::setNearestAncestorThatMovesPixels): (WebCore::RenderSurfaceChromium::nearestAncestorThatMovesPixels): (RenderSurfaceChromium): * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: (WebCore::enterTargetRenderSurface): (WebCore::CCLayerTreeHost::paintLayerContents): * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp: (WebCore::subtreeShouldRenderToSeparateSurface): (WebCore::calculateDrawTransformsAndVisibilityInternal): (WebCore::CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility): * platform/graphics/chromium/cc/CCRenderSurface.cpp: (WebCore::CCRenderSurface::CCRenderSurface): * platform/graphics/chromium/cc/CCRenderSurface.h: (WebCore::CCRenderSurface::setNearestAncestorThatMovesPixels): (WebCore::CCRenderSurface::nearestAncestorThatMovesPixels): (CCRenderSurface): * platform/graphics/filters/FilterOperation.h: (FilterOperation): (WebCore::FilterOperation::affectsOpacity): (WebCore::FilterOperation::movesPixels): (WebCore::ReferenceFilterOperation::affectsOpacity): (WebCore::ReferenceFilterOperation::movesPixels): (ReferenceFilterOperation): (WebCore::BasicComponentTransferFilterOperation::affectsOpacity): (BasicComponentTransferFilterOperation): (WebCore::BlurFilterOperation::affectsOpacity): (WebCore::BlurFilterOperation::movesPixels): (BlurFilterOperation): (WebCore::DropShadowFilterOperation::affectsOpacity): (DropShadowFilterOperation): * platform/graphics/filters/FilterOperations.cpp: (WebCore::FilterOperations::hasFilterThatAffectsOpacity): (WebCore): (WebCore::FilterOperations::hasFilterThatMovesPixels): * platform/graphics/filters/FilterOperations.h: (WebCore::FilterOperations::isEmpty): (FilterOperations): Source/WebKit/chromium: * tests/CCLayerTreeHostTest.cpp: (CCLayerTreeHostTestLayerOcclusionWithFilters): (WTF::CCLayerTreeHostTestLayerOcclusionWithFilters::CCLayerTreeHostTestLayerOcclusionWithFilters): (WTF::CCLayerTreeHostTestLayerOcclusionWithFilters::beginTest): (WTF::CCLayerTreeHostTestLayerOcclusionWithFilters::afterTest): (WTF): LayoutTests: * compositing/culling/filter-occlusion-alpha-expected.png: Added. * compositing/culling/filter-occlusion-alpha-expected.txt: Added. * compositing/culling/filter-occlusion-alpha-large-expected.png: Added. * compositing/culling/filter-occlusion-alpha-large-expected.txt: Added. * compositing/culling/filter-occlusion-alpha-large.html: Added. * compositing/culling/filter-occlusion-alpha.html: Added. * compositing/culling/filter-occlusion-blur-expected.txt: Added. * compositing/culling/filter-occlusion-blur-large-expected.txt: Added. * compositing/culling/filter-occlusion-blur-large.html: Added. * compositing/culling/filter-occlusion-blur.html: Added. * platform/chromium/compositing/culling/filter-occlusion-blur-expected.png: Added. * platform/chromium/compositing/culling/filter-occlusion-blur-large-expected.png: Added. * platform/chromium/test_expectations.txt: Canonical link: https://commits.webkit.org/95847@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@108013 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-17 02:27:57 +00:00