1424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// found in the LICENSE file.
4424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
5424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "skia/ext/opacity_draw_filter.h"
6424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "third_party/skia/include/core/SkPaint.h"
7424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
8424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)namespace skia {
9424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
10424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)OpacityDrawFilter::OpacityDrawFilter(float opacity,
11424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)                                     bool disable_image_filtering)
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    : alpha_(SkScalarRoundToInt(opacity * 255)),
13424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)      disable_image_filtering_(disable_image_filtering) {}
14424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
15424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)OpacityDrawFilter::~OpacityDrawFilter() {}
16424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
17424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)bool OpacityDrawFilter::filter(SkPaint* paint, Type type) {
18424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  if (alpha_ < 255)
19424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)    paint->setAlpha(alpha_);
20424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  if (disable_image_filtering_)
21424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)    paint->setFilterLevel(SkPaint::kNone_FilterLevel);
22424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  return true;
23424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)}
24424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
25424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)}  // namespace skia
26424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
27424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
28