1
2/*
3 * Copyright 2011 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9
10#ifndef SkDrawFilter_DEFINED
11#define SkDrawFilter_DEFINED
12
13#include "SkRefCnt.h"
14
15class SkCanvas;
16class SkPaint;
17
18/**
19 *  Right before something is being draw, filter() is called with the
20 *  paint. The filter may modify the paint as it wishes, which will then be
21 *  used for the actual drawing. Note: this modification only lasts for the
22 *  current draw, as a temporary copy of the paint is used.
23 */
24class SkDrawFilter : public SkRefCnt {
25public:
26    enum Type {
27        kPaint_Type,
28        kPoint_Type,
29        kLine_Type,
30        kBitmap_Type,
31        kRect_Type,
32        kPath_Type,
33        kText_Type
34    };
35
36    /**
37     *  Called with the paint that will be used to draw the specified type.
38     *  The implementation may modify the paint as they wish.
39     */
40    virtual void filter(SkPaint*, Type) = 0;
41};
42
43#endif
44