1/* 2 * Copyright (C) 2013 Apple Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26#include "config.h" 27#import "PlatformCALayerRemoteTiledBacking.h" 28 29#import "RemoteLayerTreeContext.h" 30#import <WebCore/GraphicsLayerCA.h> 31#import <WebCore/PlatformCALayerMac.h> 32#import <WebCore/TiledBacking.h> 33#import <wtf/RetainPtr.h> 34 35using namespace WebCore; 36 37namespace WebKit { 38 39PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking(LayerType layerType, PlatformCALayerClient* owner, RemoteLayerTreeContext& context) 40 : PlatformCALayerRemote(layerType, owner, context) 41{ 42 m_tileController = TileController::create(this); 43} 44 45PlatformCALayerRemoteTiledBacking::~PlatformCALayerRemoteTiledBacking() 46{ 47} 48 49void PlatformCALayerRemoteTiledBacking::setNeedsDisplay(const FloatRect* dirtyRect) 50{ 51 if (dirtyRect) 52 m_tileController->setNeedsDisplayInRect(enclosingIntRect(*dirtyRect)); 53 else 54 m_tileController->setNeedsDisplay(); 55} 56 57const WebCore::PlatformCALayerList* PlatformCALayerRemoteTiledBacking::customSublayers() const 58{ 59 m_customSublayers = m_tileController->containerLayers(); 60 return &m_customSublayers; 61} 62 63void PlatformCALayerRemoteTiledBacking::setBounds(const WebCore::FloatRect& bounds) 64{ 65 PlatformCALayerRemote::setBounds(bounds); 66 m_tileController->tileCacheLayerBoundsChanged(); 67} 68 69bool PlatformCALayerRemoteTiledBacking::isOpaque() const 70{ 71 return m_tileController->tilesAreOpaque(); 72} 73 74void PlatformCALayerRemoteTiledBacking::setOpaque(bool opaque) 75{ 76 m_tileController->setTilesOpaque(opaque); 77} 78 79bool PlatformCALayerRemoteTiledBacking::acceleratesDrawing() const 80{ 81 return m_tileController->acceleratesDrawing(); 82} 83 84void PlatformCALayerRemoteTiledBacking::setAcceleratesDrawing(bool acceleratesDrawing) 85{ 86 m_tileController->setAcceleratesDrawing(acceleratesDrawing); 87} 88 89float PlatformCALayerRemoteTiledBacking::contentsScale() const 90{ 91 return m_tileController->contentsScale(); 92} 93 94void PlatformCALayerRemoteTiledBacking::setContentsScale(float scale) 95{ 96 m_tileController->setContentsScale(scale); 97} 98 99void PlatformCALayerRemoteTiledBacking::setBorderWidth(float borderWidth) 100{ 101 m_tileController->setTileDebugBorderWidth(borderWidth / 2); 102} 103 104void PlatformCALayerRemoteTiledBacking::setBorderColor(const WebCore::Color& color) 105{ 106 m_tileController->setTileDebugBorderColor(color); 107} 108 109} // namespace WebKit 110