8#ifndef GrSimpleMeshDrawOpHelper_DEFINED
9#define GrSimpleMeshDrawOpHelper_DEFINED
36 template <
typename Op,
typename... OpArgs>
58 const SkRect& thatBounds,
bool ignoreAAType =
false)
const;
75 geometryCoverage, geometryColor);
104#if defined(GR_TEST_UTILS)
137 bool usesMSAASurface,
151 bool usesMSAASurface,
167 bool usesMSAASurface,
196template<
typename Op,
typename... Args>
201 char* setMem = bytes +
sizeof(
Op);
203 return Owner{
new (bytes)
Op(processorSet,
color, std::forward<Args>(
args)...)};
206template <
typename Op,
typename... OpArgs>
209 OpArgs&& ... opArgs) {
211 if (
paint.isTrivial()) {
212 return GrOp::Make<Op>(context,
nullptr,
color, std::forward<OpArgs>(opArgs)...);
214 return GrOp::MakeWithProcessorSet<Op>(
215 context,
color, std::move(
paint), std::forward<OpArgs>(opArgs)...);
GrProcessorAnalysisCoverage
std::function< void(GrSurfaceProxy *, skgpu::Mipmapped)> GrVisitProxyFunc
#define GR_MAKE_BITFIELD_CLASS_OPS(X)
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
SkDEBUGCODE(SK_SPI) SkThreadID SkGetThreadID()
std::unique_ptr< GrOp > Owner
static Owner MakeWithProcessorSet(GrRecordingContext *context, const SkPMColor4f &color, GrPaint &&paint, Args &&... args)
@ kSnapVerticesToPixelCenters
void visitProxies(const GrVisitProxyFunc &) const
static GrProcessorSet MakeEmptySet()
GrPipeline::InputFlags fPipelineFlags
GrSimpleMeshDrawOpHelper()=delete
GrProcessorSet detachProcessorSet()
void visitProxies(const GrVisitProxyFunc &func) const
GrDrawOp::FixedFunctionFlags fixedFunctionFlags() const
void setAAType(GrAAType aaType)
unsigned fCompatibleWithCoverageAsAlpha
GrProcessorSet * fProcessors
GrSimpleMeshDrawOpHelper(const GrSimpleMeshDrawOpHelper &)=delete
unsigned fUsesLocalCoords
GrSimpleMeshDrawOpHelper & operator=(const GrSimpleMeshDrawOpHelper &)=delete
static GrOp::Owner FactoryHelper(GrRecordingContext *, GrPaint &&, OpArgs &&...)
bool usesLocalCoords() const
GrProgramInfo * createProgramInfo(const GrCaps *, SkArenaAlloc *, const GrSurfaceProxyView &writeView, bool usesMSAASurface, GrAppliedClip &&, const GrDstProxyView &, GrGeometryProcessor *, GrPrimitiveType, GrXferBarrierFlags renderPassXferBarriers, GrLoadOp colorLoadOp)
GrPipeline::InputFlags pipelineFlags() const
bool compatibleWithCoverageAsAlpha() const
static const GrPipeline * CreatePipeline(const GrCaps *, SkArenaAlloc *, skgpu::Swizzle writeViewSwizzle, GrAppliedClip &&, const GrDstProxyView &, GrProcessorSet &&, GrPipeline::InputFlags pipelineFlags)
GR_DECL_BITFIELD_CLASS_OPS_FRIENDS(InputFlags)
GrProcessorSet::Analysis finalizeProcessors(const GrCaps &caps, const GrAppliedClip *clip, GrClampType clampType, GrProcessorAnalysisCoverage geometryCoverage, GrProcessorAnalysisColor *geometryColor)
static GrProgramInfo * CreateProgramInfo(const GrCaps *, SkArenaAlloc *, const GrPipeline *, const GrSurfaceProxyView &writeView, bool usesMSAASurface, GrGeometryProcessor *, GrPrimitiveType, GrXferBarrierFlags renderPassXferBarriers, GrLoadOp colorLoadOp, const GrUserStencilSettings *=&GrUserStencilSettings::kUnused)
const GrPipeline * createPipeline(GrOpFlushState *flushState)
~GrSimpleMeshDrawOpHelper()
bool isCompatible(const GrSimpleMeshDrawOpHelper &that, const GrCaps &, const SkRect &thisBounds, const SkRect &thatBounds, bool ignoreAAType=false) const
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
static const GrUserStencilSettings & kUnused