| 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);
|
| }
|
|
|