there are a couple of patches pending in Bugzilla that add previews to
some of our plug-ins. In particular these are:


If you take a look at these bug-reports you will notice that there's
quite some confusion on how a preview should best be implemented. I'd
like to settle on one way before accepting these patches and I think
we need to come to a decision here soon so that more plug-ins can get
a preview added for gimp-2.2.

There seem to be a couple of options. Let me try to summarize the ones
that I see:

 -  Use GtkPreview.

    GtkPreview is declared deprecated by the GTK+ team and we will
    want to get rid of it at some point. On the other hand there isn't
    really a good reason not to use it. The API does it's job w/o and
    I never understood why it as deprecated in the first place.

 -  Use a drawing area and draw from the expose event.

    This seems to be asked too much for a plug-in developer and it
    would duplicate even more code. IMHO not an option.

 -  Use a GdkPixbuf as the pixel buffer and use a GtkImage to display it.

    The disadvantage is that the GdkPixbuf and GtkImage API are not
    too well suited for our needs. GdkPixbuf doesn't handle greyscale
    buffers and GtkImage can only display the full pixbuf. If we
    wanted to show only a region of the buffer we could work around
    this using gdk_pixbuf_new_subpixbuf() but IMHO this is becoming
    too hackish to consider it.

 -  Come up with a full-featured preview widget.

    We could use the widget that Ernst Lippe wrote but since there
    hasn't been any effort so far to discuss it's API again and to get
    it into CVS I am not sure if it makes sense to wait for this to

 -  Come up with a simple preview widget to replace GtkPreview.

    We could add a simple GimpPreview to libgimpwidgets and try to
    design the API so that it

    o  easily replaces GtkPreview

       An API that isn't too different from the GtkPreview API would make
       it easy to port plug-ins that currently use GtkPreview to the new

    o  allows to be turned into a full-featured preview widget later

    o  performs some very common tasks like the drawing of the
       checkerboard for the alpha channel

    So the question here is what functionality should a simple
    GimpPreview widget provide and how should the API look like?  I
    will try to come up with a more detailed proposal for a simple
    GimpPreview widget this weekend. Your feedback will help me to
    find out what we actually need.


PS: I've added Federico to the Cc: because he lately expressed
    interest in adding a preview to Unsharp Mask (w/o knowing about
    the patch in Bugzilla).
Gimp-developer mailing list

Reply via email to