[gegl] docs: update



commit 5f9fbb126b0bdcc3b3d4413f82d185ff8ea093d7
Author: �yvind Kolås <pippin gimp org>
Date:   Sun Feb 13 18:23:02 2011 +0000

    docs: update

 NEWS                     |    4 +-
 docs/contribute.html     |  162 ++++++++++++++++++++++++++++++++++++++++++++++
 docs/index-static.txt.in |   11 ++-
 3 files changed, 172 insertions(+), 5 deletions(-)
---
diff --git a/NEWS b/NEWS
index d47c7fa..f118386 100644
--- a/NEWS
+++ b/NEWS
@@ -3,8 +3,8 @@
                  ������������������������������������
 Changes in GEGL 0.1.6
 ���������������������
- â?¢ Operations:
-     max-rgb
+ â?¢ New operations: max-rgb, pixelise, motion blur.
+
  â?¢ Fixed a bugs in matting-levin that made GEGL halt due to errors
    detected by babl sanity code, this made 0.1.4 be unusable if you had
    all dependendency when building.
diff --git a/docs/contribute.html b/docs/contribute.html
new file mode 100644
index 0000000..bc99dff
--- /dev/null
+++ b/docs/contribute.html
@@ -0,0 +1,162 @@
+<html>
+<head>
+<title>Where to contribute to the future of GEGL</title>
+<link rel='shortcut icon' href='images/gegl.ico'/>
+<style type='text/css'>
+ import url(gegl.css);
+div#toc ul { font-size:70%; }
+.category { margin-bottom: 2em; }
+.category a {
+  display: block;
+  width: 10em;
+  height: 1.2em;
+  float: left;
+  text-align: left;
+  font-size: 90%;
+}
+</style>
+</head>
+
+<body>
+<div class='paper'>
+<div class='content'>
+<div id='toc'>
+<ul>
+<li><a href='index.html'>GEGL</a></li><li>&nbsp;</li>
+<li><a href='#1'>Improve GIMP/GEGL integration</a></li>
+<li><a href='#2'>Improve GEGL</a></li>
+<li><a href='#3'>Port GIMP plug-ins to GEGL ops</a></li>
+<li><a href='#4'>Improve GEGL documentation</a></li>
+<li><a href='#5'>Use GEGL in other place than GIMP</a></li>
+</ul>
+</div>
+
+<p>
+This isn't really a roadmap, it is more of a list of signs pointing in the
+right direction.
+</p>
+
+<p>
+There are various tracks that can be followed to improve the future of GEGL in
+GIMP, many of these things, at least on the GEGL side are covered by bugs in
+bugzilla, properly git formatted patches adressing these issues are most
+welcome contributions. Doing things on this list would help speed up the
+arrival of the next and more powerful generation of GIMP.
+</p>
+
+<ol>
+<li>
+<a name='1'>Improve GIMP/GEGL integration</a>
+  <ul>
+  <li>GIMP already can use GEGL for compositing its layers using GEGL and
+    do its color manipulation using GEGL ops, it however still stores buffers
+    in TileManagers and the integration with GEGL is done through proxy GEGL
+    ops that fetch data from a TileManager or store data back in a
+    TileManager.
+  </li><li>The migration to GEGL should be done in such a way that GIMP does not
+    lose any features during the migration, this to ensure that GIMP remains
+    usable throuhout the development as well as permitting comparison between
+    using GEGL and legacy code to compare performance and rendering.
+    </li><li>Implement a GeglBuffer tile backend that support GIMP legacy
+    TileManager for transition period</li>
+
+<pre>
+    GeglBuffer *gimp_drawable_get_gegl_buffer (GimpDrawable *drawable);
+</pre>
+
+    Having such a utility function would allow porting more bits of GIMP
+    to optionally use GEGL for processing with code that resembles GIMP
+    code.
+  </li><li>At a later stage of the migration when the actual storage is switched 
+    it might be desirable to allow a temporary hack in the other direction
+    with gimp_gegl_buffer_get_tile_manager (GeglBuffer *buffer); this might
+    require some private API of GEGL to be temporarily exposed.
+  </li><li>Paint tools migration, work is already on the way to improve the performance
+    of non destructive paths for GEGL.
+  </li><li>Allow loading UI plug-ins for GIMP that provide custom UIs for GEGL ops.
+    Such custom UI-s could first act like modal dialogs similar to the current
+    GIMP plug-ins and later be the property panes of non destructive
+    layer/effects or otherwise modifiable actions.
+  </li><li>Integrate the GEGL tool with pdb.
+  </li><li>Make the GEGL tool register menu entries in filters.
+  </li><li>Create a GIMP legacy plug-in proxy op, that allows running at least a
+    subset of GIMP plug-ins in non-interactive mode as GEGL ops, providing
+    a fallback for legacy plug-ins in the future.</li>
+   <li>Make single image raster import/export in GIMP use GEGL, perhaps also create a new improved templated with preview "export for web" workflow in GIMP based on GEGL</li>
+  </ul>
+</li>
+<li>
+<a name='2'>Improve GEGL</a>
+  <ul>
+  <li>performance, the code to allow GEGL splitting the evaluation work that
+    is given to it among multiple threads is already mostly functional, but
+    there are some rendering glitches due to some racy access of intermediate
+    buffers, most likely caches. The behavior of such glitches can be seen
+    by running 
+      $ GEGL_THREADS=16 gegl
+    This results in some <a href='threadbug.png'>serious rendering glitches</a>.
+    Once this is stable, optimizing how the spatial division of the tasks is
+    done would be good.
+    The existing GPU backend branch and its auto-migrating hybrid
+    tile management needs further work and testing, as
+    well as maybe adaptation to use OpenCL instead of OpenGL GLSL.
+  </li><li>GEGL already provides a lot of GIMPs core functionality; as well as many
+    plug-ins. Some of this functionality is currently implemented as ops inside
+    gimp. Porting more plug-ins and implementing infrastructure to be able to
+    do more core functionality will benefit GIMP as the migration to GEGL goes
+    forward.
+  </li><li>Allow GEGL to run untrusted ops out-of process - ensuring that badly behaved
+    ops will not bring GIMP/GEGL down.
+   </li><li>rewrite RAW loader to use <a href="http://www.libraw.org/";>LibRaw</a> or <a 
+                    href="http://sh0dan.blogspot.com/2009/02/introducing-rawspeed.html";>Rawspeed</a> 
+                    library instead of the abandoned libopenraw</li>
+   <li>Implement previews working on mipmap levels, allowing GEGL to do a preview at 12.5%, 25% or 50% of actual size - rendering the full size view in the background or on demand.</li>
+   <li>Finish GEGL side of GIMP/GEGL integration for rendering only the viewed part when zoomed in - allowing realtime tweaking and preview with on-canvas preview at 1:1 scale. (this involves accepting two regions to be rendered with priority or similar integration, the regions are already available in the GIMP code.)</li>
+    <li>Allow GEGL to connect any property of ops as inputs/outputs in the graph, the infrastructure to do so
+        is mostly already in place, but not properly exposed. For some uses, in particular for exposing more
+        powerful meta-ops this would be very nice.</li>
+  </ul>
+</li>
+<li>
+<a name='3'>Port GIMP plug-ins to GEGL ops</a>
+  <ul>
+   <li> Writing GEGL ops is simpler than writing GIMP plug-ins, plug-ins can support
+    higher bit depth in the future. Floating point code is easier to write, less
+    code is needed. You can get auto generated UI.
+    Writing more GIMP legacy plug-ins only increases the future porting
+    work-load/leaves the new plug-in outdated, so please write new code as GEGL
+    plug-ins.
+</li>
+<li>GIMP currently has many file loaders/savers that would be good to have in GEGL.</li>
+</ul>
+</li>
+<li>
+<a name='4'>Improve GEGL documentation,<a>
+  <p> the GEGL website is generated as part of the
+   GEGL build, patches to the documentation that fully integrates the changes
+   also with the website are welcome. Documentation for the structure of
+   GEGL and its internal architecture is also welcome.</p>
+</li>
+<li>
+   <a name='5'>Use GEGL in other places than GIMP</a>
+   <ul>
+   <li>Commandline tools for doing batch processing, UIs for compositing or
+   image manipulation, video effects rendering and more are all things that are
+   possible to implement with GEGL, that would end up sharing their available
+   ops among each other.</li>
+   <li>to provide incentive for yourself and others to work on the above
+   points. GEGL is designed to be a generically usable API and does not cater
+   especially for GIMP.</li>
+   <li>The pluggable GeglBuffers of GEGL permit other tiled buffer systems
+   (krita, mypaint?, a future blender?, a plug-in for GIMP 1.x, OpenStreetMap
+   ?) to efficiently reuse GEGL operations as plug-ins without unneccesary
+   buffer copying.</li>
+   </ul>
+</li>
+</ol>
+
+<p>last updated 2011-02-13</p>
+
+</div>
+</body>
+</html>
diff --git a/docs/index-static.txt.in b/docs/index-static.txt.in
index dc61742..9f8956e 100644
--- a/docs/index-static.txt.in
+++ b/docs/index-static.txt.in
@@ -33,19 +33,22 @@ Features
      * linear buffers (allocated internally or from external allocation.)
      * On demand tiled mipmapping.
      * inter process shared storage
