blob: 6285da79960334af8cf98f776016796ebc78bd67 [file] [log] [blame]
/*
* 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