1/* 2 * Copyright 2012 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7#include "SkPath.h" 8 9// region-inspired approach 10void contourBounds(const SkPath& path, SkTDArray<SkRect>& boundsArray); 11void simplify(const SkPath& path, bool asFill, SkPath& simple); 12 13// contour outer edge walking approach 14#ifndef DEFINE_SHAPE_OP 15// FIXME: namespace testing doesn't allow global enums like this 16#define DEFINE_SHAPE_OP 17enum ShapeOp { 18 kDifference_Op, 19 kIntersect_Op, 20 kUnion_Op, 21 kXor_Op, 22 kShapeOp_Count 23}; 24 25enum ShapeOpMask { 26 kWinding_Mask = -1, 27 kNo_Mask = 0, 28 kEvenOdd_Mask = 1 29}; 30#endif 31 32void operate(const SkPath& one, const SkPath& two, ShapeOp op, SkPath& result); 33void simplifyx(const SkPath& path, SkPath& simple); 34 35// FIXME: remove this section once debugging is complete 36extern const bool gRunTestsInOneThread; 37#ifdef SK_DEBUG 38extern int gDebugMaxWindSum; 39extern int gDebugMaxWindValue; 40#endif 41