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 10 #include "GrStencilAndCoverPathRenderer.h" 11 #include "GrAAHairLinePathRenderer.h" 12 #include "GrAAConvexPathRenderer.h" 13 #include "GrAADistanceFieldPathRenderer.h" 14 #include "GrDashLinePathRenderer.h" 15 #include "GrTessellatingPathRenderer.h" 16 #if GR_STROKE_PATH_RENDERING 17 #include "../../experimental/StrokePathRenderer/GrStrokePathRenderer.h" 18 #endif 19 #if GR_ANDROID_PATH_RENDERING 20 #include "../../experimental/AndroidPathRenderer/GrAndroidPathRenderer.h" 21 #endif 22 23 #ifndef GR_TESSELLATING_PATH_RENDERING 24 #define GR_TESSELLATING_PATH_RENDERING 1 25 #endif 26 27 void GrPathRenderer::AddPathRenderers(GrContext* ctx, GrPathRendererChain* chain) { 28 chain->addPathRenderer(SkNEW_ARGS(GrDashLinePathRenderer, (ctx)))->unref(); 29 30 #if GR_STROKE_PATH_RENDERING 31 chain->addPathRenderer(SkNEW(GrStrokePathRenderer))->unref(); 32 #endif 33 #if GR_ANDROID_PATH_RENDERING 34 chain->addPathRenderer(SkNEW(GrAndroidPathRenderer))->unref(); 35 #endif 36 if (GrPathRenderer* pr = GrStencilAndCoverPathRenderer::Create(ctx)) { 37 chain->addPathRenderer(pr)->unref(); 38 } 39 #if GR_TESSELLATING_PATH_RENDERING 40 chain->addPathRenderer(new GrTessellatingPathRenderer)->unref(); 41 #endif 42 if (GrPathRenderer* pr = GrAAHairLinePathRenderer::Create()) { 43 chain->addPathRenderer(pr)->unref(); 44 } 45 chain->addPathRenderer(SkNEW(GrAAConvexPathRenderer))->unref(); 46 chain->addPathRenderer(SkNEW_ARGS(GrAADistanceFieldPathRenderer, (ctx)))->unref(); 47 } 48