Hi Ralph, On 11/23/20 12:33 AM, Ralph Little wrote: > Hi Povilas (and the group), > I have been working some changes for pixma on a branch for issue #264, > support for MX492. > It has been quite a long meandering journey and, although I have fixed a > few actual backend bugs, I'm not really happy with the direction that I > have taken and would like to restart with a better idea in mind of where > it is going to go. > > To be honest, I have learned a lot along the way and I would have > preferred to be able to reduce the changes down to much smaller pieces. > > Much of that effort has been sorting out the distinction between > frontend and backend line_size computed values which lay at the source > of much of what doesn't work with the lineart support. > > So, I propose to terminate that branch and start afresh. I could open > new branches and add the definite, smaller real bug fixes that are > practical to review and individually merge. In particular, the > revelations related to the imageClass ADF. > > It occurs to me that you probably have your own plans as to how you > would like to develop the pixma backend and I would be interested in > your views before I start anything major. > > In particular: > > 1) Are you intending a genesys-style rewrite, perhaps in C++?
Yes. I plan to extract reusable parts of the genesys backend and use that from any other backends. Even without that, I've found that at least in the case of genesys backend, a rewrite to C++ fixed a large number of small bugs that require strong discipline to avoid in C. The largest category were bugs in error handling and bugs in memory handling. This is I guess not surprising as both of these are done manually in C. I plan to start the rewrite next month, so it would be great if any fixes could be submitted until then as the codebase may change substantially. > 2) What do you think about dropping emulated lineart from the backend > altogether? That would certainly simplify the backend considerably. The same has been done in the genesys backend. I think we need a wrapper backend that would generate lineart automatically if the downstream backend does not support that. Right now I'm thinking about how this could be implemented. Cheers, Povilas
