/src/skia/src/gpu/effects/GrSkSLFP.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright 2018 Google Inc. |
3 | | * |
4 | | * Use of this source code is governed by a BSD-style license that can be |
5 | | * found in the LICENSE file. |
6 | | */ |
7 | | |
8 | | #ifndef GrSkSLFP_DEFINED |
9 | | #define GrSkSLFP_DEFINED |
10 | | |
11 | | #include "include/core/SkRefCnt.h" |
12 | | #include "include/effects/SkRuntimeEffect.h" |
13 | | #include "include/gpu/GrContextOptions.h" |
14 | | #include "include/private/SkVx.h" |
15 | | #include "src/gpu/GrFragmentProcessor.h" |
16 | | |
17 | | #include <atomic> |
18 | | #include <utility> |
19 | | #include <vector> |
20 | | |
21 | | class GrShaderCaps; |
22 | | class SkData; |
23 | | class SkRuntimeEffect; |
24 | | |
25 | | #ifdef SK_DEBUG |
26 | | // UNIFORM_TYPE allows C++ types to be mapped onto SkRuntimeEffect::Uniform::Type |
27 | | template <typename T> struct GrFPUniformType { |
28 | | template <typename U> struct add_a_UNIFORM_TYPE_specialization_for {}; |
29 | | static constexpr add_a_UNIFORM_TYPE_specialization_for<T> value = {}; |
30 | | }; |
31 | | #define UNIFORM_TYPE(E, ...) \ |
32 | | template <> struct GrFPUniformType<__VA_ARGS__> { \ |
33 | | static constexpr SkRuntimeEffect::Uniform::Type value = SkRuntimeEffect::Uniform::Type::E; \ |
34 | | } |
35 | | |
36 | | UNIFORM_TYPE(kFloat, float); |
37 | | UNIFORM_TYPE(kFloat2, SkV2); |
38 | | UNIFORM_TYPE(kFloat4, SkPMColor4f); |
39 | | UNIFORM_TYPE(kFloat4, SkRect); |
40 | | UNIFORM_TYPE(kFloat4, SkV4); |
41 | | UNIFORM_TYPE(kFloat4, skvx::Vec<4, float>); |
42 | | UNIFORM_TYPE(kFloat4x4, SkM44); |
43 | | UNIFORM_TYPE(kInt, int); |
44 | | |
45 | | #undef UNIFORM_TYPE |
46 | | #endif |
47 | | |
48 | | class GrSkSLFP : public GrFragmentProcessor { |
49 | | public: |
50 | | template <typename T> struct GrSpecializedUniform { |
51 | | bool specialize; |
52 | | T value; |
53 | | }; |
54 | | template <typename T> |
55 | 9.54k | static GrSpecializedUniform<T> Specialize(const T& value) { |
56 | 9.54k | return {true, value}; |
57 | 9.54k | } |
58 | | template <typename T> |
59 | 33.3k | static GrSpecializedUniform<T> SpecializeIf(bool condition, const T& value) { |
60 | 33.3k | return {condition, value}; |
61 | 33.3k | } |
62 | | |
63 | | template <typename T> struct GrOptionalUniform { |
64 | | bool enabled; |
65 | | T value; |
66 | | }; |
67 | | template <typename T> |
68 | 7.33k | static GrOptionalUniform<T> When(bool condition, const T& value) { |
69 | 7.33k | return {condition, value}; |
70 | 7.33k | } |
71 | | |
72 | | struct GrIgnoreOptFlags { |
73 | | std::unique_ptr<GrFragmentProcessor> child; |
74 | | }; |
75 | 3.44k | static GrIgnoreOptFlags IgnoreOptFlags(std::unique_ptr<GrFragmentProcessor> child) { |
76 | 3.44k | return {std::move(child)}; |
77 | 3.44k | } |
78 | | |
79 | | enum class OptFlags : uint32_t { |
80 | | kNone = kNone_OptimizationFlags, |
81 | | kCompatibleWithCoverageAsAlpha = kCompatibleWithCoverageAsAlpha_OptimizationFlag, |
82 | | kPreservesOpaqueInput = kPreservesOpaqueInput_OptimizationFlag, |
83 | | kAll = kCompatibleWithCoverageAsAlpha | kPreservesOpaqueInput, |
84 | | }; |
85 | | |
86 | | /** |
87 | | * Both factories support a single 'input' FP, as well as a collection of other 'child' FPs. |
88 | | * The 'child' FPs correspond to the children declared in the effect's SkSL. The inputFP is |
89 | | * optional, and intended for instances that have color filter semantics. This is an implicit |
90 | | * child - if present, it's evaluated to produce the input color fed to the SkSL. Otherwise, |
91 | | * the SkSL receives this FP's input color directly. |
92 | | */ |
93 | | |
94 | | /** |
95 | | * Creates a new fragment processor from an SkRuntimeEffect and a data blob containing values |
96 | | * for all of the 'uniform' variables in the SkSL source. The layout of the uniforms blob is |
97 | | * dictated by the SkRuntimeEffect. |
98 | | */ |
99 | | static std::unique_ptr<GrSkSLFP> MakeWithData( |
100 | | sk_sp<SkRuntimeEffect> effect, |
101 | | const char* name, |
102 | | std::unique_ptr<GrFragmentProcessor> inputFP, |
103 | | std::unique_ptr<GrFragmentProcessor> destColorFP, |
104 | | sk_sp<SkData> uniforms, |
105 | | SkSpan<std::unique_ptr<GrFragmentProcessor>> childFPs); |
106 | | |
107 | | /* |
108 | | * Constructs a GrSkSLFP from a series of name-value pairs, corresponding to the children and |
109 | | * uniform data members of the effect's SkSL. |
110 | | * The variable length args... must contain all of the children and uniforms expected. |
111 | | * Each individual argument must be preceded by a name that matches the SkSL name of the value |
112 | | * being set. For children, the next argument must be a std::unique_ptr<GrFragmentProcessor>. |
113 | | * For uniforms, the next argument must be data of the correct size and type. |
114 | | * |
115 | | * For example, given: |
116 | | * uniform shader input; |
117 | | * uniform float scale; |
118 | | * uniform half2 pt; |
119 | | * half4 main() { ... } |
120 | | * |
121 | | * A call to GrSkSLFP would be formatted like: |
122 | | * std::unique_ptr<GrFragmentProcessor> child = ...; |
123 | | * float scaleVal = ...; |
124 | | * SkV2 ptVal = ...; |
125 | | * auto fp = GrSkSLFP::Make(effect, "my_effect", nullptr, GrSkSLFP::OptFlags::..., |
126 | | * "input", std::move(child), |
127 | | * "scale", scaleVal, |
128 | | * "pt", ptVal); |
129 | | * |
130 | | * The uniforms must appear in the correct order, as must the children. Technically, the two |
131 | | * lists can be interleaved. In debug builds, the number, names, and sizes of all arguments are |
132 | | * checked with assertions. In release builds, all checks are elided. In either case, the |
133 | | * uniform data is directly copied into the footer allocated after the FP. |
134 | | */ |
135 | | template <typename... Args> |
136 | | static std::unique_ptr<GrSkSLFP> Make(sk_sp<SkRuntimeEffect> effect, |
137 | | const char* name, |
138 | | std::unique_ptr<GrFragmentProcessor> inputFP, |
139 | | OptFlags optFlags, |
140 | 57.0k | Args&&... args) { |
141 | | #ifdef SK_DEBUG |
142 | | checkArgs(effect->fUniforms.begin(), |
143 | | effect->fUniforms.end(), |
144 | | effect->fChildren.begin(), |
145 | | effect->fChildren.end(), |
146 | | std::forward<Args>(args)...); |
147 | | #endif |
148 | | |
149 | 57.0k | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); |
150 | 57.0k | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) |
151 | 57.0k | GrSkSLFP(std::move(effect), name, optFlags)); |
152 | 57.0k | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); |
153 | 57.0k | if (inputFP) { |
154 | 12.5k | fp->setInput(std::move(inputFP)); |
155 | 12.5k | } |
156 | 57.0k | return fp; |
157 | 57.0k | } std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags) Line | Count | Source | 140 | 80 | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 80 | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 80 | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 80 | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 80 | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 80 | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 80 | return fp; | 157 | 80 | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [6], SkRGBA4f<(SkAlphaType)2>&>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [6], SkRGBA4f<(SkAlphaType)2>&) Line | Count | Source | 140 | 4.84k | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 4.84k | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 4.84k | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 4.84k | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 4.84k | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 4.84k | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 4.84k | return fp; | 157 | 4.84k | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [3], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, char const (&) [6], GrSkSLFP::GrSpecializedUniform<SkRGBA4f<(SkAlphaType)2> > >(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [3], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [6], GrSkSLFP::GrSpecializedUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 140 | 33.3k | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 33.3k | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 33.3k | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 33.3k | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 33.3k | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 33.3k | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 33.3k | return fp; | 157 | 33.3k | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [3], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> > >(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [3], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&) Line | Count | Source | 140 | 487 | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 487 | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 487 | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 487 | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 487 | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 487 | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 487 | return fp; | 157 | 487 | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [2], SkM44&, char const (&) [2], SkV4&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [2], SkM44&, char const (&) [2], SkV4&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 140 | 1.10k | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 1.10k | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 1.10k | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 1.10k | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 1.10k | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 1.10k | if (inputFP) { | 154 | 1.10k | fp->setInput(std::move(inputFP)); | 155 | 1.10k | } | 156 | 1.10k | return fp; | 157 | 1.10k | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [9], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [12], SkRect&>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [9], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [12], SkRect&) Line | Count | Source | 140 | 1.32k | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 1.32k | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 1.32k | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 1.32k | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 1.32k | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 1.32k | if (inputFP) { | 154 | 14 | fp->setInput(std::move(inputFP)); | 155 | 14 | } | 156 | 1.32k | return fp; | 157 | 1.32k | } |
Unexecuted instantiation: std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [9], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [7], SkV4&>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [9], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [7], SkV4&) std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [9], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [8], SkV4&, char const (&) [6], SkV2&>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [9], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [8], SkV4&, char const (&) [6], SkV2&) Line | Count | Source | 140 | 6 | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 6 | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 6 | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 6 | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 6 | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 6 | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 6 | return fp; | 157 | 6 | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [6], float&, char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> > >(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [6], float&, char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&) Line | Count | Source | 140 | 11.4k | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 11.4k | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 11.4k | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 11.4k | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 11.4k | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 11.4k | if (inputFP) { | 154 | 11.4k | fp->setInput(std::move(inputFP)); | 155 | 11.4k | } | 156 | 11.4k | return fp; | 157 | 11.4k | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [9], GrSkSLFP::GrIgnoreOptFlags, char const (&) [5], SkRect&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int> >(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [9], GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [5], SkRect&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 140 | 48 | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 48 | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 48 | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 48 | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 48 | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 48 | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 48 | return fp; | 157 | 48 | } |
Unexecuted instantiation: std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [12], GrSkSLFP::GrIgnoreOptFlags, char const (&) [11], SkV4&>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [12], GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [11], SkV4&) Unexecuted instantiation: std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [12], GrSkSLFP::GrIgnoreOptFlags, char const (&) [13], float&, char const (&) [10], SkRect&, char const (&) [11], float&>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [12], GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [13], float&, char const (&) [10], SkRect&, char const (&) [11], float&) std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [7], GrSkSLFP::GrIgnoreOptFlags, char const (&) [15], float&, char const (&) [15], float&>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [7], GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [15], float&, char const (&) [15], float&) Line | Count | Source | 140 | 38 | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 38 | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 38 | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 38 | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 38 | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 38 | if (inputFP) { | 154 | 38 | fp->setInput(std::move(inputFP)); | 155 | 38 | } | 156 | 38 | return fp; | 157 | 38 | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, char const (&) [2], SkV4 const&, char const (&) [8], float>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [2], SkV4 const&, char const (&) [8], float&&) Line | Count | Source | 140 | 134 | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 134 | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 134 | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 134 | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 134 | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 134 | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 134 | return fp; | 157 | 134 | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [4], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, char const (&) [14], SkV4&, char const (&) [9], float&, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [4], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [14], SkV4&, char const (&) [9], float&, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2&&) Line | Count | Source | 140 | 117 | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 117 | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 117 | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 117 | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 117 | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 117 | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 117 | return fp; | 157 | 117 | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [6], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [4], SkRGBA4f<(SkAlphaType)2> const&>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [6], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [4], SkRGBA4f<(SkAlphaType)2> const&) Line | Count | Source | 140 | 251 | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 251 | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 251 | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 251 | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 251 | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 251 | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 251 | return fp; | 157 | 251 | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [8], skvx::Vec<4, float>&, char const (&) [7], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], skvx::Vec<4, float>&, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [8], skvx::Vec<4, float>&, char const (&) [7], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], skvx::Vec<4, float>&, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&) Line | Count | Source | 140 | 6 | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 6 | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 6 | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 6 | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 6 | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 6 | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 6 | return fp; | 157 | 6 | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [14], SkRect&, char const (&) [15], SkRect&, char const (&) [9], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [14], SkRect&, char const (&) [15], SkRect&, char const (&) [9], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 140 | 524 | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 524 | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 524 | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 524 | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 524 | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 524 | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 524 | return fp; | 157 | 524 | } |
Unexecuted instantiation: std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [10], GrSkSLFP::GrIgnoreOptFlags, char const (&) [11], GrSkSLFP::GrIgnoreOptFlags, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [10], GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [11], GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [10], GrSkSLFP::GrIgnoreOptFlags, char const (&) [11], GrSkSLFP::GrIgnoreOptFlags, char const (&) [16], SkRGBA4f<(SkAlphaType)2>&, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [10], GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [11], GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [16], SkRGBA4f<(SkAlphaType)2>&, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 140 | 1.67k | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 1.67k | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 1.67k | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 1.67k | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 1.67k | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 1.67k | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 1.67k | return fp; | 157 | 1.67k | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [5], float, char const (&) [6], float, char const (&) [18], GrSkSLFP::GrSpecializedUniform<int> >(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [5], float&&, char const (&) [6], float&&, char const (&) [18], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 140 | 1.48k | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 1.48k | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 1.48k | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 1.48k | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 1.48k | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 1.48k | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 1.48k | return fp; | 157 | 1.48k | } |
std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [5], float>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [5], float&&) Line | Count | Source | 140 | 109 | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 109 | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 109 | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 109 | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 109 | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 109 | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 109 | return fp; | 157 | 109 | } |
Unexecuted instantiation: std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [3], float&, char const (&) [12], float>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [3], float&, char const (&) [12], float&&) std::__1::unique_ptr<GrSkSLFP, std::__1::default_delete<GrSkSLFP> > GrSkSLFP::Make<char const (&) [19], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(sk_sp<SkRuntimeEffect>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, GrSkSLFP::OptFlags, char const (&) [19], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Line | Count | Source | 140 | 1 | Args&&... args) { | 141 | | #ifdef SK_DEBUG | 142 | | checkArgs(effect->fUniforms.begin(), | 143 | | effect->fUniforms.end(), | 144 | | effect->fChildren.begin(), | 145 | | effect->fChildren.end(), | 146 | | std::forward<Args>(args)...); | 147 | | #endif | 148 | | | 149 | 1 | size_t uniformPayloadSize = UniformPayloadSize(effect.get()); | 150 | 1 | std::unique_ptr<GrSkSLFP> fp(new (uniformPayloadSize) | 151 | 1 | GrSkSLFP(std::move(effect), name, optFlags)); | 152 | 1 | fp->appendArgs(fp->uniformData(), fp->uniformFlags(), std::forward<Args>(args)...); | 153 | 1 | if (inputFP) { | 154 | 0 | fp->setInput(std::move(inputFP)); | 155 | 0 | } | 156 | 1 | return fp; | 157 | 1 | } |
|
158 | | |
159 | 0 | const char* name() const override { return fName; } |
160 | | std::unique_ptr<GrFragmentProcessor> clone() const override; |
161 | | |
162 | | private: |
163 | | class Impl; |
164 | | |
165 | | GrSkSLFP(sk_sp<SkRuntimeEffect> effect, const char* name, OptFlags optFlags); |
166 | | GrSkSLFP(const GrSkSLFP& other); |
167 | | |
168 | | void addChild(std::unique_ptr<GrFragmentProcessor> child, bool mergeOptFlags); |
169 | | void setInput(std::unique_ptr<GrFragmentProcessor> input); |
170 | | void setDestColorFP(std::unique_ptr<GrFragmentProcessor> destColorFP); |
171 | | |
172 | | std::unique_ptr<ProgramImpl> onMakeProgramImpl() const override; |
173 | | |
174 | | void onAddToKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override; |
175 | | |
176 | | bool onIsEqual(const GrFragmentProcessor&) const override; |
177 | | |
178 | | SkPMColor4f constantOutputForConstantInput(const SkPMColor4f&) const override; |
179 | | |
180 | | // An instance of GrSkSLFP is always allocated with a payload immediately following the FP. |
181 | | // First the the values of all the uniforms, and then a set of flags (one per uniform). |
182 | 57.0k | static size_t UniformPayloadSize(const SkRuntimeEffect* effect) { |
183 | 57.0k | return effect->uniformSize() + effect->uniforms().count() * sizeof(UniformFlags); |
184 | 57.0k | } |
185 | | |
186 | 58.8k | const uint8_t* uniformData() const { return reinterpret_cast<const uint8_t*>(this + 1); } |
187 | 171k | uint8_t* uniformData() { return reinterpret_cast< uint8_t*>(this + 1); } |
188 | | |
189 | | enum UniformFlags : uint8_t { |
190 | | kSpecialize_Flag = 0x1, |
191 | | }; |
192 | | |
193 | 4 | const UniformFlags* uniformFlags() const { |
194 | 4 | return reinterpret_cast<const UniformFlags*>(this->uniformData() + fUniformSize); |
195 | 4 | } |
196 | 114k | UniformFlags* uniformFlags() { |
197 | 114k | return reinterpret_cast<UniformFlags*>(this->uniformData() + fUniformSize); |
198 | 114k | } |
199 | | |
200 | | // Helpers to attach variadic template args to a newly constructed FP: |
201 | | |
202 | 57.0k | void appendArgs(uint8_t* uniformDataPtr, UniformFlags* uniformFlagsPtr) { |
203 | | // Base case -- no more args to append, so we're done |
204 | 57.0k | } |
205 | | template <typename... Args> |
206 | | void appendArgs(uint8_t* uniformDataPtr, |
207 | | UniformFlags* uniformFlagsPtr, |
208 | | const char* name, |
209 | | std::unique_ptr<GrFragmentProcessor>&& child, |
210 | 45.6k | Args&&... remainder) { |
211 | | // Child FP case -- register the child, then continue processing the remaining arguments. |
212 | | // Children aren't "uniforms" here, so the data & flags pointers don't advance. |
213 | 45.6k | this->addChild(std::move(child), /*mergeOptFlags=*/true); |
214 | 45.6k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); |
215 | 45.6k | } void GrSkSLFP::appendArgs<char const (&) [6], GrSkSLFP::GrSpecializedUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [6], GrSkSLFP::GrSpecializedUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 210 | 33.3k | Args&&... remainder) { | 211 | | // Child FP case -- register the child, then continue processing the remaining arguments. | 212 | | // Children aren't "uniforms" here, so the data & flags pointers don't advance. | 213 | 33.3k | this->addChild(std::move(child), /*mergeOptFlags=*/true); | 214 | 33.3k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 215 | 33.3k | } |
void GrSkSLFP::appendArgs<>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&) Line | Count | Source | 210 | 11.9k | Args&&... remainder) { | 211 | | // Child FP case -- register the child, then continue processing the remaining arguments. | 212 | | // Children aren't "uniforms" here, so the data & flags pointers don't advance. | 213 | 11.9k | this->addChild(std::move(child), /*mergeOptFlags=*/true); | 214 | 11.9k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 215 | 11.9k | } |
void GrSkSLFP::appendArgs<char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, char const (&) [2], SkV4 const&, char const (&) [8], float>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [2], SkV4 const&, char const (&) [8], float&&) Line | Count | Source | 210 | 134 | Args&&... remainder) { | 211 | | // Child FP case -- register the child, then continue processing the remaining arguments. | 212 | | // Children aren't "uniforms" here, so the data & flags pointers don't advance. | 213 | 134 | this->addChild(std::move(child), /*mergeOptFlags=*/true); | 214 | 134 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 215 | 134 | } |
void GrSkSLFP::appendArgs<char const (&) [2], SkV4 const&, char const (&) [8], float>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [2], SkV4 const&, char const (&) [8], float&&) Line | Count | Source | 210 | 134 | Args&&... remainder) { | 211 | | // Child FP case -- register the child, then continue processing the remaining arguments. | 212 | | // Children aren't "uniforms" here, so the data & flags pointers don't advance. | 213 | 134 | this->addChild(std::move(child), /*mergeOptFlags=*/true); | 214 | 134 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 215 | 134 | } |
void GrSkSLFP::appendArgs<char const (&) [14], SkV4&, char const (&) [9], float&, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [14], SkV4&, char const (&) [9], float&, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2&&) Line | Count | Source | 210 | 117 | Args&&... remainder) { | 211 | | // Child FP case -- register the child, then continue processing the remaining arguments. | 212 | | // Children aren't "uniforms" here, so the data & flags pointers don't advance. | 213 | 117 | this->addChild(std::move(child), /*mergeOptFlags=*/true); | 214 | 117 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 215 | 117 | } |
|
216 | | // As above, but we don't merge in the child's optimization flags |
217 | | template <typename... Args> |
218 | | void appendArgs(uint8_t* uniformDataPtr, |
219 | | UniformFlags* uniformFlagsPtr, |
220 | | const char* name, |
221 | | GrIgnoreOptFlags&& child, |
222 | 3.44k | Args&&... remainder) { |
223 | | // Child FP case -- register the child, then continue processing the remaining arguments. |
224 | | // Children aren't "uniforms" here, so the data & flags pointers don't advance. |
225 | 3.44k | this->addChild(std::move(child.child), /*mergeOptFlags=*/false); |
226 | 3.44k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); |
227 | 3.44k | } void GrSkSLFP::appendArgs<char const (&) [5], SkRect&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [5], SkRect&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 222 | 48 | Args&&... remainder) { | 223 | | // Child FP case -- register the child, then continue processing the remaining arguments. | 224 | | // Children aren't "uniforms" here, so the data & flags pointers don't advance. | 225 | 48 | this->addChild(std::move(child.child), /*mergeOptFlags=*/false); | 226 | 48 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 227 | 48 | } |
Unexecuted instantiation: void GrSkSLFP::appendArgs<char const (&) [11], SkV4&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [11], SkV4&) Unexecuted instantiation: void GrSkSLFP::appendArgs<char const (&) [13], float&, char const (&) [10], SkRect&, char const (&) [11], float&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [13], float&, char const (&) [10], SkRect&, char const (&) [11], float&) void GrSkSLFP::appendArgs<char const (&) [15], float&, char const (&) [15], float&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [15], float&, char const (&) [15], float&) Line | Count | Source | 222 | 38 | Args&&... remainder) { | 223 | | // Child FP case -- register the child, then continue processing the remaining arguments. | 224 | | // Children aren't "uniforms" here, so the data & flags pointers don't advance. | 225 | 38 | this->addChild(std::move(child.child), /*mergeOptFlags=*/false); | 226 | 38 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 227 | 38 | } |
Unexecuted instantiation: void GrSkSLFP::appendArgs<char const (&) [11], GrSkSLFP::GrIgnoreOptFlags, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [11], GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::appendArgs<char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) void GrSkSLFP::appendArgs<char const (&) [11], GrSkSLFP::GrIgnoreOptFlags, char const (&) [16], SkRGBA4f<(SkAlphaType)2>&, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [11], GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [16], SkRGBA4f<(SkAlphaType)2>&, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 222 | 1.67k | Args&&... remainder) { | 223 | | // Child FP case -- register the child, then continue processing the remaining arguments. | 224 | | // Children aren't "uniforms" here, so the data & flags pointers don't advance. | 225 | 1.67k | this->addChild(std::move(child.child), /*mergeOptFlags=*/false); | 226 | 1.67k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 227 | 1.67k | } |
void GrSkSLFP::appendArgs<char const (&) [16], SkRGBA4f<(SkAlphaType)2>&, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [16], SkRGBA4f<(SkAlphaType)2>&, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 222 | 1.67k | Args&&... remainder) { | 223 | | // Child FP case -- register the child, then continue processing the remaining arguments. | 224 | | // Children aren't "uniforms" here, so the data & flags pointers don't advance. | 225 | 1.67k | this->addChild(std::move(child.child), /*mergeOptFlags=*/false); | 226 | 1.67k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 227 | 1.67k | } |
|
228 | | template <typename T, typename... Args> |
229 | | void appendArgs(uint8_t* uniformDataPtr, |
230 | | UniformFlags* uniformFlagsPtr, |
231 | | const char* name, |
232 | | const GrSpecializedUniform<T>& val, |
233 | 42.8k | Args&&... remainder) { |
234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to |
235 | | // specialize on this particular value, set the flag. Then, continue processing the actual |
236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) |
237 | | // handle copying the data into our uniform block, and advancing the per-value uniform |
238 | | // data and flags pointers. |
239 | 42.8k | if (val.specialize) { |
240 | 11.5k | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); |
241 | 11.5k | } |
242 | 42.8k | this->appendArgs( |
243 | 42.8k | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); |
244 | 42.8k | } void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<SkRGBA4f<(SkAlphaType)2> > const&) Line | Count | Source | 233 | 33.3k | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 33.3k | if (val.specialize) { | 240 | 2.03k | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 2.03k | } | 242 | 33.3k | this->appendArgs( | 243 | 33.3k | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 33.3k | } |
void GrSkSLFP::appendArgs<int, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 233 | 1.10k | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 1.10k | if (val.specialize) { | 240 | 1.10k | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 1.10k | } | 242 | 1.10k | this->appendArgs( | 243 | 1.10k | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 1.10k | } |
void GrSkSLFP::appendArgs<int, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 233 | 1.10k | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 1.10k | if (val.specialize) { | 240 | 1.10k | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 1.10k | } | 242 | 1.10k | this->appendArgs( | 243 | 1.10k | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 1.10k | } |
void GrSkSLFP::appendArgs<int>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&) Line | Count | Source | 233 | 4.31k | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 4.31k | if (val.specialize) { | 240 | 4.31k | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 4.31k | } | 242 | 4.31k | this->appendArgs( | 243 | 4.31k | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 4.31k | } |
void GrSkSLFP::appendArgs<int, char const (&) [12], SkRect&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [12], SkRect&) Line | Count | Source | 233 | 1.32k | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 1.32k | if (val.specialize) { | 240 | 1.32k | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 1.32k | } | 242 | 1.32k | this->appendArgs( | 243 | 1.32k | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 1.32k | } |
Unexecuted instantiation: void GrSkSLFP::appendArgs<int, char const (&) [7], SkV4&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [7], SkV4&) void GrSkSLFP::appendArgs<int, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [8], SkV4&, char const (&) [6], SkV2&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [8], SkV4&, char const (&) [6], SkV2&) Line | Count | Source | 233 | 6 | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 6 | if (val.specialize) { | 240 | 6 | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 6 | } | 242 | 6 | this->appendArgs( | 243 | 6 | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 6 | } |
void GrSkSLFP::appendArgs<int, char const (&) [8], SkV4&, char const (&) [6], SkV2&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [8], SkV4&, char const (&) [6], SkV2&) Line | Count | Source | 233 | 6 | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 6 | if (val.specialize) { | 240 | 6 | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 6 | } | 242 | 6 | this->appendArgs( | 243 | 6 | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 6 | } |
Unexecuted instantiation: void GrSkSLFP::appendArgs<int, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::appendArgs<int, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::appendArgs<int, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) void GrSkSLFP::appendArgs<int, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 233 | 1.67k | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 1.67k | if (val.specialize) { | 240 | 1.67k | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 1.67k | } | 242 | 1.67k | this->appendArgs( | 243 | 1.67k | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 1.67k | } |
void GrSkSLFP::appendArgs<int, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Line | Count | Source | 233 | 1 | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 1 | if (val.specialize) { | 240 | 1 | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 1 | } | 242 | 1 | this->appendArgs( | 243 | 1 | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 1 | } |
void GrSkSLFP::appendArgs<int, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Line | Count | Source | 233 | 1 | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 1 | if (val.specialize) { | 240 | 1 | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 1 | } | 242 | 1 | this->appendArgs( | 243 | 1 | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 1 | } |
void GrSkSLFP::appendArgs<int, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Line | Count | Source | 233 | 1 | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 1 | if (val.specialize) { | 240 | 1 | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 1 | } | 242 | 1 | this->appendArgs( | 243 | 1 | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 1 | } |
void GrSkSLFP::appendArgs<int, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Line | Count | Source | 233 | 1 | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 1 | if (val.specialize) { | 240 | 1 | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 1 | } | 242 | 1 | this->appendArgs( | 243 | 1 | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 1 | } |
void GrSkSLFP::appendArgs<int, char const (&) [6], float, char const (&) [3], float const&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [6], float&&, char const (&) [3], float const&) Line | Count | Source | 233 | 1 | Args&&... remainder) { | 234 | | // Specialized uniform case -- This just handles the specialization logic. If we want to | 235 | | // specialize on this particular value, set the flag. Then, continue processing the actual | 236 | | // value (by just peeling off the wrapper). This lets our generic `const T&` case (below) | 237 | | // handle copying the data into our uniform block, and advancing the per-value uniform | 238 | | // data and flags pointers. | 239 | 1 | if (val.specialize) { | 240 | 1 | *uniformFlagsPtr = static_cast<UniformFlags>(*uniformFlagsPtr | kSpecialize_Flag); | 241 | 1 | } | 242 | 1 | this->appendArgs( | 243 | 1 | uniformDataPtr, uniformFlagsPtr, name, val.value, std::forward<Args>(remainder)...); | 244 | 1 | } |
|
245 | | template <typename T, typename... Args> |
246 | | void appendArgs(uint8_t* uniformDataPtr, |
247 | | UniformFlags* uniformFlagsPtr, |
248 | | const char* name, |
249 | | const GrOptionalUniform<T>& val, |
250 | 7.33k | Args&&... remainder) { |
251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is |
252 | | // enabled. Then proceed as normal. |
253 | 7.33k | if (val.enabled) { |
254 | 1.30k | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); |
255 | 1.30k | uniformDataPtr += sizeof(val.value); |
256 | 1.30k | uniformFlagsPtr++; |
257 | 1.30k | } |
258 | | |
259 | 7.33k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); |
260 | 7.33k | } void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 524 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 524 | uniformDataPtr += sizeof(val.value); | 256 | 524 | uniformFlagsPtr++; | 257 | 524 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 524 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 524 | uniformDataPtr += sizeof(val.value); | 256 | 524 | uniformFlagsPtr++; | 257 | 524 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 123 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 123 | uniformDataPtr += sizeof(val.value); | 256 | 123 | uniformFlagsPtr++; | 257 | 123 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 123 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 123 | uniformDataPtr += sizeof(val.value); | 256 | 123 | uniformFlagsPtr++; | 257 | 123 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 4 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 4 | uniformDataPtr += sizeof(val.value); | 256 | 4 | uniformFlagsPtr++; | 257 | 4 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 4 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 4 | uniformDataPtr += sizeof(val.value); | 256 | 4 | uniformFlagsPtr++; | 257 | 4 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 0 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 0 | uniformDataPtr += sizeof(val.value); | 256 | 0 | uniformFlagsPtr++; | 257 | 0 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 0 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 0 | uniformDataPtr += sizeof(val.value); | 256 | 0 | uniformFlagsPtr++; | 257 | 0 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 0 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 0 | uniformDataPtr += sizeof(val.value); | 256 | 0 | uniformFlagsPtr++; | 257 | 0 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 0 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 0 | uniformDataPtr += sizeof(val.value); | 256 | 0 | uniformFlagsPtr++; | 257 | 0 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 0 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 0 | uniformDataPtr += sizeof(val.value); | 256 | 0 | uniformFlagsPtr++; | 257 | 0 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 0 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 0 | uniformDataPtr += sizeof(val.value); | 256 | 0 | uniformFlagsPtr++; | 257 | 0 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 0 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 0 | uniformDataPtr += sizeof(val.value); | 256 | 0 | uniformFlagsPtr++; | 257 | 0 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&) Line | Count | Source | 250 | 524 | Args&&... remainder) { | 251 | | // Optional uniform case. Copy the data and advance pointers, but only if the uniform is | 252 | | // enabled. Then proceed as normal. | 253 | 524 | if (val.enabled) { | 254 | 0 | memcpy(uniformDataPtr, &val.value, sizeof(val.value)); | 255 | 0 | uniformDataPtr += sizeof(val.value); | 256 | 0 | uniformFlagsPtr++; | 257 | 0 | } | 258 | | | 259 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 260 | 524 | } |
|
261 | | template <typename T, typename... Args> |
262 | | void appendArgs(uint8_t* uniformDataPtr, |
263 | | UniformFlags* uniformFlagsPtr, |
264 | | const char* name, |
265 | | const T& val, |
266 | 72.8k | Args&&... remainder) { |
267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, |
268 | | // then advance our uniform data and flags pointers. |
269 | 72.8k | memcpy(uniformDataPtr, &val, sizeof(val)); |
270 | 72.8k | uniformDataPtr += sizeof(val); |
271 | 72.8k | uniformFlagsPtr++; |
272 | 72.8k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); |
273 | 72.8k | } void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkRGBA4f<(SkAlphaType)2> const&) Line | Count | Source | 266 | 38.4k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 38.4k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 38.4k | uniformDataPtr += sizeof(val); | 271 | 38.4k | uniformFlagsPtr++; | 272 | 38.4k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 38.4k | } |
void GrSkSLFP::appendArgs<SkM44, char const (&) [2], SkV4&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkM44 const&, char const (&) [2], SkV4&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 266 | 1.10k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1.10k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1.10k | uniformDataPtr += sizeof(val); | 271 | 1.10k | uniformFlagsPtr++; | 272 | 1.10k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1.10k | } |
void GrSkSLFP::appendArgs<SkV4, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkV4 const&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 266 | 1.10k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1.10k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1.10k | uniformDataPtr += sizeof(val); | 271 | 1.10k | uniformFlagsPtr++; | 272 | 1.10k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1.10k | } |
void GrSkSLFP::appendArgs<int, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 266 | 1.10k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1.10k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1.10k | uniformDataPtr += sizeof(val); | 271 | 1.10k | uniformFlagsPtr++; | 272 | 1.10k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1.10k | } |
void GrSkSLFP::appendArgs<int, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 266 | 1.10k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1.10k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1.10k | uniformDataPtr += sizeof(val); | 271 | 1.10k | uniformFlagsPtr++; | 272 | 1.10k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1.10k | } |
void GrSkSLFP::appendArgs<int>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&) Line | Count | Source | 266 | 4.31k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 4.31k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 4.31k | uniformDataPtr += sizeof(val); | 271 | 4.31k | uniformFlagsPtr++; | 272 | 4.31k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 4.31k | } |
void GrSkSLFP::appendArgs<int, char const (&) [12], SkRect&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [12], SkRect&) Line | Count | Source | 266 | 1.32k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1.32k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1.32k | uniformDataPtr += sizeof(val); | 271 | 1.32k | uniformFlagsPtr++; | 272 | 1.32k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1.32k | } |
void GrSkSLFP::appendArgs<SkRect>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkRect const&) Line | Count | Source | 266 | 1.32k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1.32k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1.32k | uniformDataPtr += sizeof(val); | 271 | 1.32k | uniformFlagsPtr++; | 272 | 1.32k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1.32k | } |
Unexecuted instantiation: void GrSkSLFP::appendArgs<int, char const (&) [7], SkV4&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [7], SkV4&) Unexecuted instantiation: void GrSkSLFP::appendArgs<SkV4>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkV4 const&) void GrSkSLFP::appendArgs<int, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [8], SkV4&, char const (&) [6], SkV2&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [8], SkV4&, char const (&) [6], SkV2&) Line | Count | Source | 266 | 6 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 6 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 6 | uniformDataPtr += sizeof(val); | 271 | 6 | uniformFlagsPtr++; | 272 | 6 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 6 | } |
void GrSkSLFP::appendArgs<int, char const (&) [8], SkV4&, char const (&) [6], SkV2&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [8], SkV4&, char const (&) [6], SkV2&) Line | Count | Source | 266 | 6 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 6 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 6 | uniformDataPtr += sizeof(val); | 271 | 6 | uniformFlagsPtr++; | 272 | 6 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 6 | } |
void GrSkSLFP::appendArgs<SkV4, char const (&) [6], SkV2&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkV4 const&, char const (&) [6], SkV2&) Line | Count | Source | 266 | 6 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 6 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 6 | uniformDataPtr += sizeof(val); | 271 | 6 | uniformFlagsPtr++; | 272 | 6 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 6 | } |
void GrSkSLFP::appendArgs<SkV2>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkV2 const&) Line | Count | Source | 266 | 123 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 123 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 123 | uniformDataPtr += sizeof(val); | 271 | 123 | uniformFlagsPtr++; | 272 | 123 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 123 | } |
void GrSkSLFP::appendArgs<float, char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, float const&, char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&) Line | Count | Source | 266 | 11.4k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 11.4k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 11.4k | uniformDataPtr += sizeof(val); | 271 | 11.4k | uniformFlagsPtr++; | 272 | 11.4k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 11.4k | } |
void GrSkSLFP::appendArgs<SkRect, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkRect const&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 266 | 48 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 48 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 48 | uniformDataPtr += sizeof(val); | 271 | 48 | uniformFlagsPtr++; | 272 | 48 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 48 | } |
Unexecuted instantiation: void GrSkSLFP::appendArgs<float, char const (&) [10], SkRect&, char const (&) [11], float&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, float const&, char const (&) [10], SkRect&, char const (&) [11], float&) Unexecuted instantiation: void GrSkSLFP::appendArgs<SkRect, char const (&) [11], float&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkRect const&, char const (&) [11], float&) void GrSkSLFP::appendArgs<float>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, float const&) Line | Count | Source | 266 | 288 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 288 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 288 | uniformDataPtr += sizeof(val); | 271 | 288 | uniformFlagsPtr++; | 272 | 288 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 288 | } |
void GrSkSLFP::appendArgs<float, char const (&) [15], float&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, float const&, char const (&) [15], float&) Line | Count | Source | 266 | 38 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 38 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 38 | uniformDataPtr += sizeof(val); | 271 | 38 | uniformFlagsPtr++; | 272 | 38 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 38 | } |
void GrSkSLFP::appendArgs<SkV4, char const (&) [8], float>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkV4 const&, char const (&) [8], float&&) Line | Count | Source | 266 | 134 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 134 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 134 | uniformDataPtr += sizeof(val); | 271 | 134 | uniformFlagsPtr++; | 272 | 134 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 134 | } |
void GrSkSLFP::appendArgs<SkV4, char const (&) [9], float&, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkV4 const&, char const (&) [9], float&, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2&&) Line | Count | Source | 266 | 117 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 117 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 117 | uniformDataPtr += sizeof(val); | 271 | 117 | uniformFlagsPtr++; | 272 | 117 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 117 | } |
void GrSkSLFP::appendArgs<float, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, float const&, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2&&) Line | Count | Source | 266 | 117 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 117 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 117 | uniformDataPtr += sizeof(val); | 271 | 117 | uniformFlagsPtr++; | 272 | 117 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 117 | } |
void GrSkSLFP::appendArgs<float, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, float const&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2&&) Line | Count | Source | 266 | 117 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 117 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 117 | uniformDataPtr += sizeof(val); | 271 | 117 | uniformFlagsPtr++; | 272 | 117 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 117 | } |
void GrSkSLFP::appendArgs<float, char const (&) [10], float&, char const (&) [7], SkV2>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, float const&, char const (&) [10], float&, char const (&) [7], SkV2&&) Line | Count | Source | 266 | 117 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 117 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 117 | uniformDataPtr += sizeof(val); | 271 | 117 | uniformFlagsPtr++; | 272 | 117 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 117 | } |
void GrSkSLFP::appendArgs<float, char const (&) [7], SkV2>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, float const&, char const (&) [7], SkV2&&) Line | Count | Source | 266 | 117 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 117 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 117 | uniformDataPtr += sizeof(val); | 271 | 117 | uniformFlagsPtr++; | 272 | 117 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 117 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [4], SkRGBA4f<(SkAlphaType)2> const&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [4], SkRGBA4f<(SkAlphaType)2> const&) Line | Count | Source | 266 | 251 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 251 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 251 | uniformDataPtr += sizeof(val); | 271 | 251 | uniformFlagsPtr++; | 272 | 251 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 251 | } |
void GrSkSLFP::appendArgs<skvx::Vec<4, float>, char const (&) [7], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], skvx::Vec<4, float>&, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, skvx::Vec<4, float> const&, char const (&) [7], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], skvx::Vec<4, float>&, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&) Line | Count | Source | 266 | 6 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 6 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 6 | uniformDataPtr += sizeof(val); | 271 | 6 | uniformFlagsPtr++; | 272 | 6 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 6 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], skvx::Vec<4, float>&, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], skvx::Vec<4, float>&, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&) Line | Count | Source | 266 | 6 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 6 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 6 | uniformDataPtr += sizeof(val); | 271 | 6 | uniformFlagsPtr++; | 272 | 6 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 6 | } |
void GrSkSLFP::appendArgs<skvx::Vec<4, float>, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, skvx::Vec<4, float> const&, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&) Line | Count | Source | 266 | 6 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 6 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 6 | uniformDataPtr += sizeof(val); | 271 | 6 | uniformFlagsPtr++; | 272 | 6 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 6 | } |
void GrSkSLFP::appendArgs<skvx::Vec<4, float>, char const (&) [10], float&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, skvx::Vec<4, float> const&, char const (&) [10], float&) Line | Count | Source | 266 | 6 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 6 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 6 | uniformDataPtr += sizeof(val); | 271 | 6 | uniformFlagsPtr++; | 272 | 6 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 6 | } |
void GrSkSLFP::appendArgs<SkRect, char const (&) [15], SkRect&, char const (&) [9], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkRect const&, char const (&) [15], SkRect&, char const (&) [9], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 266 | 524 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 524 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 524 | uniformDataPtr += sizeof(val); | 271 | 524 | uniformFlagsPtr++; | 272 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 524 | } |
void GrSkSLFP::appendArgs<SkRect, char const (&) [9], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkRect const&, char const (&) [9], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 266 | 524 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 524 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 524 | uniformDataPtr += sizeof(val); | 271 | 524 | uniformFlagsPtr++; | 272 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 266 | 524 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 524 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 524 | uniformDataPtr += sizeof(val); | 271 | 524 | uniformFlagsPtr++; | 272 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 524 | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Line | Count | Source | 266 | 524 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 524 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 524 | uniformDataPtr += sizeof(val); | 271 | 524 | uniformFlagsPtr++; | 272 | 524 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 524 | } |
Unexecuted instantiation: void GrSkSLFP::appendArgs<int, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::appendArgs<int, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::appendArgs<int, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 266 | 1.67k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1.67k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1.67k | uniformDataPtr += sizeof(val); | 271 | 1.67k | uniformFlagsPtr++; | 272 | 1.67k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1.67k | } |
void GrSkSLFP::appendArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 266 | 1.67k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1.67k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1.67k | uniformDataPtr += sizeof(val); | 271 | 1.67k | uniformFlagsPtr++; | 272 | 1.67k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1.67k | } |
void GrSkSLFP::appendArgs<int, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 266 | 1.67k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1.67k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1.67k | uniformDataPtr += sizeof(val); | 271 | 1.67k | uniformFlagsPtr++; | 272 | 1.67k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1.67k | } |
void GrSkSLFP::appendArgs<float, char const (&) [6], float, char const (&) [18], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, float const&, char const (&) [6], float&&, char const (&) [18], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 266 | 1.48k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1.48k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1.48k | uniformDataPtr += sizeof(val); | 271 | 1.48k | uniformFlagsPtr++; | 272 | 1.48k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1.48k | } |
void GrSkSLFP::appendArgs<float, char const (&) [18], GrSkSLFP::GrSpecializedUniform<int> >(unsigned char*, GrSkSLFP::UniformFlags*, char const*, float const&, char const (&) [18], GrSkSLFP::GrSpecializedUniform<int>&&) Line | Count | Source | 266 | 1.48k | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1.48k | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1.48k | uniformDataPtr += sizeof(val); | 271 | 1.48k | uniformFlagsPtr++; | 272 | 1.48k | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1.48k | } |
Unexecuted instantiation: void GrSkSLFP::appendArgs<float, char const (&) [12], float>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, float const&, char const (&) [12], float&&) void GrSkSLFP::appendArgs<int, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Line | Count | Source | 266 | 1 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1 | uniformDataPtr += sizeof(val); | 271 | 1 | uniformFlagsPtr++; | 272 | 1 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1 | } |
void GrSkSLFP::appendArgs<int, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Line | Count | Source | 266 | 1 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1 | uniformDataPtr += sizeof(val); | 271 | 1 | uniformFlagsPtr++; | 272 | 1 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1 | } |
void GrSkSLFP::appendArgs<int, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Line | Count | Source | 266 | 1 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1 | uniformDataPtr += sizeof(val); | 271 | 1 | uniformFlagsPtr++; | 272 | 1 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1 | } |
void GrSkSLFP::appendArgs<int, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Line | Count | Source | 266 | 1 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1 | uniformDataPtr += sizeof(val); | 271 | 1 | uniformFlagsPtr++; | 272 | 1 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1 | } |
void GrSkSLFP::appendArgs<int, char const (&) [6], float, char const (&) [3], float const&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, int const&, char const (&) [6], float&&, char const (&) [3], float const&) Line | Count | Source | 266 | 1 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1 | uniformDataPtr += sizeof(val); | 271 | 1 | uniformFlagsPtr++; | 272 | 1 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1 | } |
void GrSkSLFP::appendArgs<float, char const (&) [3], float const&>(unsigned char*, GrSkSLFP::UniformFlags*, char const*, float const&, char const (&) [3], float const&) Line | Count | Source | 266 | 1 | Args&&... remainder) { | 267 | | // Raw uniform value case -- We copy the supplied value into our uniform data area, | 268 | | // then advance our uniform data and flags pointers. | 269 | 1 | memcpy(uniformDataPtr, &val, sizeof(val)); | 270 | 1 | uniformDataPtr += sizeof(val); | 271 | 1 | uniformFlagsPtr++; | 272 | 1 | this->appendArgs(uniformDataPtr, uniformFlagsPtr, std::forward<Args>(remainder)...); | 273 | 1 | } |
|
274 | | |
275 | | #ifdef SK_DEBUG |
276 | | using child_iterator = std::vector<SkRuntimeEffect::Child>::const_iterator; |
277 | | using uniform_iterator = std::vector<SkRuntimeEffect::Uniform>::const_iterator; |
278 | | |
279 | | // Validates that all args passed to the template factory have the right names, sizes, and types |
280 | | static void checkArgs(uniform_iterator uIter, |
281 | | uniform_iterator uEnd, |
282 | | child_iterator cIter, |
283 | 0 | child_iterator cEnd) { |
284 | 0 | SkASSERTF(uIter == uEnd, "Expected more uniforms, starting with '%s'", uIter->name.c_str()); |
285 | 0 | SkASSERTF(cIter == cEnd, "Expected more children, starting with '%s'", cIter->name.c_str()); |
286 | 0 | } |
287 | | template <typename... Args> |
288 | | static void checkArgs(uniform_iterator uIter, |
289 | | uniform_iterator uEnd, |
290 | | child_iterator cIter, |
291 | | child_iterator cEnd, |
292 | | const char* name, |
293 | | std::unique_ptr<GrFragmentProcessor>&& child, |
294 | 0 | Args&&... remainder) { |
295 | | // NOTE: This function (necessarily) gets an rvalue reference to child, but deliberately |
296 | | // does not use it. We leave it intact, and our caller (Make) will pass another rvalue |
297 | | // reference to appendArgs, which will then move it to call addChild. |
298 | 0 | SkASSERTF(cIter != cEnd, "Too many children, wasn't expecting '%s'", name); |
299 | 0 | SkASSERTF(cIter->name.equals(name), |
300 | 0 | "Expected child '%s', got '%s' instead", |
301 | 0 | cIter->name.c_str(), name); |
302 | 0 | checkArgs(uIter, uEnd, ++cIter, cEnd, std::forward<Args>(remainder)...); |
303 | 0 | } Unexecuted instantiation: void GrSkSLFP::checkArgs<char const (&) [6], GrSkSLFP::GrSpecializedUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [6], GrSkSLFP::GrSpecializedUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >, char const (&) [2], SkV4 const&, char const (&) [8], float>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [2], SkV4 const&, char const (&) [8], float&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<char const (&) [2], SkV4 const&, char const (&) [8], float>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [2], SkV4 const&, char const (&) [8], float&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<char const (&) [14], SkV4&, char const (&) [9], float&, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&, char const (&) [14], SkV4&, char const (&) [9], float&, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2&&) |
304 | | template <typename... Args> |
305 | | static void checkArgs(uniform_iterator uIter, |
306 | | uniform_iterator uEnd, |
307 | | child_iterator cIter, |
308 | | child_iterator cEnd, |
309 | | const char* name, |
310 | | GrIgnoreOptFlags&& child, |
311 | 0 | Args&&... remainder) { |
312 | | // NOTE: This function (necessarily) gets an rvalue reference to child, but deliberately |
313 | | // does not use it. We leave it intact, and our caller (Make) will pass another rvalue |
314 | | // reference to appendArgs, which will then move it to call addChild. |
315 | 0 | SkASSERTF(cIter != cEnd, "Too many children, wasn't expecting '%s'", name); |
316 | 0 | SkASSERTF(cIter->name.equals(name), |
317 | 0 | "Expected child '%s', got '%s' instead", |
318 | 0 | cIter->name.c_str(), name); |
319 | 0 | checkArgs(uIter, uEnd, ++cIter, cEnd, std::forward<Args>(remainder)...); |
320 | 0 | } Unexecuted instantiation: void GrSkSLFP::checkArgs<char const (&) [5], SkRect&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [5], SkRect&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<char const (&) [11], SkV4&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [11], SkV4&) Unexecuted instantiation: void GrSkSLFP::checkArgs<char const (&) [13], float&, char const (&) [10], SkRect&, char const (&) [11], float&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [13], float&, char const (&) [10], SkRect&, char const (&) [11], float&) Unexecuted instantiation: void GrSkSLFP::checkArgs<char const (&) [15], float&, char const (&) [15], float&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [15], float&, char const (&) [15], float&) Unexecuted instantiation: void GrSkSLFP::checkArgs<char const (&) [11], GrSkSLFP::GrIgnoreOptFlags, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [11], GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<char const (&) [11], GrSkSLFP::GrIgnoreOptFlags, char const (&) [16], SkRGBA4f<(SkAlphaType)2>&, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [11], GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [16], SkRGBA4f<(SkAlphaType)2>&, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<char const (&) [16], SkRGBA4f<(SkAlphaType)2>&, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrIgnoreOptFlags&&, char const (&) [16], SkRGBA4f<(SkAlphaType)2>&, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) |
321 | | template <typename T, typename... Args> |
322 | | static void checkArgs(uniform_iterator uIter, |
323 | | uniform_iterator uEnd, |
324 | | child_iterator cIter, |
325 | | child_iterator cEnd, |
326 | | const char* name, |
327 | | const GrSpecializedUniform<T>& val, |
328 | 0 | Args&&... remainder) { |
329 | 0 | static_assert(!std::is_array<T>::value); // No specializing arrays |
330 | 0 | checkArgs(uIter, uEnd, cIter, cEnd, name, val.value, std::forward<Args>(remainder)...); |
331 | 0 | } Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<SkRGBA4f<(SkAlphaType)2> > const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [12], SkRect&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [12], SkRect&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [7], SkV4&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [7], SkV4&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [8], SkV4&, char const (&) [6], SkV2&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [8], SkV4&, char const (&) [6], SkV2&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [8], SkV4&, char const (&) [6], SkV2&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [8], SkV4&, char const (&) [6], SkV2&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [6], float, char const (&) [3], float const&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrSpecializedUniform<int> const&, char const (&) [6], float&&, char const (&) [3], float const&) |
332 | | template <typename T, typename... Args> |
333 | | static void checkArgs(uniform_iterator uIter, |
334 | | uniform_iterator uEnd, |
335 | | child_iterator cIter, |
336 | | child_iterator cEnd, |
337 | | const char* name, |
338 | | const GrOptionalUniform<T>& val, |
339 | 0 | Args&&... remainder) { |
340 | 0 | if (val.enabled) { |
341 | 0 | checkArgs(uIter, uEnd, cIter, cEnd, name, val.value, std::forward<Args>(remainder)...); |
342 | 0 | } else { |
343 | 0 | checkArgs(uIter, uEnd, cIter, cEnd, std::forward<Args>(remainder)...); |
344 | 0 | } |
345 | 0 | } Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > const&) |
346 | | template <typename T, typename... Args> |
347 | | static void checkArgs(uniform_iterator uIter, |
348 | | uniform_iterator uEnd, |
349 | | child_iterator cIter, |
350 | | child_iterator cEnd, |
351 | | const char* name, |
352 | | const T& val, |
353 | 0 | Args&&... remainder) { |
354 | 0 | SkASSERTF(uIter != uEnd, "Too many uniforms, wasn't expecting '%s'", name); |
355 | 0 | SkASSERTF(uIter->name.equals(name), |
356 | 0 | "Expected uniform '%s', got '%s' instead", |
357 | 0 | uIter->name.c_str(), name); |
358 | 0 | SkASSERTF(uIter->sizeInBytes() == sizeof(val), |
359 | 0 | "Expected uniform '%s' to be %zu bytes, got %zu instead", |
360 | 0 | name, uIter->sizeInBytes(), sizeof(val)); |
361 | 0 | SkASSERTF(GrFPUniformType<T>::value == uIter->type, |
362 | 0 | "Wrong type for uniform '%s'", |
363 | 0 | name); |
364 | 0 | checkArgs(++uIter, uEnd, cIter, cEnd, std::forward<Args>(remainder)...); |
365 | 0 | } Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkM44, char const (&) [2], SkV4&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkM44 const&, char const (&) [2], SkV4&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkV4, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkV4 const&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [15], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [12], SkRect&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [12], SkRect&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRect>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRect const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [7], SkV4&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [7], SkV4&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkV4>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkV4 const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [8], SkV4&, char const (&) [6], SkV2&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [13], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [8], SkV4&, char const (&) [6], SkV2&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [8], SkV4&, char const (&) [6], SkV2&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [8], SkV4&, char const (&) [6], SkV2&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkV4, char const (&) [6], SkV2&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkV4 const&, char const (&) [6], SkV2&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkV2>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkV2 const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<float, char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, float const&, char const (&) [6], std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRect, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRect const&, char const (&) [7], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<float, char const (&) [10], SkRect&, char const (&) [11], float&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, float const&, char const (&) [10], SkRect&, char const (&) [11], float&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRect, char const (&) [11], float&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRect const&, char const (&) [11], float&) Unexecuted instantiation: void GrSkSLFP::checkArgs<float>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, float const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<float, char const (&) [15], float&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, float const&, char const (&) [15], float&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkV4, char const (&) [8], float>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkV4 const&, char const (&) [8], float&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkV4, char const (&) [9], float&, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkV4 const&, char const (&) [9], float&, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<float, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, float const&, char const (&) [9], float&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<float, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, float const&, char const (&) [10], float&, char const (&) [10], float&, char const (&) [7], SkV2&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<float, char const (&) [10], float&, char const (&) [7], SkV2>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, float const&, char const (&) [10], float&, char const (&) [7], SkV2&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<float, char const (&) [7], SkV2>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, float const&, char const (&) [7], SkV2&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [4], SkRGBA4f<(SkAlphaType)2> const&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [4], SkRGBA4f<(SkAlphaType)2> const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<skvx::Vec<4, float>, char const (&) [7], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], skvx::Vec<4, float>&, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, skvx::Vec<4, float> const&, char const (&) [7], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], skvx::Vec<4, float>&, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], skvx::Vec<4, float>&, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], skvx::Vec<4, float>&, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&) Unexecuted instantiation: void GrSkSLFP::checkArgs<skvx::Vec<4, float>, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, skvx::Vec<4, float> const&, char const (&) [7], skvx::Vec<4, float>&, char const (&) [10], float&) Unexecuted instantiation: void GrSkSLFP::checkArgs<skvx::Vec<4, float>, char const (&) [10], float&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, skvx::Vec<4, float> const&, char const (&) [10], float&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRect, char const (&) [15], SkRect&, char const (&) [9], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRect const&, char const (&) [15], SkRect&, char const (&) [9], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRect, char const (&) [9], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRect const&, char const (&) [9], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [9], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [8], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [11], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> > >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [10], GrSkSLFP::GrOptionalUniform<SkRGBA4f<(SkAlphaType)2> >&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [22], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [17], SkRGBA4f<(SkAlphaType)2>&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<SkRGBA4f<(SkAlphaType)2>, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, SkRGBA4f<(SkAlphaType)2> const&, char const (&) [11], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [23], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<float, char const (&) [6], float, char const (&) [18], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, float const&, char const (&) [6], float&&, char const (&) [18], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<float, char const (&) [18], GrSkSLFP::GrSpecializedUniform<int> >(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, float const&, char const (&) [18], GrSkSLFP::GrSpecializedUniform<int>&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<float, char const (&) [12], float>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, float const&, char const (&) [12], float&&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [14], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [10], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>, char const (&) [6], float, char const (&) [3], float const&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [16], GrSkSLFP::GrSpecializedUniform<int>&&, char const (&) [6], float&&, char const (&) [3], float const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<int, char const (&) [6], float, char const (&) [3], float const&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, int const&, char const (&) [6], float&&, char const (&) [3], float const&) Unexecuted instantiation: void GrSkSLFP::checkArgs<float, char const (&) [3], float const&>(std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Uniform const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, std::__1::__wrap_iter<SkRuntimeEffect::Child const*>, char const*, float const&, char const (&) [3], float const&) |
366 | | #endif |
367 | | |
368 | | sk_sp<SkRuntimeEffect> fEffect; |
369 | | const char* fName; |
370 | | uint32_t fUniformSize; |
371 | | int fInputChildIndex = -1; |
372 | | int fDestColorChildIndex = -1; |
373 | | |
374 | | GR_DECLARE_FRAGMENT_PROCESSOR_TEST |
375 | | |
376 | | using INHERITED = GrFragmentProcessor; |
377 | | |
378 | | friend class GrSkSLFPFactory; |
379 | | }; |
380 | | |
381 | | GR_MAKE_BITFIELD_CLASS_OPS(GrSkSLFP::OptFlags) |
382 | | |
383 | | #endif |