22 , fIsEmpty(that.fIsEmpty)
23 , fIsRect(that.fIsRect)
24 , fShader(that.fShader)
49 fShader = that.fShader;
56 fIsEmpty = this->computeIsEmpty();
63 fIsEmpty = this->computeIsEmpty();
78 fAA.
setPath(path, bounds,
true);
83 fIsEmpty = this->computeIsEmpty();
84 fIsRect = this->computeIsRect();
123 return this->updateCacheAndReturnNonEmpty();
134 (void)fAA.
op(tmp,
op);
136 return this->updateCacheAndReturnNonEmpty();
146 static const SkScalar halfDomain = domain / 2;
155 const bool isScaleTrans = matrix.isScaleTranslate();
160 SkRect devRect = matrix.mapRect(localRect);
170 if (fIsBW && !doAA) {
176 (void)fAA.
op(devRect,
op, doAA);
178 return this->updateCacheAndReturnNonEmpty();
189 path.transform(matrix, &devPath);
205 return this->updateCacheAndReturnNonEmpty();
239 other = &
clip.aaRgn();
241 (void)fAA.
op(*other,
op);
243 return this->updateCacheAndReturnNonEmpty();
247 if (
nullptr == dst) {
257 if (0 == (dx | dy)) {
270 dst->updateCacheAndReturnNonEmpty();
273void SkRasterClip::convertToAA() {
282 (void)this->updateCacheAndReturnNonEmpty(
false);
292 SkRegionPriv::Validate(fBW);
295 SkASSERT(this->computeIsEmpty() == fIsEmpty);
296 SkASSERT(this->computeIsRect() == fIsRect);
309 this->
init(clip, blitter);
317 fAABlitter.
init(blitter, aaclip);
320 fBlitter = &fAABlitter;
326 fClipRgn = &
clip.bwRgn();
331 fAABlitter.
init(blitter, &aaclip);
334 fBlitter = &fAABlitter;
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
static bool nearly_integral(SkScalar x)
#define AUTO_RASTERCLIP_VALIDATE(rc)
#define SkScalarFloorToScalar(x)
void init(const SkRasterClip &, SkBlitter *)
void init(SkBlitter *blitter, const SkAAClip *aaclip)
bool translate(int dx, int dy, SkAAClip *dst) const
const SkIRect & getBounds() const
bool setPath(const SkPath &, const SkIRect &bounds, bool doAA=true)
bool op(const SkIRect &, SkClipOp)
bool setRegion(const SkRegion &)
static SkPath RRect(const SkRRect &, SkPathDirection dir=SkPathDirection::kCW)
static SkPath Rect(const SkRect &, SkPathDirection=SkPathDirection::kCW, unsigned startIndex=0)
const SkIRect & getBounds() const
SkRasterClip & operator=(const SkRasterClip &)
void translate(int dx, int dy, SkRasterClip *dst) const
bool setRect(const SkIRect &)
bool op(const SkIRect &, SkClipOp)
void translate(int dx, int dy)
bool op(const SkIRect &rect, Op op)
bool setRect(const SkIRect &rect)
bool setPath(const SkPath &path, const SkRegion &clip)
SkScalar fBottom
larger y-axis bounds
SkScalar fLeft
smaller x-axis bounds
SkScalar fRight
larger x-axis bounds
void round(SkIRect *dst) const
SkScalar fTop
smaller y-axis bounds