1 | /* |
2 | * Copyright 2015 Google Inc. |
3 | * |
4 | * Use of this source code is governed by a BSD-style license that can be |
5 | * found in the LICENSE file. |
6 | */ |
7 | |
8 | #ifndef SkXfermodeInterpretation_DEFINED |
9 | #define SkXfermodeInterpretation_DEFINED |
10 | |
11 | class SkPaint; |
12 | |
13 | /** |
14 | * By analyzing the paint, we may decide we can take special |
15 | * action. This enum lists our possible actions. |
16 | */ |
17 | enum SkXfermodeInterpretation { |
18 | kNormal_SkXfermodeInterpretation, //< draw normally |
19 | kSrcOver_SkXfermodeInterpretation, //< draw as if in srcover mode |
20 | kSkipDrawing_SkXfermodeInterpretation //< draw nothing |
21 | }; |
22 | |
23 | /** |
24 | * Given a paint, determine whether the paint's transfer mode can be |
25 | * replaced with kSrcOver_Mode or not drawn at all. This is used by |
26 | * SkBlitter and SkPDFDevice. |
27 | */ |
28 | SkXfermodeInterpretation SkInterpretXfermode(const SkPaint&, bool dstIsOpaque); |
29 | |
30 | #endif // SkXfermodeInterpretation_DEFINED |
31 | |