From 0f0bb336a86946cb22861e265d1a7def0af45b71 Mon Sep 17 00:00:00 2001 From: Martin Nordholts Date: Mon, 29 Aug 2011 03:17:04 +0200 Subject: [PATCH] devel-docs: Add gegl-porting-plan.txt In order to effectively collaborate on this huge porting task, the first step is to agree on exactly what we want to do. In an effort to organize this, add gegl-porting-plan.txt to devel-docs. In this document, we can describe how we want the port to be done. This is not only for ourselves, but will also be useful for non-core contributors. --- NEWS | 2 +- devel-docs/Makefile.am | 1 + devel-docs/gegl-porting-plan.txt | 39 ++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 devel-docs/gegl-porting-plan.txt diff --git a/NEWS b/NEWS index c16a1286db..65c2d4875c 100644 --- a/NEWS +++ b/NEWS @@ -34,7 +34,7 @@ Plug-ins: Developer documentation: - - + - Add devel-docs/gegl-porting-plan.txt Source and build system: diff --git a/devel-docs/Makefile.am b/devel-docs/Makefile.am index d4411a687c..c977d03277 100644 --- a/devel-docs/Makefile.am +++ b/devel-docs/Makefile.am @@ -30,6 +30,7 @@ EXTRA_DIST = \ includes.txt \ parasites.txt \ pat.txt \ + gegl-porting-plan.txt \ gtkbuilder-porting-guide.txt \ release-howto.txt \ structure.xml \ diff --git a/devel-docs/gegl-porting-plan.txt b/devel-docs/gegl-porting-plan.txt new file mode 100644 index 0000000000..cfc52206e6 --- /dev/null +++ b/devel-docs/gegl-porting-plan.txt @@ -0,0 +1,39 @@ +GEGL Porting Plan +================= + +This file describes a detailed plan for how we will integrate GEGL +into GIMP. Please update it with your own ideas and findings. + +Porting GIMP to GEGL will be a multi-stage process. On a high level, +the stages are: + +Stages: +======= + + 1. Implement GIMP's 8 bpc code with GEGL data structures + 2. Gradually port GIMP's 8 bpc code to 32 bpc + 3. Once the GIMP base layer (almost) only knows 32 bpc and GEGL, add + goodies like adjustment layers and layer effects on top + + +First stage: +------------ + + 1. Kill Tile and TileManager + 2. Change PixelRegion::tiles : TileManager * to PixelRegion::gegl_buffer : GeglBuffer * + 3. Map PixelRegion::gegl_buffer of type RGBA float to PixelRegion::data of type RGBA u8 + 4. Implement functions like scale_region() with GEGL (for the + gegl_buffer case. For the data case, we can keep the old code) + 5. ??? + + +Second stage: +------------- + + 1. ??? + + +Third stage: +------------ + + 1. ???