diff options
author | 2016-02-09 09:14:59 -0800 | |
---|---|---|
committer | 2016-02-09 09:14:59 -0800 | |
commit | d2ed622a2fc574288b312ec1ff94c77ed6e70476 (patch) | |
tree | 6f8deeeff2b47c76cbd706c1a41b7efc8efbc419 /include | |
parent | 918090c819109585f8fd2295039385a60eb0b572 (diff) |
start experimenting with 64bit frame-buffers
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1680523002
Review URL: https://codereview.chromium.org/1680523002
Diffstat (limited to 'include')
-rw-r--r-- | include/core/SkXfermode.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/core/SkXfermode.h b/include/core/SkXfermode.h index 76c57a51dd..21d77f8747 100644 --- a/include/core/SkXfermode.h +++ b/include/core/SkXfermode.h @@ -233,6 +233,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 |