bsalomon@google.com | aeb2160 | 2011-08-30 18:13:44 +0000 | [diff] [blame] | 1 | |
| 2 | /* |
bsalomon@google.com | 69cc6ad | 2012-01-17 14:25:10 +0000 | [diff] [blame] | 3 | * Copyright 2012 Google Inc. |
bsalomon@google.com | aeb2160 | 2011-08-30 18:13:44 +0000 | [diff] [blame] | 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 | |
bsalomon@google.com | ded4f4b | 2012-06-28 18:48:06 +0000 | [diff] [blame] | 9 | |
| 10 | #include "GrStencilAndCoverPathRenderer.h" |
bsalomon@google.com | aeb2160 | 2011-08-30 18:13:44 +0000 | [diff] [blame] | 11 | #include "GrAAHairLinePathRenderer.h" |
bsalomon@google.com | 69cc6ad | 2012-01-17 14:25:10 +0000 | [diff] [blame] | 12 | #include "GrAAConvexPathRenderer.h" |
jvanverth | fa38a30 | 2014-10-06 05:59:05 -0700 | [diff] [blame] | 13 | #include "GrAADistanceFieldPathRenderer.h" |
bsalomon | 706f08f | 2015-05-22 07:35:58 -0700 | [diff] [blame^] | 14 | #include "GrContext.h" |
kkinnunen | 1899651 | 2015-04-26 23:18:49 -0700 | [diff] [blame] | 15 | #include "GrDashLinePathRenderer.h" |
bsalomon | 706f08f | 2015-05-22 07:35:58 -0700 | [diff] [blame^] | 16 | #include "GrGpu.h" |
senorblanco | d6ed19c | 2015-02-26 06:58:17 -0800 | [diff] [blame] | 17 | #include "GrTessellatingPathRenderer.h" |
sugoi@google.com | e3453cb | 2013-01-07 14:26:40 +0000 | [diff] [blame] | 18 | #if GR_STROKE_PATH_RENDERING |
| 19 | #include "../../experimental/StrokePathRenderer/GrStrokePathRenderer.h" |
| 20 | #endif |
jvanverth@google.com | 74dda90 | 2013-01-09 21:04:52 +0000 | [diff] [blame] | 21 | #if GR_ANDROID_PATH_RENDERING |
| 22 | #include "../../experimental/AndroidPathRenderer/GrAndroidPathRenderer.h" |
| 23 | #endif |
bsalomon@google.com | aeb2160 | 2011-08-30 18:13:44 +0000 | [diff] [blame] | 24 | |
senorblanco | d6ed19c | 2015-02-26 06:58:17 -0800 | [diff] [blame] | 25 | #ifndef GR_TESSELLATING_PATH_RENDERING |
senorblanco | 7ef63c8 | 2015-04-13 14:27:37 -0700 | [diff] [blame] | 26 | #define GR_TESSELLATING_PATH_RENDERING 1 |
senorblanco | d6ed19c | 2015-02-26 06:58:17 -0800 | [diff] [blame] | 27 | #endif |
| 28 | |
bsalomon@google.com | 45a15f5 | 2012-12-10 19:10:17 +0000 | [diff] [blame] | 29 | void GrPathRenderer::AddPathRenderers(GrContext* ctx, GrPathRendererChain* chain) { |
kkinnunen | 1899651 | 2015-04-26 23:18:49 -0700 | [diff] [blame] | 30 | chain->addPathRenderer(SkNEW_ARGS(GrDashLinePathRenderer, (ctx)))->unref(); |
| 31 | |
sugoi@google.com | e3453cb | 2013-01-07 14:26:40 +0000 | [diff] [blame] | 32 | #if GR_STROKE_PATH_RENDERING |
| 33 | chain->addPathRenderer(SkNEW(GrStrokePathRenderer))->unref(); |
| 34 | #endif |
jvanverth@google.com | 74dda90 | 2013-01-09 21:04:52 +0000 | [diff] [blame] | 35 | #if GR_ANDROID_PATH_RENDERING |
| 36 | chain->addPathRenderer(SkNEW(GrAndroidPathRenderer))->unref(); |
| 37 | #endif |
bsalomon | 706f08f | 2015-05-22 07:35:58 -0700 | [diff] [blame^] | 38 | if (GrPathRenderer* pr = GrStencilAndCoverPathRenderer::Create(ctx->resourceProvider(), |
| 39 | *ctx->getGpu()->caps())) { |
bsalomon@google.com | ded4f4b | 2012-06-28 18:48:06 +0000 | [diff] [blame] | 40 | chain->addPathRenderer(pr)->unref(); |
| 41 | } |
cdalton | 0ce02c3 | 2015-05-06 13:16:43 -0700 | [diff] [blame] | 42 | #if GR_TESSELLATING_PATH_RENDERING |
| 43 | chain->addPathRenderer(new GrTessellatingPathRenderer)->unref(); |
| 44 | #endif |
bsalomon | ed0bcad | 2015-05-04 10:36:42 -0700 | [diff] [blame] | 45 | if (GrPathRenderer* pr = GrAAHairLinePathRenderer::Create()) { |
bsalomon@google.com | 45a15f5 | 2012-12-10 19:10:17 +0000 | [diff] [blame] | 46 | chain->addPathRenderer(pr)->unref(); |
bsalomon@google.com | aeb2160 | 2011-08-30 18:13:44 +0000 | [diff] [blame] | 47 | } |
bsalomon@google.com | 45a15f5 | 2012-12-10 19:10:17 +0000 | [diff] [blame] | 48 | chain->addPathRenderer(SkNEW(GrAAConvexPathRenderer))->unref(); |
jvanverth | fa38a30 | 2014-10-06 05:59:05 -0700 | [diff] [blame] | 49 | chain->addPathRenderer(SkNEW_ARGS(GrAADistanceFieldPathRenderer, (ctx)))->unref(); |
bsalomon@google.com | aeb2160 | 2011-08-30 18:13:44 +0000 | [diff] [blame] | 50 | } |