Commit Graph

17047 Commits

Author SHA1 Message Date
Hal Canary
ec25768641 SkPDF: Change some identifiers.
s/SkPDFShader::GetPDFShader/SkPDFMakeShader/g
    s/SkPDFShader::State/SkPDFImageShaderKey/g
    s/state/key/g

Change-Id: I86dc932c3407c73f387c972fb6674dc09ea0be3c
Reviewed-on: https://skia-review.googlesource.com/21661
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-07-06 15:52:35 +00:00
Brian Salomon
993e7e2521 Make mock GrContext unit testable.
Bug: skia:
Change-Id: I959122f1f2c390832ab1033bcdbdd2ca6cfc0419
Reviewed-on: https://skia-review.googlesource.com/20699
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-07-06 15:25:35 +00:00
Brian Salomon
0c26a9dbd0 GR_TEST_UTILS fixes
Fixes build of Skia lib when GR_TEST_UTILS=0

Makes GR_TEST_UTILS=0 for official builds

Makes "Mini" builder bot exercise building GPU with is_official_build=true

Bug: skia:6786
Change-Id: I6186683a3a216d2e779645bd9e8276a66bcff4d5
Reviewed-on: https://skia-review.googlesource.com/21524
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2017-07-06 14:35:45 +00:00
Mike Reed
bdf6c62a19 srgb conversion needs to be in unpremul
Bug: skia:
Change-Id: Ic7dffb2cb30aae33a6c127ab10ea4282e1360114
Reviewed-on: https://skia-review.googlesource.com/21536
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-07-06 12:51:24 +00:00
Cary Clark
ae68a399cd protect against fuzzer
Fuzzer data may generate path without a computable
length.

R=reed@google.com
Bug: 739190
Change-Id: I052540932937f24951ce66699080b8b959fb1a46
Reviewed-on: https://skia-review.googlesource.com/21500
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>
2017-07-06 12:35:14 +00:00
Hal Canary
3223e276c9 SkTypeface: fix non-determinism on AdvacedMetrics
Calculate fStemV and fCapHeight using SkPaint in SkPDFFont if needed.

Change-Id: Iaf762e6c44178fac659dfe9fa312d0caed9138ae
Reviewed-on: https://skia-review.googlesource.com/21535
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2017-07-06 12:10:50 +00:00
Hal Canary
b1de5f9f27 SkDocument: consolidate trimBox code
Change-Id: I56f651320964eb3bd33475d21e6977803c4ca140
Reviewed-on: https://skia-review.googlesource.com/21370
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-07-05 21:35:37 +00:00
Greg Daniel
e5ddff5553 Add basic metal build files for backend
Bug: skia:
Change-Id: Iddeeb91b378bdb61d200070d8faa3610299ab733
Reviewed-on: https://skia-review.googlesource.com/21533
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-07-05 21:12:40 +00:00
Ethan Nicholas
9fb036fb13 rewrote GrAlphaThresholdFragmentProcessor in sksl
Bug: skia:
Change-Id: I641b206fc3bc19ac190ad94ee755ab9e1caab9b3
Reviewed-on: https://skia-review.googlesource.com/21341
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-07-05 21:02:39 +00:00
Mike Reed
412cda7379 add srgb gamma colorfilters
... faster and more accurate than using SkTableColorFilter

todo: update blink after this lands

Bug:737981
Change-Id: I55b5c60dd23b9d2cbe9d60f83c74be1a8f3dcfcf
Reviewed-on: https://skia-review.googlesource.com/21368
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2017-07-05 20:16:27 +00:00
Hal Canary
2d171397f8 SkPDF: GradientShaderPatterns use one hashmap not two.
Change-Id: Icdebaf891884aa06bdc36ed930d7bab5400bd04f
Reviewed-on: https://skia-review.googlesource.com/21529
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2017-07-05 19:54:17 +00:00
Hal Canary
94fd66cc25 SkPDF: Refactor PDFShader to use ShTHashMap<>
my tests run ~14% faster.

  - Split out gradient shaders from image shaders.  new compilation
    unit: SkPDFGradientShader
  - Common functions InverseTransformBBox and PopulateTilingPatternDict
    moved to SkPDFUtils
  - Split SkPDFShader::State into image and gradient structures.
  - SkPDFCanon is now a simpler structure, with no logic of its own.
    I am considering just moving all of its fields into SkPDFDocument
  - SkPDFShader::State (the image/fallback shader) now is POD, making
    the use of a hashmap for canonicalization straightforward.
    Formerly, we used a linear search.
  - Do not bother trying to canonicalize the falback image shader.
  - SkPDFGradientShader::Key is not POD; comparison of two objects
    requires looking at the contents of two variable-sized arrays.
    We now pre-calculate the hash of the arrays using SkOpts::hash and
    store a hash for the object in the fHash field.
    Using that hash, we can now canonicalize using a hashmap instead
    of a linar search!
  - several static functions renamed to follow style guidelines
  - stop using codeFunction function pointer; I find that less
    clear than it could be.
  - operator==() for SkPDFShader::State and SkPDFGradientShader::Key is
    now much simpler and can now be inlined.
  - SkArrayEqual template in SkPDFUtils.h

