1 /*$
2  Copyright (C) 2013-2020 Azel.
3 
4  This file is part of AzPainter.
5 
6  AzPainter is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  AzPainter is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 $*/
19 
20 /************************************
21  * 多角形塗りつぶし処理
22  ************************************/
23 
24 #ifndef FILLPOLYGON_H
25 #define FILLPOLYGON_H
26 
27 typedef struct _FillPolygon FillPolygon;
28 
29 FillPolygon *FillPolygon_new();
30 void FillPolygon_free(FillPolygon *p);
31 
32 mBool FillPolygon_addPoint(FillPolygon *p,double x,double y);
33 mBool FillPolygon_closePoint(FillPolygon *p);
34 
35 mBool FillPolygon_beginDraw(FillPolygon *p,mBool bAntiAlias);
36 void FillPolygon_getMinMaxY(FillPolygon *p,int *ymin,int *ymax);
37 void FillPolygon_getDrawRect(FillPolygon *p,mRect *rc);
38 
39 mBool FillPolygon_getIntersection_noAA(FillPolygon *p,int y);
40 mBool FillPolygon_getNextLine_noAA(FillPolygon *p,int *x1,int *x2);
41 
42 mBool FillPolygon_setXBuf_AA(FillPolygon *p,int y);
43 uint16_t *FillPolygon_getAABuf(FillPolygon *p,int *xmin,int *width);
44 
45 #endif
46