Re: [Gegl-developer] Returning to python-gegl

2015-02-13 Thread Jon Nordby
On 13 February 2015 at 01:52, Joao S. O. Bueno


 I've been looking around, one problem seems to be that since BABL
 has no introspection, any functions relying on BABL parameters
 (even just babl formats, which are ordinary C strings with
 a fancy typedef) are not exported.


Daniel Sabo fixed this a good while back, by writing simple wrappers with
introspectable type signatures:
https://github.com/GNOME/gegl/blob/master/gegl/gegl-introspection-support.h
There are tests here that shows how it gets used
https://github.com/GNOME/gegl/tree/master/tests/python

Adding introspection to Babl proved impossible without changing the API,
due to the strict conventions that GI requires.
https://bugzilla.gnome.org/show_bug.cgi?id=673422

-- 
Jon Nordby - www.jonnor.com
___
gegl-developer-list mailing list
List address:gegl-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gegl-developer-list



Re: [Gegl-developer] RFC: Including operation source code as op class metadata

2015-01-20 Thread Jon Nordby
Merged, since there were no objections.
Can now get the source code of majority of components provided by GEGL
(primary exception is the generated ones) using:

  const gchar *source = gegl_operation_get_key(opname, source);


On 11 January 2015 at 17:55, Jon Nordby jono...@gmail.com wrote:

 In some development environments using GEGL, like imgflo+Flowhub it is
 useful to be able to see the source code of an operation in used. Both to
 understand how existing operations work and as a basis when writing new
 ops*.

 The following branch allows operations to include their source code as
 operation class metadata (using the source key) by using GEGL_OP_C_SOURCE
 instead of GEGL_OP_C_FILE in their op. The app can then query and display
 this like any other metadata.
 https://git.gnome.org/browse/gegl/log/?h=operation-source

 If there are no objections I'd like to merge this some time next week.
 - Jon

 * As mentioned to pippin at 31c3 I've found a way to basically implement
 live-code operations. Compile new/changed operation code as a .so file,
 using a unique suffix on the operation name, and then trigger
 gegl_load_module_directory()
 This will leak/keep the old operation class data, but this is small
 amounts of data for even long-ish development sessions compared to the
 images being processed.

 https://github.com/jonnor/imgflo-server/blob/master/components/example.c
 https://github.com/jonnor/imgflo/blob/master/lib/library.c#L357


 --
 Jon Nordby - www.jonnor.com




-- 
Jon Nordby - www.jonnor.com
___
gegl-developer-list mailing list
List address:gegl-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gegl-developer-list



Re: [Gegl-developer] directory structure of opencl in gegl, and unit test framework for each plugin?

2014-12-25 Thread Jon Nordby
The majority of tests are in tests/compositions, both OpenCL and not.
 On Dec 25, 2014 6:06 AM, kcle...@users.sourceforge.net wrote:

 I had a go at tests/opencl, but found out that the opencl is NOT
 included in Makefile.am and Makefile.in under opencl/  so no tools are
 made to test the opencl plugins.

 How can I get the scripts compiled that can read the XML tests for the
 opencl plugins?

 On Thu, Dec 25, 2014 at 12:48 PM,  kcle...@users.sourceforge.net wrote:
  I just had a good look at the gegl git repository, it looks to me that
  plugins and filters are implemented in the directory
 
  operations
 
  where plugins are subdivided into subdirectories such as core,
  transform, generated, common and workshop.  Then I see some of these
  plugins have opencl versions in the directory
 
  opencl
 
  but implementations in opencl/ are not separated into corresponding
  subdirectories.
 
  I just wonder are there any plan to group opencl the same way as
 operations?
 
  Also is it true that unit test scripts of opencl are placed at:
 
  tests/opencl
 
  that compares output of opencl and CPU implemenations?  If so, then
  the number of tests seems to be much fewer than number of opencl
  plugins.  If I am correct, then would it be most productive for me to
  write XML test files for the plugins which has no corresponding test
  XML file?
 ___
 gegl-developer-list mailing list
 List address:gegl-developer-list@gnome.org
 List membership:
 https://mail.gnome.org/mailman/listinfo/gegl-developer-list


___
gegl-developer-list mailing list
List address:gegl-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gegl-developer-list



Re: [Gegl-developer] porting a GEGL filter to OpenCL

