| // 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. |
| |
| #ifndef FLUTTER_TOOLS_PATH_OPS_PATH_OPS_H_ |
| #define FLUTTER_TOOLS_PATH_OPS_PATH_OPS_H_ |
| |
| #include "third_party/skia/include/core/SkPath.h" |
| #include "third_party/skia/include/core/SkPathBuilder.h" |
| #include "third_party/skia/include/core/SkPathTypes.h" |
| #include "third_party/skia/include/pathops/SkPathOps.h" |
| |
| #ifdef _WIN32 |
| #define API __declspec(dllexport) |
| #else |
| #define API __attribute__((visibility("default"))) |
| #endif |
| |
| extern "C" { |
| |
| namespace flutter { |
| |
| API SkPath* CreatePath(SkPathFillType fill_type); |
| |
| API void DestroyPathBuilder(SkPath* path); |
| |
| API void MoveTo(SkPath* path, SkScalar x, SkScalar y); |
| |
| API void LineTo(SkPath* path, SkScalar x, SkScalar y); |
| |
| API void CubicTo(SkPath* path, |
| SkScalar x1, |
| SkScalar y1, |
| SkScalar x2, |
| SkScalar y2, |
| SkScalar x3, |
| SkScalar y3); |
| |
| API void Close(SkPath* path); |
| |
| API void Reset(SkPath* path); |
| |
| API void DestroyPath(SkPath* path); |
| |
| API void Op(SkPath* one, SkPath* two, SkPathOp op); |
| |
| API int GetFillType(SkPath* path); |
| |
| struct API PathData { |
| uint8_t* verbs; |
| size_t verb_count; |
| float* points; |
| size_t point_count; |
| }; |
| |
| API struct PathData* Data(SkPath* path); |
| |
| API void DestroyData(PathData* data); |
| |
| } // namespace flutter |
| } |
| |
| #endif // FLUTTER_TOOLS_PATH_OPS_PATH_OPS_H_ |