msarett
73d55332e2
Add color space xform support to SkJpegCodec (includes F16!)
...
Also changes SkColorXform to support:
RGBA->RGBA
RGBA->BGRA
Instead of:
RGBA->SkPMColor
TBR=reed@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2174493002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review-Url: https://codereview.chromium.org/2174493002
2016-07-28 15:06:16 -07:00
msarett
a0605bf9d1
Add writeToMemory() API to SkColorSpace
...
New API mirrors the form of similar APIs in SkRegion,
SkMatrix, etc.
This also fixes a bug:
SkImageInfo appears in a object that Chrome stores in
discardable memory. So when sk_sp<SkColorSpace> was added
to SkImageInfo a leak was introduced. We'll use this new
method and deserialize to store the SkColorSpace in the
discardable object.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2192903002
Review-Url: https://codereview.chromium.org/2192903002
2016-07-28 10:47:50 -07:00
dvonbeck
bba4cfebca
Added API for Bevel NormalSource.
...
This CL adds an API for Bevel normal source and a dummy implementation that returns a normal (0, 0, 1) every time.
This CL's base is the CL for accepting nullptrs: https://codereview.chromium.org/2132113002
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2080993002
Review-Url: https://codereview.chromium.org/2080993002
2016-07-28 08:58:19 -07:00
halcanary
fe8f0e0d31
SkPDF: refactor font subset: fewer copies
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2190643002
Review-Url: https://codereview.chromium.org/2190643002
2016-07-27 14:14:04 -07:00
robertphillips
6738c70242
Rename GrContext's newDrawContext & drawContext to makeDrawContext
...
These both return sk_sp.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2186073002
Review-Url: https://codereview.chromium.org/2186073002
2016-07-27 12:13:51 -07:00
halcanary
ac0e00dcec
SkPDF: SkPDFStream takes a unique_ptr
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2188623004
Review-Url: https://codereview.chromium.org/2188623004
2016-07-27 11:12:23 -07:00
brianosman
577e025ca6
Fix ParseConfigs_ViaParsing test when skia_angle=1
...
The handling of angle-gl changes with SK_ANGLE. We don't have any bots
that test this particular combination, but I see it all the time while
running DM for other things.
Previously considered changing things so that the config parsing results
are consistent, regardless of GYP_DEFINES, but this is much simpler (and
more consistent with the other code we already have for testing config
parsing).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2183323004
Review-Url: https://codereview.chromium.org/2183323004
2016-07-27 09:21:52 -07:00
caryclark
fc560e09b3
fuzz wednesday
...
Add debug 'skip assert' access to SkCoincidentSpans.
That permits suppressing asserts to make it easier
to detect when this fuzz data generates unparsable
data.
TBR=reed@google.com
BUG=631564, 631992
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2186973002
Review-Url: https://codereview.chromium.org/2186973002
2016-07-27 08:46:10 -07:00
mtklein
570c868b38
Clean up some unused atomic routines.
...
AtomicTest was the only use of sk_atomic_add().
AtomicInc64 bench was the only use of sk_atomic_inc(int64_t*).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2183473005
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-TSAN-Trybot,Test-Ubuntu-GCC-Golo-GPU-GT610-x86_64-Release-TSAN-Trybot
Review-Url: https://codereview.chromium.org/2183473005
2016-07-27 08:40:45 -07:00
reed
eb560284c5
add unittests for roundtripping premul
...
BUG=skia:5579
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2179123005
Review-Url: https://codereview.chromium.org/2179123005
2016-07-26 19:42:04 -07:00
robertphillips
7e92276554
Reduce usage of MakeRenderTargetDirect
...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2187573002
Review-Url: https://codereview.chromium.org/2187573002
2016-07-26 11:38:17 -07:00
brianosman
3a0dbde1cf
Remove SkSurfaceProps gamma-correctness flag entirely.
...
This is no longer required - gamma-correctness is now just based on the
presence or absence of a color space.
Public API change is just removal of (unused) flag.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2188463002
TBR=bsalomon@google.com
Review-Url: https://codereview.chromium.org/2188463002
2016-07-26 11:36:05 -07:00
caryclark
e25a4f6cbe
fix fuzz bugs
...
Add ability for intersection template to detect that
the test contains bounded numbers so that extra
asserts can trigger.
Add some exit points for out of range numbers
in those templates.
TBR=reed@google.com
BUG=631383,631374,631360
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2185703002
Review-Url: https://codereview.chromium.org/2185703002
2016-07-26 09:26:29 -07:00
brianosman
efded51cd8
Always supply a color space (sRGB for now) with F16
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2177193004
Review-Url: https://codereview.chromium.org/2177193004
2016-07-26 08:11:50 -07:00
bungeman
6e45bda29e
Add test for typeface style round trip.
...
This also fixes the CG and GDI ports so they pass the test.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2171163002
Review-Url: https://codereview.chromium.org/2171163002
2016-07-25 15:11:49 -07:00
halcanary
56586b6f3d
SkPDF: re-work SkPDFUtils::FloatToDecimal
...
* do a lot less floating-point math by converting to
an integer as early as possible [faster].
* round rather than truncate.
* use 8 significant digits rather than 9 when possible.
* remove trailing zeros in fractions.
before:
0.12 ! PDFScalar nonrendering
after:
0.07 ! PDFScalar nonrendering
Accuracy guaranteed by existing unit test.
Example diffs:
-/Shading <</Function <</C0 [.321568638 .333333343 .321568638]
+/Shading <</Function <</C0 [.32156864 .33333334 .32156864]
-/C1 [.258823543 .270588248 .258823543]
+/C1 [.25882354 .27058825 .25882354]
-1 0 0 -1 20 120.394500 Tm
+1 0 0 -1 20 120.394501 Tm
-1 0 0 -1 20 184.789001 Tm
+1 0 0 -1 20 184.789 Tm
-291.503997 0 l
+291.504 0 l
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146103004
Review-Url: https://codereview.chromium.org/2146103004
2016-07-25 13:59:30 -07:00
caryclark
8bc90e2db6
fix fuzz
...
Extreme inputs trigger asserts intended for in range data.
Return an error without asserting unless the test signals
otherwise.
TBR=reed@google.com
BUG=630736
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2178923002
Review-Url: https://codereview.chromium.org/2178923002
2016-07-25 06:05:08 -07:00
reed
b560b5c8c0
lockPixelsAreWritable is deprecated
...
BUG=skia:4328
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2177063002
TBR=
Review-Url: https://codereview.chromium.org/2177063002
2016-07-24 12:30:34 -07:00
bsalomon
057ae8a15d
Fix misdetection of rectangles in SkPath::IsSimpleClosedRect.
...
BUG=chromium:630369
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175923002
Review-Url: https://codereview.chromium.org/2175923002
2016-07-24 05:37:26 -07:00
caryclark
8a8accbcd1
limit number of searched roots
...
Extreme numbers can generate more than
three found cubic roots when the roots
are found through a binary search.
Fail in this case.
TBR=reed@google.com
BUG=630649
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2176733002
Review-Url: https://codereview.chromium.org/2176733002
2016-07-22 10:56:26 -07:00
csmartdalton
cbecb082d1
Allow GrReducedClip to take non-integer query bounds
...
Fixes places where AA bloat was being conflated with geometric
boundaries and updates GrReducedClip to work with non-integer query
bounds. This allows for better clip reduction with AA shared edges.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2160093002
Review-Url: https://codereview.chromium.org/2160093002
2016-07-22 08:59:08 -07:00
csmartdalton
d50e240178
Fix SkClipStack bug with inverse-filled difference elements
...
Previously, SkClipStack would call "setEmpty" on itself when an
inverse-filled difference element made the stack empty. This was
a problem because setEmpty would forget the element had an inverse
fill, yet leave the op as "difference". This change modifies it to
manually update the clip bounds and set the gen-ID to kEmptyGenID,
rather than calling setEmpty.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175493002
Review-Url: https://codereview.chromium.org/2175493002
2016-07-22 08:39:06 -07:00
brianosman
db2cb10f4d
Update SkImage_NewFromTexture test, to just test release
...
procs of SkImage::MakeFromTexture.
Previous code included an old pattern, and may be
responsible for intermittent Mac bot failure
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2168933002
Review-Url: https://codereview.chromium.org/2168933002
2016-07-22 07:22:04 -07:00
caryclark
cdeff81bdb
conic fuzz fix
...
If no closest section is found in conic intersection
(which can happen if the numbers are out of range)
abort the intersection.
Also suppress assert fired in this case so it only
checks intersections with in-range values.
TBR=reed@google.com
BUG=630378
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2166813006
Review-Url: https://codereview.chromium.org/2166813006
2016-07-22 03:34:19 -07:00
brianosman
dfe4f2e4fe
Add SkColorSpace to GrDrawContext
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2164363002
Review-Url: https://codereview.chromium.org/2164363002
2016-07-21 13:28:36 -07:00
caryclark
a339bb0d95
let line/cubic intersect at four spots
...
With this, let's update the fuzzer.
R=kjlubick@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2169983002
Review-Url: https://codereview.chromium.org/2169983002
2016-07-21 12:28:04 -07:00
msarett
530c844d25
Remove unnecessary getColorSpace() API from SkCodec
...
Not needed since now we can get it from the SkImageInfo.
TBR=reed@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2170793004
Review-Url: https://codereview.chromium.org/2170793004
2016-07-21 11:57:49 -07:00
caryclark
81681949d3
allow curves on side of lines to be very small
...
Increase the precision of the 'all on one side' pathops
angle test to reduce the number of unorderable segments
found by the cubics_d3 test.
This allows pathsops_unittest release build with -v -V -x
to run without error.
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2168163002
Review-Url: https://codereview.chromium.org/2168163002
2016-07-21 10:44:07 -07:00
vjiaoblack
95302da19d
Creating framework for drawShadowedPicture
...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146073003
Committed: https://skia.googlesource.com/skia/+/0ae097d116f4332be02a135ffc99c162473dee6a
Review-Url: https://codereview.chromium.org/2146073003
2016-07-21 10:25:54 -07:00
lsalzman
f41ae2f973
limit the number of points in SkDashPathEffect::asPoints
...
If the length of a line path is sufficiently long relative to the dash
interval, it is possible to cause SkDashPathEffect::asPoints to produce
so many points that it overflows the amount that can fit in an int type,
or otherwise produce non-finite values, i.e. path from (0,0) to (0,9e15)
with a dash interval of 1.
This fixes that by capping the amount of points to a sane limit - in this
case, 1mil, since that limit is also used in utils/SkDashPath.cpp and has
precedent.
Downstream Firefox bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1287515
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165013002
Review-Url: https://codereview.chromium.org/2165013002
2016-07-21 09:37:59 -07:00
robertphillips
f292a0c862
Remove SkGrPixelRef
...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167173002
Review-Url: https://codereview.chromium.org/2167173002
2016-07-21 09:35:07 -07:00
vjiaoblack
33d325890e
Revert of Creating framework for drawShadowedPicture (patchset #14 id:260001 of https://codereview.chromium.org/2146073003/ )
...
Reason for revert:
Decided to re-wait for a final LGTM.
Already found a bug in variable naming to fix.
Original issue's description:
> Creating framework for drawShadowedPicture
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146073003
>
> Committed: https://skia.googlesource.com/skia/+/0ae097d116f4332be02a135ffc99c162473dee6a
TBR=reed@google.com ,robertphillips@google.com,bsalomon@google.com,jvanverth@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review-Url: https://codereview.chromium.org/2167223002
2016-07-21 09:24:16 -07:00
vjiaoblack
0ae097d116
Creating framework for drawShadowedPicture
...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146073003
Review-Url: https://codereview.chromium.org/2146073003
2016-07-21 09:10:23 -07:00
caryclark
7b33bf1d2a
fix builder fuzz
...
Fix ASAN_heap-use-after-free crash
R=kjlubick
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2168963002
Review-Url: https://codereview.chromium.org/2168963002
2016-07-21 08:53:32 -07:00
robertphillips
1f3923e4e5
Deprecate SkDevice::accessBitmap method
...
Relies on https://codereview.chromium.org/2162423003/ (Add SK_SUPPORT_LEGACY_ACCESSBITMAP Skia guard) landing in Chromium first.
Calved off: https://codereview.chromium.org/2163323002/ (Add desired width & height to drawContext (as opposed to using the width & height of the RT))
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2168483003
Review-Url: https://codereview.chromium.org/2168483003
2016-07-21 07:17:54 -07:00
brianosman
afbf71dd92
Adding color space to SkSpecialImage
...
Mostly means that GPU backed special images need to be supplied (and
store) a color space object.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163343002
Review-Url: https://codereview.chromium.org/2163343002
2016-07-21 07:15:37 -07:00
msarett
1b93bd1e6e
Refactor parsing and storage of SkGammas
...
Benefits:
(1) Parses and stores gamma tags in a single allocation.
(2) Recognizes equal gamma tags to skip parsing work and
save memory.
Non-Benefits:
(1) Not less complicated.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002
Committed: https://skia.googlesource.com/skia/+/2ea944c2b710caf29d4795ac953bad14224796f7
Committed: https://skia.googlesource.com/skia/+/959ccc1f3f49e1ddeb51c32c30ac4a2d94653856
Review-Url: https://codereview.chromium.org/2117773002
2016-07-21 07:11:26 -07:00
caryclark
1597628fa3
fix fuzzer bug
...
Fix another fuzzer bug.
Some PathOps asserts only make sense if the incoming data is
well-behaved. Well-behaved tests set debugging state to
trigger these additional asserts.
Formalize this by creating macros similar to SkASSERT that
check to see if the assert should be skipped.
TBR=reed@google.com
BUG=629962
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2169863002
Review-Url: https://codereview.chromium.org/2169863002
2016-07-21 05:48:44 -07:00
mtklein
0c902473d6
Correct sRGB <-> linear everywhere.
...
This trims the SkPM4fPriv methods down to just foolproof methods.
(Anything trying to build these itself is probably wrong.)
Things like Sk4f srgb_to_linear(Sk4f) can't really exist anymore,
at least not efficiently, so this refactor is somewhat more invasive
than you might think. Generally this means things using to_4f() are
also making a misstep... that's gone too.
It also does not make sense to try to play games with linear floats
with 255 bias any more. That hack can't work with real sRGB coding.
Rather than update them, I've removed a couple of L32 xfermode fast
paths. I'd even rather drop it entirely...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163683002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review-Url: https://codereview.chromium.org/2163683002
2016-07-20 18:10:07 -07:00
msarett
456bf30d32
Revert of Refactor parsing and storage of SkGammas (patchset #8 id:280001 of https://codereview.chromium.org/2117773002/ )
...
Reason for revert:
Tests failing
Original issue's description:
> Refactor parsing and storage of SkGammas
>
> Benefits:
> (1) Parses and stores gamma tags in a single allocation.
> (2) Recognizes equal gamma tags to skip parsing work and
> save memory.
>
> Non-Benefits:
> (1) Not less complicated.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002
>
> Committed: https://skia.googlesource.com/skia/+/2ea944c2b710caf29d4795ac953bad14224796f7
> Committed: https://skia.googlesource.com/skia/+/959ccc1f3f49e1ddeb51c32c30ac4a2d94653856
TBR=reed@google.com ,brianosman@google.com,mtklein@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2171623002
2016-07-20 16:14:17 -07:00
msarett
959ccc1f3f
Refactor parsing and storage of SkGammas
...
Benefits:
(1) Parses and stores gamma tags in a single allocation.
(2) Recognizes equal gamma tags to skip parsing work and
save memory.
Non-Benefits:
(1) Not less complicated.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002
Committed: https://skia.googlesource.com/skia/+/2ea944c2b710caf29d4795ac953bad14224796f7
Review-Url: https://codereview.chromium.org/2117773002
2016-07-20 15:10:02 -07:00
msarett
2aec3ffe32
Revert of Refactor parsing and storage of SkGammas (patchset #7 id:220001 of https://codereview.chromium.org/2117773002/ )
...
Reason for revert:
Broken bots.
Original issue's description:
> Refactor parsing and storage of SkGammas
>
> Benefits:
> (1) Parses and stores gamma tags in a single allocation.
> (2) Recognizes equal gamma tags to skip parsing work and
> save memory.
>
> Non-Benefits:
> (1) Not less complicated.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002
>
> Committed: https://skia.googlesource.com/skia/+/2ea944c2b710caf29d4795ac953bad14224796f7
TBR=reed@google.com ,brianosman@google.com,mtklein@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2159253005
2016-07-20 12:58:52 -07:00
mtklein
566ea9b9fc
Tune linear->sRGB constants to round-trip all bytes.
...
I basically just ran a big 5-deep for-loop over the five constants here.
This is the first set of coefficients I found that round trips all bytes.
I suspect there are many such sets.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2162063003
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review-Url: https://codereview.chromium.org/2162063003
2016-07-20 12:10:11 -07:00
msarett
2ea944c2b7
Refactor parsing and storage of SkGammas
...
Benefits:
(1) Parses and stores gamma tags in a single allocation.
(2) Recognizes equal gamma tags to skip parsing work and
save memory.
Non-Benefits:
(1) Not less complicated.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002
Review-Url: https://codereview.chromium.org/2117773002
2016-07-20 11:44:42 -07:00
reed
de996a0df7
re-disable save/restore peephole optimization
...
BUG=skia:5548, 629408
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163283002
Review-Url: https://codereview.chromium.org/2163283002
2016-07-20 11:24:52 -07:00
dvonbeck
c526da94e4
SkLS now accepting nullptr for diffuse shader and normal source, now accurately handling alpha
...
This CL's base is the CL for taking in a diffuse shader into SkLS on the API side: https://codereview.chromium.org/2064153002
BUG=skia:5502,skia:5517
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132113002
Review-Url: https://codereview.chromium.org/2132113002
2016-07-20 11:20:30 -07:00
reed
158fabb071
re-chop if we fail on a big-bad-cubic
...
BUG=629455
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2159223005
Review-Url: https://codereview.chromium.org/2159223005
2016-07-20 10:06:59 -07:00
robertphillips
ea70c4bb22
Remove SkDevice::accessRenderTarget virtual
...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167723002
Review-Url: https://codereview.chromium.org/2167723002
2016-07-20 08:54:31 -07:00
bsalomon
487f8d385b
Consolidate special case shape transformation logic in GrShapeTest.
...
Enable all tests on all geometry types.
Add conversion of fill+miter-stroke->fill for rect geometries in GrShape.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2157013003
Review-Url: https://codereview.chromium.org/2157013003
2016-07-20 07:15:44 -07:00
brianosman
9ecaa1d9f0
Remove unused MakeFromTextureCopy API
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165803002
Review-Url: https://codereview.chromium.org/2165803002
2016-07-19 14:16:49 -07:00