diff options
Diffstat (limited to 'src/core/SkRasterPipeline.h')
-rw-r--r-- | src/core/SkRasterPipeline.h | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/src/core/SkRasterPipeline.h b/src/core/SkRasterPipeline.h index 789257e0e2..785a118ad8 100644 --- a/src/core/SkRasterPipeline.h +++ b/src/core/SkRasterPipeline.h @@ -83,11 +83,6 @@ public: void run(size_t x, size_t n); void run(size_t n) { this->run(0, n); } - // body() will only be called with tail=0, indicating it always works on a full 4 pixels. - // tail() will only be called with tail=1..3 to handle the jagged end of n%4 pixels. - void append(Fn body, Fn tail, const void* ctx = nullptr); - void append(Fn fn, const void* ctx = nullptr) { this->append(fn, fn, ctx); } - enum StockStage { store_565, store_srgb, @@ -109,7 +104,30 @@ public: constant_color, + dst, + dstatop, + dstin, + dstout, + dstover, + srcatop, + srcin, + srcout, srcover, + clear, + modulate, + multiply, + plus_, + screen, + xor_, + colorburn, + colordodge, + darken, + difference, + exclusion, + hardlight, + lighten, + overlay, + softlight, kNumStockStages, }; @@ -122,6 +140,8 @@ public: private: using Stages = SkSTArray<10, Stage, /*MEM_COPY=*/true>; + void append(Fn body, Fn tail, const void*); + // This no-op default makes fBodyStart and fTailStart unconditionally safe to call, // and is always the last stage's fNext as a sort of safety net to make sure even a // buggy pipeline can't walk off its own end. |