8#ifndef skgpu_graphite_PathAtlas_DEFINED
9#define skgpu_graphite_PathAtlas_DEFINED
82 std::pair<const Renderer*, std::optional<MaskAndOrigin>>
addShape(
83 const Rect& transformedShapeBounds,
135 size_t plotWidth,
size_t plotHeight,
136 std::string_view label,
const Caps*);
148 struct UniqueKeyHash {
152 ShapeCache fShapeCache;
158 struct ShapeKeyEntry {
#define SK_DECLARE_INTERNAL_LLIST_INTERFACE(ClassName)
bool recordUploads(DrawContext *, Recorder *)
void evict(PlotLocator) override
const TextureProxy * addToAtlas(Recorder *recorder, const Shape &shape, const Transform &transform, const SkStrokeRec &strokeRec, skvx::half2 maskSize, skvx::half2 *outPos, AtlasLocator *locator)
virtual bool onAddToAtlas(const Shape &, const Transform &transform, const SkStrokeRec &, SkIRect shapeBounds, const AtlasLocator &)=0
std::unique_ptr< DrawAtlas > fDrawAtlas
const TextureProxy * findOrCreateEntry(Recorder *recorder, const Shape &shape, const Transform &transform, const SkStrokeRec &strokeRec, skvx::half2 maskSize, skvx::half2 *outPos)
void postFlush(Recorder *)
virtual const TextureProxy * onAddShape(const Shape &, const Transform &transform, const SkStrokeRec &, skvx::half2 maskSize, skvx::half2 *outPos)=0
std::pair< CoverageMaskShape, SkIPoint > MaskAndOrigin
static constexpr int kEntryPadding
std::pair< const Renderer *, std::optional< MaskAndOrigin > > addShape(const Rect &transformedShapeBounds, const Shape &shape, const Transform &localToDevice, const SkStrokeRec &style)
virtual bool isSuitableForAtlasing(const Rect &transformedShapeBounds) const
skgpu::graphite::Transform Transform
static SkColor4f transform(SkColor4f c, SkColorSpace *src, SkColorSpace *dst)