Commit Graph

287 Commits

Author SHA1 Message Date
mtklein
7d6fb2c92d GN: Android
Once you have downloaded an android NDK, you can set the ndk GN arg to use it.
E.g. my gn.args looks like:
  is_debug = false
  ndk = "/opt/android-ndk"

This should be enough to get you going for an arm64 build.  You ought to be able to tweak that to other architectures by changing target_cpu to "arm", "x86", "x86-64", etc.  That won't quite work until I follow this up a bit, but the skeleton is there.

This is enough to get me compiled, linked, and running to completion on my N5x.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2275983004

Review-Url: https://codereview.chromium.org/2275983004
2016-08-25 14:50:44 -07:00
mtklein
0a8efd7355 GN: _turbo -> -turbo to match Fuchsia
We might as well match the folks who are using our GN files now.

We've got plenty of strategies in our pocket for when we try to move Chrome
onto our GN files (and who knows, there may be even a new better way by then):
  * Same sort of rename in Chrome's third_party
  * Aliased targets via //build/secondary in Chrome.
  * Indirection via build_overrides

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2265503002

Review-Url: https://codereview.chromium.org/2265503002
2016-08-22 06:32:39 -07:00
mtklein
3896effcad GN: make libjpeg_turbo target Chrome-compatible
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2257903002

Review-Url: https://codereview.chromium.org/2257903002
2016-08-18 12:04:13 -07:00
jvanverth
1ba1d372c2 Get Mac viewer working with SDL
Also fixes SkiaSDLExample.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2210603003

Review-Url: https://codereview.chromium.org/2210603003
2016-08-04 12:30:31 -07:00
mtklein
7a1f45f9e5 spin off easy stuff from Herb's windows GN CL
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209533004

No public API changes.
TBR=reed@google.com

Review-Url: https://codereview.chromium.org/2209533004
2016-08-04 06:19:33 -07:00
halcanary
19a9720978 GN: build sfntly, icu, harfbuzz
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2200833010

Review-Url: https://codereview.chromium.org/2200833010
2016-08-03 15:08:04 -07:00
bungeman
ffae30db4a Convert SkAutoTUnref<SkData> to sk_sp<SkData>.
With the move from SkData::NewXXX to SkData::MakeXXX most
SkAutoTUnref<SkData> were changed to sk_sp<SkData>. However,
there are still a few SkAutoTUnref<SkData> around, so clean
them up.

Review-Url: https://codereview.chromium.org/2212493002
2016-08-03 13:32:32 -07:00
mtklein
7c1ae7af4f GN: add some missing SkCodec defines
TURBO_HAS_...
    WEBP_SWAP_16BIT_CSP

BUG=skia:5591
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2196413003

Review-Url: https://codereview.chromium.org/2196413003
2016-08-01 15:50:27 -07:00
mtklein
2b6870ccb2 GN: nanobench
Add nanobench, and while we're at it monobench to show off how cool
source_sets are... the bench files are only built once then linked
into both binaries.  With GYP we build them twice. :/  Same deal
for GMs between nanobench and DM... build once, link twice.

nanobench uses SkImageEncoder to encode its .pngs, which requires
we link in the image encoders, which requires we get them all in.
That's the bulk of this.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2193513002

Review-Url: https://codereview.chromium.org/2193513002
2016-07-28 14:17:33 -07:00
mtklein
0634317cbe GN: fix mac build again
Hoping to land these using the other GN bots as trybots.

Don't know what magic was letting us get to webp's headers yesterday on Linux.  Might have been using /usr/include's ?

The other change is the difference between some setups using #define SK_BUILD_FOR_MAC and others #define SK_BUILD_FOR_MAC 1.  We want either to mean "we're Mac".

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2190713004

Review-Url: https://codereview.chromium.org/2190713004
2016-07-28 09:58:44 -07:00
mtklein
25c81d4e65 GN: dm
This builds, links, and runs on Linux.  Have not tried Mac.

I've tested is_debug={true,false} and is_component_build.
It's neat that the component build DM works, but it's also an indication I've missed an essential flag or two... it shouldn't work. :)

The GPU backend isn't working yet, but all the software configurations I've tried look good.

This fleshes out all the other parts of SkCodec too... I noticed we weren't able to decode gifs or webp.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2188643002

Review-Url: https://codereview.chromium.org/2188643002
2016-07-27 13:55:27 -07:00
mtklein
7d10b9f6e6 GN: fixes for Mac
- Make fiddle build on Mac (skipping GL).
 - Now that we're building in SkCodec, we depend on libpng and libjpeg-turbo unconditionally, not just on Linux.
 - Re-arrange third_party a bit so that our targets are Fuchsia/Chrome compatible.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2184133002

NOTREECHECKS=true
This doesn't affect Chrome/Blink, so landing through the closed tree.

Review-Url: https://codereview.chromium.org/2184133002
2016-07-27 11:17:18 -07:00
halcanary
aa7f67c76b DEPS: harfbuzz 1.2.7 → 1.3.0
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2179963005

Review-Url: https://codereview.chromium.org/2179963005
2016-07-27 10:08:39 -07:00
msarett
ae76f49a76 Make yasm-android executable
TBR=mtklein@google.com
NOTRY=true
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2188583002

Review-Url: https://codereview.chromium.org/2188583002
2016-07-26 13:46:16 -07:00
msarett
75a5ff63f7 Rename yasm binary and make it executable
TBR=mtklein@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2187663002

Review-Url: https://codereview.chromium.org/2187663002
2016-07-26 13:33:46 -07:00
msarett
dc2257bfab Fix yasm for Android build
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2180333002

Review-Url: https://codereview.chromium.org/2180333002
2016-07-26 11:24:28 -07:00
mtklein
7fbfbbe8f4 Basic standalone GN configs.
This sketches out what a world without Chrome's GN configs would look like.

Instead of DEPSing in build/, we now host our own gypi_to_gn.py.

The symlink from skia/ to . lets us run gclient hooks when the .gclient file is in the directory above skia/ or inside skia/.  That means we don't need gn.py anymore.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167163002

