Index: include/core/SkXfermode.h |
diff --git a/include/core/SkXfermode.h b/include/core/SkXfermode.h |
index f2d8d578659bc8838420913e34d96c4e94c82e75..28bea618ab9efcfd264d3a3583764dd008938b88 100644 |
--- a/include/core/SkXfermode.h |
+++ b/include/core/SkXfermode.h |
@@ -246,6 +246,21 @@ public: |
virtual PM4fProc1 getPM4fProc1(uint32_t flags) const; |
virtual PM4fProcN getPM4fProcN(uint32_t flags) const; |
+ enum U64Flags { |
+ kSrcIsOpaque_U64Flag = 1 << 0, |
+ kDstIsFloat16_U64Flag = 1 << 1, // else U16 bit components |
+ }; |
+ struct U64State { |
+ const SkXfermode* fXfer; |
+ uint32_t fFlags; |
+ }; |
+ typedef void (*U64Proc1)(const U64State&, uint64_t dst[], const SkPM4f& src, int count, |
+ const SkAlpha coverage[]); |
+ typedef void (*U64ProcN)(const U64State&, uint64_t dst[], const SkPM4f src[], int count, |
+ const SkAlpha coverage[]); |
+ static U64Proc1 GetU64Proc1(Mode, uint32_t flags); |
+ static U64ProcN GetU64ProcN(Mode, uint32_t flags); |
+ |
protected: |
SkXfermode() {} |
/** The default implementation of xfer32/xfer16/xferA8 in turn call this |