Commit Graph

299 Commits

Author SHA1 Message Date
Mike Klein
7b67b4af1f skcms→1654786 concat gamut transform matrices together
No-Tree-Checks: true

Change-Id: Ibfbbfe35caf9e2ed8a80aa9add2c4cae50585120
Reviewed-on: https://skia-review.googlesource.com/120997
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-12 14:07:02 +00:00
Mike Klein
ac78c7f415 skcms→9334796 reject non-XYZ/Lab PCS profiles
Change-Id: I6dd917c1f090a18e6508b0391f119f8f91929162
Reviewed-on: https://skia-review.googlesource.com/120502
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-11 18:45:47 +00:00
Mike Klein
3462eb0346 skcms→56f2a09 add sRGB profile and ApproximatelyEqualProfiles()
Change-Id: Ic6408fdc8819342da175ec8b99b5838669b1b2ae
Reviewed-on: https://skia-review.googlesource.com/120501
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-11 18:33:37 +00:00
Mike Klein
29e81529ba roll to particular targets
Change-Id: Iafbcab2fd406a81766f534d70b36f38b1c369506
Reviewed-on: https://skia-review.googlesource.com/120500
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-04-11 18:04:45 +00:00
Mike Klein
73297197b2 skcms→91a8958 Detect and canonicalize identity tables
Change-Id: I36957b8d7d96ac262b509c218779775c90864314
Reviewed-on: https://skia-review.googlesource.com/120420
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-11 15:01:37 +00:00
Mike Klein
06a610c159 skcms→307ec0f remove a layer of nesting in skcms_Curve
Change-Id: I0b0959063c22b2066b2103a4e93e396c10eb388e
Reviewed-on: https://skia-review.googlesource.com/120382
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-11 14:26:56 +00:00
Brian Osman
07b3bebcf2 skcms→e753c6d disable -Wdouble-promotion
Change-Id: I8cfebed0a6617a625dd91e31af4b581aaeae86fe
Reviewed-on: https://skia-review.googlesource.com/120122
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-04-11 11:20:01 +00:00
Mike Klein
1b49a05a60 skcms→dff16bc express ApproximateCurve error in input units
Change-Id: I8f567c475e8941ddb5d122dbb42c17413727021c
Reviewed-on: https://skia-review.googlesource.com/120184
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-10 17:33:22 +00:00
Mike Klein
b40a95152d allow rolling from anywhere
Change-Id: I27e4190aeeb48474effa05cd306bde22a3ed8493
Reviewed-on: https://skia-review.googlesource.com/120183
Reviewed-by: Brian Osman <brianosman@google.com>
2018-04-10 17:00:48 +00:00
Mike Klein
3cdd7e22dd skcms→9ff49a5 use GaussNewton for 7-parameter approx
Change-Id: I04894e17378cfbc982a11854a48217b63a2534ca
Reviewed-on: https://skia-review.googlesource.com/120161
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-10 16:13:31 +00:00
Mike Klein
2e9f0575e8 give skcms rolls a helpful commit msg
Change-Id: I5acec2526eb85fe0947421bdb2cc2cb8cd2db269
Reviewed-on: https://skia-review.googlesource.com/120180
Reviewed-by: Brian Osman <brianosman@google.com>
2018-04-10 15:30:37 +00:00
Mike Klein
ded7a5586a hard-roll skcms into Skia
Adding roll.sh to make it easy.

Change-Id: I7887c5f9a41c5b68a5dec89ebc8ac86a1707fef6
Reviewed-on: https://skia-review.googlesource.com/120120
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-10 15:03:31 +00:00
Ben Wagner
3aa8bfe0d5 Roll FreeType.
Change-Id: I3fe4e27e70270f4dc31610f98741c63b3574cf96
Reviewed-on: https://skia-review.googlesource.com/116628
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2018-03-28 16:06:34 +00:00
Ben Wagner
1f6526b335 Add a png.imp for include-what-you-use.
The png.h header provides some macros and declarations from subincludes.
By default include-what-you-use will suggest using these subincludes
directly, but this was not the intent of png.h. This adds a mapping file
so that include-what-you-use knows that these subincludes are actually
private and png.h should be used instead.

