Hi,
my rendering-cleanup work is pretty much done now. I expect the branch
to land in master during the next week while people (read: Matthias)
pound on it trying to find issues.
I've also deprecated as many APIs as is reasonable inside Gtk 2.22. So
if you are compiling with GDK_DISABLE_DEPRECATED and find your module
breaks, you need to update your drawing to Cairo (or disable the flag
;)).
I'm still in the process of updating the documentation (read: it's
missing stuff), so if anything is unclear for you, please poke me on
IRC or by mail and I'll try to clarify it. In the meantime you want to
read http://blogs.gnome.org/otte/2010/07/27/rendering-cleanup/ That
page will become the basis of what will be the porting documentation.
Benjamin
On Thu, Jul 22, 2010 at 4:54 AM, Benjamin Otte o...@gnome.org wrote:
Hi,
As many of you have already noticed, I've been frantically hacking
away on my Gtk rendering-cleanup branch[1]. The branch is an attempt
to move all GTK drawing to Cairo and remove all the outdated APIs that
exist for rendering, including, but not limited to:
- GdkRGB
- GdkImage
- gdk_draw_*()
- GdkPangoRenderer
- GdkGC
More things could be removed (GdkColormap and GdkColor.pixel come to
mind), but those aren't urgent for 3.0 IMO, so I didn't remove them.
I did do this because the task of implementing and maintaining such a
complex rendering API as Gdk2.0 provides is a very daunting task and
looking at the non-X11 backends also quite complex, while Cairo
provides a much smaller API and has fallbacks for almost everything.
The work is done and the code runs now. Well, at least testgtk and
gtk3-demo do. On X11. I'd be happy if others could take it for a spin
and find issues with it or even have a go at Quartz and Win32 code.
Even though this is a huge amount of API that is removed - it's close
to 30.000 lines of code including docs - there don't seem to be a lot
of users inside GNOME. Most of the users are really old parts of the
code and in those cases switching to Cairo should be a reasonably
easy. In fact, a lot of the functions can be replaced using similar
functions from Cairo in a copy/paste style. Also, I'd like to point
out that no API was changed. I only removed functions. So a proper
transition from Gtk2 using deprecations is easily possible.
So what do I intend to do next?
1) Port some applications - the bigger users - to not use these
functions anymore. That way I'll both review my branch and get some
apps fixed.
2) Cherry-pick the cleanup work into master and gtk-2-22
3) Get an ok to merge the API cleanup to master (or at least
partially) and deprecate related functions for 2.22.
The work is tracked in bug 624255[2] and further discussions should
happen there. This mail is just intended to make everyone aware of the
effort and to answer any questions you might have.
Also, I'm aware that we are very close to a release. I'd understand if
that'd make people not want to merge it. But I think it's worth it and
the impact is very small compared to the other changes in Gtk3.
And last but not least, some diffstats:
Whole patchset:
146 files changed, 2730 insertions(+), 29384 deletions(-)
gdk/ subdirectory:
64 files changed, 590 insertions(+), 22215 deletions(-)
This should prove that it's pretty much just removing code.
gtk/ subdirectory:
37 files changed, 1866 insertions(+), 3373 deletions(-)
Half of that is fixing the default style, the other half is updating
widgets to use Cairo.
Cheers,
Benjamin
1: http://git.gnome.org/browse/gtk+/log/?h=rendering-cleanup
2: https://bugzilla.gnome.org/show_bug.cgi?id=624255
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list