Lines Matching refs:Op
44 // Helper for getting back at arrays which have been copy_v'd together after an Op.
46 static const D* pod(const T* op, size_t offset = 0) {
47 return SkTAddOffset<const D>(op+1, offset);
66 struct Op {
70 static_assert(sizeof(Op) == 4, "");
72 struct Flush final : Op {
77 struct Save final : Op {
81 struct Restore final : Op {
85 struct SaveLayer final : Op {
108 struct SaveBehind final : Op {
118 struct Concat final : Op {
124 struct SetMatrix final : Op {
132 struct Translate final : Op {
141 struct ClipPath final : Op {
143 ClipPath(const SkPath& path, SkClipOp op, bool aa) : path(path), op(op), aa(aa) {}
145 SkClipOp op;
147 void draw(SkCanvas* c, const SkMatrix&) const { c->clipPath(path, op, aa); }
149 struct ClipRect final : Op {
151 ClipRect(const SkRect& rect, SkClipOp op, bool aa) : rect(rect), op(op), aa(aa) {}
153 SkClipOp op;
155 void draw(SkCanvas* c, const SkMatrix&) const { c->clipRect(rect, op, aa); }
157 struct ClipRRect final : Op {
159 ClipRRect(const SkRRect& rrect, SkClipOp op, bool aa) : rrect(rrect), op(op), aa(aa) {}
161 SkClipOp op;
163 void draw(SkCanvas* c, const SkMatrix&) const { c->clipRRect(rrect, op, aa); }
165 struct ClipRegion final : Op {
167 ClipRegion(const SkRegion& region, SkClipOp op) : region(region), op(op) {}
169 SkClipOp op;
170 void draw(SkCanvas* c, const SkMatrix&) const { c->clipRegion(region, op); }
173 struct DrawPaint final : Op {
179 struct DrawPath final : Op {
186 struct DrawRect final : Op {
193 struct DrawEdgeAARect final : Op {
206 struct DrawRegion final : Op {
213 struct DrawOval final : Op {
220 struct DrawArc final : Op {
234 struct DrawRRect final : Op {
241 struct DrawDRRect final : Op {
250 struct DrawAnnotation final : Op {
259 struct DrawDrawable final : Op {
270 struct DrawPicture final : Op {
286 struct DrawImage final : Op {
297 struct DrawImageNine final : Op {
312 struct DrawImageRect final : Op {
328 struct DrawImageLattice final : Op {
352 struct DrawImageSet final : Op {
367 struct DrawTextBlob final : Op {
379 struct DrawPatch final : Op {
401 struct DrawPoints final : Op {
412 struct DrawVertices final : Op {
427 struct DrawAtlas final : Op {
451 struct DrawShadowRec final : Op {
475 auto op = (T*)(fBytes.get() + fUsed);
477 new (op) T{ std::forward<Args>(args)... };
478 op->type = (uint32_t)T::kType;
479 op->skip = skip;
480 return op+1;
487 auto op = (const Op*)ptr;
488 auto type = op->type;
489 auto skip = op->skip;
490 if (auto fn = fns[type]) { // We replace no-op functions with nullptrs
491 fn(op, args...); // to avoid the overhead of a pointless call.
514 void SkLiteDL::clipPath(const SkPath& path, SkClipOp op, bool aa) {
515 this->push<ClipPath>(0, path, op, aa);
517 void SkLiteDL::clipRect(const SkRect& rect, SkClipOp op, bool aa) {
518 this->push<ClipRect>(0, rect, op, aa);
520 void SkLiteDL::clipRRect(const SkRRect& rrect, SkClipOp op, bool aa) {
521 this->push<ClipRRect>(0, rrect, op, aa);
523 void SkLiteDL::clipRegion(const SkRegion& region, SkClipOp op) {
524 this->push<ClipRegion>(0, region, op);
643 #define M(T) [](const void* op, SkCanvas* c, const SkMatrix& original) { \
644 ((const T*)op)->draw(c, original); \
651 ? [](const void* op) { ((const T*)op)->~T(); } \