Change-Id: Ibf9df6dbdbde0e657f6e548ed0e8f2310f44cfea
Reviewed-on: https://skia-review.googlesource.com/114481
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2018-03-14 21:43:25 +00:00
Leon Scroggins III
9e8a594905 Support pngs with incorrect CMF bytes
Bug: chromium:807324

Though these pngs are technically incorrect, many such PNGs exist, and
they are supported in Chromium. Ensure that users of SkCodec (e.g.
Android, Flutter) display them as well.

Change-Id: I2f1e573b4b7039cea81f96397cc0aa4cbc9461c3
Reviewed-on: https://skia-review.googlesource.com/111082
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
2018-02-28 21:46:03 +00:00
Mike Klein
5279cdf190 Revert -isystem related CLs.
Revert "use -isystem for headers from third_party"
    This reverts commit 138bd155ed.

    Revert "write -isystem paths relative to the build root"
    This reverts commit 085bc52363.

I suspect the first breaks building on systems with an old libpng
or zlib installed, and the second definitely breaks GN -> CMake.

Change-Id: I5b29669b21b1444daeec8fb784337422ee17311a
Reviewed-on: https://skia-review.googlesource.com/110183
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-02-26 15:33:17 +00:00
Mike Klein
085bc52363 write -isystem paths relative to the build root
The default makes these system-absolute paths,
which confuses fiddle's overlay builds.

Now we should see things like,

  -isystem ../third_party/externals/jsoncpp/include

where we previously had,

  -isystem /Users/mtklein/skia/third_party/externals/jsoncpp/include

Change-Id: I7b161a550fdb95b06e17c372cd5bec3015e3c8b7
Reviewed-on: https://skia-review.googlesource.com/109382
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-02-22 16:06:32 +00:00
Derek Sollenberger
2bafb796e5 Fix Angle autoroller by adding missing platform specific files.
Change-Id: Ib1b3c760b8769fb0e342b69ec7954e2a30d74599
Reviewed-on: https://skia-review.googlesource.com/109200
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2018-02-21 22:18:07 +00:00
Mike Klein
138bd155ed use -isystem for headers from third_party
This supresses warnings from code in those headers,
e.g. warnings about switch case fallthrough in SDL_memset4(),
defined inline in SDL_stdinc.h.

Change-Id: I5341a67d4949b28ec5ffa6b7ae433748406e99db
Reviewed-on: https://skia-review.googlesource.com/109140
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-02-21 20:40:36 +00:00
Mike Klein
5ab827c50b Reland "remove third_party/etc1"
This is a reland of 9d7a73527a.

Original change's description:
> remove third_party/etc1
> 
> Nothing seems to reference it.
> 
> Change-Id: Ib009a7dc33d31439b11588758015a07485f56eaa
> Reviewed-on: https://skia-review.googlesource.com/99861
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Mike Klein <mtklein@chromium.org>

Change-Id: I3a6428074896c7b3c80cb23db61f70d7cb0c785f
Reviewed-on: https://skia-review.googlesource.com/108460
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-02-20 16:52:43 +00:00
Kevin Lubick
0be01ccecb Roll libwebp to 0.6.1
Bug: oss-fuzz:6299
Change-Id: I2e87368e04ff37db7e431fd1960f0bf91440037f
Reviewed-on: https://skia-review.googlesource.com/107281
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2018-02-14 19:00:27 +00:00
Hal Canary
8bb40837da Build ICU on iOS
Change-Id: Idc6d5ed987540bc41d64ceab87af103591dc1911
Reviewed-on: https://skia-review.googlesource.com/105800
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2018-02-12 15:51:01 +00:00
Hal Canary
0e07ad7fe7 ICU on windows
Change-Id: Ib1a2f017d96c5157c60d512332fddfef77c5ae8e
Reviewed-on: https://skia-review.googlesource.com/103001
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2018-02-08 19:36:49 +00:00
Mike Klein
bec7ec6497 avoid using tmpnam() in Lua
Change-Id: I9e3d82445bb26b98ff6a60dff28f9655cc9ea1fb
Reviewed-on: https://skia-review.googlesource.com/102624
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-02-01 22:39:59 +00:00
Mike Klein
5bcef359b2 Revert "remove third_party/etc1"
This reverts commit 9d7a73527a.

Reason for revert: still used by Fiber in Google3

