10std::atomic<uint32_t> GrOp::gCurrOpClassID {GrOp::kIllegalOpID + 1};
11std::atomic<uint32_t> GrOp::gCurrOpUniqueID{GrOp::kIllegalOpID + 1};
13GrOp::GrOp(uint32_t classID) : fClassID(classID) {
16 SkDEBUGCODE(fBoundsFlags = kUninitialized_BoundsFlag);
26 this->joinBounds(*that);
36 fNextInChain = std::move(
next);
37 fNextInChain->fPrevInChain =
this;
42 fNextInChain->fPrevInChain =
nullptr;
43 return std::move(fNextInChain);
49void GrOp::validateChain(
GrOp* expectedTail)
const {
52 const GrOp* op =
this;
60 SkASSERT(!expectedTail || op == expectedTail);
static float next(float f)
SkDEBUGCODE(SK_SPI) SkThreadID SkGetThreadID()
constexpr uint32_t SkToU32(S x)
CombineResult combineIfPossible(GrOp *that, SkArenaAlloc *alloc, const GrCaps &caps)
GrOp * prevInChain() const
std::unique_ptr< GrOp > Owner
GrOp * nextInChain() const
void chainConcat(GrOp::Owner)
virtual CombineResult onCombineIfPossible(GrOp *, SkArenaAlloc *, const GrCaps &)