Review-Url: https://codereview.chromium.org/2167163002
2016-07-21 12:25:45 -07:00
mtklein
f037d48e29 GN: refactor third_party/gni
This fixes the build on Linux (dep on third_party:zlib -> third_party/zlib).

  I've moved declare_args() {} back to each .gn file... seems like args want
  to be as local as possible in GN land.

  Additionally, refactor all the common third_party config and warning flag
  changes into a template, third_party.  This lets it all live together in a
  .gni: at head unwanted_configs can be in a .gni (it's just a variable) but
  config("no_warnings") (and thus third_party_configs) cannot, as configs
  cannot be part of .gni files.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163653002

Review-Url: https://codereview.chromium.org/2163653002
2016-07-19 08:25:00 -07:00
abarth
6fc8ff024b Add support for Fuchsia
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2152273002

[mtklein edit from here down]
No public API changes.
TBR=reed@google.com

Review-Url: https://codereview.chromium.org/2152273002
2016-07-15 15:15:15 -07:00
mtklein
c04ff4788c GN
What we've got here is a little GN MVP.  It's lacking any knobs and doesn't yet build anything but libskia, zlib, libpng, and libjpeg-turbo.  I've been hopping back and forth between Linux at work and Mac at home.  These seem to be at least partially working, enough to build and run cmake/example.cpp.

The xcode backend seems to work.  From here, we can start exploring how to handle other backends (cmake,Android make, Google3).  There are a couple things I want to try:
  - add another backend like vs or xcode to GN directly
  - intercept via a custom toolchain
  - reverse from ninja -t commands
That last option seems kind of fun.

This tries to piggyback on Chrome's GN setup as much as possible.  Chrome's got quite a lot figured out, and we're basically required to do this if we want to have a single GN build system shareable by Chrome, our bots, and other clients.

This pulls in some new DEPS:
   - build: Chrome's GN configuration, and much more
   - buildtools: hashes for gn binary, pulled via hooks
   - tools/clang: hashes for Chrome's clang, pulled via hooks into third_party/llvm-build
It additionally symlinks tools/gyp to third_party/externals/gyp.  GN pulls some stuff from tools/gyp on Mac.

Have not yet tried building for Windows, Android, or iOS.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002

Committed: https://skia.googlesource.com/skia/+/1d8de594f126b9a80bd8f8fa2005e90faf3b5b17
Review-Url: https://codereview.chromium.org/2087593002
2016-06-23 10:29:30 -07:00
mtklein
3917cf4ef7 Revert of GN (patchset #12 id:220001 of https://codereview.chromium.org/2087593002/ )
Reason for revert:
gclient not happy on some bots

Original issue's description:
> GN
>
> What we've got here is a little GN MVP.  It's lacking any knobs and doesn't yet build anything but libskia, zlib, libpng, and libjpeg-turbo.  I've been hopping back and forth between Linux at work and Mac at home.  These seem to be at least partially working, enough to build and run cmake/example.cpp.
>
> The xcode backend seems to work.  From here, we can start exploring how to handle other backends (cmake,Android make, Google3).  There are a couple things I want to try:
>   - add another backend like vs or xcode to GN directly
>   - intercept via a custom toolchain
>   - reverse from ninja -t commands
> That last option seems kind of fun.
>
> This tries to piggyback on Chrome's GN setup as much as possible.  Chrome's got quite a lot figured out, and we're basically required to do this if we want to have a single GN build system shareable by Chrome, our bots, and other clients.
>
> This pulls in some new DEPS:
>    - build: Chrome's GN configuration, and much more
>    - buildtools: hashes for gn binary, pulled via hooks
>    - tools/clang: hashes for Chrome's clang, pulled via hooks into third_party/llvm-build
> It additionally symlinks tools/gyp to third_party/externals/gyp.  GN pulls some stuff from tools/gyp on Mac.
>
> Have not yet tried building for Windows, Android, or iOS.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002
>
> Committed: https://skia.googlesource.com/skia/+/1d8de594f126b9a80bd8f8fa2005e90faf3b5b17

TBR=bsalomon@google.com,mtklein@chromium.org
# 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/2088253002
2016-06-22 10:07:07 -07:00
mtklein
1d8de594f1 GN
What we've got here is a little GN MVP.  It's lacking any knobs and doesn't yet build anything but libskia, zlib, libpng, and libjpeg-turbo.  I've been hopping back and forth between Linux at work and Mac at home.  These seem to be at least partially working, enough to build and run cmake/example.cpp.

The xcode backend seems to work.  From here, we can start exploring how to handle other backends (cmake,Android make, Google3).  There are a couple things I want to try:
  - add another backend like vs or xcode to GN directly
  - intercept via a custom toolchain
  - reverse from ninja -t commands
That last option seems kind of fun.

This tries to piggyback on Chrome's GN setup as much as possible.  Chrome's got quite a lot figured out, and we're basically required to do this if we want to have a single GN build system shareable by Chrome, our bots, and other clients.

This pulls in some new DEPS:
   - build: Chrome's GN configuration, and much more
   - buildtools: hashes for gn binary, pulled via hooks
   - tools/clang: hashes for Chrome's clang, pulled via hooks into third_party/llvm-build
It additionally symlinks tools/gyp to third_party/externals/gyp.  GN pulls some stuff from tools/gyp on Mac.

Have not yet tried building for Windows, Android, or iOS.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002

Review-Url: https://codereview.chromium.org/2087593002
2016-06-22 09:52:13 -07:00
scroggo
09f5cd44ae Prefix png functions
This way multiple copies of libpng can coexist.

Update libpng's README.google
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2046603002

Review-Url: https://codereview.chromium.org/2046603002
2016-06-06 08:57:50 -07:00
scroggo
11450d5ec1 Update pnglibconf.h
It should have been updated when we updated the version.

Update README.google to better reflect the difference from the
original file.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2042833002

Review-Url: https://codereview.chromium.org/2042833002
2016-06-06 08:27:53 -07:00
scroggo
1915b0bab2 Fix undefined behavior in libpng
Check for a null source before calling memcpy.

BUG=skia:5390
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2040433002

Review-Url: https://codereview.chromium.org/2040433002
2016-06-03 09:36:53 -07:00
scroggo
3965825b97 Check libpng directly into third_party/
With this change, the CMake build, which does not use DEPS to sync
external projects, is able to build and use the same version of libpng
that is used in other builds.

This will allow all platforms (including Google3 CMake build) to test on
the same version of libpng, so we do not need to make SkPngCodec support
all versions of libpng.

- Update CMakeLists.txt to use the checked in libpng.
- Check in libpng version 1.6.22rc01
- Update README.google
- Replace our old LICENSE file with the latest one from libpng
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2033063003
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot

Review-Url: https://codereview.chromium.org/2033063003
2016-06-02 12:59:59 -07:00
msarett
0e5b249e54 Add exact version of qcms used by Chrome for testing and comparison
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2014023003

Review-Url: https://codereview.chromium.org/2014023003
2016-05-26 11:05:37 -07:00
msarett
8fe89ab9b2 Update libpng to 1.6.22rc01
If there are no issues, this version will be released May 26.

Let's start testing with it, so we are ready to update Chrome when
it is available.

BUG=skia:4710
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1983853002

Review-Url: https://codereview.chromium.org/1983853002
2016-05-17 09:31:04 -07:00
halcanary
00d44e014c Start building HarfBuzz+Skia example
(prevent bitrot in example code)

tools/using_skia_and_harfbuzz.cpp was written by aam@:
  https://github.com/aam/skiaex

update HarfBuzz to latest release: 1.2.7

BUG=skia:4742
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1940393002

Review-Url: https://codereview.chromium.org/1940393002
2016-05-03 15:09:52 -07:00
scroggo
b8e0960de4 Make is_ktx safer
Rather than assuming the data passed to ktx at least
KTX_FILE_IDENTIFIER_SIZE, pass the length of the data to is_ktx and
compare it.

Splitting off from crrev.com/1862133002, which no longer depends on
is_ktx.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1882593002

Review URL: https://codereview.chromium.org/1882593002
2016-04-12 07:41:22 -07:00
halcanary
9d524f22bf Style bikeshed - remove extraneous whitespace
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842753002

Review URL: https://codereview.chromium.org/1842753002
2016-03-29 09:03:53 -07:00
joshualitt
5ec9132e55 Create explicit microhttpd.gyp
Committed: https://skia.googlesource.com/skia/+/80993639dfb8bcd26633ba1c3b7334f3ef7f6eb8
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1779903002

Review URL: https://codereview.chromium.org/1779903002
2016-03-09 15:07:02 -08:00
joshualitt
f842c50116 Revert of Create explicit microhttpd.gyp (patchset #6 id:100001 of https://codereview.chromium.org/1779903002/ )
Reason for revert:
breaking per commit housekeeper

Original issue's description:
> Create explicit microhttpd.gyp
>
> Committed: https://skia.googlesource.com/skia/+/80993639dfb8bcd26633ba1c3b7334f3ef7f6eb8

TBR=bungeman@google.com,jcgregorio@google.com,ethannicholas@google.com,joshualitt@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1781853002
2016-03-09 14:26:15 -08:00
joshualitt
80993639df Create explicit microhttpd.gyp
Review URL: https://codereview.chromium.org/1779903002
2016-03-09 14:00:52 -08:00
bungeman
51190df040 Add SkDrawPosTextHCommand JSON, fix skiaserve build.
Adds SkDrawPosTextHCommand ::fromJSON and ::toJSON.

Both SkDrawPosTextCommand and SkDrawPosTextHCommand's
::toJSON write the correct number of positions, preventing reading
uninitialized memory.

The microhttpd build is now done in the build tree as opposed to in a
temporary directory.

The microhttpd build script uses os.path.join so that absolute paths
do not confuse the build. This allows compatibility with the cmake
gyp generator as CMake likes to pass absolute paths.

The microhttpd gyp target is now marked as 'none' since it is not
a 'static_library' target (which directs gyp to compile sources into
a static library). The dependencies to the action are updated to the
minimum required for sane re-building.

The everything gyp target now depends on the skiaserve gyp target.
This means that when using skia_build_server=1, building 'most' will
build skiaserve, but when skia_build_server is not defined the
skiaserve target will still be available if specified manually.

The old json.gyp is removed as it currently does not build anything.
All of the files currently referenced by it as sources no longer exist.

Review URL: https://codereview.chromium.org/1775203002
2016-03-09 07:42:54 -08:00
bsalomon
f98bc6d618 Use installed vulkan SDK and remove checked in SDK
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1761643002

Review URL: https://codereview.chromium.org/1761643002
2016-03-03 16:38:22 -08:00
bsalomon
de7bbab699 Pull and build shaderc rather than use checked in lib/header
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1760493003

Committed: https://skia.googlesource.com/skia/+/7d4490ecfa4d974003f675ef004e77f85ecfadd2

Review URL: https://codereview.chromium.org/1760493003
2016-03-03 15:43:04 -08:00
Eric Boren
b5f0d40935 Revert "Pull and build shaderc rather than use checked in lib/header"
This reverts commit 7d4490ecfa.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1757253002

Review URL: https://codereview.chromium.org/1757253002 .
2016-03-03 08:01:33 -05:00
bsalomon
7d4490ecfa Pull and build shaderc rather than use checked in lib/header
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1760493003

Review URL: https://codereview.chromium.org/1760493003
2016-03-02 15:59:24 -08:00
Greg Daniel
2d07b76405 Update shaderc lib and use single combined lib
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1737653002
R=jvanverth@google.com

Review URL: https://codereview.chromium.org/1737653002
2016-02-25 09:47:33 -05:00
Greg Daniel
164a9f061c Add vulkan files into skia repo. This is an incomplete backend with only partial functionality at this time.
R=robertphillips@google.com
TBR=bsalomon@google.com

BUG=skia:4955
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1718693002

Committed: https://skia.googlesource.com/skia/+/48cf268defad66f58f1aa03b4835e5583be96b2f

Review URL: https://codereview.chromium.org/1718693002
2016-02-22 09:56:40 -05:00
egdaniel
ad3a13c4c3 Revert of Add vulkan files into skia repo. (patchset #2 id:20001 of https://codereview.chromium.org/1718693002/ )
Reason for revert:
breaking builds

Original issue's description:
> Add vulkan files into skia repo. This is an incomplete backend with only partial functionality at this time.
>
> R=robertphillips@google.com
> TBR=bsalomon@google.com
>
> BUG=skia:4955
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1718693002
>
> Committed: https://skia.googlesource.com/skia/+/48cf268defad66f58f1aa03b4835e5583be96b2f

TBR=robertphillips@google.com,bsalomon@google.com,jvanverth@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4955

Review URL: https://codereview.chromium.org/1723503002
2016-02-22 06:17:53 -08:00
Greg Daniel
48cf268def Add vulkan files into skia repo. This is an incomplete backend with only partial functionality at this time.
R=robertphillips@google.com
TBR=bsalomon@google.com

BUG=skia:4955
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1718693002

Review URL: https://codereview.chromium.org/1718693002
2016-02-22 09:11:32 -05:00
msarett
740668d907 Update libpng to 1.6.22beta
Intel SSE filter optimizations have been upstreamed.  Let's test on
the upstream version (which we can use in Android).

BUG=skia:4573
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1710083007

Review URL: https://codereview.chromium.org/1710083007
2016-02-19 11:14:43 -08:00
scroggo
77b798ce8e Update the version of libpng used by Skia tests
The version of libpng we were using has some security vulnerabilities.
Update to a newer version - 1.6.20 (047737496a/).

Update pnglibconf.h. The new version is a copy of the newer version of
the file, with our /* custom settings */ tacked onto the end. (The
custom settings are unchanged from the last version.)

Update the LICENSE. The new version is a copy of the LICENSE that
libpng now includes as a separate file.

Update the README file to reflect the change in source of the LICENSE
file.

BUG=skia:4573
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1453373003

Review URL: https://codereview.chromium.org/1453373003
2016-02-19 06:33:07 -08:00
mtklein
372d65cc6e sketch hooking into PNG_FILTER_OPTIMIZATIONS
Local timing says this 4-byte Paeth function takes about 0.3x the time the serial libpng code does, dropping from ~10 cycles per byte to ~2.9.

bpp=4 is mainly an easy demo.  This approach can work for any bpp up to 16, 1 pixel at a time, at roughly the same cost per pixel.  Doing more than 1 pixel at a time is a tricky math problem I have yet to attempt to solve.

Everything here can be trivially downgraded to MMX, supporting bpp up to 8.  It seems to be a little slower (~3.5 cycles per byte), but it would make the code compatible with every x86 that can still power on.

I've tried four approaches:
  - this way;
  - doing things naively in 16-bit;
  - a 16-bit version that requires division by 3 (i.e. mulhi_epu16(..., 0x5580) );
  - a mostly 8-bit version of the same.

They're all fine, but this one is consistently the fastest I've measured.
I'd be happy to settle on the naive 16-bit version too, which would have a very clear implementation that's only minorly slower than this version.  The other two are way more complicated, and would require us to draw some serious ASCII diagrams to explain.

I have learned that the .skp serialization tests (serialize-8888) have a nice side effect of testing the correctness of these filters!

(Since writing the description above, I've bumped things up to {Paeth,Sub,Avg} x { 3 bpp, 4 bpp }.)

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1573943002

Review URL: https://codereview.chromium.org/1573943002
2016-01-27 13:01:41 -08:00
joshualitt
8cc3f4e38f Build and link microhttpd from gyp
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1628363002

Review URL: https://codereview.chromium.org/1628363002
2016-01-25 10:50:04 -08:00
joshualitt
93eb4b97d4 Disable ES2 on Linux SDL
TBR=borenet@google.com
BUG=skia:4737
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1550123002

Review URL: https://codereview.chromium.org/1550123002
2015-12-28 08:44:27 -08:00
joshualitt
d0e1f80d04 Remove EGL_config from vb bot
TBR=borenet@google.com

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1540583003

Review URL: https://codereview.chromium.org/1540583003
2015-12-18 10:19:02 -08:00
bsalomon
54c6fe8519 Generate a table of config->glformat info. Precursor to lifting this to caps.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1527383003

Review URL: https://codereview.chromium.org/1527383003
2015-12-16 11:51:22 -08:00
joshualitt
dad57c8c48 bring up SDL on windows
BUG=skia:

patch from issue 1432353002 at patchset 1 (http://crrev.com/1432353002#ps1)

Review URL: https://codereview.chromium.org/1438003004
2015-11-11 13:17:06 -08:00
joshualitt
47fdae9807 Wire up SDL on mac
BUG=skia:

Review URL: https://codereview.chromium.org/1428633003
2015-11-09 12:30:05 -08:00
halcanary
6950de6c41 Comments Style: s/skbug.com/bug.skia.org/
DOCS_PREVIEW= https://skia.org/?cl=1432503003

Review URL: https://codereview.chromium.org/1432503003
2015-11-07 05:29:00 -08:00
Matt Sarett
1aaaba5216 Fix the build on Android devices 2015-11-06 15:19:24 -05:00
joshualitt
474a9ea051 Wire up SDL on Android
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/a4d3797c3b0f0cac8493c46cb334ca88a5d6ccf6

Review URL: https://codereview.chromium.org/1415453009
2015-11-05 11:49:35 -08:00
joshualitt
5d7a7fe563 Revert of Wire up SDL on Android (patchset #4 id:60001 of https://codereview.chromium.org/1415453009/ )
Reason for revert:
breaks appurify

Original issue's description:
> Wire up SDL on Android
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/a4d3797c3b0f0cac8493c46cb334ca88a5d6ccf6

TBR=bsalomon@google.com,robertphillips@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1410703009
2015-11-05 10:48:41 -08:00
joshualitt
a4d3797c3b Wire up SDL on Android
BUG=skia:

Review URL: https://codereview.chromium.org/1415453009
2015-11-05 08:35:31 -08:00
joshualitt
65d6fbb576 Create SDL backed SkOSWindow
BUG=skia:

Review URL: https://codereview.chromium.org/1413593007
2015-11-04 13:41:02 -08:00
joshualitt
cc92b4a7ec Initial gyp files for SDL
BUG=skia:

Review URL: https://codereview.chromium.org/1411033003
2015-10-29 07:09:53 -07:00
bungeman
13dd023882 Update Android FreeType version.
Update FreeType to a newer version. Because this caused issues in
finding the correct ftoptions.h and ftmodule.h [1], be sure to state
the ones we want explicitly.

This also add gzip.c which is needed for WOFF support [2].

[1] FreeType "Simplify header file hierarchy."
    fae382076409db198dfbff36ac4cbb97b05b30a1

[2] FreeType "[gzip] New function `FT_Gzip_Uncompress'."
    dc240524ff31891a442225430b28e9620c1fa89f

Review URL: https://codereview.chromium.org/833103004
2015-10-27 08:39:39 -07:00
mtklein
dcbaa8ab6d Revert of Depend on ETC1 via DEPS instead of a direct third_party checkin. (patchset #1 id:1 of https://codereview.chromium.org/1296253003/ )
Reason for revert:
This will make the google3 roll awkward.  Reverting.

Original issue's description:
> Depend on ETC1 via DEPS instead of a direct third_party checkin.
>
> Yes, this does mean we'll check out ~40M of code for 2 files...
>
> I think these trybots are moot... they gclient sync before patching.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/ca01d179347b5e848ded97c8228b79ffc6b5e7bf

TBR=robertphillips@google.com,djsollen@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1290913008
2015-08-17 11:15:00 -07:00
mtklein
ca01d17934 Depend on ETC1 via DEPS instead of a direct third_party checkin.
Yes, this does mean we'll check out ~40M of code for 2 files...

I think these trybots are moot... they gclient sync before patching.

BUG=skia:

Review URL: https://codereview.chromium.org/1296253003
2015-08-17 10:20:16 -07:00
msarett
340f3074b4 Fix webp compile warnings on windows
This fix was landed with:
https://codereview.chromium.org/1280073002/

The above CL was reverted due to an unrelated bug in libwebp.

The above CL contains multiple components, and I think that
reverting this part of the change was unintentional.

BUG=skia:

Review URL: https://codereview.chromium.org/1286903003
2015-08-17 07:49:38 -07:00
scroggo
0df0e43488 Revert of Update libwebp and resume testing scaled webp (patchset #2 id:20001 of https://codereview.chromium.org/1280073002/ )
Reason for revert:
Compile failures, e.g.

http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-Arm7-Debug-Android_NoNeon/builds/1427/steps/build%20most/logs/stdio

Original issue's description:
> Update libwebp and resume testing scaled webp
>
> libwebp has a fix for [1]. Update to the commit that contains the fix.
>
> Update libwebp.gypi, corresponding to libwebp's latest makefile.
>
> Turn back on DM testing for scaled webp, now that it should no longer
> use uninitialized memory.
>
> Fix a warning in config.h
>
> [1] https://code.google.com/p/webp/issues/detail?id=254
>
> BUG=skia:4038
>
> Committed: https://skia.googlesource.com/skia/+/0575d3e6c272744a66ab3281f9871366717df339

TBR=djsollen@google.com,msarett@google.com,scroggo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4038

Review URL: https://codereview.chromium.org/1278173004
2015-08-07 12:53:25 -07:00
scroggo
0575d3e6c2 Update libwebp and resume testing scaled webp
libwebp has a fix for [1]. Update to the commit that contains the fix.

Update libwebp.gypi, corresponding to libwebp's latest makefile.

Turn back on DM testing for scaled webp, now that it should no longer
use uninitialized memory.

Fix a warning in config.h

[1] https://code.google.com/p/webp/issues/detail?id=254

BUG=skia:4038

Review URL: https://codereview.chromium.org/1280073002
2015-08-07 12:49:16 -07:00
msarett
cf2a6a47e4 Reenable yasm for Android x86 and x86-64 on Linux host
It turns out that gyp (kind of) has support for cross
compiling with a different host and target.  We simply
need to specify CC_host and CC_target instead of CC.

Making this change allows us to compile yasm on a Linux
host for Android.

We run into problems on Mac because
the linker on a Mac host requires different command line
arguments than the linker on the Android target.  In
looking through the code for gyp itself and speaking to
Ben, it doesn't appear to me that gyp supports passing
different arguments to host and target linkers.

I would imagine that we would have similar problems on
Windows.

Below is a link to a CL that would fix this issue in gyp.
It looks like it has been dropped for a long time.
Thanks to Ben for this link!
https://chromiumcodereview.appspot.com/10795044/

Also I'm adding a link to the build instructions for Chrome
(thanks again Ben).  It looks like they only support
building for Android from Linux.
https://code.google.com/p/chromium/wiki/AndroidBuildInstructions

My next steps are:
1) Getting in touch with Torne or someone else with gyp to
see if people are aware of this issue or interested in
fixing it.
2) Deciding if skia should care about this issue.
3) Deciding if skia should work around this issue.

It'd be really great to hear your thoughts on (2) and (3).
My first thought is that we shouldn't care because, as
long as we always compile the production copy of skia for
Android on Linux, we will get the fast code.  Is this
a valid conclusion?  Is there a way to write Android apps
on Mac that accidentally use the slower code?

If we do care, there are workarounds:
For Mac, we can check in a yasm binary - it's a little
smaller than the one I am deleting in this CL :-/
For Windows, we *might* be able to use the yasm.exe binary
already in externals (we get this from DEPS because this is
how chromium uses yasm on Windows).
Are there other platforms that we care about?

Let me know what you think!

BUG=skia:4028
DOCS_PREVIEW= https://skia.org/?cl=1239333002

Review URL: https://codereview.chromium.org/1239333002
2015-07-21 12:01:48 -07:00
scroggo
139491fbaa Use the upstream version of libwebp, v0.4.3.
DEPS:
Update to pull v0.4.3 of libwebp from upstream

gyp/libwebp.gyp:
Add new files, as referenced by the gyp file used by Chromium.

resource/tests:
Add regression tests for particular images.

BUG=skia:3442
BUG=skia:3315
BUG=skia:3429

Committed: https://skia.googlesource.com/skia/+/3aa0fb4d80c76b559ff4b82d5e569993aea06da1

Review URL: https://codereview.chromium.org/1178013008
2015-07-10 09:32:09 -07:00
msarett
1c8a587120 Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5

Committed: https://skia.googlesource.com/skia/+/e9e3ee33f30c14c31afd5fc3fe4dda7f15783c75

Committed: https://skia.googlesource.com/skia/+/40141b57f061fbfcc2fa38da942d9efe25aca4d0

Review URL: https://codereview.chromium.org/1180983002
2015-07-07 08:50:01 -07:00
jvanverth
94a2fbc6cf Revert of Switch SkJpegCode to libjpeg-turbo (patchset #29 id:750001 of https://codereview.chromium.org/1180983002/)
Reason for revert:
DEPS roll failing

Original issue's description:
> Add libjpeg-turbo library (depends on yasm)
> Mangle external function names to avoid conflict with libjpeg
> Take advantage of direct color conversion (RGBA, BGRA, 565)
> Prepare to use jpeg_skip_scanlines (when it is upstreamed)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d
>
> Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5
>
> Committed: https://skia.googlesource.com/skia/+/e9e3ee33f30c14c31afd5fc3fe4dda7f15783c75
>
> Committed: https://skia.googlesource.com/skia/+/40141b57f061fbfcc2fa38da942d9efe25aca4d0

TBR=scroggo@google.com,djsollen@google.com,emmaleer@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1226543003
2015-07-02 10:40:24 -07:00
msarett
40141b57f0 Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5

Committed: https://skia.googlesource.com/skia/+/e9e3ee33f30c14c31afd5fc3fe4dda7f15783c75

Review URL: https://codereview.chromium.org/1180983002
2015-07-01 14:41:02 -07:00
msarett
aa2a7de0ff Revert of Switch SkJpegCode to libjpeg-turbo (patchset #28 id:710001 of https://codereview.chromium.org/1180983002/)
Reason for revert:
Broke iOS build.

Original issue's description:
> Add libjpeg-turbo library (depends on yasm)
> Mangle external function names to avoid conflict with libjpeg
> Take advantage of direct color conversion (RGBA, BGRA, 565)
> Prepare to use jpeg_skip_scanlines (when it is upstreamed)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d
>
> Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5
>
> Committed: https://skia.googlesource.com/skia/+/e9e3ee33f30c14c31afd5fc3fe4dda7f15783c75

TBR=scroggo@google.com,djsollen@google.com,emmaleer@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1213093003
2015-07-01 13:11:08 -07:00
msarett
e9e3ee33f3 Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5

Review URL: https://codereview.chromium.org/1180983002
2015-07-01 12:36:18 -07:00
msarett
f657b1093e Revert of Switch SkJpegCode to libjpeg-turbo (patchset #25 id:680001 of https://codereview.chromium.org/1180983002/)
Reason for revert:
yasm is leaking memory :(.

https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN/builds/926/steps/build%20dm/logs/stdio

Original issue's description:
> Add libjpeg-turbo library (depends on yasm)
> Mangle external function names to avoid conflict with libjpeg
> Take advantage of direct color conversion (RGBA, BGRA, 565)
> Prepare to use jpeg_skip_scanlines (when it is upstreamed)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d
>
> Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5

TBR=scroggo@google.com,djsollen@google.com,emmaleer@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1214023003
2015-06-29 10:30:59 -07:00
msarett
f8bf9181d7 Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

Review URL: https://codereview.chromium.org/1180983002
2015-06-29 10:14:11 -07:00
Matt Sarett
146a4ba336 Adding binary for yasm on x86 android devices 2015-06-29 12:50:38 -04:00
mtklein
c0bdecb920 Revert of Switch SkJpegCode to libjpeg-turbo (patchset #11 id:540001 of https://codereview.chromium.org/1180983002/)
Reason for revert:
https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Ubuntu-GCC-MipsDSP2-Debug-Android/builds/1136/steps/build%20most/logs/stdio

Original issue's description:
> Add libjpeg-turbo library (depends on yasm)
> Mangle external function names to avoid conflict with libjpeg
> Take advantage of direct color conversion (RGBA, BGRA, 565)
> Prepare to use jpeg_skip_scanlines (when it is upstreamed)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

TBR=scroggo@google.com,djsollen@google.com,emmaleer@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1199253006
2015-06-24 15:14:48 -07:00
msarett
b60c3f8291 Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

Review URL: https://codereview.chromium.org/1180983002
2015-06-24 15:10:25 -07:00
djsollen
b2a6fe7976 Enable both static and dynamically linked libpng
All platforms except android are configured to use the statically linked copy
of libpng. Android uses the system provided dynamic copy for SkImageDecoder
and the static copy for SkCodec. The exception being android framework builds
that currently use the dynamic copy everywhere.

This CL also enables NEON optimizations for libpng.

Review URL: https://codereview.chromium.org/1058823002
2015-04-03 12:35:27 -07:00
djsollen
1865900525 Revert of Enable both static and dynamically linked libpng (patchset #4 id:60001 of https://codereview.chromium.org/1032253003/)
Reason for revert:
breaking the nexus_9 and ios builds.

Original issue's description:
> Enable both static and dynamically linked libpng
>
> All platforms except android are configured to use the statically linked copy of libpng.  Android uses the system provided dynamic copy for SkImageDecoder and the static copy for SkCodec. The exception being android framework builds that currently use the dynamic copy everywhere.
>
> This CL also enables NEON optimizations for libpng.
>
> Committed: https://skia.googlesource.com/skia/+/2469c999518e7b0063d35e9e2eb074a0477c21ac

TBR=scroggo@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1050183002
2015-04-01 11:20:12 -07:00
djsollen
2469c99951 Enable both static and dynamically linked libpng
All platforms except android are configured to use the statically linked copy of libpng.  Android uses the system provided dynamic copy for SkImageDecoder and the static copy for SkCodec. The exception being android framework builds that currently use the dynamic copy everywhere.

This CL also enables NEON optimizations for libpng.

Review URL: https://codereview.chromium.org/1032253003
2015-04-01 10:33:55 -07:00
msarett
8c8f22a3bb Creating a new wrapper for gif decoder
BUG=skia:3257
BUG=skia:3534

Review URL: https://codereview.chromium.org/1022673011
2015-04-01 06:58:48 -07:00
egdaniel
d588c01c7e Housekeeping to rename GrGL compressed texture formats to match GL specs
BUG=skia:

Review URL: https://codereview.chromium.org/1035243002
2015-03-27 12:22:10 -07:00
scroggo
f24f2247c2 Add SkCodec, including PNG implementation.
DM:
Add a flag to use SkCodec instead of SkImageDecoder.

SkCodec:
Base class for codecs, allowing creation from an SkStream or an SkData.
An SkCodec, on creation, knows properties of the data like its width and height. Further calls can be used to generate the image.
TODO: Add scanline iterator

SkPngCodec:
New decoder for png. Wraps libpng. The code has been repurposed from SkImageDecoder_libpng.
TODO: Handle other destination colortypes
TODO: Substitute the transpose color
TODO: Allow silencing warnings
TODO: Use RGB instead of filler?
TODO: sRGB

SkSwizzler:
Simplified version of SkScaledSampler. Unlike the sampler, this object does no sampling.
TODO: Implement other swizzles.

Requires a gclient sync to pull down libpng.

BUG=skia:3257

Committed: https://skia.googlesource.com/skia/+/ca358852b4fed656d11107b2aaf28318a4518b49
(and then reverted)

Review URL: https://codereview.chromium.org/930283002
2015-03-03 08:59:20 -08:00
scroggo
3da9181cd5 On windows, build zlib as a static library.
Partially in preparation for building libpng on Windows.

Also, this makes us consistent across platforms for PDF.

Uses the version of zlib checked into the Chromium tree.

Remove miniz, which is replaced by zlib.

Review URL: https://codereview.chromium.org/966963002
2015-03-02 06:24:15 -08:00
mtklein
e6cf9cb685 miniz support in SkFlate / PDF
- Adds miniz.c v115_r4 (latest release) to third_party.
   - Merges SkDeflateWStream into SkFlate so including "miniz.c" links
     without duplicating symbols.

The only interesting code change I've made is to remove the line
     fImpl->fZStream.data_type = Z_BINARY;
from SkDeflateWStream::SkDeflateWStream().  miniz doesn't have Z_BINARY
defined, and as far as I can tell, both zlib and miniz ignore data_type.

We should be able to swap skflate.gyp's dependency between zlib.gyp:zlib and
zlib.gyp:miniz at will (except of course on Windows) if we're interested in
zlib itself.  I've left android framework on its own zlib.  I think this all
means we can stop defining SK_NO_FLATE on Windows.

I'll leave the possible cleanup of SK_NO_FLATE itself for another time.  Might
be we always want to keep this dependency optional.

CQ_EXTRA_TRYBOTS=client.skia:Test-Win8-ShuttleA-HD7770-x86-Debug-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/957323003
2015-02-26 13:25:05 -08:00
bsalomon
fbaace0827 DM warning-free on win64
Review URL: https://codereview.chromium.org/805543002
2014-12-12 16:41:46 -08:00
bsalomon
49f085dddf "NULL !=" = NULL
R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/544233002
2014-09-05 13:34:00 -07:00
djsollen
6b0d6b43cf Fail gracefully for KTX files with width or height of zero.
R=robertphillips@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/514603003
2014-08-27 08:00:09 -07:00
krajcevski
95b1b3d82d Add astcbitmap to gm slides.
Add additional ASTC formats.
Add astc image decoder files.

R=reed@google.com, robertphillips@google.com, halcanary@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/444093002
2014-08-07 12:58:38 -07:00
krajcevski
7b62448065 Revert of - Add astcbitmap to gm slides (https://codereview.chromium.org/444093002/)
Reason for revert:
Breaking DM

Original issue's description:
> - Add astcbitmap to gm slides
> - Add additional ASTC formats
> - Add astc image decoder files
>
> Committed: https://skia.googlesource.com/skia/+/2fc05823fed4b9649338f3029cd1ba05ef49a02f

R=reed@google.com, robertphillips@google.com, halcanary@google.com
TBR=halcanary@google.com, reed@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/447343002
2014-08-07 11:33:59 -07:00
krajcevski
2fc05823fe - Add astcbitmap to gm slides
- Add additional ASTC formats
- Add astc image decoder files

R=reed@google.com, robertphillips@google.com, halcanary@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/444093002
2014-08-07 11:18:09 -07:00
krajcevski
40a1e11ebe Add support for all compressed formats in KTX file format
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/440783004
2014-08-05 14:13:36 -07:00
Mike Klein
15840a2e84 Delete third_party/harfbuzz
BUG=skia:
R=bungeman@google.com, reed@google.com

Review URL: https://codereview.chromium.org/384503008
2014-07-10 11:32:44 -04:00
reed
c3b3266b7d hide SkBitmap::Config entirely (behind a flag)
patch from issue 339463002

TBR=

I think the NoGPU failure is unrelated, so ignoring
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/340533002
2014-06-17 08:38:31 -07:00
krajcevski
c250d2e4ab Initial KTX encoder
The encoder comes with tests to check that the encoding/decoding
operations between ETC encoded bitmaps and ARGB bitmaps are sane.

R=bsalomon@google.com, robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/312353003
2014-06-06 06:16:28 -07:00
krajcevski
99ffe24200 Initial KTX file decoder
R=bsalomon@google.com, robertphillips@google.com, halcanary@google.com, reed@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/302333002
2014-06-03 13:04:35 -07:00
robertphillips
8a35140f3f Add LICENSE & README.google files to third_party/etc1
R=djsollen@google.com, krajcevski@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/309343004
2014-06-03 12:31:09 -07:00
robertphillips@google.com
8cf81e0f4f Simple PKM image decoder.
https://codereview.chromium.org/292663011/



git-svn-id: http://skia.googlecode.com/svn/trunk@14852 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 18:40:29 +00:00
commit-bot@chromium.org
3056bdd236 Since we're only using it on Linux now, just require poppler as a system dependency.
The Ubuntu package needed is libpoppler-cpp-dev.

iconv and fontconfig were only used as Poppler dependencies.  bson_c is also unused.

BUG=skia:
R=reed@google.com, rmistry@google.com, borenet@google.com, halcanary@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/294683003

git-svn-id: http://skia.googlecode.com/svn/trunk@14802 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-20 15:07:53 +00:00
robertphillips@google.com
53ba425c91 Drop executable flag from headers so that they can be packaged
https://codereview.chromium.org/194883004/



git-svn-id: http://skia.googlecode.com/svn/trunk@13746 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 19:55:51 +00:00
commit-bot@chromium.org
8065ec50f1 Add new module for distance field generation.
This improves the speed over the previous method by 10x+, and makes using distance fields practical.

BUG=skia:2173

Committed: http://code.google.com/p/skia/source/detail?r=13729

R=bsalomon@google.com, robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/178543007

git-svn-id: http://skia.googlecode.com/svn/trunk@13740 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 15:57:40 +00:00
commit-bot@chromium.org
b5f3b35645 Revert of Add new module for distance field generation. (https://codereview.chromium.org/178543007/)
Reason for revert:
multiple compile errors

Original issue's description:
> Add new module for distance field generation.
>
> This improves the speed over the previous method by 10x+, and makes using distance fields practical.
>
> BUG=skia:2173
>
> Committed: http://code.google.com/p/skia/source/detail?r=13729

R=bsalomon@google.com, robertphillips@google.com, jvanverth@google.com
TBR=bsalomon@google.com, jvanverth@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2173

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/190753015

git-svn-id: http://skia.googlecode.com/svn/trunk@13732 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 20:37:54 +00:00
commit-bot@chromium.org
bf99824083 Add new module for distance field generation.
This improves the speed over the previous method by 10x+, and makes using distance fields practical.

BUG=skia:2173
R=bsalomon@google.com, robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/178543007

git-svn-id: http://skia.googlecode.com/svn/trunk@13729 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 19:38:51 +00:00
commit-bot@chromium.org
fa190be48a Roll fontconfig to 2.11.0 and reenable poppler on mac
R=mtklein@google.com, epoger@google.com

Author: vandebo@chromium.org

Review URL: https://codereview.chromium.org/138843002

git-svn-id: http://skia.googlecode.com/svn/trunk@13091 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-15 17:24:22 +00:00
commit-bot@chromium.org
83f56922e2 Fix Mac fontconfig build (try 2)
The Mac fontconfig just #defines the cache directory, which works fine if fontconfig never has to look up any fonts (the case until now). If it has to actually find fonts from the disk, the cache directory and config directory need to be properly defined as well as running fc-cache to populate the cache directory.

Populating the cache directory can take some time, but should only happen on a clean build. To remove this extra time, we have to not build poppler on Mac, which can now be accomplished with GYP_DEFINES="skia_mac_poppler=0"

R=epoger@google.com

Author: vandebo@chromium.org

Review URL: https://codereview.chromium.org/132333002

git-svn-id: http://skia.googlecode.com/svn/trunk@13007 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-09 22:54:26 +00:00
commit-bot@chromium.org
32eea431de Revert of https://codereview.chromium.org/113203003/
Reason for revert: Broken under XCode.

R=bungeman@google.com, epoger@google.com
TBR=bungeman@google.com, epoger@google.com
NOTREECHECKS=true
NOTRY=true

Author: vandebo@chromium.org

Review URL: https://codereview.chromium.org/132093003

git-svn-id: http://skia.googlecode.com/svn/trunk@12997 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-09 17:52:54 +00:00
commit-bot@chromium.org
9a907fa0d3 Fix Mac fontconfig build
The Mac fontconfig just #defines the cache directory, which works fine if fontconfig never has to look up any fonts (the case until now).  If it has to actually find fonts from the disk, the cache directory and config directory need to be properly defined as well as running fc-cache to populate the cache directory.

Populating the cache directory can take some time, but should only happen on a clean build.  To remove this extra time, we have to not build poppler on Mac, which can now be accomplished with GYP_DEFINES="skia_mac_poppler=0"

R=bungeman@google.com, epoger@google.com

Author: vandebo@chromium.org

Review URL: https://codereview.chromium.org/113203003

git-svn-id: http://skia.googlecode.com/svn/trunk@12994 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-09 17:37:38 +00:00
commit-bot@chromium.org
611fde182a Remove the comments settings for vim tab width and expansion variables.
These add unnecessary bloat for everyone to carry around, so we just
remove them now.

The same change was made in chromium by Tony in
http://codereview.chromium.org/7310019 - crrev.com/92046

BUG=None
TEST=./gyp_skia
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/92673003

git-svn-id: http://skia.googlecode.com/svn/trunk@12443 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 22:23:03 +00:00
jvanverth@google.com
d830d13c27 Hook in rough distance field support for fonts
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/41213003

git-svn-id: http://skia.googlecode.com/svn/trunk@12229 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-11 20:54:09 +00:00
commit-bot@chromium.org
327c081e4b Add libpoppler for PDF rendering, take 2
R=vandebo@chromium.org, edisonn@google.com

Author: richardlin@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23301009

git-svn-id: http://skia.googlecode.com/svn/trunk@10833 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-20 18:57:01 +00:00
vandebo@chromium.org
54c538e9a5 Revert "The CL adds libpoppler to DEPS and adds a libpoppler-cpp gyp target for Linux, Windows, and Mac. This does not currently change the GM tool to use poppler - that will be a refactor job in a separate CL."
This reverts commit r10823
TBR=richardlin@chromium.org

Review URL: https://codereview.chromium.org/23190020

git-svn-id: http://skia.googlecode.com/svn/trunk@10828 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-20 17:06:22 +00:00
commit-bot@chromium.org
85e9db0347 The CL adds libpoppler to DEPS and adds a libpoppler-cpp gyp target for Linux, Windows, and Mac. This does not currently change the GM tool to use poppler - that will be a refactor job in a separate CL.
Several third-party libraries are pulled in, and platform-specific headers are included under third_party/(library name). Chromium style READMEs containing a description of the library, as well as a LICENSE file are also included in that directory. (is there a Skia-specific style for these?)

R=vandebo@chromium.org, edisonn@google.com, djsollen@chromium.org, bungeman@chromium.org, open-source-third-party-reviews@google.com, thestig@chromium.org

Author: richardlin@chromium.org

Review URL: https://chromiumcodereview.appspot.com/20220002

git-svn-id: http://skia.googlecode.com/svn/trunk@10823 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-20 16:34:34 +00:00
djsollen@google.com
bcc6d7d390 Update freetype to version 2.5.0.1 when building it from source.
R=bungeman@google.com

Review URL: https://codereview.chromium.org/19625006

git-svn-id: http://skia.googlecode.com/svn/trunk@10273 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-23 15:51:12 +00:00
djsollen@google.com
2e767c35ca Update freetype DEPS to version 2.5 with PNG encoded color bitmap glyphs
R=bungeman@google.com

Review URL: https://codereview.chromium.org/19931003

git-svn-id: http://skia.googlecode.com/svn/trunk@10259 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-23 12:22:11 +00:00
djsollen@google.com
fbe03bcdec Remove svn:externals and update the README.
git-svn-id: http://skia.googlecode.com/svn/trunk@9529 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-12 14:57:33 +00:00
reed@google.com
dff7e11c20 add SkLuaCanvas
add lua 5.2 to third_party

BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/14907017

git-svn-id: http://skia.googlecode.com/svn/trunk@9149 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-15 19:34:20 +00:00
djsollen@google.com
b2c16472f6 Add BSON implementation to third_party
Review URL: https://codereview.appspot.com/6267044

git-svn-id: http://skia.googlecode.com/svn/trunk@4252 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-13 18:22:09 +00:00
bsalomon@google.com
7ffe6810c6 Remove tesselated path renderer and supporting code, glu, and libtess target
Review URL: http://codereview.appspot.com/6197075/



git-svn-id: http://skia.googlecode.com/svn/trunk@3912 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-11 17:32:43 +00:00
robertphillips@google.com
05141c23ed Fixed minor c++ issues found by cppcheck
http://codereview.appspot.com/6127049/



git-svn-id: http://skia.googlecode.com/svn/trunk@3771 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-27 12:54:01 +00:00
robertphillips@google.com
d3b9fbbc48 Code changes for ANGLE GL interface. .gyp file changes will be delivered later.
http://codereview.appspot.com/5940046/



git-svn-id: http://skia.googlecode.com/svn/trunk@3519 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-28 16:19:11 +00:00
senorblanco@chromium.org
7288c49cf2 Fix a warning in libtess in Release builds; define NDEBUG in Release on all
platforms.

BUG:  http://code.google.com/p/skia/issues/detail?id=456
Review URL:  http://codereview.appspot.com/5555054/



git-svn-id: http://skia.googlecode.com/svn/trunk@3076 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-19 19:59:22 +00:00
senorblanco@chromium.org
5ed23dee37 [Committed on behalf of scottmg@chromium.org]
Rename all __gl_ functions to Sk__gl_ to avoid conflicting with other copies
of libtess that might be statically linked by Skia clients (done via
gluos.h, rather than touching source directly).

Specfically, this is required to enable incremental linking on Windows builds
of Chromium because WebKit has a copy of libtess also.

http://code.google.com/p/chromium/issues/detail?id=92172
http://code.google.com/p/skia/issues/detail?id=338

Review URL:  http://codereview.appspot.com/4853046/



git-svn-id: http://skia.googlecode.com/svn/trunk@2095 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-08-10 17:49:41 +00:00
epoger@google.com
b1b721a7b6 remove libpng and zlib from third_party
http://codereview.appspot.com/4571077



git-svn-id: http://skia.googlecode.com/svn/trunk@1609 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-16 12:27:14 +00:00
epoger@google.com
25e92838a9 fix gm on Mac, and Linux buildbot build, by adding zlib source to third_party
http://codereview.appspot.com/4620047/

I will try to find a better way to keep all this working (remove zlib and
libpng from third_party)



git-svn-id: http://skia.googlecode.com/svn/trunk@1595 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-15 16:05:37 +00:00
epoger@google.com
38a9134dbc add libpng source to repo and make Unix build use it
http://codereview.appspot.com/4572067



git-svn-id: http://skia.googlecode.com/svn/trunk@1591 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-15 13:45:10 +00:00
epoger@google.com
353c252a2f delete manually-imported Gyp source
see http://codereview.appspot.com/4610045



git-svn-id: http://skia.googlecode.com/svn/trunk@1580 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-14 17:57:16 +00:00
epoger@google.com
8cdb78c4fd set externals/gyp dependency to same version as manually imported gyp code
git-svn-id: http://skia.googlecode.com/svn/trunk@1571 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-13 18:45:15 +00:00
epoger@google.com
cc9cf9ac6e Modify DEPS so that it works properly for the buildbot
git-svn-id: http://skia.googlecode.com/svn/trunk@1570 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-13 18:08:41 +00:00
epoger@google.com
e7ccdb3bef revert to manually imported gyp source (from SVN externals)
git-svn-id: http://skia.googlecode.com/svn/trunk@1541 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-08 15:34:21 +00:00
epoger@google.com
f01b7cb8d8 Add third_party/externals dir that brings in gyp
git-svn-id: http://skia.googlecode.com/svn/trunk@1505 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-03 21:19:27 +00:00
epoger@google.com
1bc8f60e5b Put back our old gyp dir
git-svn-id: http://skia.googlecode.com/svn/trunk@1504 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-03 21:00:42 +00:00
epoger@google.com
3a09e62d85 Move third_party/gyp to third_party/gyp-old in anticipation of replacement
git-svn-id: http://skia.googlecode.com/svn/trunk@1501 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-03 20:54:08 +00:00
senorblanco@chromium.org
e6ff8ab743 Rename some global symbols defined by glu's libtess which conflict with the
WebKit implementation.  #define them with a prefix, as we did with the main
entry points.

Review URL:  http://codereview.appspot.com/4551079/



git-svn-id: http://skia.googlecode.com/svn/trunk@1457 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-31 21:15:10 +00:00
senorblanco@chromium.org
1fa803d6b4 Rename glu libtess symbols. When enabled in WebKit, the internal_glu libtess
symbols in skia will collide with the same internal_ implementation in WebKit.
Rename the glu entry points with an Sk_ prefix instead.  Also, unfork the
changes to the libtess source as much as possible (the same as was done in
http://trac.webkit.org/changeset/87178).

Review URL:  http://codereview.appspot.com/4536080/



git-svn-id: http://skia.googlecode.com/svn/trunk@1419 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-25 14:46:17 +00:00
bsalomon@google.com
30ca0a69e6 Add pdf to skia.gyp and checkin a snap of GYP.
Review URL: http://codereview.appspot.com/4307050/



git-svn-id: http://skia.googlecode.com/svn/trunk@1029 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-30 22:04:53 +00:00
senorblanco@chromium.org
7eb492e839 Add the GLU tesselator source files to third_party. Add a libtess static
library build target to the .gyp file (not required by any executable yet).  Fix
some build errors with SampleApp on Linux and Win32.  Add a gyp_skia python
script which invokes gyp with the correct arguments, and is recursively callable
by the Makefile when skia.gyp is changed.

Review URL:  http://codereview.appspot.com/4280069/



git-svn-id: http://skia.googlecode.com/svn/trunk@1007 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-25 17:41:34 +00:00
reed@android.com
5469607a00 add
git-svn-id: http://skia.googlecode.com/svn/trunk@536 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-04-08 18:48:12 +00:00