egra: agg mini code cleanups
[iv.d.git] / egra / gfx / aggmini / enums.d
blobb5c58309788cfa47d02b0d1a784cf104845ae41f
1 /*
2 * Simple Framebuffer Gfx/GUI lib
4 * coded by Ketmar // Invisible Vector <ketmar@ketmar.no-ip.org>
5 * Understanding is not required. Only obedience.
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, version 3 of the License ONLY.
11 * This program 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.
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/>.
19 module iv.egra.gfx.aggmini.enums;
20 private:
21 nothrow @safe @nogc:
24 /* Bezier curve rasterizer.
26 * De Casteljau Bezier rasterizer is faster, but currently rasterizing curves with cusps sligtly wrong.
27 * It doesn't really matter in practice.
29 * AFD tesselator is somewhat slower, but does cusps better.
31 * McSeem rasterizer should have the best quality, bit it is the slowest method. Basically, you will
32 * never notice any visial difference. But it can render something... ahem... sensible with very low
33 * recursion levels (as low as 1), while standard De Casteljau produces garbage if its built-in
34 * "flatness limit" is not reached. so McSeem tesselator is the default here.
35 * On Baphomet test It is slower than De Casteljau by about 100 *micro*seconds. I'm ok with that.
37 public enum AGGTesselation {
38 DeCasteljauMcSeem, // standard well-known tesselation algorithm, with improvements from Maxim Shemanarev; slowest one, but should give best results
39 DeCasteljau, // standard well-known tesselation algorithm
40 AFD, // adaptive forward differencing (experimental)
43 public enum FillRule {
44 NonZero,
45 EvenOdd,
48 public enum LineCap {
49 Butt,
50 Square,
51 Round,
54 public enum LineJoin {
55 Miter,
56 MiterRevert,
57 Round,
58 Bevel,
59 MiterRound,
62 public enum InnerJoin {
63 Bevel,
64 Miter,
65 Jag,
66 Round,
69 public enum Winding {
70 CW,
71 CCW,