Andrea Canciani <ranm...@gmail.com> writes: > I also tried to implement the "parameter, then color" idea: > http://cgit.freedesktop.org/~ranma42/pixman/commit/?h=wip/itergradient&id=3bcd40c2a5842519167c6ab37d2ad4628667b108 > > It is currently far from perfect (in particular the "-1" hardcoded to > clear...), > but it seems to provide a small but consistent performance improvement. > I put some TODOs related both to performance and correctness in the > commit message. I forgot to mention that this would make it easy to > really compute 16 bits components (thus having true wide support, > instead of expanding the narrow result) by having two gradient walker > parameter->color functions.
This looks like a very good idea to me. Aside from the performance improvement, the code is also somewhat simpler. Passing the parameters as floating point, either single or double precision would not only avoid the unnecessary conversion to fixed-point, but also allow the "-1" issue to be solved since NaN could be used for that purpose. I'm less convinced about the destination buffer thing; I'll send some comments on that later. > > Overall, the patch set looks good. It's just not everything seems to be rosy > > to me, I can see (and accept) some of the compromises it introduces. > > I've been playing around with the iterators4 branch and it looks very > promising to me, but I noticed two minor coding issues. > > In 9f3e73a2f147265020466ee094abd868a77f52ed the new get_scanline > functions {conical,radial,linear_gradient}_get_scanline_* are added. > I think that a more consistent naming would be better. > In the same commit, _pixman_solid_fill_iter_init () is added twice in > pixman-private.h Thanks, I have fixed both issues in the iterators4 branch. Soren _______________________________________________ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman