SkPathOpsCommon.h revision d892bd8ba676d34d4ce4a73ac7aad88e102fad70
13a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering/*
23a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering * Copyright 2012 Google Inc.
3a97605e07ad7f44f2f65e15be64880e61a39ab43Lennart Poettering *
43a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering * Use of this source code is governed by a BSD-style license that can be
53a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering * found in the LICENSE file.
63a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering */
73a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering#ifndef SkPathOpsCommon_DEFINED
8a97605e07ad7f44f2f65e15be64880e61a39ab43Lennart Poettering#define SkPathOpsCommon_DEFINED
93a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering
103a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering#include "SkOpContour.h"
113a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering#include "SkTDArray.h"
123a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering
13a97605e07ad7f44f2f65e15be64880e61a39ab43Lennart Poetteringclass SkPathWriter;
143a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering
153a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poetteringvoid Assemble(const SkPathWriter& path, SkPathWriter* simple);
163a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering// FIXME: find chase uses insert, so it can't be converted to SkTArray yet
173a625af272ee8c6f878ba4d44ed1c741a1582395Lennart PoetteringSkOpSegment* FindChase(SkTDArray<SkOpSpan*>& chase, int& tIndex, int& endIndex);
183a625af272ee8c6f878ba4d44ed1c741a1582395Lennart PoetteringSkOpSegment* FindSortableTop(const SkTArray<SkOpContour*, true>& contourList, bool* firstContour,
193a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering                             int* index, int* endIndex, SkPoint* topLeft, bool* unsortable,
203a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poettering                             bool* done, bool binary);
213a625af272ee8c6f878ba4d44ed1c741a1582395Lennart PoetteringSkOpSegment* FindUndone(SkTArray<SkOpContour*, true>& contourList, int* start, int* end);
223a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poetteringvoid FixOtherTIndex(SkTArray<SkOpContour*, true>* contourList);
233a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poetteringvoid MakeContourList(SkTArray<SkOpContour>& contours, SkTArray<SkOpContour*, true>& list,
244f0a5e7572a4257894b4bfede42c26d65152609eLennart Poettering                     bool evenOdd, bool oppEvenOdd);
254f0a5e7572a4257894b4bfede42c26d65152609eLennart Poetteringvoid SortSegments(SkTArray<SkOpContour*, true>* contourList);
264f0a5e7572a4257894b4bfede42c26d65152609eLennart Poettering
274f0a5e7572a4257894b4bfede42c26d65152609eLennart Poettering#if DEBUG_ACTIVE_SPANS || DEBUG_ACTIVE_SPANS_FIRST_ONLY
283a625af272ee8c6f878ba4d44ed1c741a1582395Lennart Poetteringvoid DebugShowActiveSpans(SkTArray<SkOpContour*, true>& contourList);
2966c497f4637276f390f1a7afaf7fe07616da9f1aLennart Poettering#endif
300c54764cf19428a0c52724a75ddf3368e3899209Lennart Poettering
310c54764cf19428a0c52724a75ddf3368e3899209Lennart Poettering#endif
324f0a5e7572a4257894b4bfede42c26d65152609eLennart Poettering