/* * Copyright 2022 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkPathUtils_DEFINED #define SkPathUtils_DEFINED #include "include/core/SkScalar.h" #include "include/core/SkTypes.h" class SkMatrix; class SkPaint; class SkPath; struct SkRect; namespace skpathutils { /** Returns the filled equivalent of the stroked path. @param src SkPath read to create a filled version @param paint SkPaint, from which attributes such as stroke cap, width, miter, and join, as well as pathEffect will be used. @param dst resulting SkPath; may be the same as src, but may not be nullptr @param cullRect optional limit passed to SkPathEffect @param resScale if > 1, increase precision, else if (0 < resScale < 1) reduce precision to favor speed and size @return true if the dst path was updated, false if it was not (e.g. if the path represents hairline and cannot be filled). */ SK_API bool FillPathWithPaint(const SkPath &src, const SkPaint &paint, SkPath *dst, const SkRect *cullRect, SkScalar resScale = 1); SK_API bool FillPathWithPaint(const SkPath &src, const SkPaint &paint, SkPath *dst, const SkRect *cullRect, const SkMatrix &ctm); SK_API bool FillPathWithPaint(const SkPath &src, const SkPaint &paint, SkPath *dst); } #endif