/* * Copyright 2015 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef GrDrawOpTest_DEFINED #define GrDrawOpTest_DEFINED #include "include/core/SkRefCnt.h" #include "src/gpu/GrTestUtils.h" #if GR_TEST_UTILS class GrContext_Base; class GrDrawOp; class GrPaint; class GrRecordingContext; namespace skgpu { namespace v1 { class SurfaceDrawContext; }} struct GrUserStencilSettings; class SkRandom; /** This function draws a randomly configured GrDrawOp for testing purposes. */ void GrDrawRandomOp(SkRandom*, skgpu::v1::SurfaceDrawContext*, GrPaint&&); /** GrDrawOp subclasses should define test factory functions using this macro. */ #define GR_DRAW_OP_TEST_DEFINE(Op) \ GrOp::Owner Op##__Test(GrPaint&& paint, \ SkRandom* random, \ GrRecordingContext* context, \ skgpu::v1::SurfaceDrawContext* sdc, \ int numSamples) #define GR_DRAW_OP_TEST_FRIEND(Op) \ friend GrOp::OpOwner Op##__Test(GrPaint&&, \ SkRandom*, \ GrRecordingContext*, \ skgpu::v1::SurfaceDrawContext*, \ int) /** Helper for op test factories to pick a random stencil state. */ const GrUserStencilSettings* GrGetRandomStencil(SkRandom* random, GrContext_Base*); #endif #endif