Flutter Engine
The Flutter Engine
|
#include <GrSkSLFP.h>
Classes | |
struct | GrIgnoreOptFlags |
struct | GrOptionalUniform |
struct | GrSpecializedUniform |
class | Impl |
Public Member Functions | |
const char * | name () const override |
std::unique_ptr< GrFragmentProcessor > | clone () const override |
Public Member Functions inherited from GrFragmentProcessor | |
const GrFragmentProcessor * | parent () const |
std::unique_ptr< ProgramImpl > | makeProgramImpl () const |
void | addToKey (const GrShaderCaps &caps, skgpu::KeyBuilder *b) const |
int | numChildProcessors () const |
int | numNonNullChildProcessors () const |
GrFragmentProcessor * | childProcessor (int index) |
const GrFragmentProcessor * | childProcessor (int index) const |
SkDEBUGCODE (bool isInstantiated() const ;) bool willReadDstColor() const | |
bool | isBlendFunction () const |
bool | usesSampleCoordsDirectly () const |
bool | usesSampleCoords () const |
const SkSL::SampleUsage & | sampleUsage () const |
bool | compatibleWithCoverageAsAlpha () const |
bool | preservesOpaqueInput () const |
bool | hasConstantOutputForConstantInput (SkPMColor4f inputColor, SkPMColor4f *outputColor) const |
bool | hasConstantOutputForConstantInput () const |
void | clearConstantOutputForConstantInputFlag () |
bool | isEqual (const GrFragmentProcessor &that) const |
void | visitProxies (const GrVisitProxyFunc &) const |
void | visitTextureEffects (const std::function< void(const GrTextureEffect &)> &) const |
void | visitWithImpls (const std::function< void(const GrFragmentProcessor &, ProgramImpl &)> &, ProgramImpl &) const |
GrTextureEffect * | asTextureEffect () |
const GrTextureEffect * | asTextureEffect () const |
Public Member Functions inherited from GrProcessor | |
virtual | ~GrProcessor ()=default |
void * | operator new (size_t size) |
void * | operator new (size_t object_size, size_t footer_size) |
void | operator delete (void *target) |
void * | operator new (size_t size, void *placement) |
void | operator delete (void *target, void *placement) |
template<typename T > | |
const T & | cast () const |
ClassID | classID () const |
Static Public Member Functions | |
template<typename T > | |
static GrSpecializedUniform< T > | Specialize (const T &value) |
template<typename T > | |
static GrSpecializedUniform< T > | SpecializeIf (bool condition, const T &value) |
template<typename T > | |
static GrOptionalUniform< T > | When (bool condition, const T &value) |
static GrIgnoreOptFlags | IgnoreOptFlags (std::unique_ptr< GrFragmentProcessor > child) |
static std::unique_ptr< GrSkSLFP > | MakeWithData (sk_sp< SkRuntimeEffect > effect, const char *name, sk_sp< SkColorSpace > dstColorSpace, std::unique_ptr< GrFragmentProcessor > inputFP, std::unique_ptr< GrFragmentProcessor > destColorFP, const sk_sp< const SkData > &uniforms, SkSpan< std::unique_ptr< GrFragmentProcessor > > childFPs) |
template<typename... Args> | |
static std::unique_ptr< GrSkSLFP > | Make (const SkRuntimeEffect *effect, const char *name, std::unique_ptr< GrFragmentProcessor > inputFP, OptFlags optFlags, Args &&... args) |
Static Public Member Functions inherited from GrFragmentProcessor | |
static std::unique_ptr< GrFragmentProcessor > | MakeColor (SkPMColor4f color) |
static std::unique_ptr< GrFragmentProcessor > | MulInputByChildAlpha (std::unique_ptr< GrFragmentProcessor > child) |
static std::unique_ptr< GrFragmentProcessor > | ApplyPaintAlpha (std::unique_ptr< GrFragmentProcessor > child) |
static std::unique_ptr< GrFragmentProcessor > | ModulateRGBA (std::unique_ptr< GrFragmentProcessor > child, const SkPMColor4f &color) |
static std::unique_ptr< GrFragmentProcessor > | OverrideInput (std::unique_ptr< GrFragmentProcessor >, const SkPMColor4f &) |
static std::unique_ptr< GrFragmentProcessor > | DisableCoverageAsAlpha (std::unique_ptr< GrFragmentProcessor >) |
static std::unique_ptr< GrFragmentProcessor > | DestColor () |
static std::unique_ptr< GrFragmentProcessor > | SwizzleOutput (std::unique_ptr< GrFragmentProcessor >, const skgpu::Swizzle &) |
static std::unique_ptr< GrFragmentProcessor > | ClampOutput (std::unique_ptr< GrFragmentProcessor >) |
static std::unique_ptr< GrFragmentProcessor > | Compose (std::unique_ptr< GrFragmentProcessor > f, std::unique_ptr< GrFragmentProcessor > g) |
static std::unique_ptr< GrFragmentProcessor > | ColorMatrix (std::unique_ptr< GrFragmentProcessor > child, const float matrix[20], bool unpremulInput, bool clampRGBOutput, bool premulOutput) |
static std::unique_ptr< GrFragmentProcessor > | SurfaceColor () |
static std::unique_ptr< GrFragmentProcessor > | DeviceSpace (std::unique_ptr< GrFragmentProcessor >) |
static std::unique_ptr< GrFragmentProcessor > | Rect (std::unique_ptr< GrFragmentProcessor >, GrClipEdgeType, SkRect) |
static GrFPResult | Circle (std::unique_ptr< GrFragmentProcessor >, GrClipEdgeType, SkPoint center, float radius) |
static GrFPResult | Ellipse (std::unique_ptr< GrFragmentProcessor >, GrClipEdgeType, SkPoint center, SkPoint radii, const GrShaderCaps &) |
static std::unique_ptr< GrFragmentProcessor > | HighPrecision (std::unique_ptr< GrFragmentProcessor >) |
Private Member Functions | |
std::unique_ptr< ProgramImpl > | onMakeProgramImpl () const override |
void | onAddToKey (const GrShaderCaps &, skgpu::KeyBuilder *) const override |
bool | onIsEqual (const GrFragmentProcessor &) const override |
SkPMColor4f | constantOutputForConstantInput (const SkPMColor4f &) const override |
Friends | |
class | GrSkSLFPFactory |
Definition at line 69 of file GrSkSLFP.h.
|
strong |
Enumerator | |
---|---|
kNone | |
kCompatibleWithCoverageAsAlpha | |
kPreservesOpaqueInput | |
kAll |
Definition at line 100 of file GrSkSLFP.h.
|
overridevirtual |
Makes a copy of this fragment processor that draws equivalently to the original. If the processor has child processors they are cloned as well.
Implements GrFragmentProcessor.
Definition at line 448 of file GrSkSLFP.cpp.
|
overrideprivatevirtual |
Reimplemented from GrFragmentProcessor.
Definition at line 453 of file GrSkSLFP.cpp.
|
inlinestatic |
Definition at line 96 of file GrSkSLFP.h.
|
inlinestatic |
Definition at line 158 of file GrSkSLFP.h.
|
static |
Both factories support a single 'input' FP, as well as a collection of other 'child' FPs. The 'child' FPs correspond to the children declared in the effect's SkSL. The inputFP is optional, and intended for instances that have color filter semantics. This is an implicit child - if present, it's evaluated to produce the input color fed to the SkSL. Otherwise, the SkSL receives this FP's input color directly. Creates a new fragment processor from an SkRuntimeEffect and a data blob containing values for all of the 'uniform' variables in the SkSL source. The layout of the uniforms blob is dictated by the SkRuntimeEffect.
Definition at line 289 of file GrSkSLFP.cpp.
|
inlineoverridevirtual |
Human-meaningful string to identify this processor; may be embedded in generated shader code and must be a legal SkSL identifier prefix.
Implements GrProcessor.
Definition at line 185 of file GrSkSLFP.h.
|
overrideprivatevirtual |
Implements GrFragmentProcessor.
Definition at line 416 of file GrSkSLFP.cpp.
|
overrideprivatevirtual |
Subclass implements this to support isEqual(). It will only be called if it is known that the two processors are of the same subclass (i.e. have the same ClassID).
Implements GrFragmentProcessor.
Definition at line 437 of file GrSkSLFP.cpp.
|
overrideprivatevirtual |
Returns a new instance of the appropriate ProgramImpl subclass for the given GrFragmentProcessor. It will emit the appropriate code and live with the cached program to setup uniform data for each draw that uses the program.
Implements GrFragmentProcessor.
Definition at line 412 of file GrSkSLFP.cpp.
|
inlinestatic |
Definition at line 76 of file GrSkSLFP.h.
|
inlinestatic |
Definition at line 80 of file GrSkSLFP.h.
|
inlinestatic |
Definition at line 89 of file GrSkSLFP.h.
|
friend |
Definition at line 444 of file GrSkSLFP.h.