Flutter Engine
The Flutter Engine
|
#include <GrOp.h>
Classes | |
class | ChainRange |
Public Types | |
enum class | CombineResult { kMerged , kMayChain , kCannotCombine } |
enum class | HasAABloat : bool { kNo = false , kYes = true } |
enum class | IsHairline : bool { kNo = false , kYes = true } |
using | Owner = std::unique_ptr< GrOp > |
Public Member Functions | |
virtual | ~GrOp ()=default |
virtual const char * | name () const =0 |
virtual void | visitProxies (const GrVisitProxyFunc &) const |
CombineResult | combineIfPossible (GrOp *that, SkArenaAlloc *alloc, const GrCaps &caps) |
const SkRect & | bounds () const |
void | setClippedBounds (const SkRect &clippedBounds) |
bool | hasAABloat () const |
bool | hasZeroArea () const |
void | operator delete (void *p) |
template<typename T > | |
const T & | cast () const |
template<typename T > | |
T * | cast () |
uint32_t | classID () const |
uint32_t | uniqueID () const |
void | prePrepare (GrRecordingContext *context, const GrSurfaceProxyView &dstView, GrAppliedClip *clip, const GrDstProxyView &dstProxyView, GrXferBarrierFlags renderPassXferBarriers, GrLoadOp colorLoadOp) |
void | prepare (GrOpFlushState *state) |
void | execute (GrOpFlushState *state, const SkRect &chainBounds) |
void | chainConcat (GrOp::Owner) |
bool | isChainHead () const |
bool | isChainTail () const |
GrOp * | nextInChain () const |
GrOp * | prevInChain () const |
GrOp::Owner | cutChain () |
void | setBounds (const SkRect &newBounds, HasAABloat aabloat, IsHairline zeroArea) |
void | setTransformedBounds (const SkRect &srcBounds, const SkMatrix &m, HasAABloat aabloat, IsHairline zeroArea) |
void | makeFullScreen (GrSurfaceProxy *proxy) |
Static Public Member Functions | |
template<typename Op , typename... Args> | |
static Owner | Make (GrRecordingContext *context, Args &&... args) |
template<typename Op , typename... Args> | |
static Owner | MakeWithProcessorSet (GrRecordingContext *context, const SkPMColor4f &color, GrPaint &&paint, Args &&... args) |
template<typename Op , typename... Args> | |
static Owner | MakeWithExtraMemory (GrRecordingContext *context, size_t extraSize, Args &&... args) |
static uint32_t | GenOpClassID () |
Private Member Functions | |
virtual CombineResult | onCombineIfPossible (GrOp *, SkArenaAlloc *, const GrCaps &) |
virtual void | onPrePrepare (GrRecordingContext *, const GrSurfaceProxyView &writeView, GrAppliedClip *, const GrDstProxyView &, GrXferBarrierFlags renderPassXferBarriers, GrLoadOp colorLoadOp)=0 |
virtual void | onPrepare (GrOpFlushState *)=0 |
virtual void | onExecute (GrOpFlushState *, const SkRect &chainBounds)=0 |
using GrOp::Owner = std::unique_ptr<GrOp> |
|
strong |
Enumerator | |
---|---|
kMerged | The op that combineIfPossible was called on now represents its own work plus that of the passed op. The passed op should be destroyed without being flushed. Currently it is not legal to merge an op passed to combineIfPossible() the passed op is already in a chain (though the op on which combineIfPossible() was called may be). |
kMayChain | The caller may (but is not required) to chain these ops together. If they are chained then prepare() and execute() will be called on the head op but not the other ops in the chain. The head op will prepare and execute on behalf of all the ops in the chain. |
kCannotCombine | The ops cannot be combined. |
Definition at line 99 of file GrOp.h.
|
strong |
Indicates that the op will produce geometry that extends beyond its bounds for the purpose of ensuring that the fragment shader runs on partially covered pixels for non-MSAA antialiasing.
Enumerator | |
---|---|
kNo | |
kYes |
Definition at line 266 of file GrOp.h.
|
strong |
|
virtualdefault |
|
inline |
void GrOp::chainConcat | ( | GrOp::Owner | next | ) |
|
inline |
GrOp::CombineResult GrOp::combineIfPossible | ( | GrOp * | that, |
SkArenaAlloc * | alloc, | ||
const GrCaps & | caps | ||
) |
Definition at line 19 of file GrOp.cpp.
GrOp::Owner GrOp::cutChain | ( | ) |
Cuts the chain after this op. The returned op is the op that was previously next in the chain or null if this was already a tail.
Definition at line 40 of file GrOp.cpp.
|
inline |
Issues the op's commands to GrGpu.
Definition at line 191 of file GrOp.h.
|
inlinestatic |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inline |
Definition at line 288 of file GrOp.h.
|
inlinestatic |
|
static |
Definition at line 197 of file GrSimpleMeshDrawOpHelper.h.
|
pure virtual |
|
inline |
|
inlineprivatevirtual |
Reimplemented in skgpu::ganesh::DrawAtlasPathOp.
|
privatepure virtual |
Implemented in skgpu::ganesh::DrawAtlasPathOp, LazyProxyTest::Op, and skiagm::BezierTestOp.
|
privatepure virtual |
Implemented in skgpu::ganesh::DrawAtlasPathOp.
|
privatepure virtual |
Implemented in skgpu::ganesh::DrawAtlasPathOp.
|
inline |
|
inline |
This can optionally be called before 'prepare' (but after sorting). Each op that overrides onPrePrepare must be prepared to handle both cases (when onPrePrepare has been called ahead of time and when it has not been called).
Definition at line 173 of file GrOp.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in skgpu::ganesh::AtlasTextOp, skiagm::BezierTestOp, skgpu::ganesh::DrawAtlasPathOp, CircleOp, ButtCapDashedCircleOp, EllipseOp, DIEllipseOp, CircularRRectOp, EllipticalRRectOp, TestVertexOp, LazyProxyTest::Op, and LazyFailedInstantiationTestOp.
Definition at line 95 of file GrOp.h.