SkPixelXorXfermode.h revision 54924243c1b65b3ee6d8fa064b50a9b1bb2a19a5
1 2/* 3 * Copyright 2007 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 SkPixelXorXfermode_DEFINED 11#define SkPixelXorXfermode_DEFINED 12 13#include "SkXfermode.h" 14 15/** SkPixelXorXfermode implements a simple pixel xor (op ^ src ^ dst). 16 This transformation does not follow premultiplied conventions, therefore 17 this proc *always* returns an opaque color (alpha == 255). Thus it is 18 not really usefull for operating on blended colors. 19*/ 20class SkPixelXorXfermode : public SkXfermode { 21public: 22 SkPixelXorXfermode(SkColor opColor) : fOpColor(opColor) {} 23 24 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPixelXorXfermode) 25 26protected: 27 SkPixelXorXfermode(SkFlattenableReadBuffer& rb); 28 virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE; 29 30 // override from SkXfermode 31 virtual SkPMColor xferColor(SkPMColor src, SkPMColor dst); 32 33private: 34 SkColor fOpColor; 35 36 typedef SkXfermode INHERITED; 37}; 38 39#endif 40