Original change's description:
> remove third_party/etc1
> 
> Nothing seems to reference it.
> 
> Change-Id: Ib009a7dc33d31439b11588758015a07485f56eaa
> Reviewed-on: https://skia-review.googlesource.com/99861
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Mike Klein <mtklein@chromium.org>

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

Change-Id: I12b950931f0680576faefd1907a26afe22cf680f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/100460
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-01-26 22:41:35 +00:00
Mike Klein
9d7a73527a remove third_party/etc1
Nothing seems to reference it.

Change-Id: Ib009a7dc33d31439b11588758015a07485f56eaa
Reviewed-on: https://skia-review.googlesource.com/99861
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-01-26 20:15:50 +00:00
Mike Klein
fb33355c36 add basic skia -> skcms dependency
This rolls skcms into skia and builds it in dev configurations.
We don't use it in any way yet, but if nothing else this gives
us roundabout Windows skcms build bots.

Bug: skia:7493

Change-Id: Idd945ccd5c7a543841d76ab600cc117f2ee074dc
Reviewed-on: https://skia-review.googlesource.com/99880
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-01-26 02:07:37 +00:00
Mike Klein
ca96da7ad8 remove third_party/libwebp/webp/config.h
This doesn't appear to have any effect.
It's not mentioned in our build configuration anywhere,
nor is third_party/libwebp/webp on any include path.

Bug: skia:4037

Change-Id: I41710fe5e82bb97946e64d5f975c09c8ba21dc0d
Reviewed-on: https://skia-review.googlesource.com/99860
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-01-25 18:59:46 +00:00
Leon Scroggins III
868a68061e Remove unused field/methods
These have been replaced by duration on the base class.

Change-Id: Id87ecf09f4da6840280e3f5657453915a8d3c81b
Reviewed-on: https://skia-review.googlesource.com/99245
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2018-01-25 01:04:13 +00:00
Geoff Lang
03362c35f9 Update ANGLE's BUILD.gn to include definitions for GL_API.
Bug: skia:
Change-Id: I57a16af6c57166ead768ad73a8124690f1fa58e4
Reviewed-on: https://skia-review.googlesource.com/98302
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-01-23 00:03:10 +00:00
Mike Klein
b19737d78a make lua a rollable dep, roll it
This rolls from 5.2.1 (2013) to 5.3.4 (2017).

I was looking at why the GomaNoFallback bot was failing,
and noticed that we had a static copy of Lua here instead
of a DEPS entry.  This doesn't do anything to change the
GomaNoFallback situation.

Change-Id: Ia3cdca85551fe680b60b38cb8c5a8fb5349e177f
Reviewed-on: https://skia-review.googlesource.com/93120
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-01-10 17:54:00 +00:00
Brian Osman
e562f413ea Update Windows clang asset
For reference, the version number is pulled from:

  chromium/src/third_party/llvm-build/cr_build_revision

This version of clang includes fixes for bugs in the latest
Windows 10 SDK headers.

Bug: skia:
Change-Id: Ieee6eb2dff2f98a2340a8433135b6c3f916c0577
Reviewed-on: https://skia-review.googlesource.com/82721
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2017-12-08 16:55:10 +00:00
Leon Scroggins III
4f498fc6f0 Update to the latest version of libjpeg-turbo
Bug: b/70203010

From https://github.com/libjpeg-turbo/libjpeg-turbo/commit/c308d434.
This commit fixes a bug in BitmapRegionDecoder, and is the tip of tree.

Rather than using our mirror, just pull in upstream directly. Move our
config files into third_party/libjpeg-turbo, so we can just DEPS to
upstream. These files are unchanged, except jconfig.h, where I added a
comment regarding arithmetic coding.

Add a test image which demonstrates the bug.

Change-Id: I00f8f961f69e407dc31ca6d15c66518aa0acbafd
Reviewed-on: https://skia-review.googlesource.com/81442
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2017-12-07 13:15:20 +00:00
Leon Scroggins III
c8037dc5ed Reland "Hide SkEncodedInfo"
This partially reverts commit
1793e7bb46.

Hide SkEncodedInfo

Bug: skia:7353
Bug: skia:6839

This contains information that is not necessary for clients to know. The
Color enum tells the number of components in the input, but this is only
interesting internally (to the SkSwizzler).

