Hacking:Porting file plugins to GEGL and GIO

From GIMP Developer Wiki
Jump to: navigation, search

New file loaders/exporters

Porting to GEGL


Porting to GIO

GIO is a file access library and part of GLib.

This is the general process to port a file loader or exporter to the GIO library:

See the git log of the files that are already ported or work in progress and also the GIO reference manual.

To query for the existing GIO ports:

  1. open a terminal window
  2. change into your GIMP workspace folder
  3. run git checkout master
  4. on Linux, OS X or Windows with Cygwin run grep -r gimp_register_file_handler_uri plug-ins/ | sort. On Windows without Cygwin use the find command instead of grep (see find /? for syntax help).

This will return a list with all occurences of the function gimp_register_file_handler_uri which indicates a GIO port.



Columns 'GEGL operation', 'GEGL port', 'Uses GIO':

completely unimplemented yet
implementation unfinished
implementation finished, no matter of the test results
doesn't need porting

Column 'Test result':

tests failed (please also describe the failure shortly

in the comment field or link to a Bugzilla bug report)

tests unfinished
tests ok
not tested at all yet

You can sort the following tables by clicking the little arrow symbol in the column headers. If that doesn't work out of the box, please activate Javascript for this page.

GIMP filter GEGL operation GEGL port GEGL Test result GIO port GIO Test result Comment
file-aa Yes untested No untested
file-bmp Yes untested No untested
file-cel Yes untested Yes untested
file-compressor doesn't need porting
file-csource Yes untested Yes untested
file-desktop-link doesn't need porting
file-dicom Yes untested No untested
file-exr-load exr-load Yes untested No untested
file-exr-save exr-save Yes untested No untested
file-faxg3 Yes untested No untested
file-fits Yes untested No untested
file-fli Yes untested No untested
file-gbr Yes untested Yes untested
file-gif-load Yes untested No untested
file-gif-save Yes untested Yes untested
file-gih Yes untested Yes untested
file-glob doesn't need porting
file-header Yes untested Yes untested
file-html-table Yes untested Yes untested
file-ico Yes untested No untested
file-jp2-load jp2-load Yes untested No untested
file-jpeg jpg-load, jpg-save Yes OK No untested
file-mng Yes untested No untested
file-pat Yes untested Yes untested
file-pcx Yes untested No untested
file-pdf-load Yes untested No untested
file-pdf-save Yes untested No untested
file-pix Yes untested Yes untested
file-png png-load, png-save Yes OK No untested
file-pnm ppm-load, ppm-save Yes untested Yes untested
file-ps Yes untested work in progress untested only the saving code ported
file-psd Yes untested No untested
file-psp Yes untested No untested
file-raw-data Yes untested No untested Unrelated to raw camera files
file-sgi Yes untested No untested
file-sunras Yes untested No untested
file-svg svg-load Yes untested No untested
file-tga Yes untested No untested
file-tiff-load work in progress untested Yes Failing GIMP doesn't respect layer order of multi-layer TIFFs.
file-tiff-save work in progress Failing Yes untested GIMP flattens multi-layer TIFFs.
file-uri doesn't need porting
file-wmf Yes untested No untested
file-xbm Yes untested Yes untested
file-xmc Yes untested No untested
file-xpm Yes untested No untested
file-xwd Yes untested Yes untested

New File loaders/exporters

These file loaders/savers are implemented in GEGL, but may not be part of GIMP (yet). Currently they are listed here for completeness.

GEGL filter GIMP filter Test result Comment
ff-load No untested FFmpeg video frame importer
ff-save No untested FFmpeg video frame output sink. GEGL op is work in progress.
npy-save No untested Numerical Python (NumPy) file saver.
rawbayer-load No untested RAWBAYER and RAWBAYERS format. GEGL op is work in progress
rgbe-load No untested for Radiance HDR format with extensions HDR and PIC
rgbe-save No untested for Radiance HDR format with extensions HDR and PIC
webp-load work in progress untested for WebP image format
webp-save work in progress untested for WebP image format