diff options
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 |