DescriptionMerge 92255 - Source/WebCore: [Chromium] Use edge-distance method for layer anti-aliasing.
https://bugs.webkit.org/show_bug.cgi?id=64942
Patch by David Reveman <reveman@chromium.org> on 2011-08-02
Reviewed by James Robinson.
Use an edge distance based method instead of the current linear
filtering method for producing anti-aliased edges on 3D transformed
layers. This removes the outer border handling from TilingData as
it's no longer needed for anti-aliasing.
Tests: platform/chromium/compositing/tiny-layer-rotated.html (existing)
platform/chromium/compositing/huge-layer-rotated.html (existing)
compositing/images/content-image-change.html (existing)
TilingDataTest in webkit_unit_tests
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::screenMatrix):
(WebCore::LayerRendererChromium::drawLayers):
(WebCore::LayerRendererChromium::setDrawViewportRect):
(WebCore::LayerRendererChromium::tilerProgramAA):
(WebCore::LayerRendererChromium::tilerProgramSwizzleAA):
* platform/graphics/chromium/LayerRendererChromium.h:
(WebCore::LayerRendererChromium::windowMatrix):
* platform/graphics/chromium/LayerTilerChromium.cpp:
(WebCore::LayerTilerChromium::setTileSize):
(WebCore::LayerTilerChromium::tileLayerRect):
(WebCore::LayerTilerChromium::invalidateRect):
(WebCore::LayerTilerChromium::prepareToUpdate):
(WebCore::LayerTilerChromium::updateRect):
(WebCore::LayerTilerChromium::draw):
(WebCore::LayerTilerChromium::growLayerToContain):
(WebCore::LayerTilerChromium::drawTiles):
* platform/graphics/chromium/LayerTilerChromium.h:
* platform/graphics/chromium/ShaderChromium.cpp:
(WebCore::VertexShaderTile::VertexShaderTile):
(WebCore::VertexShaderTile::init):
(WebCore::VertexShaderTile::getShaderString):
(WebCore::FragmentTexAlphaAABinding::FragmentTexAlphaAABinding):
(WebCore::FragmentTexAlphaAABinding::init):
(WebCore::FragmentShaderRGBATexAlphaAA::getShaderString):
(WebCore::FragmentShaderRGBATexSwizzleAlphaAA::getShaderString):
* platform/graphics/chromium/ShaderChromium.h:
(WebCore::VertexShaderTile::vertexTexTransformLocation):
(WebCore::FragmentTexAlphaAABinding::alphaLocation):
(WebCore::FragmentTexAlphaAABinding::samplerLocation):
(WebCore::FragmentTexAlphaAABinding::fragmentTexTransformLocation):
(WebCore::FragmentTexAlphaAABinding::edgeLocation):
* platform/graphics/chromium/TiledLayerChromium.cpp:
(WebCore::TiledLayerChromium::TiledLayerChromium):
(WebCore::TiledLayerChromium::updateTileSizeAndTilingOption):
(WebCore::TiledLayerChromium::createTilerIfNeeded):
(WebCore::TiledLayerChromium::setIsMask):
* platform/graphics/chromium/TiledLayerChromium.h:
* platform/graphics/gpu/TilingData.cpp:
(WebCore::computeNumTiles):
(WebCore::TilingData::tileXIndexFromSrcCoord):
(WebCore::TilingData::tileYIndexFromSrcCoord):
(WebCore::TilingData::tileSizeX):
(WebCore::TilingData::tileSizeY):
(WebCore::TilingData::intersectDrawQuad):
(WebCore::TilingData::textureOffset):
* platform/graphics/gpu/TilingData.h:
Source/WebKit/chromium: [Chromium] Remove outer border from TilingData as it's no longer needed by layer compositor for anti-aliasing.
https://bugs.webkit.org/show_bug.cgi?id=64942
Patch by David Reveman <reveman@chromium.org> on 2011-08-02
Reviewed by James Robinson.
* tests/TilingDataTest.cpp:
(WebCore::TEST):
LayoutTests: [Chromium] Use edge-distance method for layer anti-aliasing.
https://bugs.webkit.org/show_bug.cgi?id=64942
Patch by David Reveman <reveman@chromium.org> on 2011-08-02
Reviewed by James Robinson.
Update expected results.
* platform/chromium/test_expectations.txt:
TBR=jamesr@google.com
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=92718
Patch Set 1 #Messages
Total messages: 1 (0 generated)
|