This reverts commit e88cf6b7aa.
Reason for revert: See if breaking DEPS roll
Original change's description:
> Remove asTextureRef from SkSpecialImage & update effects accordingly
>
> This CL also renames SkSpecialImage::asTextureProxy to asTextureProxyRef
>
> Change-Id: I5ed8e475bb9688453b825ae4500ed0e8d324b5ac
> Reviewed-on: https://skia-review.googlesource.com/7995
> 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: I227cbd5fcaf7e2f86e858331d9ec7ff7a5f203ca
Reviewed-on: https://skia-review.googlesource.com/8184
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
TBR=mtklein@google.com
Change-Id: Id7621548995b368164d74c817e288c34ef656bfb
Reviewed-on: https://skia-review.googlesource.com/8180
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Herb Derby <herb@google.com>
Currently create_descriptor will crash if handed a familyName which is
nullptr. Instead it should simply create a descriptor without a family name
and allow CoreText to resolve a default font. This further simplifies
default font handling on Mac.
BUG=skia:6196
Change-Id: I0a2d081240e4cb5bd51dd3516ea2595277055fe0
Reviewed-on: https://skia-review.googlesource.com/8071
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
This CL also renames SkSpecialImage::asTextureProxy to asTextureProxyRef
Change-Id: I5ed8e475bb9688453b825ae4500ed0e8d324b5ac
Reviewed-on: https://skia-review.googlesource.com/7995
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
These bugs haven't been updated in over a year, so probably not worthwhile to continue to run the tests.
BUG=skia:4697,skia:4704,skia:4694,skia:4705
Change-Id: Ie77cfdf1a4a12a1eb61f90a3f93e479deb0349ab
Reviewed-on: https://skia-review.googlesource.com/5577
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
This is just a warm up refactor to make the existing stages more
amenable to running in place without splicing. Hopefully the driver
interpreter loop for that will be my next CL.
Change-Id: Ie76868b59af8ff3a10e2cd64f03c3f8d8a5031dd
Reviewed-on: https://skia-review.googlesource.com/8142
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
- Added default implementation of onMakeContext to support use in android.
Searches for uses:
"public SkShader" package:^chromium$ -file:^src/third_party/skia
package:^aosp.* "public SkShader" -file:external/skia -file:.*third_party/skia
package:^android$ "public SkShader" -file:external/skia -file:.*third_party/skia
... shows that no subclass overrides onCreateContext.
TBR=reed@google.comTBR=mtklein@google.com
Change-Id: I8bd5f57a79534574e344b165d31dccee41c31767
Reviewed-on: https://skia-review.googlesource.com/8140
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
BUG=skia:6070
Change-Id: I2ccd5c5a773094da5cadcc934ec953b0bc9de757
Reviewed-on: https://skia-review.googlesource.com/8131
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Change-Id: I8755fd7a316d284627e25f88e02b69e2f67f9622
Reviewed-on: https://skia-review.googlesource.com/8126
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
BUG=skia:
Whitespace change in public API.
Change-Id: Iaab7b0ed6b157b1c246eae5f0f0440b0ae4d72ab
Reviewed-on: https://skia-review.googlesource.com/8130
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit 2b57b7f7a7.
Reason for revert: Android compile failing
Original change's description:
> Use SkArenaAlloc instead of SkSmallAllocator in the SkAutoBlitterChoose code.
>
>
> TBR=reed@google.com
> Change-Id: Iefb044bf7657fbf982f23aa91a3f4d013ce2c626
> Reviewed-on: https://skia-review.googlesource.com/7786
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
>
TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: Id09c35377dddae0811d998b7d0c34c422325a5bc
Reviewed-on: https://skia-review.googlesource.com/8129
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
BUG=skia:
Change-Id: I01c5e1874c9a034febc64e25b3aaafb5050393a6
Reviewed-on: https://skia-review.googlesource.com/8021
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
Ensures that an image is GPU backed on the passed-in GrContxt. The new
version requires a destination color space (intended usage of the image),
so we can make a proper decision about decoded format.
This reverts commit d263413a2a.
BUG=skia:
Change-Id: Ibccddbafc301779559592045ed5a5fa9264e7432
Reviewed-on: https://skia-review.googlesource.com/8116
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
The 64-bit bots look fine. We're only testing GPU on iOS, so it's not
super critical to have 32-bit iOS testers. I'll keep the builders.
Change-Id: I405153fd9da63b541584d78bdb975b5800679391
Reviewed-on: https://skia-review.googlesource.com/8114
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
SkSplicer is an experiment, and _lowp SkSplicer is an experiment^2.
It's not that it's a bad idea... it just makes working on the main
SkSplicer experiment more complicated.
While not live at head, it'll live on in my heart.
Change-Id: Ib099370be25623e4cf1bbbca211634e3fe92b475
Reviewed-on: https://skia-review.googlesource.com/8112
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Change-Id: I0c2f050c70755523abfbe98c17e90a90ecbedff5
Reviewed-on: https://skia-review.googlesource.com/8113
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Hal Canary <halcanary@google.com>
TBR=reed@google.com
Change-Id: Iefb044bf7657fbf982f23aa91a3f4d013ce2c626
Reviewed-on: https://skia-review.googlesource.com/7786
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Copy-paste error.
BUG=skia:
Change-Id: Ifebe23ee7ac4a46e351f10ebe0f4c68490bfeb44
Reviewed-on: https://skia-review.googlesource.com/8110
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
BUG=skia:6070
Change-Id: I66ac3057f7863f822445d5163e54ca3b11755068
Reviewed-on: https://skia-review.googlesource.com/8107
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Change-Id: Id0db49ad45b341d39abf7ee532ecc0799a832192
Reviewed-on: https://skia-review.googlesource.com/8079
Commit-Queue: Stan Iliev <stani@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
An upcoming CL (https://skia-review.googlesource.com/c/7995/ (Remove asTextureRef from SkSpecialImage & update effects accordingly)) modifies some untested portions of the SkMagnifierImageFilter.
This adds a test to prevents regressions.
Change-Id: I9fa406f699e39fa393212e7f63a457b015b36edb
Reviewed-on: https://skia-review.googlesource.com/8023
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Because it's 2017.
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-iOS-Clang-iPadMini4-GPU-GX6450-arm64-Debug,Perf-iOS-Clang-iPadMini4-GPU-GX6450-arm64-Release,Test-iOS-Clang-iPadMini4-GPU-GX6450-arm64-Debug,Test-iOS-Clang-iPadMini4-GPU-GX6450-arm64-Release
Change-Id: I8708585a3416962d2563c17e6cc357da48ad9519
Reviewed-on: https://skia-review.googlesource.com/8106
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Uses Sk2f to apply a translation-only matrix when the vertex attributes contain only positions and colors.
We should look at how to generalize this for other draw vertices cases and other ops.
Change-Id: I5eb692982dc216b1c0a71209c969672b0562143c
Reviewed-on: https://skia-review.googlesource.com/8103
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
We were snapping the top-left of the destination rectangle to integers,
but using the original (fractional) size. This led to us losing rows or
columns of pixels at the first tile boundary.
Also added a GM that demonstrates the bug (now renders correctly).
BUG=skia:
Change-Id: I50629dab9dd90fedad2c7e3393a1b1d1c7a8d45e
Reviewed-on: https://skia-review.googlesource.com/8102
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
(Long description, but actually quite a small change.)
This is the first change inspired by the "straight skeleton" algorithm.
This algorithm gives us a mental model to describe the edge-antialiasing
problem: consider the shape as walls of a house, the outer alpha
geometry is a 45-degree "roof" up to a flat top at a height of 1.0
(the filled interior). The faces of the sloping roof join at the
bisectors between the inner and outer points.
When the shape being drawn is sufficiently thin, there should be no flat
roof, and the sloping roof meets at an edge (the straight skeleton).
This patch detects cases where an edge inverts on stroking, which
indicates that the flat roof has turned inside out, and should be
reduced to a point instead. The model above describes what to do:
follow down the "roof" along the bisectors to their intersection.
This is the point to which an inverted edge should be collapsed.
Fortunately, the bisector edges are easy to compute: they're the
connector edges joining inner and outer points. Linearly interpolating
the distance from the top to the bottom point gives the alpha we
should use to approximate coverage.
Now that we are correctly handling inversions, bevelling outer edges
is no longer necesary, since pointy outer edges won't cause nasty
opaque artifacts.
A couple of other quality improvements: on intersection, always lerp
the alpha of connector edge, even if the opposite edge is an inner edge
(later, when these edges are collapsed, we need this value to compute
the correct alpha). Fix the case where an intruding outer vertex
intersects exactly with an inner edge by maxing its alpha with the
computed value in check_for_intersection(). Finally, we also no longer
round off the intersections produced by Line::intersect(), since it
introduces a loss of quality with no measurable performance benefit.
Change-Id: I6fd93df3a57fffc0895e8cb68adbdba626ded0f1
Reviewed-on: https://skia-review.googlesource.com/8028
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephan White <senorblanco@chromium.org>
BUG=skia:6070
Change-Id: I67c040239ca2cf77a7430aa1a45b1bb69fef3b91
Reviewed-on: https://skia-review.googlesource.com/8069
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Instead of hard coding to com.google.dm, which will only work for Test
bots, set it in the environment when we know which bundle we're using.
CQ_INCLUDE_TRYBOTS=skia.primary:Test-iOS-Clang-iPadMini4-GPU-GX6450-arm-Release,Perf-iOS-Clang-iPadMini4-GPU-GX6450-arm-Debug
Change-Id: I43a0c832ff70e3b3c9bb987173784f4b6b992403
Reviewed-on: https://skia-review.googlesource.com/8076
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
This reverts commit 113628d761.
Reason for revert: Looks to have caused https://bugs.chromium.org/p/chromium/issues/detail?id=688939
Original change's description:
> Added dead variable / code elimination to skslc.
>
> BUG=skia:
>
> Change-Id: Ib037730803a8f222f099de0e001fe06ad452a22c
> Reviewed-on: https://skia-review.googlesource.com/7584
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Ben Wagner <benjaminwagner@google.com>
>
TBR=egdaniel@google.com,benjaminwagner@google.com,ethannicholas@google.com,reviews@skia.org
# Not skipping CQ checks because original CL landed > 1 day ago.
BUG=skia:
Change-Id: I85599e4ca2bc6bfd782edc163f67b64195d6ae65
Reviewed-on: https://skia-review.googlesource.com/8077
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
BUG=skia:6119
Change-Id: I37639ebab43c9f32f48d2d7dbb8d4619efb9b09e
Reviewed-on: https://skia-review.googlesource.com/8061
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This reverts commit bfe8dca7df.
Reason for revert: I believe I've fixed all the call sites,
so this is now ok.
Original change's description:
> Allow conversion from non-opaque to opaque
>
> BUG:683787
>
> Change-Id: I1b78cc8d1b5d3917a2a952da036b93022e99e053
> Reviewed-on: https://skia-review.googlesource.com/7374
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Matt Sarett <msarett@google.com>
>
TBR=msarett@google.com,robertphillips@google.com,reviews@skia.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: I2369c9b81321ca83a7063bb85e66ddbc03914d2b
Reviewed-on: https://skia-review.googlesource.com/8073
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
usedTileBytes was actually usedTileTexels, so we underestimated how much
of the image we were using by a factor of 4.
Then, to determine if we were using more than 50% of the image, we wrote:
usedTileBytes < 2 * bmpSize;
That meant we were off by another factor of 4.
BUG=skia:
Change-Id: Iba2acc75c5e7603543f05e4473b73f76a2937d7a
Reviewed-on: https://skia-review.googlesource.com/8063
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Now requires a IXpsOMObjectFactory pointer. This will allow sandboxing
to be used in Chromium. (Chrome will create a IXpsOMObjectFactory, then
go into sandbox mode, then call SkDocumenent::MakeXPS().)
Change-Id: Ic4b48d4b148c44e188d12a9481fb74735546528a
Reviewed-on: https://skia-review.googlesource.com/8052
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>