skia2/include
Mike Klein 5625412f02 unify program() and uniforms()
It's clearer and more efficient to emit uniforms
as we use them.  The pattern to look for is something like

    skvm::I32 val = p->uniform32(uniforms, buf->bytes());
    buf->push_back(fVal);

where fVal holds the actual uniform value, and val is its program
counterpart.

Switching to SkTDArray lets us use friendlier methods like bytes() and
append(N) in the effect code.

It's a lot easier to follow this way once you get used to it and much
less error-prone.  No need to split the can-we-do-it logic up from the
uniform emission, and so no chance to write logic twice that
acccidentally disagrees.

Effects now always emit uniforms when you call program(), which means we
occasionally do that twice, once when building the Key to look up cached
programs, and once again when building the program if the cache misses.
That's not that big of a deal... it reuses the same memory exactly, and
I've added some notes around the code and assertions that everything
matches up exactly.  It only happens on cache miss, so it's dwarfed by
the cost of building and JITing the program anwyay.

Change-Id: I55a9252b11b2c0cd5f7ab8ace6df5fef29342c10
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252837
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-11-05 18:41:30 +00:00
..
android rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
atlastext rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
c Small fixes to C API. Add SK_API and fix function signature mismatch. 2019-06-07 01:29:23 +00:00
codec Hook up SkHeifCodec for ImageDecoder animation 2019-08-14 16:02:32 +00:00
config update SkUserConfig.h a bit 2019-05-20 17:52:22 +00:00
core unify program() and uniforms() 2019-11-05 18:41:30 +00:00
docs SkPDF: simplify Producer metadata logic 2019-10-21 20:01:47 +00:00
effects SkColorMatrix cleanup 2019-11-04 15:20:15 +00:00
encode Revert "add runtime registration for encoders" 2019-05-15 22:02:39 +00:00
gpu Dawn: s/dawn::/wgpu::/g. 2019-10-30 14:29:46 +00:00
pathops rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ports Change GrCFResource to sk_cf_obj and move to include/ports. 2019-06-10 18:44:28 +00:00
private Cleanup kGray_8 readback. 2019-11-05 18:36:25 +00:00
svg [svgcanvas] Add flag to suppress newlines and tabs in XML 2019-08-21 20:17:37 +00:00
third_party Roll skia/third_party/skcms e9158fd9e492..8c5dee1e7fe2 (4 commits) 2019-10-14 17:21:33 +00:00
utils [skottie] Add DataURI image support in utils/tools 2019-10-21 18:02:39 +00:00