// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SKIA_EXT_OPACITY_DRAW_FILTER_H
#define SKIA_EXT_OPACITY_DRAW_FILTER_H

#include "base/values.h"
#include "third_party/skia/include/core/SkDrawFilter.h"

class SkPaint;

namespace skia {

// This filter allows setting an opacity on every draw call to a canvas, and to
// disable image filtering. Note that the opacity setting is only correct in
// very limited conditions: when there is only zero or one opaque, nonlayer
// draw for every pixel in the surface.
class SK_API OpacityDrawFilter : public SkDrawFilter {
 public:
  OpacityDrawFilter(float opacity, bool disable_image_filtering);
  virtual ~OpacityDrawFilter();
  virtual bool filter(SkPaint* paint, SkDrawFilter::Type type) OVERRIDE;

 private:
  int alpha_;
  bool disable_image_filtering_;
};

}  // namespace skia

#endif  // SKIA_EXT_OPACITY_DRAW_FILTER_H

