Re: rendering-cleanup

2010/8/16 Jean Brefort <jean brefort normalesup org>:
> Hi,
> Sorry to come late to this thread, but I'd like to know how you intend
> to support things that can't be rendered using cairo? Just like a 3D
> OpenGL scene. I'm not sure gtkglext would still work. I hope I'm missing
> something...

That's an easy one. Enabling cairo to render on more places :P

> Regards,
> Jean
> Le jeudi 22 juillet 2010 à 04:54 +0200, Benjamin Otte a écrit :
>> 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:
>> 2:
>> _______________________________________________
>> gtk-devel-list mailing list
>> gtk-devel-list gnome org
> _______________________________________________
> gtk-devel-list mailing list
> gtk-devel-list gnome org

Un saludo,
Alberto Ruiz

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