discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GDI+/win32 backend


From: Christopher Armstrong
Subject: GDI+/win32 backend
Date: Sun, 31 Jul 2005 09:08:45 +1000

I have been working on integrating GDI+ into the win32 backend. It was
much easier that I imagined, as mingw has already had most of the
necessary headers and .def file posted to it's mailing list. 

I've copied these and inserted them into gnustep-back myself, as they
still need alot of work. We can at least make use of the flat API, as it
only needs exports defined as C-like functions (note I say C-like
functions, as despite what any microsoft or other related media may
imply, this "flat API" can only be accessed from a C++ compiler, using C
++ constructs).

I want to contribute this code so it could be made use of, even if it
means throwing most of it out and starting again, as it at least
demonstrates that GDI+ is possible. I've replaced the stroke function in
_paintPath with it, and I'm working on dashed lines at the moment. We
have the advantage of being able to mix GDI+ and GDI, as GDI+ uses HDC's
to create it's main "Graphics" object. I've commented out the GDI code
that I've replaced.

What I have done is written a .cpp file with some functions that have c
linkage (extern "C"), created a common header file, which is then
included in WIN32GState.m so that we can call the GDIPlus functions
indirectly. I have also add a GNUmakefile.postamble, which has a line,
which uses dlltool to generate a libgdiplus.a file for linking. Through
some testing, it would seem we need to use the redistributable found at
microsoft's web site, as one I found installed in my win2k system32
directory had serious issues. (It's 12kb, so I figure its not very
useful, probably some stub that came with .NET).

My problem is modifiying the autoconf/automake files and other makefiles
so that other people can make use the modifications, and generating a
patch (I don't know how to use diff properly). Can someone give me some
pointers as to what I should do (even if it means RTFM)?

-- 
Christopher Armstrong <quineska @AT@ gamebox dot NET>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]