| /* |
| * Copyright 2018 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef skgpu_ganesh_StrokeRectOp_DEFINED |
| #define skgpu_ganesh_StrokeRectOp_DEFINED |
| |
| #include "include/private/gpu/ganesh/GrTypesPriv.h" |
| #include "src/gpu/ganesh/ops/GrOp.h" |
| |
| class GrPaint; |
| class GrRecordingContext; |
| class SkMatrix; |
| struct SkRect; |
| class SkStrokeRec; |
| |
| /** |
| * A set of factory functions for drawing stroked rectangles either coverage-antialiased, or |
| * non-antialiased. The non-antialiased ops can be used with MSAA. As with other GrDrawOp factories, |
| * the GrPaint is only consumed by these methods if a valid op is returned. If null is returned then |
| * the paint is unmodified and may still be used. |
| */ |
| namespace skgpu::ganesh::StrokeRectOp { |
| |
| GrOp::Owner Make(GrRecordingContext*, |
| GrPaint&&, |
| GrAAType, |
| const SkMatrix& viewMatrix, |
| const SkRect&, |
| const SkStrokeRec&); |
| |
| // rects[0] == outer rectangle, rects[1] == inner rectangle. Null return means there is nothing to |
| // draw rather than failure. The area between the rectangles will be filled by the paint, and it |
| // will be anti-aliased with coverage AA. viewMatrix.rectStaysRect() must be true. |
| GrOp::Owner MakeNested(GrRecordingContext*, |
| GrPaint&&, |
| const SkMatrix& viewMatrix, |
| const SkRect rects[2]); |
| |
| } // namespace skgpu::ganesh::StrokeRectOp |
| |
| #endif // skgpu_ganesh_StrokeRectOp_DEFINED |