用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

56 lines
1.3 KiB

#pragma once
#include <core/SkXfermode.h>
class ProcXfermode : public SkXfermode {
public:
enum Xfer_Rop2{
Rop2_Clear=0,
Rop2_Copy,
Rop2_AndInvert,
Rop2_CopyInvert,
Rop2_AndReverse,
Rop2_Invert,
Rop2_Xor,
Rop2_NAnd,
Rop2_And,
Rop2_Equiv,
Rop2_Noop,
Rop2_OrInvert,
Rop2_OrReverse,
Rop2_Or,
Rop2_Set,
Rop2_End,
};
ProcXfermode(int rop);
// overrides from SkXfermode
virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
const SkAlpha aa[]) const;
virtual void xfer16(uint16_t dst[], const SkPMColor src[], int count,
const SkAlpha aa[]) const;
virtual void xferA8(SkAlpha dst[], const SkPMColor src[], int count,
const SkAlpha aa[]) const;
// overrides from SkFlattenable
virtual Factory getFactory() const { return CreateProc; }
virtual void flatten(SkWriteBuffer&);
#ifndef SK_IGNORE_TO_STRING
void ProcXfermode::toString(SkString* str) const {
(str);
// this->INHERITED::toString(str);
}
#endif
protected:
ProcXfermode(SkReadBuffer&);
private:
SkXfermodeProc fProc;
int rop2;
static SkFlattenable* CreateProc(SkReadBuffer& buffer) {
return SkNEW_ARGS(ProcXfermode, (buffer)); }
typedef SkXfermode INHERITED;
};