1 2 /* 3 * Copyright 2012 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 #ifndef GrBuiltInPathRenderer_DEFINED 10 #define GrBuiltInPathRenderer_DEFINED 11 12 #include "GrPathRenderer.h" 13 14 class GrContext; 15 class GrGpu; 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(GrContext*); 25 26 virtual ~GrStencilAndCoverPathRenderer(); 27 28 virtual bool canDrawPath(const SkPath&, 29 const SkStrokeRec&, 30 const GrDrawTarget*, 31 bool antiAlias) const SK_OVERRIDE; 32 33 protected: 34 virtual StencilSupport onGetStencilSupport(const SkPath&, 35 const SkStrokeRec&, 36 const GrDrawTarget*) const SK_OVERRIDE; 37 38 virtual bool onDrawPath(const SkPath&, 39 const SkStrokeRec&, 40 GrDrawTarget*, 41 bool antiAlias) SK_OVERRIDE; 42 43 virtual void onStencilPath(const SkPath&, 44 const SkStrokeRec&, 45 GrDrawTarget*) SK_OVERRIDE; 46 47 private: 48 GrStencilAndCoverPathRenderer(GrGpu*); 49 50 GrGpu* fGpu; 51 52 typedef GrPathRenderer INHERITED; 53 }; 54 55 #endif 56