skia2/include
Brian Salomon 10c9f36bdd New approach to GrProcessor uniforms.
The important aspect is that it allows knowing the uniforms that will
be used by a set of processors without having to create ProgramImpls.

GrProcessor subclasses specify uniforms at creation time in a similar
style to how GrGeometryProcessors already specify attributes. That is,
they initialize a span of structs describing the uniform which may
contain void uniforms that are skipped. Unlike attributes, the struct
contains an offset into the processor where the data is stored.

GrUniformAggregator is used to collect the uniforms from all processors
that compose a draw and mangle their names. The ProgramImpl subclasses
query the aggregator for their uniform names when emitting code.

The old system for uniforms is left intact and only three processors,
one GP, one FP, and one XP, are updated to use the new system.

Some pieces that are missing before everything can be moved over:
-support for uniforms not owned by GrProcessor (e.g. rt-adjust)
-support for samplers
-helpers for common patterns
 (e.g. GrGeometryProcessor::ProgramImpl::setupUniformColor(),
  and the various matrix helpers on ProgramImpl)

Bug: skia:12182

Change-Id: I21c1b7a8940eb9b8aad003f5a2569e43977a33d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/440841
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-09-13 19:55:06 +00:00
..
android Rename/simplify SkCanvas::resetClip() and make recordable 2021-07-23 19:05:42 +00:00
c Hide legacy drawImage methods 2021-01-20 00:59:26 +00:00
codec get image from skcodec 2021-01-25 21:50:16 +00:00
config Track vulkan memory allocations in UMA. 2020-10-29 15:24:23 +00:00
core Update Skia milestone to 96 2021-09-10 11:51:00 +00:00
docs Add appendNodeIdArray to avoid code duplication. 2020-06-23 14:25:33 +00:00
effects Remove deprecated field from SkRuntimeEffectBuilder::BuilderChild 2021-09-10 17:41:10 +00:00
encode Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
gpu Rename some GrD3DTypes* header files. 2021-08-31 18:49:46 +00:00
pathops
ports Revert "Revert "onMatchFaceStyle is unused, so remove it"" 2021-04-27 16:40:29 +00:00
private New approach to GrProcessor uniforms. 2021-09-13 19:55:06 +00:00
sksl Revert "Fixed DSL assertion error on source files containing nulls" 2021-09-11 18:13:13 +00:00
svg [svgcanvas] Add support for relative path encoding 2021-05-11 17:44:59 +00:00
third_party Revert "Add OWNERS to include (and include/private) to enforce API review" 2021-09-07 17:17:09 +00:00
utils Feed all top-level GPU accessors through skgpu::BaseDevice (take 2) 2021-07-26 14:56:37 +00:00