diff options
author | Brian Salomon <bsalomon@google.com> | 2017-12-19 16:12:44 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-12-20 15:08:54 +0000 |
commit | 1459ebdbd7b1fe62586fdb94f13803b60f7cddf8 (patch) | |
tree | f8eba4771b67320f404b41b4e0d9c7e186d8b37a /src | |
parent | 2b974e4be90fe5842a1a510fb8a48d222cfaa89d (diff) |
Handle invalid mode in SkGpuDevice::drawPoints.
Bug: skia:7427
Change-Id: I5f63d1c77577942f648fdc1439a9b4338299b033
Reviewed-on: https://skia-review.googlesource.com/87340
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/gpu/SkGpuDevice.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp index 3d5540d2be..1eebb5d095 100644 --- a/src/gpu/SkGpuDevice.cpp +++ b/src/gpu/SkGpuDevice.cpp @@ -280,12 +280,18 @@ void SkGpuDevice::drawPaint(const SkPaint& paint) { fRenderTargetContext->drawPaint(this->clip(), std::move(grPaint), this->ctm()); } -// must be in SkCanvas::PointMode order -static const GrPrimitiveType gPointMode2PrimitiveType[] = { - GrPrimitiveType::kPoints, - GrPrimitiveType::kLines, - GrPrimitiveType::kLineStrip -}; +static inline GrPrimitiveType point_mode_to_primitive_type(SkCanvas::PointMode mode) { + switch (mode) { + case SkCanvas::kPoints_PointMode: + return GrPrimitiveType::kPoints; + case SkCanvas::kLines_PointMode: + return GrPrimitiveType::kLines; + case SkCanvas::kPolygon_PointMode: + return GrPrimitiveType::kLineStrip; + } + SK_ABORT("Unexpected mode"); + return GrPrimitiveType::kPoints; +} void SkGpuDevice::drawPoints(SkCanvas::PointMode mode, size_t count, const SkPoint pts[], const SkPaint& paint) { @@ -328,7 +334,7 @@ void SkGpuDevice::drawPoints(SkCanvas::PointMode mode, return; } - GrPrimitiveType primitiveType = gPointMode2PrimitiveType[mode]; + GrPrimitiveType primitiveType = point_mode_to_primitive_type(mode); const SkMatrix* viewMatrix = &this->ctm(); #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK |