[cairo] Mac Tiger Core Image
Bill Spitzak
spitzak at d2.com
Thu Mar 10 10:26:08 PST 2005
> There are at least two gaps that I am currently aware of, and for
> which we've already started some discussion on the list:
>
> General gradients
>
> Filters
Add 3x3 transformation for patterns:
The "page curl" and other distortions, without this, will be reduced to
drawing the image as pixels into memory. With this they can draw a
number of triangles with the correct projected textures. Notice that 3x3
transformations for paths or anything other than patterns is not
necessary, it would be nice, but is not a requirement.
And (sigh) aliasing, here are my thoughts on this:
In my opinion we only need the ability to turn off antialiasing for
individual straight lineto's, perhaps with a new aliased-lineto call.
This will allow a higher level to construct a more complex geometry out
of triangles, using aliasing only on the edges that attach to another
triangle (with the same front/back facing for 3d surfaces). This is
absolutely necessary to draw solid complex objects, using "add" as
suggested in other postings will not work, nor will OpenGL's
accumulation-alpha.
Unlike several other posters, I do NOT think we want to be able to turn
off antialiasing for anything else, such as stroke, letters, or curved
portions of paths.
Instead we need the ability to set the line width to 0, which completely
replaces the stroke algorithim with another one that produces
non-antialiased horizontal and vertical straight lines that are 1 unit
rounded up to the nearest pixel thick. Diagonal lines can (and should)
remain antialiased, though they will probably have to be adjusted to
attach correctly to horizontal and vertical lines. This 0 value should
be the default line width, which will stop the complaits about the thick
default used now.
We also need the ability to "adjust" the current transformation. Add
commands to round the transform so that the coordinate 0 in each
direction is put on the nearest pixel center, pixel edge, or both, and
set the scale so 1 unit is a multiple of .5, an integer, or an integer
plus .5. This will allow small objects to be drawn nicely, far better
than turning off antialiasing will allow.
More information about the cairo
mailing list