Go to file
Brian Salomon 30970525fd At SkDevice level and below use SkBlender instead of SkBlendMode
Draws that take a primitive with colors (vertices, patch, atlas) allow
the user to specify how the primitive color is blended with SkShader.

At the public level the blend is specified as SkBlendMode. This change
moves the implementation at SkDevice level over to SkBlender.

Future changes to the existing APIs or future APIs could allow clients
to specify SkBlenders instead of SkBlendMode. THis would would allow for
programmable blending between shader and primitive color.

SkShader_Blend now recognizes if it was constructed with a Mode blender
and extracts the mode enum.

SkBlender_Base::asFragmentProcessor no longer assumes that the dstFP's
input color should be args.fDestColor. Instead the caller
must configure that if desired. (We don't want this for drawAtlas, etc).

Change-Id: I44085da4ec9f4873428f38d629565f7f42c6be91
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/470458
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-11-17 16:53:28 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bazel [canvaskit] Expand Bazel rules to include Canvas2D compat layer 2021-11-17 13:06:35 +00:00
bench Yank GrStrokeTessellationShader out of StrokeTessellators 2021-11-15 17:07:38 +00:00
bin [sk] Update asset download references to use SK 2021-09-17 16:55:53 +00:00
build/fuchsia [fuchsia] Fix fidlc command. 2020-06-10 03:29:24 +00:00
build_overrides Add Abseil dependency for Dawn 2021-09-22 22:05:32 +00:00
client_utils/android Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
demos.skia.org [demos] Add WebGPU demo using origin trial 2021-10-08 16:35:34 +00:00
dm Add ShaderType::kSolidColor and make Combinations work w/ PaintParams 2021-11-16 16:31:09 +00:00
docker [infra] Update cmake docker image to be Debian 10 2021-07-23 11:21:31 +00:00
docs/examples Reland "Add sRGB 8888 colortype" 2021-08-24 12:56:32 +00:00
example Remove SDL from DEPS (and SDL example that used it) 2021-05-27 21:37:57 +00:00
experimental At SkDevice level and below use SkBlender instead of SkBlendMode 2021-11-17 16:53:28 +00:00
fuzz Make all shader caps uniquely-owned 2021-10-21 20:11:03 +00:00
gm Reland "Implement batching for convex tessellated paths" 2021-11-11 20:01:40 +00:00
gn Add test for construction of void. 2021-11-17 16:04:35 +00:00
include Store whether or not a VkImage is from a swapchain and return it in drawable info. 2021-11-16 21:14:59 +00:00
infra Revert "[python3] More Recipes -> Python 3 fixes" 2021-11-17 14:57:10 +00:00
modules discard SkRuntimeEffect builder in SkSLEffect to use lower level API 2021-11-17 15:51:38 +00:00
platform_tools change method signature for FontChain 2021-10-28 01:57:32 +00:00
resources Add test for construction of void. 2021-11-17 16:04:35 +00:00
samplecode Move breadcrumb and inner-fan triangles out of PathCurveTessellator 2021-11-12 15:26:51 +00:00
site Fix SkSL doc examples that used reserved identifiers 2021-11-05 18:06:46 +00:00
specs [infra] Port serve.py from Python2 to 3 2021-08-31 15:28:19 +00:00
src At SkDevice level and below use SkBlender instead of SkBlendMode 2021-11-17 16:53:28 +00:00
tests Add test for construction of void. 2021-11-17 16:04:35 +00:00
third_party [canvaskit] Add Freetype/Fonts to Bazel Build 2021-11-17 13:06:35 +00:00
toolchain [infra] Add initial Bazel rules and files 2021-11-09 12:32:25 +00:00
tools [canvaskit] Add Freetype/Fonts to Bazel Build 2021-11-17 13:06:35 +00:00
.bazelrc [canvaskit] Expand Bazel rules to include Canvas2D compat layer 2021-11-17 13:06:35 +00:00
.bazelversion [infra] Add Bazel rules for codecs. 2021-11-11 20:10:01 +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 Add .vscode to the default gitignore list. 2021-10-13 15:23:02 +00:00
.gn Pre-emptive fix for upcoming ANGLE change. 2021-01-08 17:23:52 +00:00
AUTHORS Reland "Enable non-standalone builds with dawn" 2021-11-15 20:52:41 +00:00
BUILD.bazel [canvaskit] Expand Bazel rules to include Canvas2D compat layer 2021-11-17 13:06:35 +00:00
BUILD.gn Implement serialization for SkVMDebugInfo traces. 2021-11-16 15:49:24 +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 ANGLE from d27552f21f4e to b9c0194c4e1e (10 revisions) 2021-11-17 05:23:08 +00:00
DIR_METADATA Move metadata in OWNERS files to DIR_METADATA files 2021-02-02 23:41:54 +00:00
go.mod Revert "[python3] More Recipes -> Python 3 fixes" 2021-11-17 14:57:10 +00:00
go.sum Revert "[python3] More Recipes -> Python 3 fixes" 2021-11-17 14:57:10 +00:00
LICENSE LICENSE file: clean up 2019-11-22 21:59:03 +00:00
OWNERS [infra] Add wildcard OWNERS 2021-08-30 19:19:34 +00:00
PRESUBMIT.py Remove AUTHORS check from PRESUBMIT.py 2021-09-30 14:12:18 +00:00
public.bzl Move ToolUtils::make_big_path() to bench/ 2021-10-14 12:57:29 +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 Limit surfaces/images to 2GB in size 2021-11-15 21:32:43 +00:00
whitespace.txt Test SkCQ 2021-07-24 21:07:28 +00:00
WORKSPACE.bazel [canvaskit] Add Freetype/Fonts to Bazel Build 2021-11-17 13:06:35 +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.