web_compositor_support_impl.h revision 03b57e008b61dfcb1fbad3aea950ae0e001748b0
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_COMPOSITOR_SUPPORT_IMPL_H_ 6#define CC_BLINK_WEB_COMPOSITOR_SUPPORT_IMPL_H_ 7 8#include "base/memory/ref_counted.h" 9#include "base/message_loop/message_loop_proxy.h" 10#include "cc/blink/cc_blink_export.h" 11#include "third_party/WebKit/public/platform/WebCompositorAnimationCurve.h" 12#include "third_party/WebKit/public/platform/WebCompositorSupport.h" 13#include "third_party/WebKit/public/platform/WebLayer.h" 14#include "third_party/WebKit/public/platform/WebTransformOperations.h" 15 16namespace blink { 17class WebGraphicsContext3D; 18} 19 20namespace cc_blink { 21 22class CC_BLINK_EXPORT WebCompositorSupportImpl 23 : public NON_EXPORTED_BASE(blink::WebCompositorSupport) { 24 public: 25 WebCompositorSupportImpl(); 26 virtual ~WebCompositorSupportImpl(); 27 28 virtual blink::WebLayer* createLayer(); 29 virtual blink::WebContentLayer* createContentLayer( 30 blink::WebContentLayerClient* client); 31 virtual blink::WebExternalTextureLayer* createExternalTextureLayer( 32 blink::WebExternalTextureLayerClient* client); 33 virtual blink::WebImageLayer* createImageLayer(); 34 virtual blink::WebNinePatchLayer* createNinePatchLayer(); 35 virtual blink::WebScrollbarLayer* createScrollbarLayer( 36 blink::WebScrollbar* scrollbar, 37 blink::WebScrollbarThemePainter painter, 38 blink::WebScrollbarThemeGeometry*); 39 virtual blink::WebScrollbarLayer* createSolidColorScrollbarLayer( 40 blink::WebScrollbar::Orientation orientation, 41 int thumb_thickness, 42 int track_start, 43 bool is_left_side_vertical_scrollbar); 44 virtual blink::WebCompositorAnimation* createAnimation( 45 const blink::WebCompositorAnimationCurve& curve, 46 blink::WebCompositorAnimation::TargetProperty target, 47 int animation_id); 48 virtual blink::WebFilterAnimationCurve* createFilterAnimationCurve(); 49 virtual blink::WebFloatAnimationCurve* createFloatAnimationCurve(); 50 virtual blink::WebScrollOffsetAnimationCurve* 51 createScrollOffsetAnimationCurve( 52 blink::WebFloatPoint target_value, 53 blink::WebCompositorAnimationCurve::TimingFunctionType 54 timing_function); 55 virtual blink::WebTransformAnimationCurve* createTransformAnimationCurve(); 56 virtual blink::WebTransformOperations* createTransformOperations(); 57 virtual blink::WebFilterOperations* createFilterOperations(); 58 59 private: 60 DISALLOW_COPY_AND_ASSIGN(WebCompositorSupportImpl); 61}; 62 63} // namespace cc_blink 64 65#endif // CC_BLINK_WEB_COMPOSITOR_SUPPORT_IMPL_H_ 66