This operation assumes 0-1 input and guarantees 0-1 output.
The old clamp was poorly written, causing the possibility
for NaNs to not be set to 0.
BUG=709941
Change-Id: I691f0494a562a329967f5b0149a1ba04cbeb8464
Reviewed-on: https://skia-review.googlesource.com/13134
Commit-Queue: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
This reverts commit d83ec04412.
Reason for revert: various bot failures
Original change's description:
> Rm makeRenderTargetContext in favor of deferred version
>
> Change-Id: Ifdf67453607256ba7cdb0837263377bd83907212
> Reviewed-on: https://skia-review.googlesource.com/13001
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
>
TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I4e67a20cbe658b24725dcf386ac8bfdd127647ea
Reviewed-on: https://skia-review.googlesource.com/13131
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
It's unused, and doesn't appear to be correct, returning nullptr too
early when we should return a non-empty SkMiniPicture.
The mini-recorder path will return a zero-allocation SkEmptyPicture anyway.
Change-Id: I1be538049e731acfc2b0f8b4f30cafee434a91dc
Reviewed-on: https://skia-review.googlesource.com/12626
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Fills out most of the simple implementations.
Improves 22 gms in gbr-8888.
Bug: skia:
Change-Id: I881ade140993568263de75be51aed240d2de8cc6
Reviewed-on: https://skia-review.googlesource.com/13126
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Bug: skia:
Change-Id: Ib205f6104827b734635df6932d6dcfdc2248d091
Reviewed-on: https://skia-review.googlesource.com/12103
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
This was the old way of handling color spaces.
This is now handled by chooseCacheFormat() / buildCacheInfo().
Bug: skia:
Change-Id: Ifab1ab25d547a00296af237578dd8befec9c86c6
Reviewed-on: https://skia-review.googlesource.com/13004
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
Snap input values to N / 255 before doing PM/UPM conversions, and add
a new round-to-nearest conversion pair. With the pre-snapping, that
pair is chosen by (almost?) every GPU we have. This now lets us round
trip perfectly on Mali GPUs (which were falling back to SW before).
Bug: skia:
Change-Id: I0cebf1382e1c829aedfef4ec1614d7fa980057b5
Reviewed-on: https://skia-review.googlesource.com/11520
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This CL reverts legacy destinations back to lerping bytes.
Lerping linear is only the correct behavior for gradients
drawing into colorspace-aware destinations.
As written we're lerping between de-sRGB'd colors but never
transforming the outputs back. That leaves us in a weird
halfway-right-is-worse-than-wrong spot for legacy.
Change-Id: I79b85552b6913649afd2414205cf57108a8b93c6
Reviewed-on: https://skia-review.googlesource.com/13064
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Bug: skia:6423
NOTRY=true
Change-Id: I2193c49151359a174ffa071650e1dbd366c91b28
Reviewed-on: https://skia-review.googlesource.com/11783
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Bug: skia:
Change-Id: I3ae75d4edde1b3c8cc44413db74e5ab9789a9020
Reviewed-on: https://skia-review.googlesource.com/13065
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
N=8 on that bot.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-Clang-x86_64-Release-Fast
Change-Id: If54ae800b50d9dffb9f983b23ff6f522657943b1
Reviewed-on: https://skia-review.googlesource.com/13061
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Also remove some unused functions from GrBlend.h and related unit test.
Bug: skia:
Change-Id: Id8ad0057a02f65a9e19dc75e4b88709a762f4139
Reviewed-on: https://skia-review.googlesource.com/12623
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Constructor changes the color type to N32 now, so this
code is never needed.
Bug: skia:
Change-Id: If464440fed799122fed810d870f5d6d9a932bf12
Reviewed-on: https://skia-review.googlesource.com/13000
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Bug: skia:6473
Change-Id: I722059844bb0bc9d58347b4f6002ee62043b9e20
Reviewed-on: https://skia-review.googlesource.com/13006
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
It doesn't create an actual dependency, but it does cause the
Release-Shared build to be added to the tasks DAG, where it would be
orphaned if not for the other housekeeper.
Bug: skia:
Change-Id: Ia2974728ec353c7f209db45474e572d83cacbda5
Reviewed-on: https://skia-review.googlesource.com/13003
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
This will allow different subclasses to use different models for lifetime management.
GrXferProcessor moves to simple ref counting since they don't own GrGpuResources.
This also constifies GrXferProcessor factories.
Change-Id: I6bea0ea8de718874063224232f9da50887868b16
Reviewed-on: https://skia-review.googlesource.com/11792
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Plus two sample implementations. Will fill out the
rest if the model looks ok.
Bug: skia:
Change-Id: Ie24ecd0cbc36263220cb1e506f7812c582554e50
Reviewed-on: https://skia-review.googlesource.com/12100
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
When aspectRatio is not finite, insert() can fall into an infinite loop.
This happens if you pass SkRect::MakeLargest() to the factory as bounds.
BUG=skia:5974
Change-Id: Ibcc9e5c5943c718608d4c1448305f7b8f11413bc
Reviewed-on: https://skia-review.googlesource.com/11784
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
At one point I moved the contents of the recipes into modules so that
they could be shared between repos. It turns out that we don't need
that, and it adds complexity.
Bug: skia:6473
Change-Id: I75a920b6a8474dcdd8b37ee9edd52aac801d1ab0
Reviewed-on: https://skia-review.googlesource.com/12622
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Change-Id: I118fcd49990597d4dfea92efd3f9d99e52fdbfab
Reviewed-on: https://skia-review.googlesource.com/11481
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Bug: skia:6473
Change-Id: Id78f0b5cb50ae2243b9a5aed8e552f7ed8202228
Reviewed-on: https://skia-review.googlesource.com/12060
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
By fixing this some ugly casts are avoided in setting up Chrome's GrGLInterface
Change-Id: Ie540fc41b3cbb27f976d784cad90ae10c2cef9ed
Reviewed-on: https://skia-review.googlesource.com/12621
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
DirectWrite can now produce system font typefaces which are variations,
so mark these as multiple masters so printing knows what to do.
BUG=chromium:697916
Change-Id: Idf09ebba3c7002a09ff2e4a2dbae13dbce4e79d4
Reviewed-on: https://skia-review.googlesource.com/12101
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
This gives compilers a strong hint that SkColor constants to be computed
at compile time.
Change-Id: I09c8a7fd23e4488f8b101f53d67a155f64d5d423
Reviewed-on: https://skia-review.googlesource.com/12056
Commit-Queue: Lei Zhang <thestig@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
It should be allowed for the client to upload original data to a texture via
writePixels and then we just regenerate the mipmaps. I think it also resonable
to limit this to either writting to all levels or just the top level.
Bug: skia:
Change-Id: I66943cca54c2a7187a781788653948fb69c17c68
Reviewed-on: https://skia-review.googlesource.com/11798
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
We were just combing through possible changes that might have affected
the attached bug, this popped out as pretty obviously unsafe.
This doesn't explain the Chrome bug...
SkAutoTMalloc and SKAutoSTMalloc are separate types. :(
The new test fails and crashes before, passes after.
Change-Id: I033f488a7f644b7a70e612c8535fedfac35c76db
Reviewed-on: https://skia-review.googlesource.com/11797
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Factors out a function F from_byte(U8) too.
Change-Id: Ib739ccbd509ddf25d2bfb7751ba6eaf51b16c12f
Reviewed-on: https://skia-review.googlesource.com/11791
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Motivation: We may want to make SkMultiPictureDocument.h public in the
future.
Change-Id: Ie97b88d51a179c2283155d65bcadee32178115ca
Reviewed-on: https://skia-review.googlesource.com/11402
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Herb Derby <herb@google.com>
If xOffset or yOffset was not zero, these computations would not
be evaluated anyway, so no need to add zero for these comparisons.
(Split off from CL 9810)
Change-Id: I8481eb257d96766696945cef4eafaff4281fb7d9
Reviewed-on: https://skia-review.googlesource.com/11782
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
Chrome's got threadsafe statics, Android too, Flutter too, and heck, we even have them on all our Windows builds. No one responded to my mail about them. Let's stop turning them off on not-Windows!
Change-Id: Iadf00336aa73df3f694ac019c9d54a3f2257a3bd
Reviewed-on: https://skia-review.googlesource.com/11683
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Bug: skia:5813
Change-Id: I734c716d953091e84d30ad36c55a6c74727f376c
Reviewed-on: https://skia-review.googlesource.com/11781
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Minor cleanup of left over Tab3 tests.
Bug: skia:6442
Change-Id: I03bb4a034101a2773619abd2be7a300a70f6ac3d
Reviewed-on: https://skia-review.googlesource.com/11414
Reviewed-by: Eric Boren <borenet@google.com>
BUG=chromium:538133
BUG=chromium:359065
Change-Id: I8208efc63579e0f1ebb77680beae2cd08cdba547
Reviewed-on: https://skia-review.googlesource.com/11681
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Hal Canary <halcanary@google.com>
I think this happens to fix the particular issue in the attached bug.
memcpy() is kind of the swiss army knife as far as strict aliasing is
concerned... you're always allowed to use it.
The generated code for writeToMemory() is unchanged, and
readFromMemory() gets a bit better looking.
BUG=skia:5105
Change-Id: Ib5bf96600f1138650c004ced2d696e9a4ba83ca7
Reviewed-on: https://skia-review.googlesource.com/11682
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>