Commit Graph

186 Commits

Author SHA1 Message Date
caryclark
2028d7ff74 add support for capped hairlines
Extend the ends of hairline and haircurve segments when the paint is set to square or round, and the line or curve is at the start or end of a contour.

R=reed@google.com
BUG=skia:4599

Review URL: https://codereview.chromium.org/1491843006
2015-12-09 14:04:46 -08:00
fmalita
aa0df4e98d Add an SkPath conic conversion utility.
Expose SkConic::chopIntoQuadsPOW2() as SkPath::ConvertConicToQuads().

BUG=chromium:315277
R=reed@google.com

Review URL: https://codereview.chromium.org/1484373002
2015-12-01 09:13:23 -08:00
caryclark
da707bf563 add SkPath::isRRect
Add helper to track when a round rect was added to a path,
and then return the SkRRect specification that describes it.

Move the implementation for SkPath::RawIter to SkPathRef so it can be used there as well.

R=reed@google.com,robertphillips@google.com

Review URL: https://codereview.chromium.org/1461763004
2015-11-19 14:47:44 -08:00
fmalita
c08d53ee17 Parametric SkPath oval/rect/rrect starting point
Extend the SkPath API to allow specifying the contour starting point.

This will allow removing the explicit cubic code from Blink/Path.

BUG=chromium:315277
R=reed@google.com,caryclark@google.com

Review URL: https://codereview.chromium.org/1452203002
2015-11-17 09:53:29 -08:00
mtklein
bf90520f63 SkPath::fFirstDirection: seq-cst -> relaxed
We landed this originally with lazily-correct sequentially-consistent memory
order.  It turns out that's regressed performance, we think particularly when
recording paths.  We also think there's no need for anything but relaxed memory
order here.

We should see this chart go down if all goes well: https://perf.skia.org/#4329
There are also Chrome performance charts to watch in the linked bug.

BUG=chromium:537700

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-TSAN-Trybot,Test-Ubuntu-GCC-Golo-GPU-GT610-x86_64-Release-TSAN

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1393833003
2015-10-07 12:46:43 -07:00
herb
9f4dbca329 Make SkPath fFirstDirection atomic to fix tsan.
There is no API change.

TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1372103003
2015-09-28 11:05:47 -07:00
bungeman
99fe822606 Use static_assert instead of SK_COMPILE_ASSERT.
Now that static_assert is allowed, there is no need to use a non-
standard compile time assertion

Review URL: https://codereview.chromium.org/1306443004
2015-08-20 07:57:52 -07:00
reed
91f283bb4e change getBounds to return 0000 iff there are zero points
This is a contract change for SkPath::getBounds(), which formally was defined to return 0,0,0,0 for a 1-point path, regardless of the coordinates of that point. This seems wacky/inconsistent, and was causing other bugs (incorrect bounds) when this was unioned with other rects.

Does anyone remember why we defined it this way?

BUG=513799

Review URL: https://codereview.chromium.org/1261773002
2015-07-28 06:00:50 -07:00
caryclark
e8c5666e03 Very tiny paths are subsumed by the Convexicator
and are treated as convex when they are not.

Allow the SkPath::Iter to leave degenerate path
segments unmolested by passing an additional exact
bool to next().

Treat any non-zero length as significant in addPt().

R=reed@google.com,robertphillips@google.com
BUG=493450

Review URL: https://codereview.chromium.org/1228383002
2015-07-14 11:19:26 -07:00
mtklein
2766c00fc0 remove SkInstCnt
It's been outclassed by Valgrind and leak sanitizer,
and it seems to be causing problems for external folks building Skia.

I'm not sure why our own builds seem unaffected.

Latest thread:
https://groups.google.com/forum/#!topic/skia-discuss/oj9FsQwwSF0

BUG=skia:

Review URL: https://codereview.chromium.org/1217573002
2015-06-26 11:45:03 -07:00
reed
8f086023bf fix deserialization after FirstDirection change to paths
BUG=skia:

Review URL: https://codereview.chromium.org/1185453003
2015-06-11 14:22:19 -07:00
reed
026beb52a2 SkPath::Direction serves two masters:
- input param to addFoo (e.g. addRect), where only CW or CCW are valid)
- output param from computing functions, that sometimes return kUnknown

This CL's intent is to split these into distinct enums/features:
- Direction (public) loses kUnknown, and is only used for input
- FirstDirection (private) is used for computing the first direction we see when analyzing a contour

