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_FILTER_OPERATIONS_IMPL_H_
6#define CC_BLINK_WEB_FILTER_OPERATIONS_IMPL_H_
7
8#include "cc/output/filter_operations.h"
9#include "cc/blink/cc_blink_export.h"
10#include "third_party/WebKit/public/platform/WebFilterOperations.h"
11
12namespace cc_blink {
13
14class WebFilterOperationsImpl : public blink::WebFilterOperations {
15 public:
16  CC_BLINK_EXPORT WebFilterOperationsImpl();
17  virtual ~WebFilterOperationsImpl();
18
19  const cc::FilterOperations& AsFilterOperations() const;
20
21  // Implementation of blink::WebFilterOperations methods
22  virtual void appendGrayscaleFilter(float amount);
23  virtual void appendSepiaFilter(float amount);
24  virtual void appendSaturateFilter(float amount);
25  virtual void appendHueRotateFilter(float amount);
26  virtual void appendInvertFilter(float amount);
27  virtual void appendBrightnessFilter(float amount);
28  virtual void appendContrastFilter(float amount);
29  virtual void appendOpacityFilter(float amount);
30  virtual void appendBlurFilter(float amount);
31  virtual void appendDropShadowFilter(blink::WebPoint offset,
32                                      float std_deviation,
33                                      blink::WebColor color);
34  virtual void appendColorMatrixFilter(SkScalar matrix[20]);
35  virtual void appendZoomFilter(float amount, int inset);
36  virtual void appendSaturatingBrightnessFilter(float amount);
37  virtual void appendReferenceFilter(SkImageFilter* image_filter);
38
39  virtual void clear();
40
41 private:
42  cc::FilterOperations filter_operations_;
43
44  DISALLOW_COPY_AND_ASSIGN(WebFilterOperationsImpl);
45};
46
47}  // namespace cc_blink
48
49#endif  // CC_BLINK_WEB_FILTER_OPERATIONS_IMPL_H_
50