blob: d75264dad42a8577184726fe3a99f1e7cc1cd855 [file] [log] [blame]
// 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));
}