<div dir="ltr"><div dir="ltr"><div>Hi,</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Nov 24, 2020 at 11:13 AM Povilas Kanapickas <<a href="mailto:povilas@radix.lt">povilas@radix.lt</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Ralph,<br>
<br>
On 11/23/20 12:33 AM, Ralph Little wrote:<br><br>
> <br>
> 1) Are you intending a genesys-style rewrite, perhaps in C++?<br>
<br>
Yes. I plan to extract reusable parts of the genesys backend and use<br>
that from any other backends.<br>
<br>
Even without that, I've found that at least in the case of genesys<br>
backend, a rewrite to C++ fixed a large number of small bugs that<br>
require strong discipline to avoid in C. The largest category were bugs<br>
in error handling and bugs in memory handling. This is I guess not<br>
surprising as both of these are done manually in C.<br>
<br>
I plan to start the rewrite next month, so it would be great if any<br>
fixes could be submitted until then as the codebase may change<br>
substantially.<br>
<br></blockquote><div>OK, I will assemble the actual fixes and drop them into a new branch.</div><div>Then we can review and merge them.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> 2) What do you think about dropping emulated lineart from the backend<br>
> altogether? That would certainly simplify the backend considerably.<br>
<br>
The same has been done in the genesys backend. I think we need a wrapper<br>
backend that would generate lineart automatically if the downstream<br>
backend does not support that.<br>
<br>
Right now I'm thinking about how this could be implemented.<br></blockquote><div><br></div><div>One way to deal with that would be for me to add Lineart as a filter to xsane as a postprocess option.</div><div>Command line users could make the lineart conversion another phase of their workflow, using a tool like imagemagick.<br></div><div>I think that a lot of people view this kind of thing as something that the frontend should provide, with the backend merely exposing the native capabilities of the hardware. We have a number of backends doing emulation of functions that the hardware cannot do and they all seem to do it in their own special way, increasing the code size measurably.<br></div><div><br></div><div>Which reminds me, I really need to get back to xsane. I'm a terrible one for distraction :(</div><div><br></div><div>Cheers,</div><div>Ralph<br></div></div></div>