OLD | NEW |
| (Empty) |
1 #include "SkPixelXorXfermode.h" | |
2 #include "SkColorPriv.h" | |
3 | |
4 // we always return an opaque color, 'cause I don't know what to do with | |
5 // the alpha-component and still return a valid premultiplied color. | |
6 SkPMColor SkPixelXorXfermode::xferColor(SkPMColor src, SkPMColor dst) | |
7 { | |
8 SkPMColor res = src ^ dst ^ fOpColor; | |
9 res |= (SK_A32_MASK << SK_A32_SHIFT); // force it to be opaque | |
10 return res; | |
11 } | |
12 | |
13 void SkPixelXorXfermode::flatten(SkFlattenableWriteBuffer& wb) | |
14 { | |
15 this->INHERITED::flatten(wb); | |
16 wb.write32(fOpColor); | |
17 } | |
18 | |
19 SkPixelXorXfermode::SkPixelXorXfermode(SkFlattenableReadBuffer& rb) | |
20 : SkXfermode(rb) | |
21 { | |
22 fOpColor = rb.readU32(); | |
23 } | |
24 | |
25 SkFlattenable::Factory SkPixelXorXfermode::getFactory() | |
26 { | |
27 return Create; | |
28 } | |
29 | |
30 SkFlattenable* SkPixelXorXfermode::Create(SkFlattenableReadBuffer& rb) | |
31 { | |
32 return SkNEW_ARGS(SkPixelXorXfermode, (rb)); | |
33 } | |
34 | |
35 | |
36 | |
OLD | NEW |