No change to PDF output.

BUG=skia:3585
Change-Id: I354ad1b600be6d6749abccb58d13db257370bc0b
Reviewed-on: https://skia-review.googlesource.com/21376
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-07-05 17:27:54 +00:00
Chris Dalton
3a59665099 Revert "Indicate texel buffer support in Vulkan"
This reverts commit 2dd222639d.

Reason for revert: Programs test assertion failures

Original change's description:
> Indicate texel buffer support in Vulkan
> 
> Bug: skia:
> Change-Id: I116dd2b15320e3a61afba82b003b13a14ce6122f
> Reviewed-on: https://skia-review.googlesource.com/21402
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

TBR=egdaniel@google.com,csmartdalton@google.com

Change-Id: I41ee31624636c497125ff38bcb7ce0382d9f386b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/21582
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-07-05 17:23:35 +00:00
Florin Malita
8b9566a257 Disallow burst context instantiation for non-invertible CTMs
Similar to SkShaderBase::makeContext(), catch this condition and bail
early.

BUG=chromium:738682

Change-Id: I4c7a2036bed8ab8699023c4f8f3bc2161de0c41d
Reviewed-on: https://skia-review.googlesource.com/21521
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-07-05 17:14:14 +00:00
Mike Reed
7aad8cc2ff optimize for diff matrix types
Bug: skia:
Change-Id: I671e07c5bbb9e4ced92303c9959143324f7a6bdc
Reviewed-on: https://skia-review.googlesource.com/21523
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2017-07-05 16:56:24 +00:00
Chris Dalton
2dd222639d Indicate texel buffer support in Vulkan
Bug: skia:
Change-Id: I116dd2b15320e3a61afba82b003b13a14ce6122f
Reviewed-on: https://skia-review.googlesource.com/21402
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-07-05 16:11:42 +00:00
Hal Canary
466c7d6597 header cleanup
Change-Id: I3f7667a1357194ae2bdd341ad9d46eb93920f404
Reviewed-on: https://skia-review.googlesource.com/21374
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-07-05 15:18:52 +00:00
Mike Reed
6b59bf424c consolidate logic for matrix stage
Bug: skia:
Change-Id: Id1559b31692a1aed9aa4d15620b2019ae9c7c22b
Reviewed-on: https://skia-review.googlesource.com/21404
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-07-04 01:48:12 +00:00
Florin Malita
974aad487a Handle degenerate 2pt conical center values gracefully
SkMatrix::setPolyToPoly() may fail to map degenerate values.  Handle
this case explicitly, instead of assuming it never fails.

BUG=chromium:738746
TBR=

Change-Id: Ie1049b98f7e07ae5d6bdb706ba7b4a399388e5d8
Reviewed-on: https://skia-review.googlesource.com/21375
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-07-03 23:20:52 +00:00
Mike Reed
a920d367bf remove unneeded code for index8 imagse
Bug: skia:6828
Change-Id: I039d6bc35a1ed93ce747247f32fe4e9d5b09da0c
Reviewed-on: https://skia-review.googlesource.com/21400
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2017-07-03 19:07:25 +00:00
Mike Reed
0401c0d1d3 hide index8 support
Bug: skia:
Change-Id: I4ab7f4665cc9992319d3c9a5e02a417d503c189e
Reviewed-on: https://skia-review.googlesource.com/20121
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2017-07-03 13:58:18 +00:00
Ethan Nicholas
6feb69123b SPIR-V comma operator support
Bug: skia:
Change-Id: I9792674c49a0243017bb5f2b3c11d0678e62138e
Reviewed-on: https://skia-review.googlesource.com/21367
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-06-30 18:37:33 +00:00
wutao
039a7c70ce Added new edge handling mode (clamp and repeat) to Gaussian blur filter.
Gaussian blur filter will interpolate value by using out of bounds
coords, which is 0. This makes it appears darker near the bounds in the
blurred images. There are two issues: 1) when downsampling and
upsampling, we should use GrTextureDomainEffect kClamp_Mode to clamp
the texture coords to the bounds; 2) during Gaussian blur, we need to
clamp to texture bounds.

