Re: nonlinear revision control system for GIMP

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

 



2011/5/2 Tim Chen <ht.timchen@xxxxxxxxx>:
> Hi all,
>
> Recently we have published a paper on SIGGRAPH 2011 about nonlinear revision control system for images. You can find the abstract and videos at
>
> https://sites.google.com/site/httimchen/2011_imagesvn

Hi Tim

That's great stuff.

> 1) is there anyone implementing the macro/script system

Nope there isn't, so you are more than welcomed to start doing that.
FYI, macro recording is on our roadmap found at
http://wiki.gimp.org/index.php/Roadmap.

> 2) can anyone give me a head start on how should I modify my hack so that it is more readable to others? Spreading the log function into tens of files certainly breaks most guideline one should follow when writing object-oriented program :D

I'm convinced (others are not) we should use the proven
http://en.wikipedia.org/wiki/Command_pattern and
http://en.wikipedia.org/wiki/Composite_pattern for macro recording and
wrote some patches a while ago that introduced a GimpCommand and a
GimpGroupCommand class. I didn't have time to even turn it into a
working prototype however.

It will be necessary to make some extensions to the above patterns.
For example, you may have noticed that GIMP is quite quick to Undo and
Redo, in particular for time consuming pixel processing operations.
That's because the undo stack contains the tiles with the resulting
pixels, not only parameters used to get that result. When Redoing, the
tiles with the result can quickly be applied.

I'm imagining that we'd have code that would look something like this:

  gimp_expensive_command_execute (...)
  {
    if (gimp_expensive_command_result_cached (...))
      gimp_expensive_command_apply_cached_result (...);
    else
      // Do time-consuming stuff
  }

We don't want to start each GimpCommand with that if case though, so
an abstraction will be needed.

This is not a trivial refactoring, but we need to do it eventually.

Best regards,
Martin


-- 
My GIMP Blog:
http://www.chromecode.com/
"GIMP 2.8 schedule on tasktaste.com"
_______________________________________________
Gimp-developer mailing list
Gimp-developer@xxxxxxxxxxxxxxxxxxxxxx
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux