Releases: mypaint/libmypaint
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 -release
flag.
Actual runtime compatibility (for reference)
Where 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.
1.6.0
This minor version release includes:
- The new
mypaint_brush_stroke_to_2_linearsRGB
function. - 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
Code changes
The new 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.
Documentation changes
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.
1.5.1
Bugfix/localization release
Code changes
mypaint-brush.c
:count_dabs_to
calculation changed to be consistent withv1.3.0
/1.4.0
when called via the old stroke interface, and generally fixed so that there's no need for an additional initialmypaint_brush_stroke_to
call 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
Localization
New translations for:
- Croatian
- German
- Greek
- Indonesian
- Korean
Misc.
Minimal example program adjusted to account for the code changes.
1.5.0
The 1.5.0
release includes the following:
Backported functionality
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 MyPaintTiledSurface2
)
Changes from 1.4.0
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).
Compatibility note
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.
ABI compatibility
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 -version-info
.
Prerelease: v2.0.0-beta.1
Edit: 2020-02-22
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_state
now 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_atomic
now 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.
v1.4.0
v2.0.0-alpha.2
added a parameter for smudge mode to allow additive vs subtractive (pigment)
Barrel Rotation
If you have a stylus that supports barrel rotation, you can feed values 0.0-1.0 to libmypaint to enable the setting. To disable the input, send a value of -1.
2.0.0 alpha
Loads of new brush settings
Spectral pigment/paint mode
Posterize brush mode
Smudge improvements and features
dynamic dabs-per-xxx instead of static