BUG=skia:

Review URL: https://codereview.chromium.org/1176953002
2015-06-10 14:23:15 -07:00
reed
6e43465039 simplify RawIter - don't return a pt in kClose
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1156893003
2015-05-27 19:53:25 -07:00
reed
b56158118c simplify RawIter
BUG=skia:

Review URL: https://codereview.chromium.org/1137783006
2015-05-13 07:55:48 -07:00
caryclark
aec2510125 minor fixes to cubics code and overall alignment of how bounds and tops are computed for all curve types
All but 17 extended tests work.

A helper function is privately added to SkPath.h to permit a test to modify a given point in a path.

BUG=skia:3588

Review URL: https://codereview.chromium.org/1107353004
2015-04-29 08:28:30 -07:00
caryclark
95bc5f3495 change isNestedRect to isNestedFillRect
R=reed@google.com, bsalomon@google.com

Let isNested(Fill)Rect return true if drawn path describes filled
rectangles.

Review URL: https://codereview.chromium.org/1073473002
2015-04-08 08:34:15 -07:00
caryclark
63c684a8a6 fuzzer fixes
Fix path bugs exposed by the path fuzzer.

Changes to existing gm and samplecode files defer their calls to construct
SkPath objects until the first draw instead of at test initialization.

Add an experimental call to SkPath to validate the internal SkPathRef.

Fix SkPath::addPoly to set the last moveto after adding a close verb.

Fix stroke to handle failures when computing the unit normal.

Add a unit test for the unit normal failure.

R=reed@google.com

Review URL: https://codereview.chromium.org/953383002
2015-02-25 09:04:04 -08:00
reed
9e779d4951 add gm for path-arcs, and catch degenerate arc in conic-case
BUG=skia:3428

Review URL: https://codereview.chromium.org/931183002
2015-02-17 11:43:14 -08:00
djsollen
523cda3943 Remove android specific srcPath from SkPath
Review URL: https://codereview.chromium.org/926693002
2015-02-17 08:06:33 -08:00
djsollen
90b5c0ced0 Expose SkPathRef::unique through SkPath.
This allows for the removal of SkPath::mSourcePath on Android
as they now have a better indicator of whether or not the path
can be used again via the Java API.

Review URL: https://codereview.chromium.org/913413004
2015-02-12 12:08:40 -08:00
reed
c778904a5b share code between arcTo and addArc, update dox
BUG=skia:

Review URL: https://codereview.chromium.org/863123005
2015-01-29 12:59:11 -08:00
mtklein
6f07665768 Simplify SkInstCnt
This code requires fewer macros to use it (just one), has less code in macro
definitions, and has simpler synchronization code (just atomic ints, no SkOnce,
no SkMutex, etc.)

A minor downside, we lose indentation and reverse-ordering in the final report:
  Leaked SkRefCntBase: 7
     Leaked SkFontMgr: 1
     Leaked SkWeakRefCnt: 1
         Leaked SkTypeface: 1
     Leaked SkFlattenable: 3
         Leaked SkXfermode: 3
     Leaked SkPathRef: 1
     Leaked SkPixelRef: 1
         Leaked SkMallocPixelRef: 1
becomes
  Leaked SkXfermode: 3
  Leaked SkMallocPixelRef: 1
  Leaked SkPixelRef: 1
  Leaked SkPathRef: 1
  Leaked SkFlattenable: 3
  Leaked SkTypeface: 1
  Leaked SkWeakRefCnt: 1
  Leaked SkFontMgr: 1
  Leaked SkRefCntBase: 7

This is motivated by wanting to land https://codereview.chromium.org/806473006/,
which makes sure all static use of SkOnce are in global scope.  The current
implementation of SkInstCnt uses them in function scope, which isn't safe.
BUG=skia:

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/841263004
2015-01-13 08:22:44 -08:00
robertphillips
2b6ab61e22 Remove SkPath::asRect
AFAICT the asRect entry point is not needed.

Greg: GPU
Reed: API
Cary: Path

Review URL: https://codereview.chromium.org/833193002
2015-01-05 12:22:14 -08:00
robertphillips
91b0a35873 Cleanup isRect variants
Review URL: https://codereview.chromium.org/832083002
2015-01-05 10:13:46 -08:00
robertphillips
4f662e62cd Update stroke path to use rect returned from isRect (to fix trailing moveTo bug)
This basically recreates what was done in:

