aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2017-12-19 16:12:44 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-12-20 15:08:54 +0000
commit1459ebdbd7b1fe62586fdb94f13803b60f7cddf8 (patch)
treef8eba4771b67320f404b41b4e0d9c7e186d8b37a /src
parent2b974e4be90fe5842a1a510fb8a48d222cfaa89d (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.cpp20
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