1aeb2160b1dd34f8e640e8e56544fe407d4ff6311bsalomon@google.com
2aeb2160b1dd34f8e640e8e56544fe407d4ff6311bsalomon@google.com/*
369cc6ad20ed03f35f9d3c8119a2c32187669a22bbsalomon@google.com * Copyright 2012 Google Inc.
4aeb2160b1dd34f8e640e8e56544fe407d4ff6311bsalomon@google.com *
5aeb2160b1dd34f8e640e8e56544fe407d4ff6311bsalomon@google.com * Use of this source code is governed by a BSD-style license that can be
6aeb2160b1dd34f8e640e8e56544fe407d4ff6311bsalomon@google.com * found in the LICENSE file.
7aeb2160b1dd34f8e640e8e56544fe407d4ff6311bsalomon@google.com */
8aeb2160b1dd34f8e640e8e56544fe407d4ff6311bsalomon@google.com
9ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com
10ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com#include "GrStencilAndCoverPathRenderer.h"
11aeb2160b1dd34f8e640e8e56544fe407d4ff6311bsalomon@google.com#include "GrAAHairLinePathRenderer.h"
1269cc6ad20ed03f35f9d3c8119a2c32187669a22bbsalomon@google.com#include "GrAAConvexPathRenderer.h"
13fa38a30897ceda3e93355d69b8a6812c823f41f6jvanverth#include "GrAADistanceFieldPathRenderer.h"
141899651ffc459f5462aa989cd6d08507947b67e4kkinnunen#include "GrDashLinePathRenderer.h"
15d6ed19cc751463285491a538bc7bf154cc7e6d8csenorblanco#include "GrTessellatingPathRenderer.h"
16e3453cbd20d00d685131a09d9141b1c70f0c5710sugoi@google.com#if GR_STROKE_PATH_RENDERING
17e3453cbd20d00d685131a09d9141b1c70f0c5710sugoi@google.com#include "../../experimental/StrokePathRenderer/GrStrokePathRenderer.h"
18e3453cbd20d00d685131a09d9141b1c70f0c5710sugoi@google.com#endif
1974dda9018e8bdd650698e763404f19144c6d0a42jvanverth@google.com#if GR_ANDROID_PATH_RENDERING
2074dda9018e8bdd650698e763404f19144c6d0a42jvanverth@google.com#include "../../experimental/AndroidPathRenderer/GrAndroidPathRenderer.h"
2174dda9018e8bdd650698e763404f19144c6d0a42jvanverth@google.com#endif
22aeb2160b1dd34f8e640e8e56544fe407d4ff6311bsalomon@google.com
23d6ed19cc751463285491a538bc7bf154cc7e6d8csenorblanco#ifndef GR_TESSELLATING_PATH_RENDERING
247ef63c85c5891ca59906e3c783a7f954be3f7f62senorblanco#define GR_TESSELLATING_PATH_RENDERING 1
25d6ed19cc751463285491a538bc7bf154cc7e6d8csenorblanco#endif
26d6ed19cc751463285491a538bc7bf154cc7e6d8csenorblanco
2745a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.comvoid GrPathRenderer::AddPathRenderers(GrContext* ctx, GrPathRendererChain* chain) {
281899651ffc459f5462aa989cd6d08507947b67e4kkinnunen    chain->addPathRenderer(SkNEW_ARGS(GrDashLinePathRenderer, (ctx)))->unref();
291899651ffc459f5462aa989cd6d08507947b67e4kkinnunen
30e3453cbd20d00d685131a09d9141b1c70f0c5710sugoi@google.com#if GR_STROKE_PATH_RENDERING
31e3453cbd20d00d685131a09d9141b1c70f0c5710sugoi@google.com    chain->addPathRenderer(SkNEW(GrStrokePathRenderer))->unref();
32e3453cbd20d00d685131a09d9141b1c70f0c5710sugoi@google.com#endif
3374dda9018e8bdd650698e763404f19144c6d0a42jvanverth@google.com#if GR_ANDROID_PATH_RENDERING
3474dda9018e8bdd650698e763404f19144c6d0a42jvanverth@google.com    chain->addPathRenderer(SkNEW(GrAndroidPathRenderer))->unref();
3574dda9018e8bdd650698e763404f19144c6d0a42jvanverth@google.com#endif
36ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com    if (GrPathRenderer* pr = GrStencilAndCoverPathRenderer::Create(ctx)) {
37ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com        chain->addPathRenderer(pr)->unref();
38ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com    }
390ce02c3ac1ff412b14c275eaf918acd88b3f0774cdalton#if GR_TESSELLATING_PATH_RENDERING
400ce02c3ac1ff412b14c275eaf918acd88b3f0774cdalton    chain->addPathRenderer(new GrTessellatingPathRenderer)->unref();
410ce02c3ac1ff412b14c275eaf918acd88b3f0774cdalton#endif
42ed0bcad9c8147fd37c23bdda00ec27ec9ef8d66bbsalomon    if (GrPathRenderer* pr = GrAAHairLinePathRenderer::Create()) {
4345a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com        chain->addPathRenderer(pr)->unref();
44aeb2160b1dd34f8e640e8e56544fe407d4ff6311bsalomon@google.com    }
4545a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com    chain->addPathRenderer(SkNEW(GrAAConvexPathRenderer))->unref();
46fa38a30897ceda3e93355d69b8a6812c823f41f6jvanverth    chain->addPathRenderer(SkNEW_ARGS(GrAADistanceFieldPathRenderer, (ctx)))->unref();
47aeb2160b1dd34f8e640e8e56544fe407d4ff6311bsalomon@google.com}
48