Changelog:
GEGL-0.4.14 2019-03-xx
Core
New Scratch allocator for short lived buffers.
Removed unneeded buffer copies in some processing code paths in
GeglNode and GeglProcessor.
Add gegl_babl_variant API for getting variations on an existin
pixel-format/encoding.
Expose gegl_node_is_graph()
GeglBuffer
Compression of tile data.
Handle dynamically changing swap dir.
Improvements to mipmap damage propagation.
Fixes to threading race conditions.
Low-level tile handling more adapted to buffers creating from existing
linear data.
New iterator API is now the default, GEGL_BUFFER_ITERATOR2_API is no
longer needed.
CMYK/grayscale handling for scaled blits, code paths in samplers,
serialization.
New default tile-cache size, 50% of RAM.
Initialize the first OpenCL device with IMAGE support.
Added gegl_parallell_ from gimp_parallell_ API to distribute processing
for multiple cores.
Operations
crop, added aux-pad - if connected the incoming bounding box determines
the crop size.
Input-format specific processing for performance in watershed-transform
and invert ops. CMYK handling in jpg-load/save, tiff-load/save,
gaussian-blur, opacity, most composing and blending operations, text,
vector-stroke, path, and transform operations.
Improved or fixed mipmap preview rendering of emboss, linear-gradient
and radial-gradient.
Better ui strings/range/defaults for: distort/waves and dropshadow,
value-propagate.
gaussian-blur: fix mistake in implementation of IIR Young blur 1d,
which caused non circular halos.
New operation: pdf-load with build dependency on poppler-glib
Added offset properties to pixelize filter.
new ops in workshop: voroni diagram, Grey Color Removal, spyrograph.
Handle mipmap rendering for linear-gradient and radial-gradient.
UI
The existing microraptor-gui (immediate mode touch UI+CSS with cairo)
image viewer that can be built as part of the gegl binary has been
revisted, a graph/property editor has been added, and migration/
extension to lua has begun for parts of the code.
many parts of the UI is of exploratory proof of concept/alpha
Warning quality but released since it is part of the GEGL repository
and useful development tools both for creating and testing new
GEGL operations as well as GEGL itself.
Some screenshots showing some the process towards the state and
capabilties of the UI in this release can be seen at https://
www.patreon.com/posts/24123574
To build with this UI the following dependencies also need to be
satisifed, for now this is not intended to be packaged by distributions
yet.
libluajit-dev
lua-lgi (debian package name) upstream:
mmm https://github.com/hodefoting/mmm
mrg https://github.com/hodefoting/mrg
Features: folder view resolution independent UI touch oriented
navigation GIF / video playback PDF pagination goats that expose
performance and capabilty issues in GEGL efficient (though not
sandboxed) thumbnailing embedded simple commandline graph editor
zoomable automatic, consistent graph layout autogenerated
property-inspector ui visualization of color model/bitdepth through
styling of edges live-extendable with lua code for per-operation canvas
UI
Contributors to this release:
Alan Mortensen, Alexandre Prokoudine, Anders Jonsson, Andre Klapper,
Debarshi Ray, elad, Ell, Jehan, Marco Ciampa, Michael Natterer, Øyvind
Kolås, Piotr Drąg, Richard B. Kreckel, Rodrigo Lledó, sabri ünal,
thetoastcaper, Thomas Manni and woob.
This release depends on the new features of babl-0.1.62 which has the
following change summary for the last release:
Continuous integration with gitlab. Initial CMYK spaces with lcms2
based ICC support, much room for optimization. Improved custom space
support for palette formats. scRGB space, works like sRGB but always
with linear TRCs. Model introspection API permitting low overhead
checks whether a format/model is RGB, CMYK type of alpha and similar.
Changelog:
GEGL-0.4.12 2018-10-23
GeglBuffer
~~~~~~~~~~
Fix fix of scaled blitting, the fix from last release introduced scaling
artifacts for all formats that are non-8bit.
Contributions to this relase
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ell, Øyvind Kolås and Rodrigo Lledó
GEGL-0.4.10 2018-10-16
----------------------
GeglBuffer
~~~~~~~~~~
Fix integer overflow issues for u32 blit scaling code paths.
Reduced memory clearing overhead for temporary buffers during blit.
Round alpha component during u8 bilinear/box filtering (this caused artifacts
on OSX through interaction without unknown platform differences in
libc/compilter/graphics stack)
gegl_buffer_dup now matches source buffer abyss, shift and tile-size more
closely.
Added GEGL_TILE_COPY command for backends, for more efficient buffer
duplication/copies.
New GeglBufferIterator API.
Move type-generic scaling algorithms to GeglBuffer folder, move opencl
integration bits out of buffer.
Operations
~~~~~~~~~~
gif-load: new operation for decoding GIF images/animations, with frame delay
exposed as an out-property.
exr-save: do not hard-code a version name space
long-shadow: add 'Fading (fixed length)' style with a new user-defined
'Midpoint' parameter
maniuk06: use double precision, permitting to work on larger images.
watershed-transform: improved description
unsharp-mask: permit std-dev radius of up to 1500px (from 300).
Updated all operations to use new iterator API
Contributors to this release
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Alexandre Prokoudine, Anders Jonsson, Debarshi Ray, Ell, Hussam Al-Tayeb, Marco
Ciampa, Massimo Valentini, Øyvind Kolås, Piotr Drąg, Rodrigo Lledó and Tim
Sabsch.
* Fix gcut conflict, PR pkg/53236
Changelog:
GEGL-0.4.4 2018-06-02
Core
Point filters with need for format conversion of input are now
parallel. Added swap-reading, swap-writing, swap-read-total and
swap-write-total properties to GeglStats.
Buffer
Trim tile-cache when shrinking. Add reading locks to tiles further
improving concurrent access tolerance of GeglBuffer.
Operations
threshold: operating format changed from linear to perceptual
unsharp-mask: add rename standard-deviation and scale properties to
Radius and Amount, add Threshold property. recursive-transform now
supports applying multiple transformations simultanously. Fix integer
overflow due to logic error in pixelize. new operation: gegl:abs which
negates negative values. new operation in workshop:
selective-hye-saturation.
Contributors
Alan Mortensen, Alexandre Prokoudine, Daniel Korostil, Debarshi Ray,
Dimitris Spingos (Δημήτρης Σπίγγος), Ell, Marco Ciampa, Michael
Schumacher, Miroslav Talasek, orbea, Øyvind Kolås, Øyvind "pippin"
Kolås, Piotr Drąg, Rūdolfs Mazurs, and Tobias.
Changelog:
GEGL-0.4.0 2018-04-26
GEGL 0.4.x is a stable release series of GEGL to have a stable API
and ABI to go with GIMP-2.10. When the need arises to break API or
ABI compatibility the 0.4.x series will get its own branch and
unstable API experiments and development, 0.5.x will happen in
master. For now though master will track the 0.4.x series. Core
Change GeglParamSpecSeed from int to uint to match the value range
of GeglRandom's seed. Operations
ripple fixed remaining issues needed to remove legacy GIMP plug-in
in GIMP. spherize, requrise transform and color-overlay moved out
of workshop. ppm-load ported to GIO.
Contributors to this release: Ell, Piotr Drąg, Anders Mortensen,
Anders Jonsson, Marco Ciampa, Daniel Korostil, Øyvind Kolås, Jon
Nordby and Simon Budig.
⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺
• build: do not install examples in path
• ff-save fully store all in-flight codec contexts before closing files
• ff-load improvements to seeking accuracy
• transform: make fast paths skip pixel format conversions
Header location and library names changed, so bump API version.
No users in pkgsrc (yet).
Changes in GEGL 0.3.0
---------------------
• Improvements to thread safety and parallelism.
• Lower overhead graph travesal due from rewrite of visitors
• OpenCL support now enabled by default when detected.
• Experimental multithreading, enable by setting
GEGL_THREADS=<number of threads> in the environment.
• Experimental mipmap rendering, which permits transparent rendering of
previews on smaller sized versions, enable by setting
GEGL_MIPMAP_RENDERING=true in the environment.
• Operations:
• new operations: alien-map, antialias, apply-lens, bilateral-filter,
bump.map, cartoon, channel-mixer, color-enhance, color-exchange,
color-reduction, color-rotate, convolution-matrix, copy-buffer, cubism,
deinterlace, diffraction-patterns, distance-transform, displace, edge,
emboss, engrave, exposure, fractal-trace, high-pass, image-compare,
illusion, invert-gamma, lens-flare, linear, linear-gradient, mosaic,
motion-blur-circular, motion-blur-zoom, noise-cell noise-cie-lch,
noise-hsv, noise-hurl, noise-pick, noise-rgb, noise-simplex, noise-spread,
n-point deformation ops, oilify, panorama-projection, photocopy, plasma,
radial-gradient, red-eye-removal, scale-size-keep-aspect, softglow,
stretch-contrast, texturize-canvas, tile-glass, tile-seamless, tile-paper,
tile, warp, whirl-pinch, wind, cache, cast-format, lcms-from-profile,
npy-save, webp-load, webp-save, scale-ratio, scale-size, seamless-clone,
sinus, supernova, value-propagate, video-degradation
• reimplementation of gaussian-blur faster and more accurate
• support for using URIs in image loaders
• Buffer:
• New default tile backend, doing disk writes in a separate thread.
* OpenCL support
* build improvements.
* High level API to apply ops directly to buffers with arguments.
* Final bits of translation infrastructure.
* Invalidate regions when disconnecting input pads.
* Operations:
* New operation: global-matting
* Allow transform core to do perspective transforms.
* Added string based key/value pairs to operations.
* Added arguments for dealing with scaled down preview rendering.
* Added human interaction ranges and non-linear mapping to properties.
* Buffer:
* Removed broken lanczos sampler.
* Add gegl_buffer_set_color and gegl_buffer_set_pattern
* Added ability to drop cached tiles.
* Added API for handling abyss policy (not implemented yet)
* Avoid iterating global tile cache when flushing/destroying buffers
that have no tiles in the cache.
* 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.
* build/test improvements.
* Buffer:
Added API to use external tile backends, allowing to plug-in alien
tilebackends, for GIMP/Krita/OSM or similar.
* Renamed gegl:load-buffer to gegl:buffer-source and gegl:save-buffer
to gegl:buffer-sink (but the old names still work)
* Represent colors using doubles instead of floats (this change is
independent from internal processing)
* Removed the GTK+ UI parts of the gegl binary and turned gegl into a
pure command line tool (which can still visualize stuff with help
help the SDL based display operation)
* Consider {x=G_MININT/2, y=G_MININT/2, width=G_MAXINT, height=G_MAXINT}
as the only valid region wichin processing may occur. Processing
outside of this region is undefined behaviour.
* Added support for storing allocation stack traces for GeglBuffers
so that debuging buffer leaks becomes much easier
* Made small changes and cleanups of the public API, e.g.
* Removed gegl_node_adapt_child()
* Made GeglConfig an explicit object
* Removed most of the ifdeffed stuff to mask away internal structures
* Added gegl_rectangle_infinite_plane() and gegl_rectangle_is_infinite_plane()
* Added new sampler GeglSamplerSharp
* Added format property go gegl:buffer-sink
* Cleaned up and made gegl:introspect work again
* Add a bunch of test cases using the automake test sytem (make check)
and also port buffer tests to automake
* General cleanups, bug fixes, increased robustness and improved documentation
Bump PKGREVISION
For reference, in case configure is picking up something different, here
is what it found on my system:
GEGL docs: yes
SIMD: sse:yes mmx:yes
enscript: yes
GIO: yes
GTK+: yes
Ruby: yes
Cairo: yes
Pango: yes
pangocairo: yes
GDKPixbuf: yes
JPEG: yes
PNG: yes
OpenEXR: yes
rsvg: yes
GeglOperation
* operation names are now prefixed, the ops in GEGL use 'gegl:' as prefix.
* gegl:opacity - combine value and aux mask input when both are available.
* gegl:src-in - deal correctly with extens.
* gegl:path - new op covering the stroke/fill needs of SVG.
* deprecated gegl:shift, the affine familiy of operations now
uses the same fast code paths for integer translations.
GeglBuffer
* Profiling motivated speed ups in data reading/writing.
* Remove left-over swapfiles from dead processes at startup.
GeglNode
* made gegl_node_add_child and gegl_node_remove_child public API.
GeglPath
* Vector path representation infrastructure, supporting poly lines and beziers
by default, the infrastructure allows extensions from applications with
other curve types (smooth curves, spiro curves and others.).
framework.
GEGL provides infrastructure to do demand based cached non destructive
image editing on larger than RAM buffers. Through babl it provides
support for a wide range of color models and pixel storage formats for
input and output.