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