Flutter Engine
The Flutter Engine
|
#include <GrConvexPolyEffect.h>
Public Member Functions | |
~GrConvexPolyEffect () override | |
const char * | name () const override |
std::unique_ptr< GrFragmentProcessor > | clone () const override |
Public Member Functions inherited from GrFragmentProcessor | |
virtual std::unique_ptr< GrFragmentProcessor > | clone () const =0 |
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 |
virtual const char * | name () const =0 |
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 | |
static GrFPResult | Make (std::unique_ptr< GrFragmentProcessor > inputFP, GrClipEdgeType edgeType, int n, const float edges[]) |
static GrFPResult | Make (std::unique_ptr< GrFragmentProcessor >, GrClipEdgeType, const SkPath &) |
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 >) |
Static Public Attributes | |
static constexpr int | kMaxEdges = 8 |
An effect that renders a convex polygon. It is intended to be used as a coverage effect. Bounding geometry is rendered and the effect computes coverage based on the fragment's position relative to the polygon.
Definition at line 30 of file GrConvexPolyEffect.h.
|
override |
Definition at line 104 of file GrConvexPolyEffect.cpp.
|
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 193 of file GrConvexPolyEffect.cpp.
|
inlinestatic |
edges is a set of n edge equations where n is limited to kMaxEdges. It contains 3*n values. The edges should form a convex polygon. The positive half-plane is considered to be the inside. The equations should be normalized such that the first two coefficients are a unit 2d vector.
Currently the edges are specified in device space. In the future we may prefer to specify them in src space. There are a number of ways this could be accomplished but we'd probably have to modify the effect/shaderbuilder interface to make it possible (e.g. give access to the view matrix or untransformed positions in the fragment shader).
Definition at line 45 of file GrConvexPolyEffect.h.
|
static |
Creates an effect that clips against the path. If the path is not a convex polygon, is inverse filled, or has too many edges, creation will fail.
Definition at line 35 of file GrConvexPolyEffect.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 65 of file GrConvexPolyEffect.h.
|
inlinestaticconstexpr |
Definition at line 32 of file GrConvexPolyEffect.h.