8#ifndef AtlasPathRenderer_DEFINED
9#define AtlasPathRenderer_DEFINED
34 const char*
name()
const override {
return "GrAtlasPathRenderer"; }
46 const GrOp* opBeingClipped,
47 std::unique_ptr<GrFragmentProcessor> inputFP,
68 bool pathFitsInAtlas(
const SkRect& pathDevBounds,
GrAAType fallbackAAType)
const;
71 using DrawRefsAtlasCallback = std::function<bool(
const GrSurfaceProxy* atlasProxy)>;
82 const SkRect& pathDevBounds,
85 bool* transposedInAtlas,
86 const DrawRefsAtlasCallback&);
92 float fAtlasMaxSize = 0;
93 float fAtlasMaxPathWidth = 0;
94 int fAtlasInitialSize = 0;
102 struct AtlasPathKey {
104 bool operator==(
const AtlasPathKey& k)
const {
105 static_assert(
sizeof(*this) ==
sizeof(uint32_t) * 8);
106 return !memcmp(
this, &k,
sizeof(*
this));
109 float fAffineMatrix[6];
std::tuple< bool, std::unique_ptr< GrFragmentProcessor > > GrFPResult
static bool IsSupported(GrRecordingContext *)
bool onDrawPath(const DrawPathArgs &) override
static sk_sp< AtlasPathRenderer > Make(GrRecordingContext *rContext)
bool preFlush(GrOnFlushResourceProvider *) override
const char * name() const override
StencilSupport onGetStencilSupport(const GrStyledShape &) const override
CanDrawPath onCanDrawPath(const CanDrawPathArgs &) const override
GrFPResult makeAtlasClipEffect(const skgpu::ganesh::SurfaceDrawContext *, const GrOp *opBeingClipped, std::unique_ptr< GrFragmentProcessor > inputFP, const SkIRect &drawBounds, const SkMatrix &, const SkPath &)
@ kNoSupport_StencilSupport