Home | History | Annotate | Download | only in compositor_bindings
      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