-
enne@google.com authored
Reviewed by James Robinson. [chromium] Tile content and image layers https://bugs.webkit.org/show_bug.cgi?id=57113 Rebaseline a number of image tests where slight filtering differences from using tiles caused test failures with exact pixel matching. None of these results are perceptually different. * platform/chromium-gpu-linux/compositing/color-matching/image-color-matching-expected.checksum: * platform/chromium-gpu-linux/compositing/color-matching/image-color-matching-expected.png: * platform/chromium-gpu-linux/compositing/text-on-large-layer-expected.checksum: * platform/chromium-gpu-linux/compositing/text-on-large-layer-expected.png: * platform/chromium-gpu-linux/fast/canvas/canvas-text-alignment-expected.checksum: * platform/chromium-gpu-linux/fast/canvas/canvas-text-alignment-expected.png: * platform/chromium-gpu-linux/fast/canvas/canvas-text-baseline-expected.checksum: * platform/chromium-gpu-linux/fast/canvas/canvas-text-baseline-expected.png: * platform/chromium-gpu-mac/compositing/color-matching/image-color-matching-expected.checksum: * platform/chromium-gpu-mac/compositing/color-matching/image-color-matching-expected.png: * platform/chromium-gpu-mac/compositing/text-on-large-layer-expected.checksum: * platform/chromium-gpu-mac/compositing/text-on-large-layer-expected.png: * platform/chromium-gpu-win/compositing/color-matching/image-color-matching-expected.checksum: * platform/chromium-gpu-win/compositing/color-matching/image-color-matching-expected.png: * platform/chromium-gpu-win/compositing/text-on-large-layer-expected.checksum: * platform/chromium-gpu-win/compositing/text-on-large-layer-expected.png: * platform/chromium-gpu-win/fast/canvas/canvas-text-alignment-expected.checksum: * platform/chromium-gpu-win/fast/canvas/canvas-text-alignment-expected.png: * platform/chromium-gpu-win/fast/canvas/canvas-text-baseline-expected.checksum: * platform/chromium-gpu-win/fast/canvas/canvas-text-baseline-expected.png: * platform/chromium/test_expectations.txt: 2011-04-14 Adrienne Walker <enne@google.com> Reviewed by James Robinson. [chromium] Tile content and image layers https://bugs.webkit.org/show_bug.cgi?id=57113 Layers tile by default if any dimension is larger than 512. Smaller layers are contained within a single texture but still use the tiler infrastructure so that there's only one code path. Remove large layer support from content layers. Content layers no longer own a platform canvas--they own a tiler. Refactor tiler to allow for better separation of update/upload/paint. Add rect parameter to update and draw functions on layers for the layer-space rect of interest. This is necessary to know which tiles need to be drawn. * platform/graphics/chromium/ContentLayerChromium.cpp: (WebCore::ContentLayerChromium::ContentLayerChromium): (WebCore::ContentLayerChromium::~ContentLayerChromium): (WebCore::ContentLayerPainter::ContentLayerPainter): (WebCore::ContentLayerPainter::paint): (WebCore::ContentLayerChromium::paintContentsIfDirty): (WebCore::ContentLayerChromium::setLayerRenderer): (WebCore::ContentLayerChromium::tilingTransform): (WebCore::ContentLayerChromium::visibleLayerRect): (WebCore::ContentLayerChromium::layerBounds): (WebCore::ContentLayerChromium::updateLayerSize): (WebCore::ContentLayerChromium::draw): (WebCore::ContentLayerChromium::createTilerIfNeeded): (WebCore::ContentLayerChromium::updateCompositorResources): (WebCore::ContentLayerChromium::setTilingOption): (WebCore::ContentLayerChromium::bindContentsTexture): (WebCore::ContentLayerChromium::unreserveContentsTexture): (WebCore::ContentLayerChromium::setIsMask): (WebCore::ContentLayerChromium::dumpLayerProperties): * platform/graphics/chromium/ContentLayerChromium.h: (WebCore::ContentLayerChromium::drawsContent): * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayerChromium::setMaskLayer): * platform/graphics/chromium/ImageLayerChromium.cpp: (WebCore::ImageLayerChromium::paintContentsIfDirty): (WebCore::ImageLayerChromium::updateCompositorResources): (WebCore::ImageLayerChromium::layerBounds): (WebCore::ImageLayerChromium::tilingTransform): * platform/graphics/chromium/ImageLayerChromium.h: * platform/graphics/chromium/LayerChromium.h: (WebCore::LayerChromium::invalidateRect): (WebCore::LayerChromium::paintContentsIfDirty): (WebCore::LayerChromium::setIsMask): (WebCore::LayerChromium::draw): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::drawRootLayer): (WebCore::LayerRendererChromium::drawLayers): (WebCore::LayerRendererChromium::paintContentsRecursive): (WebCore::LayerRendererChromium::copyOffscreenTextureToDisplay): (WebCore::LayerRendererChromium::drawLayer): (WebCore::LayerRendererChromium::initializeSharedObjects): (WebCore::LayerRendererChromium::cleanupSharedObjects): * platform/graphics/chromium/LayerRendererChromium.h: * platform/graphics/chromium/LayerTilerChromium.cpp: (WebCore::LayerTilerChromium::setTileSize): (WebCore::LayerTilerChromium::getSingleTexture): (WebCore::LayerTilerChromium::invalidateRect): (WebCore::LayerTilerChromium::update): (WebCore::LayerTilerChromium::uploadCanvas): (WebCore::LayerTilerChromium::updateFromPixels): (WebCore::LayerTilerChromium::draw): (WebCore::LayerTilerChromium::unreserveTextures): * platform/graphics/chromium/LayerTilerChromium.h: (WebCore::LayerTilerChromium::setLayerRenderer): (WebCore::LayerTilerChromium::skipsDraw): * platform/graphics/chromium/PlatformCanvas.cpp: (WebCore::PlatformCanvas::AutoLocker::AutoLocker): (WebCore::PlatformCanvas::Painter::Painter): * platform/graphics/chromium/PlatformCanvas.h: * platform/graphics/chromium/RenderSurfaceChromium.cpp: (WebCore::RenderSurfaceChromium::draw): * platform/graphics/chromium/RenderSurfaceChromium.h: * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp: (WebCore::CCCanvasLayerImpl::draw): * platform/graphics/chromium/cc/CCCanvasLayerImpl.h: * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp: (WebCore::CCHeadsUpDisplay::draw): * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::draw): * platform/graphics/chromium/cc/CCLayerImpl.h: * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp: (WebCore::CCPluginLayerImpl::draw): * platform/graphics/chromium/cc/CCPluginLayerImpl.h: * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: (WebCore::CCVideoLayerImpl::draw): * platform/graphics/chromium/cc/CCVideoLayerImpl.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@83915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
11f7ccb2