#include "src/gpu/ganesh/ops/StrokeTessellateOp.h"
#include "include/core/SkColor.h"
#include "include/core/SkPath.h"
#include "include/core/SkRect.h"
#include "include/gpu/ganesh/GrRecordingContext.h"
#include "src/base/SkArenaAlloc.h"
#include "src/gpu/ganesh/GrAppliedClip.h"
#include "src/gpu/ganesh/GrCaps.h"
#include "src/gpu/ganesh/GrOpFlushState.h"
#include "src/gpu/ganesh/GrPaint.h"
#include "src/gpu/ganesh/GrProcessorAnalysis.h"
#include "src/gpu/ganesh/GrProgramInfo.h"
#include "src/gpu/ganesh/GrRecordingContextPriv.h"
#include "src/gpu/ganesh/GrRenderTargetProxy.h"
#include "src/gpu/ganesh/GrShaderCaps.h"
#include "src/gpu/ganesh/GrSurfaceProxyView.h"
#include "src/gpu/ganesh/GrUserStencilSettings.h"
#include "src/gpu/ganesh/tessellate/GrStrokeTessellationShader.h"
#include <utility>
namespace skgpu::ganesh {
StrokeTessellateOp::StrokeTessellateOp(GrAAType aaType, const SkMatrix& viewMatrix,
const SkPath& path, const SkStrokeRec& stroke,
GrPaint&& paint)
: … { … }
void StrokeTessellateOp::visitProxies(const GrVisitProxyFunc& func) const { … }
GrProcessorSet::Analysis StrokeTessellateOp::finalize(const GrCaps& caps,
const GrAppliedClip* clip,
GrClampType clampType) { … }
GrOp::CombineResult StrokeTessellateOp::onCombineIfPossible(GrOp* grOp, SkArenaAlloc* alloc,
const GrCaps& caps) { … }
constexpr static GrUserStencilSettings kMarkStencil(
GrUserStencilSettings::StaticInit<
0x0001,
GrUserStencilTest::kLessIfInClip,
0x0000,
GrUserStencilOp::kZero,
GrUserStencilOp::kReplace,
0xffff>());
constexpr static GrUserStencilSettings kTestAndResetStencil(
GrUserStencilSettings::StaticInit<
0x0000,
GrUserStencilTest::kLessIfInClip,
0x0001,
GrUserStencilOp::kZero,
GrUserStencilOp::kReplace,
0xffff>());
void StrokeTessellateOp::prePrepareTessellator(GrTessellationShader::ProgramArgs&& args,
GrAppliedClip&& clip) { … }
void StrokeTessellateOp::onPrePrepare(GrRecordingContext* context,
const GrSurfaceProxyView& writeView, GrAppliedClip* clip,
const GrDstProxyView& dstProxyView,
GrXferBarrierFlags renderPassXferBarriers, GrLoadOp
colorLoadOp) { … }
void StrokeTessellateOp::onPrepare(GrOpFlushState* flushState) { … }
void StrokeTessellateOp::onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) { … }
}