aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkXfermode_proccoeff.h
blob: 3a65a9427730ada61b29447e0b9b8149508c460f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
 * Copyright 2015 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef SkXfermode_proccoeff_DEFINED
#define SkXfermode_proccoeff_DEFINED

#include "SkXfermodePriv.h"

#define CANNOT_USE_COEFF    SkXfermode::Coeff(-1)

class SkProcCoeffXfermode : public SkXfermode {
public:
    SkProcCoeffXfermode(SkXfermodeProc proc, SkBlendMode mode) {
        fMode = mode;
        fProc = proc;
    }

    void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
                const SkAlpha aa[]) const override;

protected:
    SkBlendMode getMode() const { return fMode; }

    SkXfermodeProc getProc() const { return fProc; }

private:
    SkXfermodeProc  fProc;
    SkBlendMode     fMode;

    friend class SkXfermode;

    typedef SkXfermode INHERITED;
};

#endif // #ifndef SkXfermode_proccoeff_DEFINED