[Mono-dev] GDI+ and Pango.
jonathan.l.anderson at gmail.com
Wed May 13 23:52:50 EDT 2009
Sebastien Pouliot wrote:
> On Tue, 2009-05-12 at 20:06 -0400, Miguel de Icaza wrote:
>> There was a discussion today on IRC about Winforms and Pango, and I
>> was wondering if this patch ever got committed,
> No, it's not committed. But like I offered in a later email I don't have
> any issue committing this* (well the most up to date patch) into SVN.
I'm pretty sure the last patch I posted to the list has my latest
changes to libgdiplus. I can double check that over the weekend.
>> and in general what was the status of using Pango for GDI+
> Even with the great work from Jonathan this Pango-enabling does not
> cover all the cases already supported by libgdiplus (unless he has a
> newer patch with additional features).
> * As such it's not possible at this stage to switch to a pango backend
> without loosing features that existing applications depends on. Which
> means it will, for the time being, be an option (getting the new
> features) that reduce compatibility.
> The "big deal" is that the current work (old mine in SVN and Jonathan
> new patch) use the high-level pango API which is not complete enough for
> some of the options offered by GDI+ (including many supported by
> libgdiplus). This means that the code needs to be re-written in the
> low-level API before being ready for general consumption.
Yes, this is the case. There may be a kind of hybrid high and low level
approach, but in any case, the low-level API will need to be used. I
did some work with it, and it does have some of its own challenges, but
I definitely think it will be possible.
More recently, I've done a lot of work in the winforms code on the
TextBox (and its cousins). There are several issues with the current
implementation there that prevent nice text editing with non-Roman
languages even with the libgdiplus pango support enabled. I've done my
best to preserve as much of the old architecture as possible, so in my
changes to the TextBox it is possible to easily select the old rendering
code or the new rendering code at run-time or compile time. It needs a
little more cleaning up before I submit a patch here, however.
I've recently taken a new job, so I won't be able to spend as much time
working on this project as I have before, but I'd definitely like to see
development continue. Some of my former colleagues I think will be
taking on some development in this area as well as it is very important
to the group I was with.
More information about the Mono-devel-list