13f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com 23f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com/* 33f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com * Copyright 2011 Google Inc. 43f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com * 53f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com * Use of this source code is governed by a BSD-style license that can be 63f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com * found in the LICENSE file. 73f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com */ 83f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com 93f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com#ifndef GrAAHairLinePathRenderer_DEFINED 103f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com#define GrAAHairLinePathRenderer_DEFINED 113f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com 123f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com#include "GrPathRenderer.h" 133f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com 143f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.comclass GrAAHairLinePathRenderer : public GrPathRenderer { 153f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.compublic: 163f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com virtual ~GrAAHairLinePathRenderer(); 173f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com 183f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com static GrPathRenderer* Create(GrContext* context); 193f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com 20111fa9c0003b99e052d665af57b51ff973dcb416bsalomon@google.com virtual bool canDrawPath(const SkPath& path, 215c2ee5c5d8f8593d40a2a9ffd9ca834653ee6af1sugoi@google.com const SkStrokeRec& stroke, 22290bf0ae34af76a4350a5df76ce02feb93d68196sugoi@google.com const GrDrawTarget* target, 23290bf0ae34af76a4350a5df76ce02feb93d68196sugoi@google.com bool antiAlias) const SK_OVERRIDE; 2439639c6a5228c8595458422479d0446440fb3590skia.committer@gmail.com 258bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com typedef SkTArray<SkPoint, true> PtArray; 268bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com typedef SkTArray<int, true> IntArray; 278bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com typedef SkTArray<float, true> FloatArray; 2839639c6a5228c8595458422479d0446440fb3590skia.committer@gmail.com 293f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.comprotected: 30111fa9c0003b99e052d665af57b51ff973dcb416bsalomon@google.com virtual bool onDrawPath(const SkPath& path, 315c2ee5c5d8f8593d40a2a9ffd9ca834653ee6af1sugoi@google.com const SkStrokeRec& stroke, 32111fa9c0003b99e052d665af57b51ff973dcb416bsalomon@google.com GrDrawTarget* target, 33111fa9c0003b99e052d665af57b51ff973dcb416bsalomon@google.com bool antiAlias) SK_OVERRIDE; 34dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com 353f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.comprivate: 363f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com GrAAHairLinePathRenderer(const GrContext* context, 373f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com const GrIndexBuffer* fLinesIndexBuffer, 383f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com const GrIndexBuffer* fQuadsIndexBuffer); 393f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com 408bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com bool createLineGeom(const SkPath& path, 418bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com GrDrawTarget* target, 428bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com const PtArray& lines, 438bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com int lineCnt, 448bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com GrDrawTarget::AutoReleaseGeometry* arg, 458bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com SkRect* devBounds); 4639639c6a5228c8595458422479d0446440fb3590skia.committer@gmail.com 478bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com bool createBezierGeom(const SkPath& path, 488bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com GrDrawTarget* target, 498bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com const PtArray& quads, 508bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com int quadCnt, 518bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com const PtArray& conics, 528bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com int conicCnt, 538bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com const IntArray& qSubdivs, 548bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com const FloatArray& cWeights, 558bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com GrDrawTarget::AutoReleaseGeometry* arg, 568bc87fc5d23ae550ffa5edaaf5844556e5331bb3jvanverth@google.com SkRect* devBounds); 573f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com 583f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com const GrIndexBuffer* fLinesIndexBuffer; 593f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com const GrIndexBuffer* fQuadsIndexBuffer; 603f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com 613f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com typedef GrPathRenderer INHERITED; 623f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com}; 633f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com 643f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com 653f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com#endif 66