BUG=622128
TEST=cc_unittests, GM image test & manual. Some test results can be found at:
https://bugs.chromium.org/p/chromium/issues/detail?id=622128#c49
Change-Id: I9283da1d91efb0da94a991f2d372e9f62c288bdc
Reviewed-on: https://skia-review.googlesource.com/20465
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-06-30 18:11:16 +00:00
Florin Malita
981deec8b2 Delete non-raster-pipeline SkTwoPointConicalGradient impl
Change-Id: If39a2b01d6099fef14695a4ce05b57a3d5c3d99c
Reviewed-on: https://skia-review.googlesource.com/21320
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-06-30 18:09:46 +00:00
Mike Klein
9f183505ac clean up GCC 6.3 workaround
This is all kind of silly... this is just a little bit of code that's
not really reachable, but there to satisfy compilers that can't figure
that out.

Change-Id: Ib39e8bf0fd26e28541cfad37c7ea135a30dbe85a
Reviewed-on: https://skia-review.googlesource.com/21365
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-06-30 16:54:24 +00:00
Hal Canary
80fa7cea93 SkPDF: simplify SkPDFGraphicState
- Separate graphic state objects for Stroke and Fill.
  - SkPDFGraphicState::GetGraphicStateForPaint simplified.
  - No more SkPDFGraphicState objects.Simplify SkPDFCanon.

All PDFs render the same.  Most PDFs are slightly smaller, especially
those from captured web pages.

Change-Id: Id9605c1d7495645da558d5f378ba585cdc201bba
Reviewed-on: https://skia-review.googlesource.com/21343
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-06-30 16:47:14 +00:00
Hal Canary
a062258e76 SkPDF: clean up fRasterDpi
- PDFDevice no longer has a fRasterDpi; simply queries document.
  - #define DPI_FOR_RASTER_SCALE_ONE becomes constexpr float.
  - PDFShader::GetPDFShader no longer takes rasterScale or dpi
  - Remove un-needed factory functions.  We're all adults here.

Change-Id: Id2ce75d4e61af385763ccfb1db210465a1600067
Reviewed-on: https://skia-review.googlesource.com/21348
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-06-30 15:37:45 +00:00
Robert Phillips
1c9686bfa5 Speculative "fix" for crash in analyzeProcessors
From the bug it looks like a null fragment processors may be getting into the processor set. This CL tries to plug any gaps in our fragmentProcessor handling.

The only real substantive part to this CL is the addition of some "if (!fp) { return nullptr; }" blocks.

Everything else is just to add chokepoints for processor allocation.

