Go to file
Brian Osman adadb95a9f Better first-class shader & color filter support in runtime effects
This does a few things, because they're all intertwined:

1) SkRuntimeEffect's API now includes details about children (which Skia
   stage was declared, not just the name). The factories verify that the
   declared types in the SkSL match up with the C++ types being passed.
   Today, we still only support adding children of the same type, so the
   checks are simple. Once we allow mixing types, we'll be testing the
   declared type against the actual C++ type supplied for each slot.
2) Adds sample variants that supply the input color to the child. This
   is now the only way to invoke a colorFilter child. Internally, we
   support passing a color when invoking a child shader, but I'm not
   exposing that. It's not clearly part of the semantics of the Skia
   pipeline, and is almost never useful. It also exposes users to
   several inconsistencies (skbug.com/11942).
3) Because of #2, it's possible that we can't compute a reusable program
   to filter individual colors. In that case, we don't set the constant
   output for constant input optimization, and filterColor4f falls back
   to the slower base-class implementation.

Bug: skia:11813 skia:11942
Change-Id: I06c41e1b35056e486f3163a72acf6b9535d7fed4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/401917
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2021-05-04 01:29:57 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bazel bazel baby steps 2020-09-14 15:18:32 +00:00
bench Collect DMSAA stats 2021-05-01 00:46:22 +00:00
bin Fix Python3 compatibility 2021-03-25 14:15:35 +00:00
build/fuchsia [fuchsia] Fix fidlc command. 2020-06-10 03:29:24 +00:00
build_overrides Prepare for Dawn using Tint unconditionally. 2021-03-12 15:05:26 +00:00
client_utils/android Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
demos.skia.org Add some comments 2021-04-27 22:16:02 +00:00
dm Convert dmsaa to an SkSurfaceProp 2021-04-20 16:24:56 +00:00
docker [infra] Fix index.d.ts copy in Wasm Docker build 2021-02-23 15:54:11 +00:00
docs/examples Must pass filtering to picture shader 2021-03-18 22:18:47 +00:00
example Reland "Remove use of legacy display globals." 2020-10-05 19:13:58 +00:00
experimental The first draft of improved & simplified Text API 2021-04-30 17:26:08 +00:00
fuzz Better first-class shader & color filter support in runtime effects 2021-05-04 01:29:57 +00:00
gm Better first-class shader & color filter support in runtime effects 2021-05-04 01:29:57 +00:00
gn Better first-class shader & color filter support in runtime effects 2021-05-04 01:29:57 +00:00
include Better first-class shader & color filter support in runtime effects 2021-05-04 01:29:57 +00:00
infra Collect DMSAA stats 2021-05-01 00:46:22 +00:00
modules Support arrow-keys 2021-05-03 20:33:33 +00:00
platform_tools [androidkit] add transformation operations to Matrix 2021-04-30 14:07:18 +00:00
resources Honor static statements in DSL C++ codegen. 2021-04-30 18:40:08 +00:00
samplecode Delete mixed samples 2021-04-22 20:11:34 +00:00
site Restore cube demo to canvaskit demo page 2021-04-21 21:55:27 +00:00
specs Fix CanvasKit generated documentation to work with emscripten 1.39.16. 2020-05-27 12:23:32 +00:00
src Better first-class shader & color filter support in runtime effects 2021-05-04 01:29:57 +00:00
tests Better first-class shader & color filter support in runtime effects 2021-05-04 01:29:57 +00:00
third_party Roll skcms from 623cdd693261 to 31ba46d6a284 (1 revision) 2021-04-21 18:28:27 +00:00
tools Better first-class shader & color filter support in runtime effects 2021-05-04 01:29:57 +00:00
.bazelignore bazel baby steps 2020-09-14 15:18:32 +00:00
.clang-format no more bin packing in .clang-format 2021-03-04 17:22:50 +00:00
.clang-tidy Disable ClangTidy namespace comments for short blocks. 2020-08-24 14:01:22 +00:00
.gitignore [sk] Add DEPS entry for "sk" tool 2021-04-09 14:21:37 +00:00
.gn Pre-emptive fix for upcoming ANGLE change. 2021-01-08 17:23:52 +00:00
AUTHORS Add UWP support 2021-02-10 19:04:42 +00:00
BUILD.bazel bazel baby steps 2020-09-14 15:18:32 +00:00
BUILD.gn The first draft of improved & simplified Text API 2021-04-30 17:26:08 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll SK Tool from 55a19cee35b8 to 23a0b822befe 2021-05-03 18:08:44 +00:00
DIR_METADATA Move metadata in OWNERS files to DIR_METADATA files 2021-02-02 23:41:54 +00:00
go.mod [infra] Roll infra dependency 2021-02-25 19:56:00 +00:00
go.sum [infra] Roll infra dependency 2021-02-25 19:56:00 +00:00
LICENSE LICENSE file: clean up 2019-11-22 21:59:03 +00:00
PRESUBMIT.py Revert "Display a Docs-Preview link for each modified MD file" 2021-04-22 13:39:28 +00:00
public.bzl Enable DSL FP tests. 2021-04-22 21:03:43 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
RELEASE_NOTES.txt Make the generic SkRuntimeEffect::Make factories private 2021-04-28 14:49:46 +00:00
whitespace.txt Whitespace change to re-trigger Mac/iOS tests 2020-02-23 20:55:01 +00:00
WORKSPACE.bazel bazel baby steps 2020-09-14 15:18:32 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.