2014-12-16 Thread Jon Nordby
On 17 December 2014 at 01:33, Qichang Liang kcleung.sourcefo...@gmail.com
wrote:

 Currently I am working on MacbookPro Retina installed with OS X 10.10.
 I have a VMware virtual machine on my USB 3 hard drive, which I can
 run using VMware Fusion 7.1

 However for correctness and performance testing, which option is the best?

 * compile the gegl directly on OS X (which I can't get it compiled)
 * compile on a Linux VM that runs on VMware Fusion 7.1
 * install Linux on my USB hard drive, boot my retina macbook from the
 Linux USB hard drive and compile from there?


Test something that typical users use. That would be a plain OSX or Linux
install. USB harddrive will make boot, application startup a bit slow but
should not impact perfomance otherwise. And as long as your compare
performance on the same system, comparisons will stay valid.

GEGL should compile on Mac OSX. If it does not, it is probably not so hard
to fix. And it needs to be fixed for applications using GEGL (like GIMP)
anyways.
Post your compile error along with what you did here if you are stuck with
a problem.
___
gegl-developer-list mailing list
List address:gegl-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gegl-developer-list



Re: [Gegl-developer] [Gimp-developer] babl roadmap

2014-10-16 Thread Jon Nordby
On 16 October 2014 21:37, Øyvind Kolås pip...@gimp.org wrote:

 On Thu, Oct 16, 2014 at 6:52 PM, Elle Stone
 ellest...@ninedegreesbelow.com wrote:
  On 10/15/2014 01:46 PM, Simon Budig wrote:
  If I understand them correctly, Michael Henning and Jon Norby are saying
  that the criteria is something along the lines of: For RGB editing
  operations, use UserRGB primaries *unless* there's a really, really good
  reason why only sRGB primaries will work.
 
  Is there in fact general agreement among the devs that the criteria for
  deciding when to use sRGB primaries instead of UserRGB primaries is
  approximately as follows?

 Once we have the vocabulary to also describe this aspect of the
 pixelformats used by operations, the first thing we should do is to
 annotate all the operations which are broken when done with sRGB
 primaries, then we will be able to continue refactoring, profiling and
 optimizing; without breaking existing functionality/rendering. Not
 only in terms of making more operations request directly userRGB, but
 also doing things like make some linear operations accept any of
 userRGB or bablRGB (or other linear RGB); and creating output buffers
 in the same format – to avoid unnecessary conversions in such cases.

 Using a fixed linear RGB format instead of userRGB is what for some
 operations will provide the consistent results for the same property
 values / slider positions. Knowing which operations this is important
 for is easier to determine when we have code providing the vocabulary
 in babl. The further along on the roadmap, more of the road will have
 to be laid/determined as we walk it.


Hi pippin,
you are answering in detail 'how we will get there' but Elle (as I see
it) is asking more 'do you agree that we want to go there'. This leaves
me unsure if you are implicitly agreeing, if you disagree and have a
different there in mind, or if you think it is too early to decide this.

There being the goal that *eventually* in GEGL 'For RGB editing
operations, use UserRGB primaries *unless* there's a really, really good
reason why only sRGB primaries will work.'


-- 
Jon Nordby - www.jonnor.com
___
gegl-developer-list mailing list
List address:gegl-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gegl-developer-list



Re: [Gegl-developer] [Gimp-developer] Don't make an architectural mistake based on a groundless premise

2014-10-11 Thread Jon Nordby
On 11 October 2014 13:41, Elle Stone ellest...@ninedegreesbelow.com wrote:

 On 10/10/2014 07:49 PM, Øyvind Kolås wrote:


 This is not about how images with no embedded profile are handled.
 sRGB derived 8bit (and to a lesser degree 16bit) formats are used for
 many other things than images with no embedded profile.


 You falsely assume that 8-bit images are always sRGB images and that
 16-bit integer images are probably sRGB images.

No-one said always. sRGB is however the most common for 8-bit images.


 These pixel
 formats are crucical for integrating with existing file formats and
 libraries;


 File formats that only work with sRGB images should not impact
 color-managed image editing. Advise the user to convert to sRGB.

 Accurate UI colors is a desktop color management issue, entirely
 irrelevant to programming a color-managed image editor.


The application needs to interface with the desktop (windowing system).
GIMP uses GTK+ for that, which uses Cairo APIs for rendering - which
basically assumes 8-bit sRGB. I suspect that on X11/Linux these assumptions
go deeper in the graphics stack as well.  Yes, it is not right, but such is
the state of things. We will have to improve it step-by-step.


-- 
Jon Nordby - www.jonnor.com
___
gegl-developer-list mailing list
List address:gegl-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gegl-developer-list



Re: [Gegl-developer] imgflo: Visually programming image processing pipelines with GEGL Flowhub

2014-04-14 Thread Jon Nordby
On 14 April 2014 08:17, Victor Oliveira victormath...@gmail.com wrote:
 It looks cool! Sorry for not having much time to give a look at the
 code now, but how does it run gegl in the browser? It's calling the
 gegl lib through node.js?

Only the IDE runs in the browser. Flowhub has a standardized protocol
for talking to runtimes[1], and imgflo implements that over WebSocket
using libsoup.
So GEGL runs on the server as normal, just with an additional API.

There is some node.js code in the repo, for implementing an image
processing server with an HTTP API that allows to specify input
file(s), a named graph to run them through and creates the output
image on-demand (or serves from disk).
We might use the same infrastructure for interactive preview in
Flowhub, not decided yet.

1. http://noflojs.org/documentation/protocol/
___
gegl-developer-list mailing list
List address:gegl-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gegl-developer-list



Re: [Gegl-developer] Qt bindings and gegl_node_set*

2013-06-27 Thread Jon Nordby
On 27 June 2013 09:15, Alberto Mardegan ma...@users.sourceforge.net wrote:

 Hi all!
   I don't know when (or even if) I'll start working on that, but I'm
 considering extending the gegl Qt bindings to include almost everything
 which is currently available to the C/glib bindings, so that a developer
 writing an application using gegl in Qt wouldn't have to use the C/glib
 API at all.


Hi Alberto,
which gegl Qt bindings are you referring to?


 One thing I'm concerned about is the lack of a gegl_node_setv()-like
 method, which would allow to set a list of properties on a node at once
 (I'm aware of gegl_node_set(), but that's unsuitable for language
 bindings).
 So the question is: is calling gegl_node_set_property() multiple times
 exactly equivalent to a single call to gegl_node_set() containing all
 the properties, or are there performance issues?
 I see that gegl_node_set_va() calls g_object_{freeze,thaw}_notify(),
 what is that needed for?

There is gegl_node_set_valist()


 Does setting a property have any immediate effect on the rendering, or
 does that happen only when gegl_node_process() is called?
 Could the order of setting properties have any effect on the rendering
 results or performance?

Setting properties on a node in a graph invalidates the graph.
Computing/rendering the invalidated regions is done as a separate step, and
it is the application code which controls this. So whether multiple
invalidation are coalesced or not depends on that code.

-- 
Jon Nordby - www.jonnor.com
___
gegl-developer-list mailing list
gegl-developer-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gegl-developer-list