20 : fProcessors(processorSet)
22 , fAAType((
int)aaType)
23 , fUsesLocalCoords(
false)
24 , fCompatibleWithCoverageAsAlpha(
false) {
42 const SkRect& thatBounds,
bool ignoreAAType)
const {
73 color.isConstant(geometryColor);
95 clampType, &overrideColor);
97 *geometryColor = overrideColor;
117 pipelineArgs.
fCaps = caps;
122 std::move(processorSet),
123 std::move(appliedClip));
134 std::move(processorSet),
144 this->detachProcessorSet(),
145 this->pipelineFlags());
156 std::move(appliedClip),
166 bool usesMSAASurface,
179 std::move(appliedClip),
181 std::move(processorSet),
184 return CreateProgramInfo(caps, arena, pipeline, writeView, usesMSAASurface, geometryProcessor,
185 primitiveType, renderPassXferBarriers, colorLoadOp, stencilSettings);
192 bool usesMSAASurface,
214 bool usesMSAASurface,
225 std::move(appliedClip),
230 renderPassXferBarriers,
235#if defined(GR_TEST_UTILS)
239 result->append(
"Snap vertices to pixel center.\n");
242 result->append(
"Wireframe enabled.\n");
245 result->append(
"Conservative raster enabled.\n");
249 result->append(
"No pipeline flags\n");
252SkString GrSimpleMeshDrawOpHelper::dumpInfo()
const {
255 result.append(
"AA Type: ");
261 result.append(
" coverage\n");
GrProcessorAnalysisCoverage
static constexpr bool GrAATypeIsHW(GrAAType type)
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
SkDEBUGCODE(SK_SPI) SkThreadID SkGetThreadID()
static constexpr bool SkToBool(const T &x)
static bool CanUpgradeAAOnMerge(GrAAType aa1, GrAAType aa2)
const GrDstProxyView & dstProxyView() const final
SkArenaAlloc * allocator() override
const GrSurfaceProxyView & writeView() const final
GrAppliedClip detachAppliedClip() final
const GrCaps & caps() const final
@ kSnapVerticesToPixelCenters
bool inputColorIsOverridden() const
bool usesLocalCoords() const
bool isCompatibleWithCoverageAsAlpha() const
static constexpr Analysis EmptySetAnalysis()
static const GrProcessorSet & EmptySet()
Analysis finalize(const GrProcessorAnalysisColor &, const GrProcessorAnalysisCoverage, const GrAppliedClip *, const GrUserStencilSettings *, const GrCaps &, GrClampType, SkPMColor4f *inputColorOverride)
GrPipeline::InputFlags fPipelineFlags
GrSimpleMeshDrawOpHelper()=delete
GrProcessorSet detachProcessorSet()
GrDrawOp::FixedFunctionFlags fixedFunctionFlags() const
unsigned fCompatibleWithCoverageAsAlpha
GrProcessorSet * fProcessors
unsigned fUsesLocalCoords
GrProgramInfo * createProgramInfo(const GrCaps *, SkArenaAlloc *, const GrSurfaceProxyView &writeView, bool usesMSAASurface, GrAppliedClip &&, const GrDstProxyView &, GrGeometryProcessor *, GrPrimitiveType, GrXferBarrierFlags renderPassXferBarriers, GrLoadOp colorLoadOp)
GrPipeline::InputFlags pipelineFlags() const
static const GrPipeline * CreatePipeline(const GrCaps *, SkArenaAlloc *, skgpu::Swizzle writeViewSwizzle, GrAppliedClip &&, const GrDstProxyView &, GrProcessorSet &&, GrPipeline::InputFlags pipelineFlags)
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
skgpu::Swizzle swizzle() const
auto make(Ctor &&ctor) -> decltype(ctor(nullptr))
void append(const char text[])
FlutterSemanticsFlag flags
skgpu::Swizzle fWriteSwizzle
GrDstProxyView fDstProxyView