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