| /* | |
| * Copyright 2019 Google LLC | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef TestRectOp_DEFINED | |
| #define TestRectOp_DEFINED | |
| #include "include/core/SkRefCnt.h" | |
| #include "include/gpu/GrRecordingContext.h" | |
| #include "src/gpu/ganesh/GrRecordingContextPriv.h" | |
| #include "src/gpu/ganesh/ops/GrOp.h" | |
| class GrPaint; | |
| namespace sk_gpu_test::test_ops { | |
| /** | |
| * Fully specified device space rect op. The test Op draws a rectangle with local coords and a | |
| * local matrix. It is important to test effects in the presence of GP local matrices. Our standard | |
| * rect drawing code doesn't exercise this because it applies any local matrix to pre-transformed | |
| * local coord vertex attributes. | |
| */ | |
| GrOp::Owner MakeRect(GrRecordingContext*, | |
| GrPaint&&, | |
| const SkRect& drawRect, | |
| const SkRect& localRect, | |
| const SkMatrix& localM = SkMatrix::I()); | |
| /** | |
| * A simpler version of MakeRect that takes a single color FP instead of a full paint. Uses | |
| * SkBlendMode::kSrcOver. | |
| */ | |
| GrOp::Owner MakeRect(GrRecordingContext*, | |
| std::unique_ptr<GrFragmentProcessor>, | |
| const SkRect& drawRect, | |
| const SkRect& localRect, | |
| const SkMatrix& localM = SkMatrix::I()); | |
| /** | |
| * A simpler version of MakeRect that uses the same rect as the device space rect to draw as well as | |
| * the local rect. The local matrix is identity. | |
| */ | |
| GrOp::Owner MakeRect(GrRecordingContext*, GrPaint&&, const SkRect& rect); | |
| } // namespace sk_gpu_test::test_ops | |
| #endif |