Two dashes are used for flags with multiple characters, and one
dash is used for flags with single characters.
In GM, changed '-wp' to '-p' (the command to choose a directory
for writing SKPs) to fit with the convention.
In render_pictures and bench_pictures, changed the flag for
read and write path to have full names (which are consistent)
and use the old single character names as their shortcuts.
SkCommandLineFlags: Updated the documentation, and only allow
-h or --help for help (again, to match the convention).
Also enforce the single character limit for the short name, and
require the full name to be at least two characters.
Provide full names for skhello.
BUG=https://code.google.com/p/skia/issues/detail?id=1174
Review URL: https://codereview.chromium.org/12521019
git-svn-id: http://skia.googlecode.com/svn/trunk@8582 2bbb7eff-a529-9590-31e7-b0007b416f81
The default entry /add_point does not handle large data efficiently, so we've seen >30min timeouts for some bots to upload data. We now switch to using /skia_add_points that I'm writing for Skia, so we can condense the data to send to minimum (since all points in each batch have the same revision, platform and config), and dedicate the actual data processing to /skia_write_datastore which is a taskqueue task that has longer timeout and can run at app backend instead of blocking the bots.
Initial testing from my MacBook on Mac 64 bench data via vpn gave only a little more than 1 second for uploading data for one config, about 15 seconds for all 12 configs. That's a big win against 20+ minutes.
Review URL: https://codereview.chromium.org/13762002
git-svn-id: http://skia.googlecode.com/svn/trunk@8560 2bbb7eff-a529-9590-31e7-b0007b416f81
This CL depends on
https://codereview.chromium.org/12880016/
"Add intersections for path ops"
Given a path, iterate through its contour, and
construct an array of segments containing its curves.
Intersect each curve with every other curve, and for
cubics, with itself.
Given the set of intersections, find one with the
smallest y and sort the curves eminating from the
intersection. Assign each curve a winding value.
Operate on the curves, keeping and discarding them
according to the current operation and the sum of
the winding values.
Assemble the kept curves into an output path.
Review URL: https://codereview.chromium.org/13094010
git-svn-id: http://skia.googlecode.com/svn/trunk@8553 2bbb7eff-a529-9590-31e7-b0007b416f81
This CL depends on
https://codereview.chromium.org/12827020/
"Add base types for path ops"
The intersection of a line, quadratic, or cubic
with another curve (or with itself) is found by
solving the implicit equation for the curve pair.
The curves are first reduced to find the simplest
form that will describe the original, and to detect
degenerate or special-case data like horizontal and
vertical lines.
For cubic self-intersection, and for a pair of cubics,
the intersection is found by recursively
approximating the cubic with a series of quadratics.
The implicit solutions depend on the root finding
contained in the DCubic and DQuad structs, and
the quartic root finder included here.
Review URL: https://codereview.chromium.org/12880016
git-svn-id: http://skia.googlecode.com/svn/trunk@8552 2bbb7eff-a529-9590-31e7-b0007b416f81
Paths contain lines, quads, and cubics, which are
collectively curves.
To work with path intersections, intermediary curves
are constructed. For now, those intermediates use
doubles to guarantee sufficient precision.
The DVector, DPoint, DLine, DQuad, and DCubic
structs encapsulate these intermediate curves.
The DRect and DTriangle structs are created to
describe intersectable areas of interest.
The Bounds struct inherits from SkRect to create
a SkScalar-based rectangle that intersects shared
edges.
This also includes common math equalities and
debugging that the remainder of path ops builds on,
as well as a temporary top-level interface in
include/pathops/SkPathOps.h.
Review URL: https://codereview.chromium.org/12827020
git-svn-id: http://skia.googlecode.com/svn/trunk@8551 2bbb7eff-a529-9590-31e7-b0007b416f81
Rather than iterating over the entire dataset twice, during the first pass
track how large the second pass needs to be. Entirely data-dependent but
in practice approaches 2x speedup.
BUG=1212
R=junov
https://codereview.appspot.com/8315044/
git-svn-id: http://skia.googlecode.com/svn/trunk@8543 2bbb7eff-a529-9590-31e7-b0007b416f81