Bug: 734076
Change-Id: I4952b1a05bc6690d5aa09de977fa6dc54c80338a
Reviewed-on: https://skia-review.googlesource.com/21267
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-06-30 15:29:50 +00:00
Greg Daniel
95581bbba1 Allow caps on hairlines for gpu dashed lines
Bug: skia:
Change-Id: Ie3b61e0a308f7cbec65166f2f2ac4fe3cc5d16d0
Reviewed-on: https://skia-review.googlesource.com/21364
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-06-30 15:21:10 +00:00
Mike Reed
41dc6cc621 remove unreachable samples for non-N32 imageshaders
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
Bug: skia:
Change-Id: I2d9a22b22d72c81a742b8fd497797bff8174915b
Reviewed-on: https://skia-review.googlesource.com/21264
Commit-Queue: Eric Boren <borenet@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-06-29 19:13:50 +00:00
Greg Daniel
5d00f008ce Fix to GLProgramTest dashing
Bug: skia:
Change-Id: Ibe78691907b62afca4c68b6e4e0d2d49c49c210f
Reviewed-on: https://skia-review.googlesource.com/21263
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-06-29 17:50:13 +00:00
Florin Malita
3d96f06d9f Always use raster pipeline for SkTwoPointConicalGradient
Change-Id: I14fc27c5ba8d6fd58df193a172148b7f5aca20bf
Reviewed-on: https://skia-review.googlesource.com/21262
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-06-29 17:44:30 +00:00
Chris Dalton
4a80f5eec4 Decrease the tolerance for classifying degenerate cubics
Bug: skia:
Change-Id: I118f52301146ed7a7333d4f6bd2297d500a0df97
Reviewed-on: https://skia-review.googlesource.com/21187
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-06-29 17:34:20 +00:00
Greg Daniel
5fb30566b4 Fix gpu dashing for case when circle dashes are large enough to overlap
Bug: skia:
Change-Id: I7153b28103c5ca0947c37d57357b64bf2aa884e5
Reviewed-on: https://skia-review.googlesource.com/20979
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-06-29 16:56:49 +00:00
Mike Klein
b8d88d72cb update long out of date comment
Change-Id: I3dead53a30992edd032f16e6711b97bbf76a0e36
Reviewed-on: https://skia-review.googlesource.com/21261
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-06-29 16:56:09 +00:00
Mike Reed
9c1d780228 remove filterSpan from SkColorFilter
Bug: skia:
Change-Id: Ie8a31ea8131c08d251a825622484342e3e174474
Reviewed-on: https://skia-review.googlesource.com/21207
Commit-Queue: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-06-29 16:09:37 +00:00
xidachen
185a3798db Fix memory leak in SkImageFilter
In our current implementation of SkImageFilterCache, when the
removeInternal() function is called, the Value is removed, but their
corresponding keys are not always removed in SkImageFilter. That could
result in memory leak.

In this CL, we made changes such that the Value structure now keeps
a pointer to the SkImageFilter. Each time when the removeInternal()
is called, we ask the SkImageFilter to remove the associated keys.

Bug: 689740
Change-Id: I0807fa3581881ad1530536df5289e3976792281f
Reviewed-on: https://skia-review.googlesource.com/20960
Commit-Queue: Xida Chen <xidachen@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-06-29 15:51:17 +00:00
Florin Malita
9026fe13a7 2pt conical stage for focal-point-outside case
A couple of annoyances here:

1) the prev vector_scale stage is not usable for masking, as NaN values can propagate through
   => switch to actual masking

