Commit Graph

79 Commits

Author SHA1 Message Date
Kevin Lubick
a1a4d82314 [canvaskit] Use skia's version of png and zlib
Change-Id: I730936cf91776451f7ba2657e5d07b20837e2dee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247297
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-10-28 16:27:53 +00:00
Kevin Lubick
2d6d34ec19 [canvaskit] Use newer freetype
This new freetype lets us have emojis and brings in years
worth of bug fixes from the ancient version shipped in
the emscripten-ports

Change-Id: I0b8779dba3341a3ef73c715fde2e5fb37e45126a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247296
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-10-28 15:15:39 +00:00
Hal Canary
e054d3cf3d CanvasKit: Switch to WebGL 2.0
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-EMCC-GCE-GPU-AVX2-wasm-Release-All-CanvasKit,Test-Debian9-EMCC-GCE-CPU-AVX2-wasm-Release-All-CanvasKit

Bug: skia:9052
Change-Id: I444031276aea90d82f289b16ba6cd36de5192abd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248927
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-10-16 18:45:46 +00:00
Hal Canary
ebc89c1a7d canvaskit: add helpful message to compile.sh
Change-Id: I48a48c8d2f3853fd948cadfc7cc93f41d72e2ea2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248800
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-10-16 13:47:14 +00:00
Kevin Lubick
e27a503a0a [canvaskit] Clean up embedded fonts
See https://groups.google.com/forum/#!topic/skia-discuss/J2XT7XjmFtI

Change-Id: I73614208d26536924bc3ed3385c1cd3c490ef8a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247098
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-10-09 14:51:39 +00:00
Kevin Lubick
6d0d5a7f60 [canvaskit] Speculative fix for external wasm library
See https://groups.google.com/forum/#!topic/skia-discuss/J2XT7XjmFtI

Change-Id: I4daabc160e9f5b09d4233bcaf24661c8473c0d07
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246080
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-10-03 19:01:27 +00:00
Kevin Lubick
369f6a5ea2 [canvaskit] Initial addition of SkParagraph
There are more parts of ParagraphStyle and TextStyle, but
this should be a bulk of the components.

Bug: skia:9469
Change-Id: I87fff6700f41cff49ecbee3a1339e84c36699c93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244837
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2019-10-03 18:04:55 +00:00
Kevin Lubick
61887c7b88 [canvaskit] Create SkFontMgr from passed in data
This repurposes much of our embedded SkFontMgr code
to take in data directly instead of from compiled-in
variables.

Also makes no_font and no_embedded_font work better.

Bug: skia:9469
Change-Id: Ibde49c9a448cfca79c5712aa9abbe15997a163d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244510
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-09-26 19:27:12 +00:00
Shachar Langbeheim
497365778e Compile CanvasKit without -fPIC, for latest emscripten compatibility.
Due to an issue in emscripten's latest-upstream compiler (link below),
Skia's libraries can't be built using -fPIC. This change allows users
to opt-out of using -fPIC during compilation, and sets compile.sh to
opt-out accordingly.
https://github.com/emscripten-core/emscripten/issues/8995
https://github.com/emscripten-core/emscripten/issues/9317

Change-Id: I25b6e185b58ab1ba8263f2e2f450591f6025f62c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/243317
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-09-24 20:19:02 +00:00
Shachar Langbeheim
ebe48959ee compile.sh: Use emar in order to bundle libraries.
This is necessary in order to use emscripten's new compiler, as
described here:
https://bit.ly/2ZlwQmz

Change-Id: I66e0a6e4e403b7a9ba94860ea9cc7e53027d6f46
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/237396
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-08-27 13:33:20 +00:00
Florin Malita
8828a731d8 Revert "[canvaskit] Optimize CK builds for size"
This reverts commit a3094a55fe.

Reason for revert: significant slowdown, perf bot timing out.

