1ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 2ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com/* 3ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com * Copyright 2012 Google Inc. 4ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com * 5ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com * Use of this source code is governed by a BSD-style license that can be 6ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com * found in the LICENSE file. 7ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com */ 8ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 9ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com#ifndef GrBuiltInPathRenderer_DEFINED 10ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com#define GrBuiltInPathRenderer_DEFINED 11ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 12ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com#include "GrPathRenderer.h" 13ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 14ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.comclass GrContext; 15ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.comclass GrGpu; 16ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 17ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com/** 18ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com * Uses GrGpu::stencilPath followed by a cover rectangle. This subclass doesn't apply AA; it relies 19ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com * on the target having MSAA if AA is desired. 20ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com */ 21ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.comclass GrStencilAndCoverPathRenderer : public GrPathRenderer { 22ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.compublic: 23ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 2445a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com static GrPathRenderer* Create(GrContext*); 25ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 26ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com virtual ~GrStencilAndCoverPathRenderer(); 27ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 28e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com virtual bool canDrawPath(const SkPath&, 29e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com const SkStrokeRec&, 3045a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com const GrDrawTarget*, 31ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com bool antiAlias) const SK_OVERRIDE; 32ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 33ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.comprotected: 34e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com virtual StencilSupport onGetStencilSupport(const SkPath&, 35e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com const SkStrokeRec&, 3645a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com const GrDrawTarget*) const SK_OVERRIDE; 3745a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com 38e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com virtual bool onDrawPath(const SkPath&, 39e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com const SkStrokeRec&, 4045a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com GrDrawTarget*, 41ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com bool antiAlias) SK_OVERRIDE; 42ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 43e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com virtual void onStencilPath(const SkPath&, 44e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com const SkStrokeRec&, 4545a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com GrDrawTarget*) SK_OVERRIDE; 4645a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com 47ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.comprivate: 4845a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com GrStencilAndCoverPathRenderer(GrGpu*); 49ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 50ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com GrGpu* fGpu; 51ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 52ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com typedef GrPathRenderer INHERITED; 53ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com}; 54ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 55ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com#endif 56