Similarly, the Alpha enum differs from SkAlphaType in that it has
kBinary instead of kPremul. This is useful information only internally
for determining whether the SkColorSpaceXform needs to premultiply.

The bitsPerComponent is potentially useful for a client; Android (in
SkAndroidCodec) uses it to determine the SkColorType. Rather than
exposing bitsPerComponent, make SkAndroidCodec a friend so it can
access the SkEncodedInfo. A future change will change SkCodec to
recommend F16 for bitsPerComponent > 8, but that will be more involved;
it was the reason for the revert of this CL.

Switch conversionSupported to use an SkColorType, which is enough info.

Replace the SkEncodedInfo::Alpha field on SkCodec::FrameInfo with an
SkAlphaType.

SkCodec still needs an SkEncodedInfo, so move its header (which is
already not SK_API) to include/private.

TBR=mtklein@chromium.org,reed@google.com
Change-Id: I928b1f55317602cb37d29da63b53026c8d139cee
Reviewed-on: https://skia-review.googlesource.com/80860
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2017-12-05 19:28:08 +00:00
Mike Klein
f32b27d2e4 remove mips support and bots
The NDK has deprecated mips and mips64:
https://developer.android.com/ndk/guides/abis.html

Might as well clean this up now while I remember.

Change-Id: Ie4b2334c75208082067cc16fe355d0349c7e0904
Reviewed-on: https://skia-review.googlesource.com/80560
Reviewed-by: Derek Sollenberger <djsollen@google.com>
2017-12-05 17:19:45 +00:00
Leon Scroggins
1793e7bb46 Revert "Hide SkEncodedInfo"
This reverts commit c6f7a4ffa9.

Reason for revert: Causing differences in Gold, stemming from the fact that this changes the recommended SkImageInfo for 16 bits-per-component PNG from N32 to F16.
- an F16 bitmap already png-encodes to a 16 bits-per-component PNG, but it does not encode a linear colorspace (possibly a bug?). when we decode this PNG using getInfo(), it fails because it has an F16 color type and non-linear colorspace. (In the encode-srgb-png gm, this results in blank results for F16.) We could correct this on the encoder side, but it seems possible that a 16 bits-per-component PNG could be encoded with a different color space. In that case, we'd want SkCodec to recommend F16/SRGBLinear, but I think we'd want the SkCodec to store the encoded SkColorSpace so that we can Xform between the two. Currently SkCodec only stores one color space, so that will require a refactor.
- When decoding 16-bits-per-component PNGs, we are now decoding them to F16. This shows differences in Gold. The srgb/gpu results now look more like F16. I think this is fine.

Original change's description:
> Hide SkEncodedInfo
> 
> Bug: skia:7353
> Bug: skia:6839
> 
> This contains information that is not necessary for clients to know. The
> Color enum tells the number of components in the input, but this is only
> interesting internally (to the SkSwizzler).
> 
> Similarly, the Alpha enum differs from SkAlphaType in that it has
> kBinary instead of kPremul. This is useful information only internally
> for determining whether the SkColorSpaceXform needs to premultiply.
> 
> The bitsPerComponent is potentially useful for a client; Android (in
> SkAndroidCodec) uses it to determine the SkColorType. Rather than
> exposing bitsPerComponent, use it to make the same decision that Android
> would have made - 16 bits per component means to set the info to F16. Add
> a test that computeOutputColorType behaves as expected.
> 
> Switch conversionSupported to use an SkColorType, which is enough info.
> 
> Replace the SkEncodedInfo::Alpha field on SkCodec::FrameInfo with an
> SkAlphaType.
> 
> SkCodec still needs an SkEncodedInfo, so move its header (which is
> already not SK_API) to include/private.
> 
> Change-Id: Ie2cf11339bf999ebfd4390c0f448f7edd6feabda
> Reviewed-on: https://skia-review.googlesource.com/79260
> Reviewed-by: Mike Reed <reed@google.com>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Leon Scroggins <scroggo@google.com>

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

Change-Id: I0c5dd1461e1b70d1e55349a8e7ee6b029c3f556e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:7353, skia:6839
Reviewed-on: https://skia-review.googlesource.com/80660
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2017-12-05 15:38:22 +00:00
Leon Scroggins III
c6f7a4ffa9 Hide SkEncodedInfo
Bug: skia:7353
Bug: skia:6839

