skia2/gn
Michael Ludwig dcc85fc610 Implement an explicit binary search-based analytic gradient colorizer
Provides a reasonably flexible fragment processor that defines another
colorizer implementation for gradients. It can support up to 8
interpolation intervals (which is 16 colors if every stop is a hard stop
or 9 colors if every stop is a smooth transition). It
supports mixtures of hard and smooth stops. It is conditionally compiled
into versions specific to the interval count (so it can produce up to
8 shader variants).

The GrGradientShader controller does not remove the single and dual
interval colorizers, which are useful specializations of this explicit
binary search colorizer. Similarly, since it can only handle up to 8
intervals, the texture colorizer is still used as a fallback.

Currently it does not employ capabilities detection to determine if the
hardware can support the number of required uniforms, which can become
substantial for the larger gradient configurations.

Bug: chromium:796479, chromium:729727, chromium:696603, chromium:543625, chromium:414254
Change-Id: Ia1f735a5019766ae4796cc22964b2913db34b95b
Reviewed-on: https://skia-review.googlesource.com/155080
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-09-24 16:40:36 +00:00
..
toolchain link with --start-group/--end-group 2018-08-07 16:18:01 +00:00
__init__.py Make gn directory importable in python 2017-03-20 17:40:30 +00:00
ar.py GN: quiet alink spam on Mac 2016-11-07 14:19:32 +00:00
bench.gni ccpr: Rename GrCCPathParser to GrCCFiller 2018-08-20 20:25:24 +00:00
BUILD.gn Reland "always optimize third_party code" 2018-09-20 23:21:01 +00:00
BUILDCONFIG.gn Reland "always optimize third_party code" 2018-09-20 23:21:01 +00:00
call.py Add gn plumbing for mdbviz tool 2017-09-05 13:57:44 +00:00
checkdir.py Bundle resources and skps directories into iOS app. 2017-11-29 17:06:25 +00:00
codesign_ios.py Allow different identities for iOS code signing 2017-12-07 20:42:00 +00:00
compile_processors.py switched to infra version of clang-format for skslc 2017-07-27 20:28:50 +00:00
core.gni move skpipe to experimental 2018-09-21 17:20:25 +00:00
cp.py GN: get Angle compiling on Windows. 2016-10-17 16:16:16 +00:00
create_sksl_enums.py Create sksl_enums.inc with UNIX line endings (even on Windows) 2018-02-09 15:13:11 +00:00
effects_imagefilters.gni move blurimagefilter.cpp back into effects 2018-06-26 15:01:52 +00:00
effects.gni Remove all old gpu gradient code 2018-09-14 22:21:56 +00:00
find_headers.py Add 'public' headers support to find_headers.py 2018-05-30 18:00:09 +00:00
find_ios_sysroot.py Add iOS simulator support in GN. 2017-03-13 17:21:43 +00:00
flutter_defines.gni Reland "remove SK_SUPPORT_LEGACY_TYPEFACE_MAKEFROMSTREAM" 2018-09-13 15:19:09 +00:00
gen_plist_ios.py Add create_bundle support for GN 2017-11-28 15:29:07 +00:00
gm.gni Implement an explicit binary search-based analytic gradient colorizer 2018-09-24 16:40:36 +00:00
gn_meta_sln.py Decorate project names with their relative path in the meta SLN 2018-06-01 19:22:08 +00:00
gn_to_bp_utils.py Supress warnings about implicit fallthrough in Android. 2018-09-11 19:49:29 +00:00
gn_to_bp.py SkDocument: Factories now located in SkPDFDocument.h and SkXPSDocument.h 2018-09-20 18:21:07 +00:00
gn_to_cmake.py Improve CMakeLists.txt auto regeneration. 2018-06-26 20:33:29 +00:00
gpu.gni Implement an explicit binary search-based analytic gradient colorizer 2018-09-24 16:40:36 +00:00
highest_version_dir.py Filter Windows SDK and Compiler directories 2017-12-11 20:26:08 +00:00
is_clang.py GN: match shell behavior for cc and cxx in is_clang.py 2016-09-27 09:29:24 -07:00
opts.gni add src/opts headers to .gni files 2018-09-05 20:31:09 +00:00
pdf.gni SkDocument: Factories now located in SkPDFDocument.h and SkXPSDocument.h 2018-09-20 18:21:07 +00:00
push_to_android.py skia_android_serial = "auto" 2017-01-12 16:30:17 +00:00
run_sksllex.py Re-land "converted OverdrawColorFilter to SkSL" 2017-10-26 14:58:27 +00:00
samples.gni Remove a largue quantity of 4444 and/or dithering code 2018-09-21 00:50:06 +00:00
shared_sources.gni SK_SUPPORT_LEGACY_DOCUMENT_FACTORY: clean up part 1/2 2018-09-21 19:50:40 +00:00
sksl.gni Implement an explicit binary search-based analytic gradient colorizer 2018-09-24 16:40:36 +00:00
tests.gni Add unit test to test basic importing and drawing of AHardwareBuffers. 2018-09-12 13:40:54 +00:00
utils.gni Use SkUniqueCFRef in SkImage*CG. 2018-09-21 15:35:29 +00:00
xps.gni SkDocument: Factories now located in SkPDFDocument.h and SkXPSDocument.h 2018-09-20 18:21:07 +00:00