Original change's description:
> [canvaskit] Optimize CK builds for size
> 
>   canvaskit.wasm:   6855515 -> 5445330
>   canvaskit.wasm.gz 2554712 -> 2189897
> 
> Change-Id: I9749cf8dc66e08eb95c2f996d5b631d5fcdff342
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/229078
> Reviewed-by: Mike Klein <mtklein@google.com>
> Reviewed-by: Kevin Lubick <kjlubick@google.com>
> Commit-Queue: Florin Malita <fmalita@chromium.org>

TBR=mtklein@google.com,kjlubick@google.com,fmalita@chromium.org

Change-Id: I34569bdc935b9e73b6e916fe029b871fb86ebb3b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/236496
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-08-22 20:09:38 +00:00
Florin Malita
a3094a55fe [canvaskit] Optimize CK builds for size
canvaskit.wasm:   6855515 -> 5445330
  canvaskit.wasm.gz 2554712 -> 2189897

Change-Id: I9749cf8dc66e08eb95c2f996d5b631d5fcdff342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/229078
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-08-22 17:45:09 +00:00
Brian Osman
badfe7a43e Enable SkSL interpreter in CanvasKit to get particles working again
Change-Id: I24a9aa04c423cc92204a9b2eb9dca9e61a1ee639
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/236336
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-08-22 14:45:59 +00:00
Mike Klein
df54f37a5d remove SkPicture_none.cpp
I happened to notice that SkPicture_none.cpp no longer compiles.

    ...
    src/core/SkPicture_none.cpp:101:44: error: out-of-line definition of
    'CreateProc' does not match any declaration in 'SkPictureImageFilter'
    sk_sp<SkFlattenable> SkPictureImageFilter::CreateProc(SkReadBuffer& buffer) {
    ...

This leads me to conclude that it cannot be in active use.

Change-Id: I92a4daa3c7d5d7889c4f841b578c9c691525c1cc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/235216
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-08-16 14:52:25 +00:00
Shachar Langbeheim
87cef069ca Allow compilation without embedded font but with font manager
Change-Id: Ib21ec28d7d2051bc19c07294b37034f44af47004
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/232856
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2019-08-06 19:53:30 +00:00
Mike Klein
c0bd9f9fe5 rewrite includes to not need so much -Ifoo
Current strategy: everything from the top

Things to look at first are the manual changes:

   - added tools/rewrite_includes.py
   - removed -Idirectives from BUILD.gn
   - various compile.sh simplifications
   - tweak tools/embed_resources.py
   - update gn/find_headers.py to write paths from the top
   - update gn/gn_to_bp.py SkUserConfig.h layout
     so that #include "include/config/SkUserConfig.h" always
     gets the header we want.

No-Presubmit: true
Change-Id: I73a4b181654e0e38d229bc456c0d0854bae3363e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209706
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-04-24 16:27:11 +00:00
Mike Klein
ba201aea74 make -Werror or /WX optional, off by default
Most external users complain about -Werror,
and I've heard anecdotally that devs find it annoying too.

This turns it off by default, but keeps it on the bots.

Change-Id: I6e87c92215261ebf6e961f816177386d5d58f28e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209787
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-04-23 20:39:34 +00:00
Brian Osman
c3186302bd Add skcms directory to public includes
skcms is part of Skia's public API now. This attempts to recognize that,
and pave the way for moving the header to another location more easily
in a follow up CL, or - at a minimum - for clients that redistribute
Skia as a library + includes to relocate the skcms.h header as part of
that.

Change-Id: I15da63b0d4ab8916a71fb7e6ab3656db87252707
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209640
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-04-22 20:32:23 +00:00
Kevin Lubick
0e3342cfcd WASM build cleanups
Fix debugger includes (broke on https://skia-review.googlesource.com/c/skia/+/208226)

Fix canvaskit building w/o fonts

Change-Id: I1279d92ee1ac749a974830e75b41e97e9f75f578
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208515
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
2019-04-16 17:48:53 +00:00
Kevin Lubick
cc13fd3d6c [CanvasKit] Add basic support for SkPicture
Can dump SkPicture to an skp, but only for debugging purposes
(no deserialization).

Bug: skia:
Change-Id: I37f3c4dcfdd70b665748773ee6b5135329c6240a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/206262
Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-04-05 17:14:55 +00:00
Kevin Lubick
a064c2812e [canvaskit] Make SkImageShader from SkImage
This removes a few src/ includes as well, to avoid using private
implementations like we did.

Change-Id: Ic9a21d04a131c30e17dfca6d8ea45bdefd362aa7
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/206062
Reviewed-by: Mike Reed <reed@google.com>
2019-04-04 13:42:41 +00:00
Kevin Lubick
3902628e35 Support WebGL 1.0 with caps
There is some logic in here for 2.0 as well, just as a
"as long as I was looking at the specs", but only 1.0
is really supported.

This seems to resolve the bug where some GPUs weren't
advertising correctly that they had vertex array object
support, by checking for both extension names (with and
without "GL_" prefix)

Of note, this saves about 18 Kb (5.5 Kb gzipped) of code size
by compiling out the unneeded GLES checks/functionality.

Bug: skia:8378
Change-Id: I773bf4dbf231b991051d2a9f640b8047a9010e7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/203461
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-03-28 17:21:23 +00:00
Mike Klein
e5acd7547b delete DAA
Change-Id: I1fd8cba067c0063c6621641e8196e69fd5e31cec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/203080
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-03-22 15:44:03 +00:00
Kevin Lubick
025949e0f7 [canvaskit] npm version 0.5.1
Fixes a build flag

Bug: skia:
Change-Id: I51f0fff18415fba5ea8396189aeab8a40f196c70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/202713
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2019-03-21 18:35:18 +00:00
Kevin Lubick
27ba7032be Add GN args for GL/GLES interface
Bug: skia:
Change-Id: I8445a6f3641aa43e7b18832c7c228b66dd321f2d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/201616
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2019-03-21 12:57:27 +00:00
Kevin Lubick
8aa203c1d8 Add macro to decide GrGLStandard
This allows us to remove certain interfaces at compile time.

This replaces most (all?) of the cases where it was
if (gl) else [implicit gles] to be explicitly
if (gl) else if (gles)
in preparation for adding a WebGL standard.

For consistency, I tried to check first for GL, then for
GLES, which involved re-arranging a few if blocks.

PS 3 removes about 1.2KB (0.4 KB gzipped) from CanvasKit by
removing the GrGLInterface related checks from
GrGlInterface::validate()

PS 8 removes a total of 6.0 KB (2.6 KB gzipped) from
GrGlInterface::validate() and GrGlCaps::*

Bug: skia:8378
Change-Id: Ia91b732d888907f5d94b0eac8ca023084999fa7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/201604
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2019-03-19 18:19:12 +00:00
Kevin Lubick
2697dd626e [canvaskit] Various cleanups around docs/build
- Break up example into two pages
 - Deprecate SkCanvas.flush()
 - add build flag that helps with certain GPU's webgl support

Bug: skia:
Change-Id: I49b1dbfecc10265a14ef4cbe54f7e8f0306e12ac
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/201649
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2019-03-18 15:53:30 +00:00
Kevin Lubick
832787ac6c [canvaskit] Fallback to CPU more gracefully
This should also trim down code size since WebGL should never want
GrGLMakeAssembledGLInterface only GrGLMakeAssembledGLESInterface

Bug: skia:
Change-Id: I9246d467847eeb91517c56075077b3e26c4ee336
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/201223
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2019-03-14 20:25:25 +00:00
Kevin Lubick
3f67f411d8 [canvaskit] Move from experimental to modules
Bug: skia:
Change-Id: I2ffd54cf81c974f3a80103e1726a06067cc90d82
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/200044
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2019-03-11 21:09:52 +00:00