aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar reed <reed@chromium.org>2016-02-09 09:14:59 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-02-09 09:14:59 -0800
commitd2ed622a2fc574288b312ec1ff94c77ed6e70476 (patch)
tree6f8deeeff2b47c76cbd706c1a41b7efc8efbc419 /include
parent918090c819109585f8fd2295039385a60eb0b572 (diff)
start experimenting with 64bit frame-buffers
Diffstat (limited to 'include')
-rw-r--r--include/core/SkXfermode.h15
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