Coverage Report

Created: 2021-08-22 09:07

/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