1.6.1 - libtool `-release` flag no longer used
This release marks the end of including the MAJOR.MINOR API version fields in the library names. The abi fields have also been cleared, since they weren't that useful when used in conjunction with the libtool
Actual runtime compatibility (for reference)
a --> b means that a is backwards abi-compatible with b:
1.6.1 --> 1.6.0 --> 1.5.1 --> 1.5.0 --> 1.3.0
1.4.0 is not abi-compatible with any other release.
This minor version release includes:
- The new
- Some performance improvements, particularly improved auto-vectorization in the spectral->rgb conversion function (thanks to SleepProgger).
- Improved documentation (still lacking a comprehensive overview).
- New translations for Croatian, Portuguese, Valencian, English (UK) and Dutch
mypaint_brush_stroke_to_2_linearsRGB function only behaves differently to
mypaint_brush_stroke_to_2 for brushes with color dynamics (settings that alter the color), where those dynamics need to be handled differently when drawing to a surface that stores/interprets colors as linear sRGB.
This function will (almost certainly) not be part of libmypaint-2, where the aim is to have the library be essentially color agnostic.
All public headers (except for the gegl headers) are now fully documented, using Qt syntax to avoid conflicts with the GObject introspection scanner. The few introspection comments that were placed in headers have been moved to source files.
The Doxygen+Sphinx+breathe setup has been replaced by using Doxygen directly for generating the documentation. This change might be reverted for future releases.
Note that the documentation is only updated in the
1.x branches and not in
master, as the latter may undergo significant changes before release.
count_dabs_tocalculation changed to be consistent with
1.4.0when called via the old stroke interface, and generally fixed so that there's no need for an additional initial
mypaint_brush_stroke_tocall to produce a visible stroke.
mypaint-brush.c: estimation of dabs per pixel reverted to the old calculation when called via the old stroke interface.
Build system fixes
- Fixes incorrect versions for the requirements in the libmypaint-gegl pkg-config file (for both gegl and libmypaint)
- The openmp flags are now actually used when building with --enable-openmp
New translations for:
Minimal example program adjusted to account for the code changes.
1.5.0 release includes the following:
Features from the dev branch are backported in an API-compatible way, under the new MyPaintSurface2 interface (and the MyPaintTiledSurface2 implementation).
- view zoom & view rotation
- spectral color blending (pigment mode)
- new smudge settings: length multiplier, buckets, transparency
- new symmetry modes: vertical, vertical+horizontal, rotational, snowflake
- adjustable angle for symmetry modes
- optional multiple output rectangles (only relevant w. new symmetry modes)
(new symmetry modes only available for
Directional offsets are clamped to a maximum distance of 3 * 1080 pixels.
Some string updates and a lot translated strings.
Gegl build and examples fixed (note that neither MyPaint nor GIMP require or use the gegl-compatible interface or GObject introspection provided by libmypaint).
For those who mess around with their library installs, note that the
1.5.0 release is ABI-compatible with
1.3.0, but not
1.4.0 (due to a enum reordering).
1.5.0-beta.0 - ABI-compatible with 1.3.0
The 1.5.0 release will backport all the functionality and bugfixes of the 2.0.0 beta, but with a backwards compatible API/ABI* with a caveat, see below.
The intention is for the 1.5.0 release to be the dependency for MyPaint 2.0.0 and probably the next few MyPaint releases, reserving the 2.x versions of libmypaint for more fundamental changes to the API. This also means that the 2.0.0 release will be in beta for some time, or possibly even revert to alpha to reflect the stability of the API.
The 1.4.0 release broke ABI compatibility with 1.3.0 without setting the abi version fields accordingly. This wasn't noticed until last month. The issue is an enum reordering which will not result in crashes, but buggy/incorrect results if using 1.4.0 with an application compiled using the 1.3.0 headers.
Right now, the 1.5.0 prerelease is ABI compatible with 1.3.0, but if the consensus of package maintainers is that it really should be ABI compatible with 1.4.0 instead (if you think it matters at all), do voice your opinion in an issue.
It should be noted that libmypaint, for better or worse, has always used the libtool
-release tag, in addition to
This beta was created to support distributing the 2.0-beta of MyPaint, before the release and switch to libmypaint 1.5.0. The prerelease is not representative of the final API and should not be considered (not even remotely) stable.
This is the first beta of the libmypaint 2.0.0 release (yes, we'll start at beta.1 for this one, sorry).
API changes since the last alpha:
mypaint_tiled_surface_set_symmetry_statenow has an additional angle parameter. For users who don't use the mypaint_tiled_surface_x functions, nothing needs to be changed.
mypaint_surface_end_atomicnow takes a pointer to a struct holding an array of rectangles, instead of a pointer to a single rectangle. This part of the API may be altered before the final release, so be aware of that.