1// Copyright 2013 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 SKIA_EXT_OPACITY_DRAW_FILTER_H
6#define SKIA_EXT_OPACITY_DRAW_FILTER_H
7
8#include "base/values.h"
9#include "third_party/skia/include/core/SkDrawFilter.h"
10
11class SkPaint;
12
13namespace skia {
14
15// This filter allows setting an opacity on every draw call to a canvas, and to
16// disable image filtering. Note that the opacity setting is only correct in
17// very limited conditions: when there is only zero or one opaque, nonlayer
18// draw for every pixel in the surface.
19class SK_API OpacityDrawFilter : public SkDrawFilter {
20 public:
21  OpacityDrawFilter(float opacity, bool disable_image_filtering);
22  virtual ~OpacityDrawFilter();
23  virtual bool filter(SkPaint* paint, SkDrawFilter::Type type) OVERRIDE;
24
25 private:
26  int alpha_;
27  bool disable_image_filtering_;
28};
29
30}  // namespace skia
31
32#endif  // SKIA_EXT_OPACITY_DRAW_FILTER_H
33
34