01d3319b67
For now, disable dropping trailing edges
This reverts commit 0692c5f2c1
.
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/882733004
53 lines
1.3 KiB
C++
53 lines
1.3 KiB
C++
|
|
/*
|
|
* Copyright 2011 Google Inc.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
#ifndef SkEdgeBuilder_DEFINED
|
|
#define SkEdgeBuilder_DEFINED
|
|
|
|
#include "SkChunkAlloc.h"
|
|
#include "SkRect.h"
|
|
#include "SkTDArray.h"
|
|
|
|
struct SkEdge;
|
|
class SkEdgeClipper;
|
|
class SkPath;
|
|
|
|
class SkEdgeBuilder {
|
|
public:
|
|
SkEdgeBuilder();
|
|
|
|
// returns the number of built edges. The array of those edge pointers
|
|
// is returned from edgeList().
|
|
int build(const SkPath& path, const SkIRect* clip, int shiftUp, bool clipToTheRight);
|
|
|
|
SkEdge** edgeList() { return fEdgeList; }
|
|
|
|
private:
|
|
SkChunkAlloc fAlloc;
|
|
SkTDArray<SkEdge*> fList;
|
|
|
|
/*
|
|
* If we're in general mode, we allcoate the pointers in fList, and this
|
|
* will point at fList.begin(). If we're in polygon mode, fList will be
|
|
* empty, as we will have preallocated room for the pointers in fAlloc's
|
|
* block, and fEdgeList will point into that.
|
|
*/
|
|
SkEdge** fEdgeList;
|
|
|
|
int fShiftUp;
|
|
|
|
public:
|
|
void addLine(const SkPoint pts[]);
|
|
void addQuad(const SkPoint pts[]);
|
|
void addCubic(const SkPoint pts[]);
|
|
void addClipper(SkEdgeClipper*);
|
|
|
|
int buildPoly(const SkPath& path, const SkIRect* clip, int shiftUp, bool clipToTheRight);
|
|
};
|
|
|
|
#endif
|