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 CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_COMPOSITOR_SUPPORT_IMPL_H_ 6 #define CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_COMPOSITOR_SUPPORT_IMPL_H_ 7 8 #include "base/memory/ref_counted.h" 9 #include "base/message_loop/message_loop_proxy.h" 10 #include "content/common/content_export.h" 11 #include "third_party/WebKit/public/platform/WebAnimationCurve.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 16 namespace blink { 17 class WebGraphicsContext3D; 18 } 19 20 namespace content { 21 22 class CONTENT_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::WebSolidColorLayer* createSolidColorLayer(); 36 virtual blink::WebScrollbarLayer* createScrollbarLayer( 37 blink::WebScrollbar* scrollbar, 38 blink::WebScrollbarThemePainter painter, 39 blink::WebScrollbarThemeGeometry*); 40 virtual blink::WebScrollbarLayer* createSolidColorScrollbarLayer( 41 blink::WebScrollbar::Orientation orientation, 42 int thumb_thickness, 43 int track_start, 44 bool is_left_side_vertical_scrollbar); 45 virtual blink::WebAnimation* createAnimation( 46 const blink::WebAnimationCurve& curve, 47 blink::WebAnimation::TargetProperty target, 48 int animation_id); 49 virtual blink::WebFilterAnimationCurve* createFilterAnimationCurve(); 50 virtual blink::WebFloatAnimationCurve* createFloatAnimationCurve(); 51 #if WEB_SCROLL_OFFSET_ANIMATION_CURVE_IS_DEFINED 52 virtual blink::WebScrollOffsetAnimationCurve* 53 createScrollOffsetAnimationCurve( 54 blink::WebFloatPoint target_value, 55 blink::WebAnimationCurve::TimingFunctionType timing_function); 56 #endif 57 virtual blink::WebTransformAnimationCurve* createTransformAnimationCurve(); 58 virtual blink::WebTransformOperations* createTransformOperations(); 59 virtual blink::WebFilterOperations* createFilterOperations(); 60 61 private: 62 DISALLOW_COPY_AND_ASSIGN(WebCompositorSupportImpl); 63 }; 64 65 } // namespace content 66 67 #endif // CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_COMPOSITOR_SUPPORT_IMPL_H_ 68 69