blob: ecb9bde5b118a7cbdd3828dc4409d69c1f036731 [file] [log] [blame]
reed@android.com8a1c16f2008-12-17 15:59:43 +00001/* libs/graphics/sgl/SkStrokerPriv.h
2**
3** Copyright 2006, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9** http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17
18#ifndef SkStrokerPriv_DEFINED
19#define SkStrokerPriv_DEFINED
20
21#include "SkStroke.h"
22
23#define CWX(x, y) (-y)
24#define CWY(x, y) (x)
25#define CCWX(x, y) (y)
26#define CCWY(x, y) (-x)
27
28#define CUBIC_ARC_FACTOR ((SK_ScalarSqrt2 - SK_Scalar1) * 4 / 3)
29
30class SkStrokerPriv {
31public:
32 typedef void (*CapProc)(SkPath* path,
33 const SkPoint& pivot,
34 const SkVector& normal,
35 const SkPoint& stop,
36 SkPath* otherPath);
37
38 typedef void (*JoinProc)(SkPath* outer, SkPath* inner,
39 const SkVector& beforeUnitNormal,
40 const SkPoint& pivot,
41 const SkVector& afterUnitNormal,
42 SkScalar radius, SkScalar invMiterLimit,
43 bool prevIsLine, bool currIsLine);
44
45 static CapProc CapFactory(SkPaint::Cap);
46 static JoinProc JoinFactory(SkPaint::Join);
47};
48
49#endif
50