180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/* 380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Copyright 2012 Google Inc. 480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * 580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Use of this source code is governed by a BSD-style license that can be 680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * found in the LICENSE file. 780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru */ 880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifndef GrBuiltInPathRenderer_DEFINED 1080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define GrBuiltInPathRenderer_DEFINED 1180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "GrPathRenderer.h" 1380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass GrContext; 1580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass GrGpu; 1680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/** 1880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Uses GrGpu::stencilPath followed by a cover rectangle. This subclass doesn't apply AA; it relies 1980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * on the target having MSAA if AA is desired. 2080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru */ 2180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass GrStencilAndCoverPathRenderer : public GrPathRenderer { 2280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 2380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 24363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger static GrPathRenderer* Create(GrContext*); 2580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual ~GrStencilAndCoverPathRenderer(); 2780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 28363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual bool canDrawPath(const SkPath&, 29363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger const SkStrokeRec&, 30363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger const GrDrawTarget*, 3180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru bool antiAlias) const SK_OVERRIDE; 3280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 3380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 34363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual StencilSupport onGetStencilSupport(const SkPath&, 35363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger const SkStrokeRec&, 36363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger const GrDrawTarget*) const SK_OVERRIDE; 37363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger 38363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual bool onDrawPath(const SkPath&, 39363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger const SkStrokeRec&, 40363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger GrDrawTarget*, 4180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru bool antiAlias) SK_OVERRIDE; 4280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 43363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual void onStencilPath(const SkPath&, 44363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger const SkStrokeRec&, 45363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger GrDrawTarget*) SK_OVERRIDE; 46363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger 4780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 48363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger GrStencilAndCoverPathRenderer(GrGpu*); 4980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 5080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru GrGpu* fGpu; 5180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 5280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru typedef GrPathRenderer INHERITED; 5380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 5480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 5580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif 56