Re: [Gimp-developer] [FYI] Filter layer implementation in gimp-2.8+

Krita currently has an implementation of this in addition to just
filters attached to specific layers.
Maybe it's worth looking over their shoulders for ideas, as they seem
to have handled it quite well.

Thanks for your work on GIMP!

On Mon, Aug 7, 2017 at 6:09 PM, sigetch <sigetch gmail com> wrote:
Thanks for your feedback!

2017年8月8日(火) 0:31 Alexandre Prokoudine <alexandre prokoudine gmail com>:

As is usual with your fork, it's impressive work. I definitely like
some of the implementation specifics, although I can see that certain
things could be improved (I can elaborate on that, if you wish).

Thanks. Basically, purpose of my fork is to see what is good external
specs, and where to implement functions to work functions correctly. If you
like part of the specs, I'm happy to hear that.

Unfortunately, this cannot be backported to mainstream GIMP 'as is'.
Off top of my head:

- It's based on GIMP 2.8 that uses obsolete tech.
- Your implementation doesn't use the "new" GimpFilterStack class
(available in git master since 2013) for stacking filters on a layer.
- XCF version in upstream's git master is already 10 now, while you
use v4, so that would make mainstream GIMP and your fork (even more?)


On yet another hand, I don't know how this will
play with proposed release order where non-destructive editing is
scheduled for 3.2.

As for road-map, it depends on the project's development policy.
Personally, I think "non-destructive" and "filter layer" is not the same
thing, because painting tool, transform tool, or other functions also have
to be "non-destructive" at gimp 3.2. "Filter layer" is the sub-step toward
the whole "non-destructive" concept.
In another aspect, some of the graphics editor have "filter-layer" and
"filter-mask." Both have pros and cons. I think several approaches can
coexist for "non-destructive" editing concept.

And as you mentioned, I also know there's no straight path to merge my work
to upstream for now. (I used C++, that might be a big problem :) )

My proposal is to start with discussion of the external specs for filter
specs, and to launch low-priority "filter-layer" development sub-project.

In my thoughts, following should be discussed to get things move forward.

- Filter should be layer ? or attributes of the layer? I chose filter as
layer design. GimpFilterStack seems to choose latter one.

-  What kind of filter functions should be applied. In my work, PDB or
plug-in function is applied. Alternative candidates is to use Gegl
operations for filter.

- How the filter should work with undo buffer? Currently in my branch, part
of the undo operation is simply ignored.

- How to deal with brush tool? Simple gegl operation chain may be annoying
when brush tool updates underlying layer continuously.

- What kind of GUI should be provided for filter configuration? PDB
functions have good configuration dialog, but it is hard to use that kind
of dialog from outside of PDB process.

If you all like filter layer, I'd like to continue discussion.

gimp-developer-list mailing list
List address:    gimp-developer-list gnome org
List membership:
List archives:

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