2) for the outside case, we must select the min root when the gradient is flipped
   => split into two templated stages (_min, _max)

  (I'm not convinced that we need to flip the gradient for RP at all; we can investigate later)

Change-Id: I0283812d613a53124f2987d1aea1f26e4533655e
Reviewed-on: https://skia-review.googlesource.com/21162
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-06-29 15:34:47 +00:00
Ethan Nicholas
762466e9fe Re-re-land sksl fragment processor support
This reverts commit 5ce3972055.

Bug: skia:
Change-Id: I88260c90004610a1cf8ad1a87c2b4b222525bbb6
Reviewed-on: https://skia-review.googlesource.com/21108
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-06-29 14:57:47 +00:00
Mike Klein
e43fba1d64 clean up colorfilter sprite blitters
Instead of rejecting all sprite blitters when there's a color filter,
just remove the old legacy color filter sprite blitters.  The
SkRasterPipelineSpriteBlitter can still handle color filters... no need
to fall back to the general shader (gather) blitter.

Change-Id: Ib27f3e153612d0d904093da68223c2b862b17f63
Reviewed-on: https://skia-review.googlesource.com/21204
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2017-06-29 14:35:06 +00:00
Mike Klein
5f46e96757 remove S4444 sprite blitters
These can fall through to the SkRasterPipelineSpriteBlitter just fine.

Change-Id: I56f4f177475b233fd2d3352df1ecddc47be0d37d
Reviewed-on: https://skia-review.googlesource.com/21203
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2017-06-29 14:10:13 +00:00
Mike Reed
4a0f180211 remove unused flag SK_SUPPORT_LEGACY_COLORFILTER_FILTERSPAN
Bug: skia:
Change-Id: I884f79f9a162f38365930d1ccca889fca2850557
Reviewed-on: https://skia-review.googlesource.com/21202
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-06-29 13:21:53 +00:00
Mike Reed
bb3bf14ad1 remove unused flag SK_SUPPORT_BLITV_FOR_BLUR_NINE
Bug: skia:
Change-Id: I0d4637441f6d8051903824b9945edd966db48bf1
Reviewed-on: https://skia-review.googlesource.com/21201
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-06-29 13:17:43 +00:00
Mike Reed
44d04bd7ed add null-surface
Bug:crbug.com/737726
Change-Id: Iec9094d8d7232943e90fe2d9745fc83bcdf90954
Reviewed-on: https://skia-review.googlesource.com/21190
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-06-29 12:14:53 +00:00
Mike Reed
7f22511c1c add guard for handling swizzles via rasterpipeline
Bug: skia:
Change-Id: I26499659c15bf79a840246a2eb6eb064e43b4c32
Reviewed-on: https://skia-review.googlesource.com/21163
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2017-06-28 23:21:39 +00:00
Robert Phillips
e911c63b6a Revert "Revert "use blitMask for left/right edges in blur-nine""
This reverts commit 0e29c633fe.

Reason for revert: The layout tests have been suppressed in https://chromium-review.googlesource.com/c/553239/ - no need to revert

Bug: 737714

Original change's description:
> Revert "use blitMask for left/right edges in blur-nine"
> 
> This reverts commit 3fe44544c9.
> 
> Reason for revert: I believe this is the cause of the layout test regressions in crbug.com/737714
> 
> Bug: 737714
> 
> Original change's description:
> > use blitMask for left/right edges in blur-nine
> > 
> > Seems about same speed for legacy blitter, but much faster for raster-pipeline
> > 
> > Bug: skia:
> > Change-Id: I19be307c01a199e2477e045fb8c2cca7784564a5
> > Reviewed-on: https://skia-review.googlesource.com/20967
> > Commit-Queue: Mike Reed <reed@google.com>
> > Reviewed-by: Mike Klein <mtklein@chromium.org>
> 
> TBR=mtklein@chromium.org,mtklein@google.com,fmalita@chromium.org,reed@google.com
> 
> Change-Id: Id7be3ff779191175d91ebd51c7d275fd1104ae0d
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/21182
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

TBR=mtklein@chromium.org,mtklein@google.com,robertphillips@google.com,fmalita@chromium.org,reed@google.com

Change-Id: I9f232e838bcad4e4cf0d8c7226d5e57a349e52be
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 737714, skia:
Reviewed-on: https://skia-review.googlesource.com/21183
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-06-28 21:29:18 +00:00
Robert Phillips
0e29c633fe Revert "use blitMask for left/right edges in blur-nine"
This reverts commit 3fe44544c9.

Reason for revert: I believe this is the cause of the layout test regressions in crbug.com/737714

Bug: 737714

Original change's description:
> use blitMask for left/right edges in blur-nine
> 
> Seems about same speed for legacy blitter, but much faster for raster-pipeline
> 
> Bug: skia:
> Change-Id: I19be307c01a199e2477e045fb8c2cca7784564a5
> Reviewed-on: https://skia-review.googlesource.com/20967
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Mike Klein <mtklein@chromium.org>

TBR=mtklein@chromium.org,mtklein@google.com,fmalita@chromium.org,reed@google.com

Change-Id: Id7be3ff779191175d91ebd51c7d275fd1104ae0d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/21182
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-06-28 21:21:48 +00:00
Robert Phillips
806be2d501 Improve handling of clip stack ID
Change-Id: I1d5cf06d9b50c370f969a8778181fe94f7d35844
Reviewed-on: https://skia-review.googlesource.com/21061
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-06-28 21:20:32 +00:00
Brian Osman
cf3dc299b9 Draw zero length subpaths in AA hairline path renderer
Bug: skia:6781
Change-Id: Ife0896ab45a47910273353f1269f62dbeda67ba0
Reviewed-on: https://skia-review.googlesource.com/20986
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-06-28 21:15:35 +00:00
Florin Malita
2e409009fb 2pt conical stage for focal-pt-on-edge case
When the focal point is on the edge of the end circle, the quadratic
equation devolves to linear.  Add a stage to handle this case.

As a complication, this case can produce "degenerate" values:

 1) t == NaN
 2) R(t) < 0

For these, we're supposed to draw transparent black - which means
overwriting the color from the gradient stage.  To support this, build
a 0/1 vector mask in the context, and apply it post-gradient-stage.

Change-Id: Ice4e3243abfd8c784bb810f6c310aed7a4ac7dc8
Reviewed-on: https://skia-review.googlesource.com/21111
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Klein <mtklein@google.com>
2017-06-28 19:15:49 +00:00