This contains information that is not necessary for clients to know. The
Color enum tells the number of components in the input, but this is only
interesting internally (to the SkSwizzler).

Similarly, the Alpha enum differs from SkAlphaType in that it has
kBinary instead of kPremul. This is useful information only internally
for determining whether the SkColorSpaceXform needs to premultiply.

The bitsPerComponent is potentially useful for a client; Android (in
SkAndroidCodec) uses it to determine the SkColorType. Rather than
exposing bitsPerComponent, use it to make the same decision that Android
would have made - 16 bits per component means to set the info to F16. Add
a test that computeOutputColorType behaves as expected.

Switch conversionSupported to use an SkColorType, which is enough info.

Replace the SkEncodedInfo::Alpha field on SkCodec::FrameInfo with an
SkAlphaType.

SkCodec still needs an SkEncodedInfo, so move its header (which is
already not SK_API) to include/private.

Change-Id: Ie2cf11339bf999ebfd4390c0f448f7edd6feabda
Reviewed-on: https://skia-review.googlesource.com/79260
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2017-12-05 00:52:42 +00:00
Brian Osman
514094c364 Suppress warning 4577 (noexcept used with no exception handling mechanism specified)
Fixes build errors with latest ANGLE, should allow roll to land.

Bug: skia:
Change-Id: I44c7b2ed8bf3a8dbfa70a16aed51c45f2c7d5b71
Reviewed-on: https://skia-review.googlesource.com/70461
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2017-11-12 19:38:16 +00:00
Ben Wagner
021e5c7016 Revert "Add an Option for orientation on JPEG encodes"
This reverts commit 5411a60e0d.

Reason for revert: ASAN and Coverage failing: https://chromium-swarm.appspot.com/task?id=394978f3b7d44610
Flutter_Android failing.

Original change's description:
> Add an Option for orientation on JPEG encodes
> 
> Move Origin to its own header so that SkPixmap and SkJpegEncoder need
> not depend on SkCodec.
> 
> Add libexif, which is already used by Android, and use it to write the
> orientation. Write a makefile based on the Android.bp in Android, minus
> warnings. (libexif has an LGPL license.)
> 
> Add a test that verifies all the orientations work.
> 
> Optionally enable writing the orientation (and therefore including
> libexif). Chromium does not currently need it, and Android does not
> expose an API that would allow using it. Disable on Windows, where we
> still have build errors to fix.
> 
> Bug: skia:7138
> Change-Id: Iaeff44c36aebe0e639666979dc00e1b7594bbeb1
> Reviewed-on: https://skia-review.googlesource.com/60721
> Commit-Queue: Leon Scroggins <scroggo@google.com>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Mike Reed <reed@google.com>

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

Change-Id: I05b7ae8d1c5bbd1de1642d9ef024943500256273
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:7138
Reviewed-on: https://skia-review.googlesource.com/61620
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
2017-10-18 18:09:47 +00:00
Leon Scroggins III
5411a60e0d Add an Option for orientation on JPEG encodes
Move Origin to its own header so that SkPixmap and SkJpegEncoder need
not depend on SkCodec.

Add libexif, which is already used by Android, and use it to write the
orientation. Write a makefile based on the Android.bp in Android, minus
warnings. (libexif has an LGPL license.)

Add a test that verifies all the orientations work.

Optionally enable writing the orientation (and therefore including
libexif). Chromium does not currently need it, and Android does not
expose an API that would allow using it. Disable on Windows, where we
still have build errors to fix.

Bug: skia:7138
Change-Id: Iaeff44c36aebe0e639666979dc00e1b7594bbeb1
Reviewed-on: https://skia-review.googlesource.com/60721
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2017-10-18 17:38:15 +00:00
Hal Canary
754271347a GPU-CTS Program
Add new application, called GPU-CTS (GPU Compatibility Test Suite),
which executes skia gms against OpenGL and Vulkan backends.  Makes use
of googletest library for consistancy with Android CTS programs.

Add googletest to DEPS

gm_knowledge.h header as a stub for future work on validating gm output.

gm_runner can be re-used in other programs.  Talks to Skia and GM with a
simple API.

