Home | History | Annotate | Download | only in core
      1 
      2 /*
      3  * Copyright 2011 Google Inc.
      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 #ifndef SkEdgeBuilder_DEFINED
      9 #define SkEdgeBuilder_DEFINED
     10 
     11 #include "SkChunkAlloc.h"
     12 #include "SkRect.h"
     13 #include "SkTDArray.h"
     14 
     15 struct SkEdge;
     16 class SkEdgeClipper;
     17 class SkPath;
     18 
     19 class SkEdgeBuilder {
     20 public:
     21     SkEdgeBuilder();
     22 
     23     int build(const SkPath& path, const SkIRect* clip, int shiftUp);
     24 
     25     SkEdge** edgeList() { return fList.begin(); }
     26 
     27 private:
     28     SkChunkAlloc        fAlloc;
     29     SkTDArray<SkEdge*>  fList;
     30     int                 fShiftUp;
     31 
     32     void addLine(const SkPoint pts[]);
     33     void addQuad(const SkPoint pts[]);
     34     void addCubic(const SkPoint pts[]);
     35     void addClipper(SkEdgeClipper*);
     36 };
     37 
     38 #endif
     39