1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CC_BLINK_WEB_CONTENT_LAYER_IMPL_H_ 6#define CC_BLINK_WEB_CONTENT_LAYER_IMPL_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "cc/blink/cc_blink_export.h" 10#include "cc/blink/web_layer_impl.h" 11#include "cc/layers/content_layer_client.h" 12#include "third_party/WebKit/public/platform/WebContentLayer.h" 13 14namespace cc { 15class IntRect; 16class FloatRect; 17} 18 19namespace blink { 20class WebContentLayerClient; 21} 22 23namespace cc_blink { 24 25class WebContentLayerImpl : public blink::WebContentLayer, 26 public cc::ContentLayerClient { 27 public: 28 CC_BLINK_EXPORT explicit WebContentLayerImpl(blink::WebContentLayerClient*); 29 30 // WebContentLayer implementation. 31 virtual blink::WebLayer* layer(); 32 virtual void setDoubleSided(bool double_sided); 33 virtual void setDrawCheckerboardForMissingTiles(bool checkerboard); 34 35 protected: 36 virtual ~WebContentLayerImpl(); 37 38 // ContentLayerClient implementation. 39 virtual void PaintContents(SkCanvas* canvas, 40 const gfx::Rect& clip, 41 ContentLayerClient::GraphicsContextStatus 42 graphics_context_status) OVERRIDE; 43 virtual void DidChangeLayerCanUseLCDText() OVERRIDE; 44 virtual bool FillsBoundsCompletely() const OVERRIDE; 45 46 scoped_ptr<WebLayerImpl> layer_; 47 blink::WebContentLayerClient* client_; 48 bool draws_content_; 49 50 private: 51 bool can_use_lcd_text_; 52 bool ignore_lcd_text_change_; 53 54 DISALLOW_COPY_AND_ASSIGN(WebContentLayerImpl); 55}; 56 57} // namespace cc_blink 58 59#endif // CC_BLINK_WEB_CONTENT_LAYER_IMPL_H_ 60