[Mono-winforms-list] System.Drawing implementation issues.
Vladimir Kaluzhny
vkaluzhny@openlinksw.co.uk
Mon, 22 Sep 2003 20:43:57 +0700
Hello guys.
Rushing to inform all of you, that commdlg32.dll and resources
utilization functionality are done. Patch will be published in few days.
Now I am working on migration of all of my patches onto latest
build of wine.
I find this issue below about System.Drawing implementation very
interesting.
Arguments, delivered by Miguel look like weightness.
In fact, implementation of GDI+ is not easy work, but I do not see
any problems to do it. Actually, if community would decide to write it,
I can do this myself. But I think this will not be a quick deal.
The only argument in this discussion for sake of GDI+ usage
I see here is as follow -
If we have already decided to use Win32 API shared libraries,
pulled from Wine, why we should decline out from this way further?
Meantime , since Cairo is a power graphic engine , it would be resonable
to use it too.
I guess there should a compromised solution here.
Why not to try to integrate Cairo into our implementation of graphic
engine for SWF and use it together with wine-based Win32 API
shared libraries
(obviously, gdi32.dll should be modified then, but I do not see
any problems here). This is seen as curious, but can be considered
as a possible solution, which give us a fastest result.
My opinion is as follow - we need to integrate Cairo into our gdi32.dll.
Regards, Vlad
----- Original Message -----
From: "Miguel de Icaza" <miguel@ximian.com>
To: "Mono Winforms" <mono-winforms-list@ximian.com>
Sent: Monday, September 22, 2003 07:18
Subject: [Mono-winforms-list] System.Drawing implementation issues.
> Hello,
>
> Currently we have two System.Drawing implementations, and depending
> on the kind of application running we pick one of them: the Cairo-based
> implementation and the Wine-based implementation.
>
> If Windows.Forms is initialized, we set a flag to use the Wine-based
> implementation, if not, we use the Cairo-based one. This is the state
> of each implementation:
>
> * Wine implementation: works directly with Wine, so rendering
> for Windows.Forms apps just works. The problem is that Wine
> lacks a GDI+ implementation, so some of the most advanced
> rendering features are not available, and will require us
> to reimplement lots of it, or work with the Wine team to
> implement GDI+.
>
> * The Cairo implementation has the most future, as it is a
> complete engine for doing the kind of 2d graphics that System.
> Drawing is.
>
> The main problem we have today is that we have to maintain two
> implementations of it, and the way this is done is rather cumbersome to
> maintain: a front-end class that acts as the proxy (Pen, Brush, etc) an
> interface that defines the contract between the backends and the
> front-end, and the backends themselves. This is a lot of complexity
> that I would like to avoid.
>
> The question to the Wine experts in the list is whether it is
> possible to just use Cairo for everything and have it work nicely with
> Wine to avoid the duplication of work.
>
> Miguel.
> _______________________________________________
> Mono-winforms-list maillist - Mono-winforms-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-winforms-list
>