Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Unified Diff: gm/xferu64.cpp

Issue 1686013002: generalize xferu64 procs using proc4f (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gm/xferu64.cpp
diff --git a/gm/xferu64.cpp b/gm/xferu64.cpp
index 03fc8864b56876eac812082e246f54e3bb6c0bb4..a72735f96d7ef7739429fa0885155983afe1d5be 100644
--- a/gm/xferu64.cpp
+++ b/gm/xferu64.cpp
@@ -71,10 +71,13 @@ static void draw_rect(SkCanvas* canvas, const SkRect& r, SkColor c, uint32_t u64
u64_flags |= SkXfermode::kSrcIsOpaque_PM4fFlag;
}
- const SkXfermode::U64State state { nullptr, u64_flags };
+ SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode;
+ SkAutoTUnref<SkXfermode> xfer(SkXfermode::Create(mode));
+
+ const SkXfermode::U64State state { xfer, u64_flags };
const SkPM4f src = SkColor4f::FromColor(c).premul();
- auto proc1 = SkXfermode::GetU64Proc1(SkXfermode::kSrcOver_Mode, u64_flags);
+ auto proc1 = SkXfermode::GetU64Proc1(mode, u64_flags);
for (int y = 0; y < ir.height()/2; ++y) {
proc1(state, pm.writable_addr64(0, y), src, ir.width(), aa);
}
@@ -83,7 +86,7 @@ static void draw_rect(SkCanvas* canvas, const SkRect& r, SkColor c, uint32_t u64
for (int i = 0; i < ir.width(); ++i) {
buffer[i] = src;
}
- auto procN = SkXfermode::GetU64ProcN(SkXfermode::kSrcOver_Mode, u64_flags);
+ auto procN = SkXfermode::GetU64ProcN(mode, u64_flags);
for (int y = ir.height()/2 + 1; y < ir.height(); ++y) {
procN(state, pm.writable_addr64(0, y), buffer, ir.width(), aa);
}
« no previous file with comments | « bench/XferU64Bench.cpp ('k') | include/core/SkXfermode.h » ('j') | src/core/SkXfermodeU64.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698