+     * External tile-backends (allow wrapping other tiled buffer systems
+       to use them through the GeglBuffer API).
   - Operations
       * PNG, JPEG, SVG, EXR, RAW, ffmpeg, v4l and other image sources.
       * link:operations.html#cat_render[Pattern renderers]
       * link:operations.html#math[Arithmetic operations]
       * link_operations.html#porter_duff[porter duff compositing]
       * SVG filter modes and full set of compositing ops from SVG-1.2 draft.
-      * Gaussian blur, bilateral-filter, symmetric nearest neighbour, unsharp
-        mask.
+      * Gaussian blur, bilateral-filter, symmetric nearest neighbour, linear
+      * blur, unsharp mask, pixelize and more.
       * link:operations.html#cat_color[Color correction].
       * Text rendering using cairo and http://pango.org/[pango].
+      * HDR exposure merging and tone mapping operations.
       * Most operations operate in
         http://en.wikipedia.org/wiki/ScRGB_color_space[scRGB] (using 32bit
-        linear light RGBA)
+        floating point/HDR linear light RGBA)
   - Bounding box based hit detection.
   - XML serialization format (not-finalized)
 
@@ -497,10 +500,12 @@ dropped into the directory in the build.
 <div class="toclevel2"><a href="#_mailinglist">Mailinglist</a></div>-->
 <div class="toclevel2"><a href="#_copyright">Copyright</a></div>
 <div class="toclevel2"><a href="#_code">Contributors</a></div>
+<div class="toclevel2"><a href="contribute.html">Todo</a></div>
 <div class="toclevel1"><a href="#_building_from_source">Building from source</a></div>
 <div class="toclevel2"><a href="#_download">Download</a></div>
 <div class="toclevel2"><a href="#_dependencies">Dependencies</a></div>
 <div class="toclevel2"><a href="#_compiling">Compiling</a></div>
+<div class="toclevel2"><a href="development.html">Developer notes</a></div>
 <div class="toclevel1"><a href="#_documentation_2">Documentation</a></div>
 <div class="toclevel2"><a href="operations.html">Operations</a></div>
 <div class="toclevel2"><a href="api.html">Public API</a></div>



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