Re: Cairo and ISO C++
Bill Spitzak <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
Other things I would like to see addressed in Cairo: ZERO LINEWIDTH A huge complaint about Cairo is that it is "fuzzy". It tries to hide this by defaulting the line width to 2, which just makes everything look thick. I would change the default method of stroking a line to purposely draw non-antialised horizontal and vertical lines that are about 1/96 of an inch thick. In cairo setting the line width to 1, and offsetting any path that is being stroked by .5, .5 does a good job of this. To match virtually every other graphics library I have seen, this state can be chosen by setting the line width to zero, and is turned off by setting the line width to non-zero (including MINFLOAT). If this is not provided most programmers "fix" it by turning off antialiasing, which is not at all desirable and makes all the rest of the graphics look a lot worse. ADJACENT SHAPES I have no solution but everybody hates the fact that drawing two filled shapes that touch makes a slightly transparent line between them due to antialiasing. Again most users "fix" this by turning off antialiasing, which is not a way to get nice looking output. DOTS Right now two moveto's in a row do nothing. This should draw a dot, at least if rounded end caps are used. Currently the user has to draw an extremely short stroke to get a dot which is not very intuitive, and may be hard to accelerate. I believe this was done because some font formats have useless moveto's but I think a better fix would be for the translator from that format to remove these first. PRESERVE PATH I would have filling/stroking a path not clear the path, but instead put cairo in a state so the next moveto/lineto will clear the path. This will allow fill, stroke to work like users expect, and by removing the "preserve" calls reduce the size of the api. -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo