Lines Matching refs:shape

203 //  - Represent the clip element as an analytic FP that tests sk_FragCoord vs. its device shape
214 // All analytic clip shape FPs need to be in device space
274 // draw the inverse-filled shape with 0 coverage to erase everything outside the element
285 // For difference ops, can always just subtract the shape directly by drawing 0 coverage
291 // Draw the shape; based on how we've initialized the buffer and chosen alpha+invert,
438 ClipStack::RawElement::RawElement(const SkMatrix& localToDevice, const GrShape& shape,
440 : Element{shape, localToDevice, op, aa}
514 // Make sure the shape is not inverted. An inverted shape is equivalent to a non-inverted shape
521 // Then simplify the base shape, if it becomes empty, no need to update the bounds
535 // A non-empty shape is offscreen, so treat it as empty
548 // mapped bounds of the shape.
617 // Neither shape is pixel aligned and AA types don't match so can't combine
703 // of the ops and shape kinds, we may be able to do better.
713 // Map from the internal shape kind to the clip state enum
888 // The total coverage is computed by multiplying the coverage from each element (shape or
896 // Validity check the element's state first; if the shape class isn't empty, the outer bounds
898 SkASSERT((toAdd.shape().isEmpty() || !toAdd.outerBounds().isEmpty()) &&
906 } else if (toAdd.shape().isEmpty()) {
1239 return {back.shape().rect(), back.aa()};
1242 return {back.shape().rrect(), back.aa()};
1393 SkASSERT(!e.shape().inverted());
1394 auto result = op->clipToShape(sdc, e.op(), e.localToDevice(), e.shape(),
1555 SkASSERT(!element.shape().inverted());
1559 if (element.shape().isEmpty()) {
1561 // If the shape is empty and we're subtracting, this has no effect on the clip