aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects
Commit message (Collapse)AuthorAge
* Remove SkRRectsGaussianEdgeShaderGravatar Robert Phillips2016-10-21
| | | | | | | | | | | This class is no longer used. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3734 Change-Id: I16634760df6b31c7e97c893b7e2b982cd7b1d1fd Reviewed-on: https://skia-review.googlesource.com/3734 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* [Sk4fGradient] Use infinity floats for clamp-mode extreme positionsGravatar fmalita2016-10-21
| | | | | | | | | | | | | | | In clamp mode, we use a couple of synthetic edges that are supposed to extend to +/- infinity (-inf .. P0 and Pn .. inf). Currently we use SK_ScalarMin/Max, but these can be overrun with large/malicious inputs. Use SK_ScalarInfinity/SK_ScalarNegativeInfinity instead, and tweak compute_interval_props() to handle inf values gracefully. BUG=skia:5835 R=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2441733002 Review-Url: https://chromiumcodereview.appspot.com/2441733002
* remove 4 legacy flags (clients already updated)Gravatar Mike Reed2016-10-20
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3785 Change-Id: I187e50e09ed7a3316719fae51af770259928fdf9 Reviewed-on: https://skia-review.googlesource.com/3785 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Fix bug in raster implementation of SkRRectsGaussianEdgeMaskFilterGravatar Robert Phillips2016-10-20
| | | | | | | | | | | | | | The bug was the raster version didn't correctly handle the CTM. This CL also adds a way to test the behavior (by translating the reveal GM around in SampleApp) GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3729 Change-Id: Iaacc905167d20b453203307e5ef840f552fdbb38 Reviewed-on: https://skia-review.googlesource.com/3729 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add SkRRectsGaussianEdgeMaskFilterGravatar Robert Phillips2016-10-20
| | | | | | | | | | | | | | SkRRectsGaussianEdgeShader will be removed once the usage of the MaskFilter flavor has been propagated to Android I will complete the raster implementation in a follow up CL. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3632 Change-Id: I42470b17308582b040a5db1a7283c3d717405345 Reviewed-on: https://skia-review.googlesource.com/3632 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Add helper to create random AsFPArgs for Ganesh unit testsGravatar Brian Osman2016-10-19
| | | | | | | | | | | | | | Reduces copy-paste and eases maintenance. I'll be adding another field to AsFPArgs soon, and this is going to streamline that change. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3639 Change-Id: I6372ed5dce50a5ba9d73039bd4714e34502a1f75 Reviewed-on: https://skia-review.googlesource.com/3639 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Fix star artifact in SkRRectsGaussianEdgeShaderGravatar Robert Phillips2016-10-18
| | | | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3360 Change-Id: I791ae5f44a88ac3e4debdf1d4092c605acdf4969 Reviewed-on: https://skia-review.googlesource.com/3360 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Refactored SkColorSpace and added in a Lab PCS GMGravatar raftias2016-10-18
| | | | | | | | | | | | | | | | | | | | The refactoring breaks off A2B0 tag support into a separate subclass of SkColorSpace_Base, while keeping the current (besides CLUT) functionality in a XYZTRC subclass. ICC profile loading is now aware of this and creates the A2B0 subclass when SkColorSpace::NewICC() is called on a profile in need of the A2B0 functionality. The LabPCSDemo GM loads a .icc profile containing a LAB PCS and then runs a Lab->XYZ conversion on an image using it so we can display it and test out the A2B0 SkColorSpace functionality, sans a/b/m-curves, as well as the Lab->XYZ conversion code. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2389983002 Review-Url: https://codereview.chromium.org/2389983002
* Include 4f variants of random gradients during testingGravatar Brian Osman2016-10-18
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3538 Change-Id: Ieee6e49cb830b6aab87b0ecd7865c65ffb90dfe8 Reviewed-on: https://skia-review.googlesource.com/3538 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
* Faster 4f gradient premul pathGravatar fmalita2016-10-14
| | | | | | | | | | | | | | Similar to https://codereview.chromium.org/2409583003/, perform the premul in 4f. It turns out it's even faster to avoid the 255 load multiplication in this case. Also includes some template plumbing because DstTraits<>::load now needs to be premul-aware (previously it wasn't). R=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2416233002 Review-Url: https://codereview.chromium.org/2416233002
* added SkSL support for mustForceNegatedAtanParamToFloat capGravatar ethannicholas2016-10-14
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2413363002 Review-Url: https://codereview.chromium.org/2413363002
* Slightly generalize GPU hard stop gradient implementation.Gravatar Brian Salomon2016-10-13
| | | | | | | | | | | | | | With this CL we handle single off-center hardstop gradients. BUG=chromium:543625 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3303 Change-Id: Ic754e87469475ce15865c54055b8ed492e1d826d Reviewed-on: https://skia-review.googlesource.com/3303 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Update comment, move constant inside helper structGravatar Brian Osman2016-10-10
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3109 Change-Id: Ife8a2434ff591bd77be1cd0fbcce50430e18c86c Reviewed-on: https://skia-review.googlesource.com/3109 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
* Convert gradient params test helper to a structGravatar Brian Osman2016-10-10
| | | | | | | | | | | | | | Much less copy-pasted code, fewer implementation details leaking out, and going to be easier to extend for 4f and color space testing. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2900 Change-Id: Icc468c606aa35fbe82c64bcc398e7e348e0faa20 Reviewed-on: https://skia-review.googlesource.com/2900 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert[8] "replace SkXfermode obj with SkBlendMode enum in paints"Gravatar reed2016-10-05
| | | | | | | | | | | This reverts commit c245574ba3d0e2ade6c94b2812de3baa383bf4c4. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2396953002 TBR= Review-Url: https://codereview.chromium.org/2396953002
* Revert[7] "replace SkXfermode obj with SkBlendMode enum in paints"Gravatar Mike Reed2016-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit Ib4a154cdd5f5d1dcac921ef50d53b79a2d6a1be8. Reason for revert: new assert from 100K bot Original change's description: > Revert[6] "replace SkXfermode obj with SkBlendMode enum in paints" > > - perform version check in CreateProc for XfermodeImageFilter and ArithmeticImageFilter > This reverts commit 3ed485f4249e17abb4b11f5018d03175fd1afb44. > > BUG=skia: > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2992 > > Change-Id: Ib4a154cdd5f5d1dcac921ef50d53b79a2d6a1be8 > Reviewed-on: https://skia-review.googlesource.com/2992 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I848e5a69c5cd67f2c14889f4f0a346652578c4ff Reviewed-on: https://skia-review.googlesource.com/3023 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Revert "add cast for printf"Gravatar Mike Reed2016-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit Ib9277facab87747b3cf9b71585e63067b4be9a58. Reason for revert: reverted related CL Original change's description: > add cast for printf > > BUG=skia: > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3020 > > Change-Id: Ib9277facab87747b3cf9b71585e63067b4be9a58 > Reviewed-on: https://skia-review.googlesource.com/3020 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I1621d4ea42e9a9403ce78db147c62e8a458b4e00 Reviewed-on: https://skia-review.googlesource.com/3024 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* add cast for printfGravatar Mike Reed2016-10-05
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3020 Change-Id: Ib9277facab87747b3cf9b71585e63067b4be9a58 Reviewed-on: https://skia-review.googlesource.com/3020 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert[6] "replace SkXfermode obj with SkBlendMode enum in paints"Gravatar Mike Reed2016-10-05
| | | | | | | | | | | | | | - perform version check in CreateProc for XfermodeImageFilter and ArithmeticImageFilter This reverts commit 3ed485f4249e17abb4b11f5018d03175fd1afb44. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2992 Change-Id: Ib4a154cdd5f5d1dcac921ef50d53b79a2d6a1be8 Reviewed-on: https://skia-review.googlesource.com/2992 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Harden degenerate gradient context handlingGravatar fmalita2016-10-05
| | | | | | | | | | | | | Certain inputs produce degenerate values at context creation time only. Detect such cases after context creation, and abort drawing by returning a null shader context instead. BUG=skia:5821 R=reed@google.com,brianosman@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2397473003 Review-Url: https://codereview.chromium.org/2397473003
* Revert[5] "replace SkXfermode obj with SkBlendMode enum in paints"Gravatar Mike Reed2016-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit I0fa5c58af428f3da8565465d1219a34ef8417d9a. Reason for revert: failing to deserialize some of the 100K Original change's description: > Revert[4] "replace SkXfermode obj with SkBlendMode enum in paints" > > This reverts commit 2cbcd12281ee807214df094964c584c78932e10b. > > BUG=skia: > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2924 > > Change-Id: I0fa5c58af428f3da8565465d1219a34ef8417d9a > Reviewed-on: https://skia-review.googlesource.com/2924 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I1805a57eef5ebcac203da5989c8539345ecf806f Reviewed-on: https://skia-review.googlesource.com/2962 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert[4] "replace SkXfermode obj with SkBlendMode enum in paints"Gravatar Mike Reed2016-10-04
| | | | | | | | | | | | | This reverts commit 2cbcd12281ee807214df094964c584c78932e10b. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2924 Change-Id: I0fa5c58af428f3da8565465d1219a34ef8417d9a Reviewed-on: https://skia-review.googlesource.com/2924 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Make all SkRasterPipeline stages stock stages in SkOpts.Gravatar Mike Klein2016-10-04
| | | | | | | | | | | | | | | | | If we want to support VEX-encoded instructions (AVX, F16C, etc.) without a ridiculous slowdown, we need to make sure we're running either all VEX-encoded instructions or all non-VEX-encoded instructions. That means we cannot mix arbitrary user-defined SkRasterPipeline::Fn (never VEX) with those living in SkOpts (maybe VEX)... it's SkOpts or bust. This ports the existing user-defined SkRasterPipeline::Fn use cases over to use stock stages from SkOpts. I rewrote the unit test to use stock stages, and moved the SkXfermode implementations to SkOpts. The code deleted for SkArithmeticMode_scalar should already be dead. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2940 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Change-Id: I94dbe766b2d65bfec6e544d260f71d721f0f5cb0 Reviewed-on: https://skia-review.googlesource.com/2940 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Remove option to make GrCoordTransforms apply to device positions.Gravatar Brian Salomon2016-10-03
| | | | | | | | | | | Adds a device space texture decal effect to use for clipping. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2870 Change-Id: Ifcc7617ea87f5a86e301995cba9dfc30a4b0e2c5 Reviewed-on: https://skia-review.googlesource.com/2870 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "Revert "Revert "replace SkXfermode obj with SkBlendMode enum in ↵Gravatar Mike Reed2016-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | paints""" This reverts commit I86875511a13497112827cbaed1dbd7639e9e3d10. legacy (100K) skp failure Original change's description: > Revert "Revert "replace SkXfermode obj with SkBlendMode enum in paints"" > > This reverts commit ce02e7175872abde3721df9e5d3ec0ab8384cd8e. > > BUG=skia: > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2878 > > Change-Id: I86875511a13497112827cbaed1dbd7639e9e3d10 > Reviewed-on: https://skia-review.googlesource.com/2878 > Reviewed-by: Matt Sarett <msarett@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=msarett@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ife6f0cf3a22b3e8cf885a188f7f44e1ff62e06a5 Reviewed-on: https://skia-review.googlesource.com/2881 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert of add cast for tostring (patchset #1 id:1 of ↵Gravatar reed2016-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2385353002/ ) Reason for revert: base CL has legacy skp bug, so have to revert it Original issue's description: > add cast for tostring to fix google3 > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2385353002 > > TBR=True > NOTRY=True > > Committed: https://skia.googlesource.com/skia/+/4cfd5af26e5fab1699cfa2ab40d49c24cededd72 TBR= # 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/2384303002
* add cast for tostring to fix google3Gravatar reed2016-10-03
| | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2385353002 TBR=True NOTRY=True Review-Url: https://codereview.chromium.org/2385353002
* Supply random dst color space to asFP in unit testsGravatar Brian Osman2016-10-03
| | | | | | | | | | | | | | | TBR=bsalomon@google.com (Testing-only API change) BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2876 Change-Id: I0ca26da0307848cdfc8ffaac2d042601663ab00b Reviewed-on: https://skia-review.googlesource.com/2876 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert "Revert "replace SkXfermode obj with SkBlendMode enum in paints""Gravatar Mike Reed2016-10-03
| | | | | | | | | | | | | This reverts commit ce02e7175872abde3721df9e5d3ec0ab8384cd8e. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2878 Change-Id: I86875511a13497112827cbaed1dbd7639e9e3d10 Reviewed-on: https://skia-review.googlesource.com/2878 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Start supplying random color space xforms to FP testsGravatar Brian Osman2016-10-03
| | | | | | | | | | | | | | Added helper to create random GrColorSpaceXforms in unit tests, and hooked it up for the FPs that currently accept one. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2873 Change-Id: Iaf93e379e405fbf745f5e0fd23b4daf017355966 Reviewed-on: https://skia-review.googlesource.com/2873 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert "replace SkXfermode obj with SkBlendMode enum in paints"Gravatar Mike Reed2016-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit I4fb489ba6b3f77b458f7e4a99f79c7ad10859135. Reason for revert: <INSERT REASONING HERE> Original change's description: > replace SkXfermode obj with SkBlendMode enum in paints > > BUG=skia:5814 > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2714 > > Change-Id: I4fb489ba6b3f77b458f7e4a99f79c7ad10859135 > Reviewed-on: https://skia-review.googlesource.com/2714 > Reviewed-by: Florin Malita <fmalita@chromium.org> > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=bsalomon@google.com,fmalita@chromium.org,fmalita@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I3e43f79ef5c1709929663fe63cc1f67cd78270b7 Reviewed-on: https://skia-review.googlesource.com/2871 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Add color space xform to GrAlphaThresholdFragmentProcessorGravatar Brian Osman2016-10-03
| | | | | | | | | | | | | Fix imagealphathreshold_surface GM to test gamut conversion. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2867 Change-Id: Id9aaebe72d1dadc613ef1a8d17d066b51049300f Reviewed-on: https://skia-review.googlesource.com/2867 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* replace SkXfermode obj with SkBlendMode enum in paintsGravatar Mike Reed2016-10-03
| | | | | | | | | | | | BUG=skia:5814 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2714 Change-Id: I4fb489ba6b3f77b458f7e4a99f79c7ad10859135 Reviewed-on: https://skia-review.googlesource.com/2714 Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Fix precision issues in SkRRectsGaussianEdgeShader.cppGravatar robertphillips2016-10-03
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2383863002 Review-Url: https://codereview.chromium.org/2383863002
* Gradients are serialized (and can be constructed) as SkColor4f + SkColorSpaceGravatar brianosman2016-09-28
| | | | | | | | | | | | | | | | | | | | Added gradient shader factories that take SkColor4f + SkColorSpace. Modified Descriptor to only store SkColor4f + SkColorSpace. Existing factories make use of helper code to convert SkColor and forward to the new factories. Bumped SKP version to handle new gradient serialization format. I was toying with using half-float when serializing SkColor4f, despite my aggressive packing of flags, this format is significantly bigger. Also added GM to use 4f factories. This GM should (and does) look identical to the existing gradients GM. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2370063002 Review-Url: https://codereview.chromium.org/2370063002
* Rearrange SkRasterPipeline scanline tail handling.Gravatar Mike Klein2016-09-28
| | | | | | | | | | | | | | | | | | | We used to step at a 4-pixel stride as long as possible, then run up to 3 times, one pixel at a time. Now replace those 1-at-a-time runs with a single tail stamp if there are 1-3 remaining pixels. This style is simply more efficient: e.g. we'll blend and lerp once for 3 pixels instead of 3 times. This should make short blits significantly more efficient. It's also more future-oriented... AVX+ on Intel and SVE on ARM support masked loads and stores, so we can do the entire tail in one direct step. This also makes it possible to re-arrange the code a bit to encapsulate each stage better. I think generally this code reads more clearly than the old code, but YMMV. I've arranged things so you write one function, but it's compiled into two specializations, one for tail=0 (Body) and one for tail>0 (Tail). It's pretty tidy. For now I've just burned a register to pass around tail. It's 2 bits now, maybe soon 3 with AVX, and capped at 4 for even the craziest new toys, so there are plenty of places we can pack it if we want to get clever. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2717 Change-Id: I45852a3e5d4c5b5e9315302c46601aee0d32265f Reviewed-on: https://skia-review.googlesource.com/2717 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Added kSRGBLinear_Named color space, along with testsGravatar brianosman2016-09-27
| | | | | | | | | | | | Gradients (and other shaders) are going to end up serializing this particular color space very frequently, so we want a shorthand way of writing it out. I think it's also helpful to have a clearer way of creating it (vs. NewNamed(kSRGB_Named)->makeLinearGamma()). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2377763002 Review-Url: https://codereview.chromium.org/2377763002
* need to apply CTM to clip rect in arithmetic imagefilterGravatar Mike Reed2016-09-27
| | | | | | | | | | | | | | BUG=skia:5800 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2708 NOTRY=True upload steps are failing, but the tests themselves passed Change-Id: I0210d0095b4ffdd376f18fad895655d39714bf38 Reviewed-on: https://skia-review.googlesource.com/2708 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Remove stray semicolons.Gravatar Mike Klein2016-09-27
| | | | | | | | | | | | | | | | Turns out function declarations don't end in semicolons... BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2720 No public API changes. TBR=reed@google.com Change-Id: I72b56d52e1ff7fa6e89c295b0de8c46599791ebb Reviewed-on: https://skia-review.googlesource.com/2720 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "Revert "replace Arithmetic xfermode with imagefilter""Gravatar Mike Reed2016-09-27
| | | | | | | | | | | | | This reverts commit 10ff5bfa789b6b602464e8511fdf676c6f5b1bd4. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2680 TBR= Change-Id: Iac2f4d48d227ff426ccf02b7eae280f382ad3580 Reviewed-on: https://skia-review.googlesource.com/2680 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "replace Arithmetic xfermode with imagefilter"Gravatar Mike Reed2016-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit Ia3f3b721854c516f3b7f8c44f71f40a8a2eeb9b4. Reason for revert: need to guard the no-gpu codepath Original issue's description: > replace Arithmetic xfermode with imagefilter > > chrome pre-cl: https://codereview.chromium.org/2369023002/ > > BUG=skia: > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2595 > > Change-Id: Ia3f3b721854c516f3b7f8c44f71f40a8a2eeb9b4 > Reviewed-on: https://skia-review.googlesource.com/2595 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Florin Malita <fmalita@chromium.org> > Reviewed-by: Robert Phillips <robertphillips@google.com> > TBR=robertphillips@google.com,fmalita@chromium.org,fmalita@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I761799b594a0379c6bf356e6abc73552c3d19480 Reviewed-on: https://skia-review.googlesource.com/2661 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* replace Arithmetic xfermode with imagefilterGravatar Mike Reed2016-09-26
| | | | | | | | | | | | | | chrome pre-cl: https://codereview.chromium.org/2369023002/ BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2595 Change-Id: Ia3f3b721854c516f3b7f8c44f71f40a8a2eeb9b4 Reviewed-on: https://skia-review.googlesource.com/2595 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Stop aggregating texture/buffer access objects in GrFragmentProcessor parents.Gravatar bsalomon2016-09-26
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2349243002 Review-Url: https://codereview.chromium.org/2365943003
* Dash to use SkIsAlign2Gravatar cblume2016-09-26
| | | | | | | | Dash checks for alignment by actively aligning. It should really just check for alignment. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2366283002 Review-Url: https://codereview.chromium.org/2366283002
* Change SkSpecialImage::makeSurface and makeTightSurface to take outputGravatar brianosman2016-09-23
| | | | | | | | | | | | | | | | | | | | | | properties (color space), bounds, and (optional) alphaType. We were being pretty inconsistent before. Raster was honoring all components of the info. GPU was using the supplied color type, but propagating the source's color space. All call sites were saying N32. What we want to do is propagate the original device's color space, and pick a good format from that. Rather than force all the clients to jump through hoops constructing an SkImageInfo that meets our criteria, just have them supply the few bits we care about, and do everything else internally. This also lets us always use RGBA on GPU, but N32 on raster. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2349373004 Committed: https://skia.googlesource.com/skia/+/53c38087949252d27cde668368a3eeb59cc2eb00 Review-Url: https://codereview.chromium.org/2349373004
* change SkXfermodeImageFilter to carry no impl informationGravatar Mike Reed2016-09-23
| | | | | | | | | | | | | | BUG=skia: NOTREECHECKS=True GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2584 Change-Id: Ibf2dfa7722348ae71a99f1c895de0d2996350e58 Reviewed-on: https://skia-review.googlesource.com/2584 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert of Create special surfaces according to original device (not always ↵Gravatar brianosman2016-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in N32) (patchset #9 id:160001 of https://codereview.chromium.org/2349373004/ ) Reason for revert: DM crash and/or TSAN failure Original issue's description: > Change SkSpecialImage::makeSurface and makeTightSurface to take output > properties (color space), bounds, and (optional) alphaType. > > We were being pretty inconsistent before. Raster was honoring all > components of the info. GPU was using the supplied color type, but > propagating the source's color space. All call sites were saying N32. > > What we want to do is propagate the original device's color space, and > pick a good format from that. Rather than force all the clients to > jump through hoops constructing an SkImageInfo that meets our criteria, > just have them supply the few bits we care about, and do everything else > internally. > > This also lets us always use RGBA on GPU, but N32 on raster. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2349373004 > > Committed: https://skia.googlesource.com/skia/+/53c38087949252d27cde668368a3eeb59cc2eb00 TBR=robertphillips@google.com,reed@google.com,bsalomon@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/2366723004
* Change SkSpecialImage::makeSurface and makeTightSurface to take outputGravatar brianosman2016-09-23
| | | | | | | | | | | | | | | | | | | | | properties (color space), bounds, and (optional) alphaType. We were being pretty inconsistent before. Raster was honoring all components of the info. GPU was using the supplied color type, but propagating the source's color space. All call sites were saying N32. What we want to do is propagate the original device's color space, and pick a good format from that. Rather than force all the clients to jump through hoops constructing an SkImageInfo that meets our criteria, just have them supply the few bits we care about, and do everything else internally. This also lets us always use RGBA on GPU, but N32 on raster. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2349373004 Review-Url: https://codereview.chromium.org/2349373004
* sRGB cleanup in image filters. Ensure we configure paints correctly.Gravatar brianosman2016-09-22
| | | | | | | | | | | | | | Net effect of the two calls is (basically) the same, but given that we're propagating from isGammaCorrect on the DC, I figured it makes sense to use the same-named API. More importantly, a couple places had slipped through, so those draws would ignore sRGB-ness of inputs entirely. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2357413004 Review-Url: https://codereview.chromium.org/2357413004
* It is possible to try and draw to an unsupported format. Let this go.Gravatar brianosman2016-09-22
| | | | | | | | | Squelches assert firing in gradient code on low-end Android bots. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2365703002 Review-Url: https://codereview.chromium.org/2365703002