Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(388)

Side by Side Diff: src/core/SkGeometry.h

Issue 787763007: extract cubic classification from gpu into geometry (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix accidental change Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/core/SkGeometry.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #ifndef SkGeometry_DEFINED 10 #ifndef SkGeometry_DEFINED
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 but if it is equal to cubic[3].fY then it is considered to 184 but if it is equal to cubic[3].fY then it is considered to
185 cross. 185 cross.
186 Optional outgoing "ambiguous" argument indicates whether the answer is 186 Optional outgoing "ambiguous" argument indicates whether the answer is
187 ambiguous because the query occurred exactly at one of the endpoints' y 187 ambiguous because the query occurred exactly at one of the endpoints' y
188 coordinates or at a tangent point, indicating that another query y 188 coordinates or at a tangent point, indicating that another query y
189 coordinate is preferred for robustness. 189 coordinate is preferred for robustness.
190 */ 190 */
191 int SkNumXRayCrossingsForCubic(const SkXRay& pt, const SkPoint cubic[4], 191 int SkNumXRayCrossingsForCubic(const SkXRay& pt, const SkPoint cubic[4],
192 bool* ambiguous = NULL); 192 bool* ambiguous = NULL);
193 193
194 enum SkCubicType {
195 kSerpentine_SkCubicType,
196 kCusp_SkCubicType,
197 kLoop_SkCubicType,
198 kQuadratic_SkCubicType,
199 kLine_SkCubicType,
200 kPoint_SkCubicType
201 };
202
203 /** Returns the cubic classification. Pass scratch storage for computing inflect ion data,
204 which can be used with additional work to find the loop intersections and so on.
205 */
206 SkCubicType SkClassifyCubic(const SkPoint p[4], SkScalar inflection[3]);
207
194 /////////////////////////////////////////////////////////////////////////////// 208 ///////////////////////////////////////////////////////////////////////////////
195 209
196 enum SkRotationDirection { 210 enum SkRotationDirection {
197 kCW_SkRotationDirection, 211 kCW_SkRotationDirection,
198 kCCW_SkRotationDirection 212 kCCW_SkRotationDirection
199 }; 213 };
200 214
201 /** Maximum number of points needed in the quadPoints[] parameter for 215 /** Maximum number of points needed in the quadPoints[] parameter for
202 SkBuildQuadArc() 216 SkBuildQuadArc()
203 */ 217 */
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 private: 321 private:
308 enum { 322 enum {
309 kQuadCount = 8, // should handle most conics 323 kQuadCount = 8, // should handle most conics
310 kPointCount = 1 + 2 * kQuadCount, 324 kPointCount = 1 + 2 * kQuadCount,
311 }; 325 };
312 SkAutoSTMalloc<kPointCount, SkPoint> fStorage; 326 SkAutoSTMalloc<kPointCount, SkPoint> fStorage;
313 int fQuadCount; // #quads for current usage 327 int fQuadCount; // #quads for current usage
314 }; 328 };
315 329
316 #endif 330 #endif
OLDNEW
« no previous file with comments | « no previous file | src/core/SkGeometry.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698