Re: rendering-cleanup

2010-08-17 Thread Allin Cottrell
On Sat, 7 Aug 2010, Benjamin Otte wrote:

 my rendering-cleanup work is pretty much done now...

 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.

Thanks for this. It would be very useful for app programmers if
the drawing area unit in gtk-demo could be updated to use cairo
rather than the old gdk drawing mechanism -- particularly for
those of us who never truly understood the gdk mechanism but
managed to get by via copy-paste-and-modify from known good
sources!

Allin Cottrell
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: rendering-cleanup

2010-08-07 Thread Benjamin Otte
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