diff options
-rw-r--r-- | expectations/gm/ignored-tests.txt | 4 | ||||
-rw-r--r-- | src/gpu/SkGpuDevice.cpp | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/expectations/gm/ignored-tests.txt b/expectations/gm/ignored-tests.txt index 5d0ad0637e..51f6d120b1 100644 --- a/expectations/gm/ignored-tests.txt +++ b/expectations/gm/ignored-tests.txt @@ -68,3 +68,7 @@ shadertext2 # Changing this GM to add more test cases (failing at the moment) # Need to rebaseline when they are fixed stroketext + +# yunchao: https://codereview.chromium.org/292943002/ +# changed the rendering result of this gm case to respect paint's alpha +vertices_80 diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp index ec471ecc68..431238b9db 100644 --- a/src/gpu/SkGpuDevice.cpp +++ b/src/gpu/SkGpuDevice.cpp @@ -1649,8 +1649,13 @@ void SkGpuDevice::drawVertices(const SkDraw& draw, SkCanvas::VertexMode vmode, if (NULL != colors) { // need to convert byte order and from non-PM to PM convertedColors.reset(vertexCount); + SkColor color; for (int i = 0; i < vertexCount; ++i) { - convertedColors[i] = SkColor2GrColor(colors[i]); + color = colors[i]; + if (paint.getAlpha() != 255) { + color = SkColorSetA(color, SkMulDiv255Round(SkColorGetA(color), paint.getAlpha())); + } + convertedColors[i] = SkColor2GrColor(color); } colors = convertedColors.get(); } |