Upstream version 10.38.222.0
[platform/framework/web/crosswalk.git] / src / content / renderer / compositor_bindings / web_filter_operations_impl.h
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_OPERATIONS_IMPL_H_
6 #define CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_FILTER_OPERATIONS_IMPL_H_
7
8 #include "cc/output/filter_operations.h"
9 #include "content/common/content_export.h"
10 #include "third_party/WebKit/public/platform/WebFilterOperations.h"
11
12 namespace content {
13
14 class WebFilterOperationsImpl : public blink::WebFilterOperations {
15  public:
16   CONTENT_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 content
48
49 #endif  // CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_FILTER_OPERATIONS_IMPL_H_
50