| // Copyright 2013 The Flutter Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "export.h" | |
| #include "helpers.h" | |
| #include "third_party/skia/include/core/SkColorFilter.h" | |
| #include "third_party/skia/include/core/SkImageFilter.h" | |
| #include "third_party/skia/include/core/SkMaskFilter.h" | |
| #include "third_party/skia/include/core/SkPaint.h" | |
| #include "third_party/skia/include/core/SkShader.h" | |
| using namespace Skwasm; | |
| SKWASM_EXPORT SkPaint* paint_create() { | |
| auto paint = new SkPaint(); | |
| // Antialias defaults to true in flutter. | |
| paint->setAntiAlias(true); | |
| return paint; | |
| } | |
| SKWASM_EXPORT void paint_dispose(SkPaint* paint) { | |
| delete paint; | |
| } | |
| SKWASM_EXPORT void paint_setBlendMode(SkPaint* paint, SkBlendMode mode) { | |
| paint->setBlendMode(mode); | |
| } | |
| // No getter for blend mode, as it's non trivial. Cache on the dart side. | |
| SKWASM_EXPORT void paint_setStyle(SkPaint* paint, SkPaint::Style style) { | |
| paint->setStyle(style); | |
| } | |
| SKWASM_EXPORT SkPaint::Style paint_getStyle(SkPaint* paint) { | |
| return paint->getStyle(); | |
| } | |
| SKWASM_EXPORT void paint_setStrokeWidth(SkPaint* paint, SkScalar width) { | |
| paint->setStrokeWidth(width); | |
| } | |
| SKWASM_EXPORT SkScalar paint_getStrokeWidth(SkPaint* paint) { | |
| return paint->getStrokeWidth(); | |
| } | |
| SKWASM_EXPORT void paint_setStrokeCap(SkPaint* paint, SkPaint::Cap cap) { | |
| paint->setStrokeCap(cap); | |
| } | |
| SKWASM_EXPORT SkPaint::Cap paint_getStrokeCap(SkPaint* paint) { | |
| return paint->getStrokeCap(); | |
| } | |
| SKWASM_EXPORT void paint_setStrokeJoin(SkPaint* paint, SkPaint::Join join) { | |
| paint->setStrokeJoin(join); | |
| } | |
| SKWASM_EXPORT SkPaint::Join paint_getStrokeJoin(SkPaint* paint) { | |
| return paint->getStrokeJoin(); | |
| } | |
| SKWASM_EXPORT void paint_setAntiAlias(SkPaint* paint, bool antiAlias) { | |
| paint->setAntiAlias(antiAlias); | |
| } | |
| SKWASM_EXPORT bool paint_getAntiAlias(SkPaint* paint) { | |
| return paint->isAntiAlias(); | |
| } | |
| SKWASM_EXPORT void paint_setColorInt(SkPaint* paint, SkColor colorInt) { | |
| paint->setColor(colorInt); | |
| } | |
| SKWASM_EXPORT SkColor paint_getColorInt(SkPaint* paint) { | |
| return paint->getColor(); | |
| } | |
| SKWASM_EXPORT void paint_setMiterLimit(SkPaint* paint, SkScalar miterLimit) { | |
| paint->setStrokeMiter(miterLimit); | |
| } | |
| SKWASM_EXPORT SkScalar paint_getMiterLImit(SkPaint* paint) { | |
| return paint->getStrokeMiter(); | |
| } | |
| SKWASM_EXPORT void paint_setShader(SkPaint* paint, SkShader* shader) { | |
| paint->setShader(sk_ref_sp<SkShader>(shader)); | |
| } | |
| SKWASM_EXPORT void paint_setImageFilter(SkPaint* paint, SkImageFilter* filter) { | |
| paint->setImageFilter(sk_ref_sp<SkImageFilter>(filter)); | |
| } | |
| SKWASM_EXPORT void paint_setColorFilter(SkPaint* paint, SkColorFilter* filter) { | |
| paint->setColorFilter(sk_ref_sp<SkColorFilter>(filter)); | |
| } | |
| SKWASM_EXPORT void paint_setMaskFilter(SkPaint* paint, SkMaskFilter* filter) { | |
| paint->setMaskFilter(sk_ref_sp<SkMaskFilter>(filter)); | |
| } |