https://codereview.chromium.org/16950021/ (add rect-output parameter to isRect, allowing us to return the correct bounds even if a rectagular path has a trailing moveTo) with the addition of GM representation

BUG=skia:247770

Review URL: https://codereview.chromium.org/834503002
2014-12-29 14:06:51 -08:00
jvanverth
b3eb687f8a Set temporary paths volatile so we don't cache them.
Any path that is generated frame-to-frame should not be rendered by using the
DistanceFieldPathRenderer, because generating the initial distance field,
uploading it and rendering it takes longer than the SoftwarePathRenderer.

BUG=skia:2935

Review URL: https://codereview.chromium.org/677463002
2014-10-24 07:12:51 -07:00
caryclark
e956259c5a add dumpHex() option to SkPath
This provides exact precision
to help debugging when the float
representation of a SkScalar may
introduce error.

R=reed@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/571973003
2014-09-15 09:26:09 -07:00
caryclark
66a5d8bf13 add path dump test
Add a unit test for SkPath::dump(). The unit test exposed a minor
bug (inconsistent CRs) and an unused parameter (title).

R=bsalomon@google.com
TBR=bsalomon
BUG=skia:1836

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/351833003
2014-06-24 08:30:18 -07:00
commit-bot@chromium.org
5e1a7f2cc6 Revert of r13379 (Move fLastMoveToIndex from SkPath to SkPathRef - https://codereview.chromium.org/146913002/) due to image quality regression in Chromium. See crbug.com/343123 (Regression - UI issue observed for any "Notification infobars" in Chrome browser)
R=bsalomon@google.com
TBR=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/137863006

git-svn-id: http://skia.googlecode.com/svn/trunk@13421 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-12 17:44:30 +00:00
skia.committer@gmail.com
877c44956d Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13418 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-12 03:02:04 +00:00
commit-bot@chromium.org
14747e58f8 Adding new 'extend' mode to SkPath::addPath
BUG=261727
R=reed@google.com, caryclark@google.com, schenney@chromium.org, robertphillips@google.com

Author: junov@chromium.org

Review URL: https://codereview.chromium.org/151353006

git-svn-id: http://skia.googlecode.com/svn/trunk@13415 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 21:16:29 +00:00
commit-bot@chromium.org
7e90e8dbb9 fix minor error between kStroke_PathAsRect and kFill_PathAsRect in SkPath::asRect
R=caryclark@google.com, reed@google.com

Author: yunchao.he@intel.com

Review URL: https://codereview.chromium.org/138703008

git-svn-id: http://skia.googlecode.com/svn/trunk@13390 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 01:38:30 +00:00
robertphillips@google.com
f66cf72c68 Move fLastMoveToIndex from SkPath to SkPathRef
https://codereview.chromium.org/146913002/



git-svn-id: http://skia.googlecode.com/svn/trunk@13379 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-10 13:51:32 +00:00
commit-bot@chromium.org
c2abd54eda add alternative to isRect named asRect
This defines yunchao's proposed interface in terms of
an existing implementation.

BUG=skia:
R=reed@google.com, yunchao.he@intel.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/140953003

git-svn-id: http://skia.googlecode.com/svn/trunk@13183 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-25 16:54:31 +00:00
commit-bot@chromium.org
fed2ab6483 No deduping dictionaries for matrices and regions.
There's little benefit to deduping matrices and regions: they're infrequently
used, and doubly infrequently reused.  Their use-weighted byte cost is tiny.

There is some downside to deduping matrices and regions.  Even when they're not
used, we prepare dictionaries for deduping them for every picture.  Each of
these dictionaries costs 160 bytes, so two unused dictionaries make a big chunk
of the ~1100 bytes it takes to allocate an SkPictureRecord. (~330 come from
parent class SkCanvas, 768 from SkPictureRecord itself, here reduced to 448).

One side benefit of not deduping these guys is that the change weighs -140 lines of code.

It may go without saying, but this breaks the picture format.

Testing: out/Debug/tests && out/Debug/dm  (which runs all picture modes by default)

BUG=skia:1850
R=reed@google.com, bensong@google.com, robertphillips@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/143883006

git-svn-id: http://skia.googlecode.com/svn/trunk@13149 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-23 15:16:05 +00:00
robertphillips@google.com
0efb21bd1c Improved SkPathRef interface security
https://codereview.chromium.org/115323004/



git-svn-id: http://skia.googlecode.com/svn/trunk@12676 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 19:36:25 +00:00
robertphillips@google.com
6b8dbb668f Move segment mask from SkPath to SkPathRef
https://codereview.chromium.org/105083003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12660 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-12 23:03:51 +00:00
robertphillips@google.com
11e055518a Code cleanup following recapture of skps
https://codereview.chromium.org/88233003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12472 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 19:46:58 +00:00
robertphillips@google.com
466310dbd3 Move fIsOval from SkPath to SkPathRef
https://codereview.chromium.org/89123002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12463 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 16:43:54 +00:00
robertphillips@google.com
ca316f576e Revert of r12450 (Move fIsOval from SkPath to SkPathRef)
git-svn-id: http://skia.googlecode.com/svn/trunk@12452 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 00:23:39 +00:00
robertphillips@google.com
31f0ffc9c3 Move fIsOval from SkPath to SkPathRef
https://codereview.chromium.org/89123002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12450 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 23:55:11 +00:00
commit-bot@chromium.org
a1a097ee81 increase coverage of SkPath.cpp, remove unused code
Using Mike Klein's excellent coverage tool, increase the
unit testing of SkPath.cpp from 70% to 95%.

Along the way, determined that these functions were not
maintained or used:

SkPath::pathTo
SkPath::contains

as well as a large block of SkPath::cheapGetDirection().

Changed SkPath::validate() to permit infinities in
the path data points.

Fixed errors in preserving direction.
Fixed error setting direction when convexity is unknown.

Added missing conic to moveTo only detector.

BUG=
R=bsalomon@google.com, reed@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/65493004

git-svn-id: http://skia.googlecode.com/svn/trunk@12291 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-14 16:53:22 +00:00
commit-bot@chromium.org
4faa869cda Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream.
BUG=
R=reed@google.com, mtklein@google.com, senorblanco@chromium.org

Committed: https://code.google.com/p/skia/source/detail?r=12114

Committed: https://code.google.com/p/skia/source/detail?r=12119

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/41253002

git-svn-id: http://skia.googlecode.com/svn/trunk@12130 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 15:46:56 +00:00
reed@google.com
12a23866fe Revert "Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream."
This reverts commit 6bc22e8ef1ea70a1b58409aa21254358c50f149a.

git-svn-id: http://skia.googlecode.com/svn/trunk@12124 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 21:35:55 +00:00
sugoi@google.com
b48a59ae81 Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream.
BUG=
R=reed@google.com

Committed: https://code.google.com/p/skia/source/detail?r=12114

Review URL: https://codereview.chromium.org/41253002

git-svn-id: http://skia.googlecode.com/svn/trunk@12119 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 20:28:23 +00:00
epoger@google.com
eb221268ab Revert r12114 due to https://code.google.com/p/skia/issues/detail?id=1794 ('Assertion failures on various buildbots as of r12114')
git-svn-id: http://skia.googlecode.com/svn/trunk@12115 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 18:06:12 +00:00
sugoi@google.com
305f78e8c1 Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream.
BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/41253002

git-svn-id: http://skia.googlecode.com/svn/trunk@12114 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 16:18:15 +00:00
reed@google.com
4469938e92 Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning""
This reverts commit 1e787c38fa71f2a21fd728f1b1d620b9b09b0d3d.

BUG=

Review URL: https://codereview.chromium.org/54603004

git-svn-id: http://skia.googlecode.com/svn/trunk@12057 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 17:28:30 +00:00
reed@google.com
6fcbfcead5 Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"
This reverts commit 1d22c4aaf9d8f053f25194a1ed74b137bfb19497.

git-svn-id: http://skia.googlecode.com/svn/trunk@12056 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 16:31:11 +00:00
reed@google.com
081560e3ab add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning
BUG=
R=robertphillips@google.com, senorblanco@chromium.org, vandebo@chromium.org

Review URL: https://codereview.chromium.org/51033004

git-svn-id: http://skia.googlecode.com/svn/trunk@12055 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 16:24:08 +00:00
skia.committer@gmail.com
7ed98df9ba Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12043 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 07:01:53 +00:00
commit-bot@chromium.org
1ab9f737f0 Use SkPathRef gen id for SkPath::getGenerationID
R=mtklein@google.com, robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/49693002

git-svn-id: http://skia.googlecode.com/svn/trunk@12029 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-30 18:57:55 +00:00
robertphillips@google.com
7101abe5b3 Reverting r12010 (Use SkPathRef gen id for SkPath::getGenerationID https://codereview.chromium.org/49693002) due to test failures in PathTest on Android
git-svn-id: http://skia.googlecode.com/svn/trunk@12012 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 22:45:37 +00:00
commit-bot@chromium.org
4cc7518d9b Use SkPathRef gen id for SkPath::getGenerationID
R=mtklein@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/49693002

git-svn-id: http://skia.googlecode.com/svn/trunk@12010 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 21:34:55 +00:00
robertphillips@google.com
ca0c8389e2 Move bound and isFinite into pathref
https://codereview.chromium.org/24350006/



git-svn-id: http://skia.googlecode.com/svn/trunk@11467 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 12:18:23 +00:00
mtklein@google.com
cb8b0eeacf Update how SkPath handles fGenerationID and fSourcePath, and add tests to cover.
BUG=
R=bungeman@google.com, reed@google.com

Review URL: https://codereview.chromium.org/22911002

git-svn-id: http://skia.googlecode.com/svn/trunk@10756 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-15 21:14:51 +00:00
mtklein@google.com
9c9d4a7002 Restore SkPath(const SkPath&) to copy the generation ID on Android.
BUG=
R=bsalomon@google.com, bungeman@google.com, reed@google.com

Review URL: https://codereview.chromium.org/22471002

git-svn-id: http://skia.googlecode.com/svn/trunk@10622 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-07 19:17:53 +00:00
commit-bot@chromium.org
f48e475528 Remove SK_DEBUG_PATH_REF
R=bungeman@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/18029006

git-svn-id: http://skia.googlecode.com/svn/trunk@9795 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-27 18:39:39 +00:00
bungeman@google.com
dd68f4533b Fix PathRefDebugRef (SK_DEBUG_PATH_REF) case for SkPath copy constructor.
Review URL: https://codereview.chromium.org/17902003

git-svn-id: http://skia.googlecode.com/svn/trunk@9768 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-26 15:53:29 +00:00
robertphillips@google.com
8fd160350c Revert r9724 (add rect-output parameter to isRect) to allow the DEPS roll
git-svn-id: http://skia.googlecode.com/svn/trunk@9750 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-25 15:39:58 +00:00
skia.committer@gmail.com
020b25becb Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@9738 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-22 07:00:58 +00:00
reed@google.com
da2b21fa9b add rect-output parameter to isRect, allowing us to return the correct bounds even if a rectagular path has a trailing moveTo
https://code.google.com/p/chromium/issues/detail?id=247770

R=caryclark@google.com

Review URL: https://codereview.chromium.org/16950021

git-svn-id: http://skia.googlecode.com/svn/trunk@9724 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-21 17:32:32 +00:00
bungeman@google.com
28eadc9e4d Fix macro for r9718.
git-svn-id: http://skia.googlecode.com/svn/trunk@9720 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-21 15:28:54 +00:00
bungeman@google.com
a5809a3e4c SkPath::rewind needs to have same reset as SkPath::reset.
R=caryclark@google.com, reed@google.com

Review URL: https://codereview.chromium.org/17432003

git-svn-id: http://skia.googlecode.com/svn/trunk@9718 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-21 15:13:34 +00:00
skia.committer@gmail.com
26da7f00ae Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@9387 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-01 07:01:39 +00:00
reed@google.com
277c3f8765 bump picture version since SkPath has changed (conics)
enable conics in SkPath

git-svn-id: http://skia.googlecode.com/svn/trunk@9370 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-31 15:17:50 +00:00
reed@google.com
fa2f2a48f6 Revert "add asserts to point<-->verb helpers"
This reverts commit b4775ac7b55802e87231768f002e4b42f233b0aa.

git-svn-id: http://skia.googlecode.com/svn/trunk@9347 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-30 15:29:48 +00:00
reed@google.com
7950a9eba7 add asserts to point<-->verb helpers
patch from issue 16153005

BUG=

Review URL: https://codereview.chromium.org/16195004

git-svn-id: http://skia.googlecode.com/svn/trunk@9344 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-30 14:57:55 +00:00
skia.committer@gmail.com
845220b817 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@9189 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-20 11:51:35 +00:00
robertphillips@google.com
83d1a68141 Add special handling of rectori case for gpu
https://codereview.chromium.org/15080010/



git-svn-id: http://skia.googlecode.com/svn/trunk@9175 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-17 12:50:27 +00:00
robertphillips@google.com
4e18c7a9bb Add RRect GM
https://codereview.appspot.com/6945063/



git-svn-id: http://skia.googlecode.com/svn/trunk@6866 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-17 21:48:19 +00:00
sugoi@google.com
5f74cf8c49 Follow up on the previous patch :
- Moved the SkStrokeRec class in its own file
- Replaced SkStroke by SkStrokeRec in Ganesh
- Moved path stroking to the Ganesh level in some cases (everytime it isn't required to do it directly in SkGpuDevice). PathEffect and MaskFilter still require path stroking at the SkGpuDevice for now.
- Renamed static functions in SkPath with proper names

* No functionality shold have changed with this patch. This is a step towards enabling Ganesh Path Renderers to decide whether or not to stroke the path rather than always receiving the stroked path as an input argument.

BUG=chromium:135111
TEST=Try path rendering tests from the gm
Review URL: https://codereview.appspot.com/6946072

git-svn-id: http://skia.googlecode.com/svn/trunk@6861 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-17 21:16:45 +00:00
reed@google.com
4ed0fb7684 revert 6766, thereby re-landing 6762-6763 now that the bots are ready
git-svn-id: http://skia.googlecode.com/svn/trunk@6770 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-12 20:48:18 +00:00
reed@google.com
25c1408c3d revert 6762-6763, since those require new skps to be generated, and we can't
do that immediately right now... will re-submit when we can.



git-svn-id: http://skia.googlecode.com/svn/trunk@6766 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-12 19:15:31 +00:00
reed@google.com
68d61ed83e make RRect and Oval first-class drawing primitives in SkCanvas.
add RRect as a first-class clip primitive.
Review URL: https://codereview.appspot.com/6923058

git-svn-id: http://skia.googlecode.com/svn/trunk@6762 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-12 19:02:53 +00:00
sugoi@google.com
12b4e27ae1 As part of preliminary groundwork for a chromium fix, this changelist is deprecating GrPathFill so that SkPath::FillType is used everywhere in order to remove some code duplication between Skia and Ganesh.
BUG=chromium:135111
TEST=Try path rendering tests from the gm
Review URL: https://codereview.appspot.com/6875058

git-svn-id: http://skia.googlecode.com/svn/trunk@6693 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-06 20:13:11 +00:00
reed@google.com
a8a3b3d9a0 check for bad enum use when adding contours
Review URL: https://codereview.appspot.com/6849103

git-svn-id: http://skia.googlecode.com/svn/trunk@6547 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-26 18:16:27 +00:00
caryclark@google.com
f68154a3cf Add isRect variant that returns path closure and direction.
Add path test to verify that when isRect() returns false,
output parameters are unchanged.
Review URL: https://codereview.appspot.com/6855074

git-svn-id: http://skia.googlecode.com/svn/trunk@6524 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-21 15:18:06 +00:00
skia.committer@gmail.com
3458716b52 Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@6500 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-20 02:01:23 +00:00
caryclark@google.com
56f233ab54 add two nested rect detector to path
Tease apart existing one rect path detector so
that a new variant can detect two nested rects as well.

Add tests to verify that both one and two rect
detectors both work and return the correct results.

Suppress other warnings in PathTest.
Review URL: https://codereview.appspot.com/6850059

git-svn-id: http://skia.googlecode.com/svn/trunk@6475 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-19 13:06:06 +00:00
bsalomon@google.com
9bee33afbe Add a conservativelyContainsRect function to SkPath.
Review URL: https://codereview.appspot.com/6852044

git-svn-id: http://skia.googlecode.com/svn/trunk@6411 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-13 21:51:38 +00:00
bsalomon@google.com
30c174b9ce Make SkPath cache the result of cheapComputeDirection.
Review URL: https://codereview.appspot.com/6810111

git-svn-id: http://skia.googlecode.com/svn/trunk@6394 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-13 14:36:42 +00:00
bsalomon@google.com
7823d9a07f Disable SK_DEBUG_PATH_REF in debug builds.
R=reed@google.com
Review URL: https://codereview.appspot.com/6602056

git-svn-id: http://skia.googlecode.com/svn/trunk@5810 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-04 17:55:30 +00:00
skia.committer@gmail.com
7cc7f49479 Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@5798 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-04 02:01:34 +00:00
bsalomon@google.com
ae09f2dc3f Adds extra debugging to SkPathRef that can optionally be turned on in a release build.
This is pretty hacky but hopefully will be quite short-lived.
Review URL: https://codereview.appspot.com/6584074

git-svn-id: http://skia.googlecode.com/svn/trunk@5793 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-03 19:57:01 +00:00
bsalomon@google.com
1dfe88e00a Revert r5557 (which itself was a revert of r5433). Relands SkPathRef. Will follow with change for extra debug checks to attempt to ferret out http://www.crbug.com/148637.
git-svn-id: http://skia.googlecode.com/svn/trunk@5783 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-03 13:46:20 +00:00
bsalomon@google.com
6c5418e6c2 Temporarily revert r5433 due to http://www.crbug.com/148637 until after M23 branch.
git-svn-id: http://skia.googlecode.com/svn/trunk@5557 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-14 20:30:37 +00:00
bsalomon@google.com
69aca79b5c SkPathRef: one allocation for pts+verbs, path GenID, copy-on-write
Review URL: https://codereview.appspot.com/6488063/



git-svn-id: http://skia.googlecode.com/svn/trunk@5433 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-07 15:35:06 +00:00
bsalomon@google.com
5e72845024 Add SK_API to path == decl.
Over-the-shoulder review from robertphillips@



git-svn-id: http://skia.googlecode.com/svn/trunk@5426 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-07 13:32:37 +00:00
rmistry@google.com
fbfcd56021 Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/)
This CL is part I of IV (I broke down the 1280 files into 4 CLs).
Review URL: https://codereview.appspot.com/6485054

git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-23 18:09:54 +00:00
bsalomon@google.com
607d08b7db Set LF property on a bunch of files.
Review URL: http://codereview.appspot.com/6461094/




git-svn-id: http://skia.googlecode.com/svn/trunk@5168 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 13:55:09 +00:00
robertphillips@google.com
01ec2eb42e Added Serialization of SkPath's bound
http://codereview.appspot.com/6458143/



git-svn-id: http://skia.googlecode.com/svn/trunk@5143 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-17 10:58:49 +00:00
bsalomon@google.com
65a87cc13d Add inst counting to bench and count SkPaths
Review URL: http://codereview.appspot.com/6450129/



git-svn-id: http://skia.googlecode.com/svn/trunk@5076 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-14 13:15:44 +00:00
bsalomon@google.com
30e6d2c205 Adds a bunch of benchmarks around creating, transforming, testing path equality,
and concatting paths. Also allows benchs to do setup / tear down steps outside
of the cons/destructor via new SkBenchmark virtuals.

Review URL: http://codereview.appspot.com/6454137/



git-svn-id: http://skia.googlecode.com/svn/trunk@5054 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-13 14:03:31 +00:00
robertphillips@google.com
fc91dc7004 Windows compiler complaint cleanup
http://codereview.appspot.com/6441055/



git-svn-id: http://skia.googlecode.com/svn/trunk@4796 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-26 21:18:31 +00:00
reed@google.com
0bb18bb264 explicitly track if a path is finite or not
we need this (it appears) so we can definitively reject non-finite paths
in canvas, before passing them down into the guts.
Review URL: https://codereview.appspot.com/6453047

git-svn-id: http://skia.googlecode.com/svn/trunk@4784 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-26 15:20:36 +00:00
mike@reedtribe.org
bad1b2ff1d add SkPath::contains(x, y)
git-svn-id: http://skia.googlecode.com/svn/trunk@4526 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 01:51:33 +00:00
djsollen@google.com
94e75ee46a Rename the existing flatten(void*) methods.
This change avoids naminc confusion with the SkFlattenable flatten methods and
also changes SkPath to use the void* model instead of taking a SkReader32.
Review URL: https://codereview.appspot.com/6299062

git-svn-id: http://skia.googlecode.com/svn/trunk@4215 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-08 18:30:46 +00:00
bsalomon@google.com
df9d656c35 Add SkPath::getVerbs/countVerbs
Review URL: http://codereview.appspot.com/6306053/


git-svn-id: http://skia.googlecode.com/svn/trunk@4209 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-07 21:43:15 +00:00
bsalomon@google.com
f6d3c5aa5f Make SkPath::RawIter require a non-NULL pts pointer.
Review URL: http://codereview.appspot.com/6301060/



git-svn-id: http://skia.googlecode.com/svn/trunk@4206 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-07 17:47:33 +00:00