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