Lines Matching defs:element
64 bool SkClipStack::Element::operator== (const Element& element) const {
65 if (this == &element) {
68 if (fOp != element.fOp || fDeviceSpaceType != element.fDeviceSpaceType ||
69 fDoAA != element.fDoAA || fIsReplace != element.fIsReplace ||
70 fSaveCount != element.fSaveCount) {
75 return this->getShader() == element.getShader();
77 return this->getDeviceSpacePath() == element.getDeviceSpacePath();
79 return fDeviceSpaceRRect == element.fDeviceSpaceRRect;
81 return this->getDeviceSpaceRect() == element.getDeviceSpaceRect();
462 SkDEBUGFAIL("We shouldn't get here with an empty element.");
543 for (const Element* element = (const Element*)recIter.next();
544 element != nullptr;
545 element = (const Element*)recIter.next()) {
546 new (fDeque.push_back()) Element(*element);
579 Element* element = (Element*)fDeque.back();
580 element->~Element();
598 Element* element = (Element*)fDeque.back();
599 if (element->fSaveCount <= saveCount) {
602 element->~Element();
626 Element* element = (Element*)fDeque.back();
628 if (nullptr == element) {
638 *canvFiniteBound = element->fFiniteBound;
639 *boundType = element->fFiniteBoundType;
641 *isIntersectionOfRects = element->fIsIntersectionOfRects;
647 const Element* element = iter.prev();
648 while (element != nullptr) {
650 if (SkClipOp::kIntersect != element->getOp() && !element->isReplaceOp()) {
653 if (element->isInverseFilled()) {
654 // Part of 'rect' could be trimmed off by the inverse-filled clip element
655 if (SkRect::Intersects(element->getBounds(), rect)) {
659 if (!element->contains(rect)) {
663 if (element->isReplaceOp()) {
666 element = iter.prev();
673 const Element* element = iter.prev();
674 while (element != nullptr) {
676 if (SkClipOp::kIntersect != element->getOp() && !element->isReplaceOp()) {
679 if (element->isInverseFilled()) {
680 // Part of 'rrect' could be trimmed off by the inverse-filled clip element
681 if (SkRect::Intersects(element->getBounds(), rrect.getBounds())) {
685 if (!element->contains(rrect)) {
689 if (element->isReplaceOp()) {
692 element = iter.prev();
697 void SkClipStack::pushElement(const Element& element) {
703 if (element.isReplaceOp()) {
706 } else if (prior->canBeIntersectedInPlace(fSaveCount, element.getOp())) {
712 if (Element::DeviceSpaceType::kShader == element.getDeviceSpaceType()) {
714 element.fShader, prior->fShader);
721 if (Element::DeviceSpaceType::kRect == element.getDeviceSpaceType()) {
722 if (prior->rectRectIntersectAllowed(element.getDeviceSpaceRect(),
723 element.isAA())) {
726 element.getDeviceSpaceRect())) {
732 prior->fDoAA = element.isAA();
741 if (!SkRect::Intersects(prior->getBounds(), element.getBounds())) {
749 Element* newElement = new (fDeque.push_back()) Element(element);
754 Element element(fSaveCount, rrect, matrix, op, doAA);
755 this->pushElement(element);
759 Element element(fSaveCount, rect, matrix, op, doAA);
760 this->pushElement(element);
765 Element element(fSaveCount, path, matrix, op, doAA);
766 this->pushElement(element);
770 Element element(fSaveCount, std::move(shader));
771 this->pushElement(element);
775 Element element(fSaveCount, rect, doAA);
776 this->pushElement(element);
780 Element* element = (Element*) fDeque.back();
782 if (element && element->canBeIntersectedInPlace(fSaveCount, SkClipOp::kIntersect)) {
783 element->setEmpty();
815 const SkClipStack::Element* element = nullptr;
817 for (element = (const SkClipStack::Element*) fIter.prev();
818 element;
819 element = (const SkClipStack::Element*) fIter.prev()) {
821 if (op == element->fOp) {
823 // returned value. So while "element" is the element we want to
825 // return on the next "next" or "prev" call) the element
838 if (nullptr == element) {
886 // First check if the entire stack is known to be a rect by the top element.
908 // We limit to 17 elements. This means the back element will be bounds checked at most 16