57 for (
const Geometry* g = fHead; g !=
nullptr;) {
64 void*
operator new(
size_t s);
65 void operator delete(
void*
b)
noexcept;
113 const char*
name()
const override {
return "AtlasTextOp"; }
125#if !defined(SK_DISABLE_SDF_TEXT)
146 int fGlyphsToFlush = 0;
164 bool useGammaCorrectDistanceTable,
174 void addGeometry(Geometry* geometry) {
178 fTail = &(*fTail)->
fNext;
179 }
while (*fTail !=
nullptr);
185 bool usesMSAASurface,
207#if defined(GR_TEST_UTILS)
208 SkString onDumpInfo()
const override;
212 switch (this->maskType()) {
214 return skgpu::MaskFormat::kA565;
216 return skgpu::MaskFormat::kARGB;
218#if !defined(SK_DISABLE_SDF_TEXT)
224 return skgpu::MaskFormat::kA8;
227 return skgpu::MaskFormat::kA8;
230#if !defined(SK_DISABLE_SDF_TEXT)
231 bool usesDistanceFields()
const {
249 inline void createDrawForGeneratedGlyphs(
256#if !defined(SK_DISABLE_SDF_TEXT)
261 unsigned int numActiveViews)
const;
268 uint32_t fDFGPFlags : 10;
269 uint32_t fMaskType : 3;
270 uint32_t fUsesLocalCoords : 1;
271 uint32_t fNeedsGlyphTransform : 1;
272 uint32_t fHasPerspective : 1;
273 uint32_t fUseGammaCorrectDistanceTable : 1;
274 static_assert(
kMaskTypeCount <= 8,
"MaskType does not fit in 3 bits");
275#if !defined(SK_DISABLE_SDF_TEXT)
284 const SkColor fLuminanceColor{0};
286 Geometry* fHead{
nullptr};
287 Geometry** fTail{&fHead};
CombineResult onCombineIfPossible(GrOp *t, SkArenaAlloc *, const GrCaps &caps) override
void onPrePrepareDraws(GrRecordingContext *, const GrSurfaceProxyView &writeView, GrAppliedClip *, const GrDstProxyView &, GrXferBarrierFlags renderPassXferBarriers, GrLoadOp colorLoadOp) override
GrProgramInfo * programInfo() override
void onPrepareDraws(GrMeshDrawTarget *) override
DEFINE_OP_CLASS_ID ~AtlasTextOp() override
void onCreateProgramInfo(const GrCaps *, SkArenaAlloc *, const GrSurfaceProxyView &writeView, bool usesMSAASurface, GrAppliedClip &&, const GrDstProxyView &, GrXferBarrierFlags renderPassXferBarriers, GrLoadOp colorLoadOp) override
const char * name() const override
GrProcessorSet::Analysis finalize(const GrCaps &, const GrAppliedClip *, GrClampType) override
static constexpr int kMaskTypeCount
FixedFunctionFlags fixedFunctionFlags() const override
void visitProxies(const GrVisitProxyFunc &) const override
void onExecute(GrOpFlushState *, const SkRect &chainBounds) override
static Geometry * Make(const sktext::gpu::AtlasSubRun &subRun, const SkMatrix &drawMatrix, SkPoint drawOrigin, SkIRect clipRect, sk_sp< SkRefCnt > &&supportData, const SkPMColor4f &color, SkArenaAlloc *alloc)
void fillVertexData(void *dst, int offset, int count) const
Geometry(const sktext::gpu::AtlasSubRun &subRun, const SkMatrix &drawMatrix, SkPoint drawOrigin, SkIRect clipRect, sk_sp< SkRefCnt > &&supportData, const SkPMColor4f &color)
const SkMatrix fDrawMatrix
const sktext::gpu::AtlasSubRun & fSubRun
sk_sp< SkRefCnt > fSupportDataKeepAlive
const SkPoint fDrawOrigin