1/* 2 * Copyright 2012 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 GrBuiltInPathRenderer_DEFINED 9#define GrBuiltInPathRenderer_DEFINED 10 11#include "GrPathRenderer.h" 12 13class GrContext; 14class GrGpu; 15 16/** 17 * Uses GrGpu::stencilPath followed by a cover rectangle. This subclass doesn't apply AA; it relies 18 * on the target having MSAA if AA is desired. 19 */ 20class GrStencilAndCoverPathRenderer : public GrPathRenderer { 21public: 22 23 static GrPathRenderer* Create(GrResourceProvider*, const GrCaps&); 24 25 26private: 27 StencilSupport onGetStencilSupport(const GrShape&) const override { 28 return GrPathRenderer::kStencilOnly_StencilSupport; 29 } 30 31 CanDrawPath onCanDrawPath(const CanDrawPathArgs&) const override; 32 33 bool onDrawPath(const DrawPathArgs&) override; 34 35 void onStencilPath(const StencilPathArgs&) override; 36 37 GrStencilAndCoverPathRenderer(GrResourceProvider*); 38 39 GrResourceProvider* fResourceProvider; 40 41 typedef GrPathRenderer INHERITED; 42}; 43 44#endif 45