gpuctx executable wraps gm_runner and googletest together.

Change-Id: Ie7350b22164fa73e44121c39b0f36da4038a700b
Reviewed-on: https://skia-review.googlesource.com/56601
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-10-17 19:01:13 +00:00
Mike Klein
d4b32ba384 roll libpng to 1.6.33
Apparently 1.6.34 has been released too, but I can't find it in Git, and
1.6.33 is the one with that patch we're really interested in, right?

Let's also just #include the prebuilt pnglibconf.h to make it clear that
it's unchanged from the original?

Change-Id: Ia415486f30c7aff1575f96add8edce855eef9207
Reviewed-on: https://skia-review.googlesource.com/54040
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-10-02 17:31:34 +00:00
Chris Blume
6c08b7bbe4 Remove unused param to SkGIFFrameContext ctor
After updating the transparency index code, the reader parameter to
SkGIFFrameContext's ctor is no longer needed. This patch removes it.

BUG=skia:7069

Change-Id: If129f825639e8d43d73794adca2de09785f56a3c
Reviewed-on: https://skia-review.googlesource.com/52602
Commit-Queue: Chris Blume <cblume@chromium.org>
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2017-09-28 17:53:27 +00:00
Chris Blume
0b5e7d16c2 Treat invalid indices as transparent in gifs
Other browsers (including old Chrome) treat invalid palette indices as
transparent for gifs. And there are gifs in the wild which rely on this.

As an example, if the palette only has 64 entries (0-63) then index 64
is treated as transparent.

BUG=skia:7069

Change-Id: I15e8919a953387506c9ac5945c3ae6a2b90189ab
Reviewed-on: https://skia-review.googlesource.com/51100
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Chris Blume <cblume@google.com>
2017-09-27 21:03:41 +00:00
Ethan Nicholas
0e4e410ac8 corrected spirv tools output file name
The incorrect output file name meant that the update_build_version.py script
was being run on every build, resulting in unnecessary work.

Bug: skia:
Change-Id: I5da933fb9b8fdf0bc898d0e90eaae0a542cfb3b3
Reviewed-on: https://skia-review.googlesource.com/50302
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-09-25 13:28:29 +00:00
Mike Klein
6b6674d321 libpng: update to 1.6.32, pull using DEPS
I'd have done this as two steps, but we didn't have a pure copy of
libpng to start with.  The patches we did have, though, have been
upstreamed and are now unneeded.

Change-Id: I884b9bc47afe5000f5a521f66a3bb95c0411b39a
Reviewed-on: https://skia-review.googlesource.com/48620
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-09-19 19:33:09 +00:00
Ben Wagner
be6ae5b3da Fix system icu build.
It turns out that Skia's gn 'system' and 'third_party' templates differ
in the way public defines are declared. This also updates the build to
add libdl when building SkOSLibrary_posix.cpp, since that uses dlsym.
The current build depends on icu bringing in this dependency.

BUG=skia:7008

Change-Id: Ia710a335e1da9580f85f133a5a171f640b36ee75
Reviewed-on: https://skia-review.googlesource.com/41745
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Yuqian Li <liyuqian@google.com>
2017-08-31 21:12:00 +00:00
Ben Wagner
a25fbef56a Add bidi to SkShaper.
Change-Id: Iaab9a1d5091a3b157a582b7e8c3261a6c3283ffc
Reviewed-on: https://skia-review.googlesource.com/40778
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2017-08-31 14:18:31 +00:00
Jim Van Verth
ecfed2beaf Add iOS support for SkiaSDLExample.
Change-Id: Ib8f4d6c41356cf0fe2e14b7bff7713d107eaa01f
Reviewed-on: https://skia-review.googlesource.com/40687
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2017-08-30 18:56:46 +00:00
Leon Scroggins III
e750391c34 GIF: Use SkTArray instead of std::vector
Speculative fix for a memory regression seen in Chromium. Chromium
previously used a WTF::Vector, which has a growth factor of 1.5, as does
SkTArray. Depending on the implementation of std::vector, this may slow
the allocation of memory.

Bug: 758946
Change-Id: I323390027467e32a6c66667c927fae0aba292446
Reviewed-on: https://skia-review.googlesource.com/40777
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2017-08-30 15:06:54 +00:00