skia2/tools/gpu/TestOps.h
Robert Phillips b7bfbc299a Move GrRecordingContext.h and GrDirectContext.h into include/gpu
External clients will need access to these classes once GrContext
goes away.

This is a purely mechanical CL.

Bug: skia:10441
Change-Id: I7ffeb29d88bcc0f012412fba911e8362d046e24a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/300206
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-07-01 17:32:14 +00:00

51 lines
1.7 KiB
C++

/*
* 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/GrRecordingContextPriv.h"
#include "src/gpu/ops/GrMeshDrawOp.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.
*/
std::unique_ptr<GrDrawOp> 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.
*/
std::unique_ptr<GrDrawOp> 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.
*/
std::unique_ptr<GrDrawOp> MakeRect(GrRecordingContext*, GrPaint&&, const SkRect& rect);
} // namespace sk_gpu_test::test_ops
#endif