RSS/Atom feed Twitter
Site is read-only, email is disabled

Cairo for 2.6

This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

2 of 2 messages available
Toggle history

Please log in to manage your subscriptions.

Cairo for 2.6 William Skaggs 29 Oct 20:02
  Cairo for 2.6 Sven Neumann 29 Oct 20:13
William Skaggs
2007-10-29 20:02:43 UTC (about 17 years ago)

Cairo for 2.6

To my understanding, switching to Cairo for the canvas (and switching away from XOR drawing) will involve two things:

1) Porting GimpCanvas to Cairo instead of raw GDK. That should be pretty straightforward: I think virtually all of the relevant code lives in app/display/gimpcanvas.c.

2) Changing the implementation of gimp_draw_tool_pause() in app/tools/gimpdrawtool.c, so that instead of erasing the drawing using the XOR trick, it redisplays the projection of the image. I believe that getting this to happen efficiently will require maintaining a pixmap of the projection as it is currently displayed. Given that that needs to happen in any case, this might be a good time to take on the problem of displaying an interpolated view of the projection instead of the current every-nth-pixel view.

-- Bill


______________ ______________ ______________ ______________ Sent via the CNPRC Email system at primate.ucdavis.edu

Sven Neumann
2007-10-29 20:13:21 UTC (about 17 years ago)

Cairo for 2.6

Hi,

On Mon, 2007-10-29 at 12:02 -0700, William Skaggs wrote:

2) Changing the implementation of gimp_draw_tool_pause() in app/tools/gimpdrawtool.c, so that instead of erasing the drawing using the XOR trick, it redisplays the projection of the image. I believe that getting this to happen efficiently will require maintaining a pixmap of the projection as it is currently displayed. Given that that needs to happen in any case, this might be a good time to take on the problem of displaying an interpolated view of the projection instead of the current every-nth-pixel view.

It seems you have missed quite a bit of what has happened in GIMP development recently. GIMP displays an interpolated view of the projection. The nearest-neighbour algorithm is not any longer used.

GIMP also maintains a pixmap of the projection, or at least something that is very close to what is being displayed. It remains to be seen if we need to add another level of caching there to get reasonably fast tool drawing. It might be necessary to keep a copy of the displayed area with all display filters applied so that tool expose events can be served from this.

Sven