Fluid 0.7.0 has been released!

cookiewitch artha at samerion.com
Fri Nov 1 12:14:25 UTC 2024


On Thursday, 31 October 2024 at 13:08:55 UTC, IchorDev wrote:
> On Friday, 25 October 2024 at 12:49:36 UTC, cookiewitch wrote:
>> [...]
>>
>> I'd really appreciate it if there were some other, more 
>> comprehensive learning resources. Do you know any?
>
> Sorry for my late reply! Anyway, here we go…
>
> [...]
>
> Some consideration should be given to where to start. For 
> instance, one could build up from HarfBuzz. However, HarfBuzz 
> is another GLib-based FSF C library, just like Pango, so 
> perhaps this would just shift the compromises further down the 
> line. Say we want *no* compromises; then we have to do 
> everything 100% in D. Certainly neither of these options are 
> trivial, and it would be a fool's errand to embark upon them 
> alone.

Thank you for dedicating your time to this, and for the very 
elaborate response! Reimplementing PangoLayout does sound like an 
option, but as far as I've seen, Pango operates on strings all 
the way through. I suppose it is possible to assemble parts of 
the rope into a string on the stack, and only operate on a single 
part at once, but I don't think this is going to be very 
bug-proof. Alternatively, Fluid's text engine does distinguish 
between static and dynamic text with an "edit mode" flag, so it 
could be possible to apply Pango on stringified static text, but 
that's never going to be enough.

Oh, and also, since Pango is LGPLv2 licensed, I think a port of 
`PangoLayout` could run into licensing problems the way D 
programs are usually built \[with DUB\].

> Having a full D text layout engine is a pet dream of mine of 
> course, so if you're interested in contributing to a project 
> like that then I might be able to dedicate some of my spare 
> time to it.

I've been thinking about this last week and I'm under the 
impression this is what is going to happen anyway. For what it's 
worth, I'm currently working on another large PR which upscales 
Fluid's text engine, splitting it into a separate `fluid.text` 
package and optimizing it on the way through. It is mostly 
standalone, so if you find it appropriate, I could create a new 
Git & DUB repository for it once I'm done. I would like to have 
your input on it.


More information about the Digitalmars-d-announce mailing list