1 /* 2 * Copyright 2018 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef StrokeRectOp_DEFINED 9 #define StrokeRectOp_DEFINED 10 11 #include "include/private/GrTypesPriv.h" 12 #include "src/gpu/ops/GrOp.h" 13 14 class GrPaint; 15 class GrRecordingContext; 16 class SkMatrix; 17 struct SkRect; 18 class SkStrokeRec; 19 20 /** 21 * A set of factory functions for drawing stroked rectangles either coverage-antialiased, or 22 * non-antialiased. The non-antialiased ops can be used with MSAA. As with other GrDrawOp factories, 23 * the GrPaint is only consumed by these methods if a valid op is returned. If null is returned then 24 * the paint is unmodified and may still be used. 25 */ 26 namespace skgpu::v1::StrokeRectOp { 27 28 GrOp::Owner Make(GrRecordingContext*, 29 GrPaint&&, 30 GrAAType, 31 const SkMatrix& viewMatrix, 32 const SkRect&, 33 const SkStrokeRec&); 34 35 // rects[0] == outer rectangle, rects[1] == inner rectangle. Null return means there is nothing to 36 // draw rather than failure. The area between the rectangles will be filled by the paint, and it 37 // will be anti-aliased with coverage AA. viewMatrix.rectStaysRect() must be true. 38 GrOp::Owner MakeNested(GrRecordingContext*, 39 GrPaint&&, 40 const SkMatrix& viewMatrix, 41 const SkRect rects[2]); 42 43 } // namespace skgpu::v1::StrokeRectOp 44 45 #endif // StrokeRectOp_DEFINED 46