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_FILTER_ANIMATION_CURVE_IMPL_H_ 6#define CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_FILTER_ANIMATION_CURVE_IMPL_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "content/common/content_export.h" 10#include "third_party/WebKit/public/platform/WebFilterAnimationCurve.h" 11 12namespace cc { 13class AnimationCurve; 14class KeyframedFilterAnimationCurve; 15} 16 17namespace blink { 18class WebFilterKeyframe; 19} 20 21namespace content { 22 23class WebFilterAnimationCurveImpl : public blink::WebFilterAnimationCurve { 24 public: 25 CONTENT_EXPORT WebFilterAnimationCurveImpl(); 26 virtual ~WebFilterAnimationCurveImpl(); 27 28 // blink::WebAnimationCurve implementation. 29 virtual AnimationCurveType type() const; 30 31 // blink::WebFilterAnimationCurve implementation. 32 virtual void add(const blink::WebFilterKeyframe& keyframe, 33 TimingFunctionType type); 34 virtual void add(const blink::WebFilterKeyframe& keyframe, 35 double x1, 36 double y1, 37 double x2, 38 double y2); 39 40 scoped_ptr<cc::AnimationCurve> CloneToAnimationCurve() const; 41 42 private: 43 scoped_ptr<cc::KeyframedFilterAnimationCurve> curve_; 44 45 DISALLOW_COPY_AND_ASSIGN(WebFilterAnimationCurveImpl); 46}; 47 48} // namespace content 49 50#endif // CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_FILTER_ANIMATION_CURVE_IMPL_H_ 51 52