aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/core/SkRasterPipelineBlitter.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/core/SkRasterPipelineBlitter.cpp b/src/core/SkRasterPipelineBlitter.cpp
index 5de16b1a09..b0ee301a28 100644
--- a/src/core/SkRasterPipelineBlitter.cpp
+++ b/src/core/SkRasterPipelineBlitter.cpp
@@ -42,6 +42,7 @@ public:
void blitH (int x, int y, int w) override;
void blitAntiH (int x, int y, const SkAlpha[], const int16_t[]) override;
void blitAntiH2(int x, int y, U8CPU a0, U8CPU a1) override;
+ void blitAntiV2(int x, int y, U8CPU a0, U8CPU a1) override;
void blitMask (const SkMask&, const SkIRect& clip) override;
void blitRect (int x, int y, int width, int height) override;
void blitV (int x, int y, int height, SkAlpha alpha) override;
@@ -381,6 +382,19 @@ void SkRasterPipelineBlitter::blitAntiH2(int x, int y, U8CPU a0, U8CPU a1) {
this->blitMask(mask, clip);
}
+void SkRasterPipelineBlitter::blitAntiV2(int x, int y, U8CPU a0, U8CPU a1) {
+ SkIRect clip = {x,y, x+1,y+2};
+ uint8_t coverage[] = { (uint8_t)a0, (uint8_t)a1 };
+
+ SkMask mask;
+ mask.fImage = coverage;
+ mask.fBounds = clip;
+ mask.fRowBytes = 1;
+ mask.fFormat = SkMask::kA8_Format;
+
+ this->blitMask(mask, clip);
+}
+
void SkRasterPipelineBlitter::blitV(int x, int y, int height, SkAlpha alpha) {
SkIRect clip = {x,y, x+1,y+height};