libmypaint, a.k.a. "brushlib", is a library for making brushstrokes which is used by MyPaint and other projects.
C M4 Makefile Python Shell C++ Batchfile
Latest commit 6477ad3 Dec 2, 2016 @achadwick achadwick Release 1.3.0
Permalink
Failed to load latest commit information.
doc doc: fix building with parallel build trees (#76) Nov 10, 2016
examples py3k: Use new-style division. Jun 28, 2016
gegl Makefile.am: Fix underlinking (#50) Nov 29, 2016
glib Separate mypaint-config.h and config.h. May 30, 2016
m4macros Debug: use -fsanitize=undefined if supported May 26, 2016
po Translated using Weblate (Portuguese (Brazil)) Nov 16, 2016
tests json loading: add test cases for pathological data Dec 1, 2016
.gitignore json loading: add test cases for pathological data Dec 1, 2016
.travis.yml Travis: add gegl May 22, 2016
CODE_OF_CONDUCT.md Add CoC, same as MyPaint's May 22, 2016
CONTRIBUTING.md Update README, add CONTRIBUTING.md May 22, 2016
COPYING Update headers etc. "brushlib" → "libmypaint" May 22, 2016
Makefile.am Separate mypaint-config.h and config.h. May 30, 2016
PERFORMANCE Update brushlib/PERFORMANCE Nov 22, 2012
README.md README: explicitly list gettext dev dependency Dec 1, 2016
TODO brushlib: Update TODO Apr 9, 2013
appveyor.bat AppVeyor: add MSYS2 builds May 22, 2016
appveyor.yml AppVeyor: add MSYS2 builds May 22, 2016
autogen.sh aclocal: require 1.13 May 27, 2016
brushmodes.c Separate mypaint-config.h and config.h. May 30, 2016
brushmodes.h brushlib: Remove static function declaration from header May 19, 2012
brushsettings-gen.h generate.py: minima should always be < maxima May 17, 2016
brushsettings.json brushsettings: fix source string typos Jul 4, 2015
configure.ac Release 1.3.0 Dec 1, 2016
fifo.c Separate mypaint-config.h and config.h. May 30, 2016
fifo.h Build with -Wstrict-prototypes -Werror Apr 8, 2014
generate.py py3k: Use new-style division. Jun 28, 2016
helpers.c Separate mypaint-config.h and config.h. May 30, 2016
helpers.h fix rand_gauss() offset Aug 8, 2012
libmypaint.c Remove a lingering ref to mapping.c May 18, 2016
libmypaint.pc.in autotools: lose the prerelease hint nonsense May 24, 2016
mypaint-brush-settings-gen.h Revert "build: rm products from tree, fix .gitignore" Jul 18, 2014
mypaint-brush-settings.c Separate mypaint-config.h and config.h. May 30, 2016
mypaint-brush-settings.h Separate mypaint-config.h and config.h. May 30, 2016
mypaint-brush.c json loader: fix up compat wrapper Dec 1, 2016
mypaint-brush.h Separate mypaint-config.h and config.h. May 30, 2016
mypaint-config.h Separate mypaint-config.h and config.h. May 30, 2016
mypaint-fixed-tiled-surface.c Separate mypaint-config.h and config.h. May 30, 2016
mypaint-fixed-tiled-surface.h Separate mypaint-config.h and config.h. May 30, 2016
mypaint-glib-compat.h Separate mypaint-config.h and config.h. May 30, 2016
mypaint-mapping.c Separate mypaint-config.h and config.h. May 30, 2016
mypaint-mapping.h Separate mypaint-config.h and config.h. May 30, 2016
mypaint-rectangle.c Separate mypaint-config.h and config.h. May 30, 2016
mypaint-rectangle.h Separate mypaint-config.h and config.h. May 30, 2016
mypaint-surface.c Separate mypaint-config.h and config.h. May 30, 2016
mypaint-surface.h Separate mypaint-config.h and config.h. May 30, 2016
mypaint-tiled-surface.c Separate mypaint-config.h and config.h. May 30, 2016
mypaint-tiled-surface.h Swap clarity for wider standards compliance May 26, 2016
mypaint.c Separate mypaint-config.h and config.h. May 30, 2016
mypaint.h Build with -Wstrict-prototypes -Werror Apr 8, 2014
operationqueue.c Separate mypaint-config.h and config.h. May 30, 2016
operationqueue.h Swap clarity for wider standards compliance May 26, 2016
rng-double.c Separate mypaint-config.h and config.h. May 30, 2016
rng-double.h Separate mypaint-config.h and config.h. May 30, 2016
tiled-surface-private.h brushlib: Add a benchmark/test for implementation details of TiledSur… Jun 8, 2013
tilemap.c Separate mypaint-config.h and config.h. May 30, 2016
tilemap.h Separate mypaint-config.h and config.h. May 30, 2016
utils.c Separate mypaint-config.h and config.h. May 30, 2016
utils.h brushlib: Add minimal example Apr 9, 2013

README.md

libmypaint - MyPaint brush engine library

Translation Status Travis Build Status Appveyor Build Status

This is the brush library used by MyPaint. A number of other painting programs use it too.

License: ISC, see COPYING for details.

Dependencies

On recent Debian-like systems, you can type the following to get started with a standard configuration:

$ sudo apt install build-essential
$ sudo apt install libjson-c-dev libgirepository1.0-dev libglib2.0-dev
$ sudo apt install python2 autotools intltool gettext   # Building from git

Build and install

The traditional setup works just fine.

$ ./autogen.sh    # Only needed when building from git.
$ ./configure
$ make install

Maintainer mode

We don't ship a configure script in our git repository. If you're building from git, you have to kickstart the build environment with:

$ ./autogen.sh

This script generates configure from configure.ac, after running a few checks to make sure your build environment is broadly OK. It also regenerates certain important generated headers if they need it.

Folks building from a release tarball don't need to do this: they will have a configure script from the start.

Configure

$ ./configure
$ ./configure --prefix=/tmp/junk/example

There are several MyPaint-specific options. These can be shown by running

$ ./configure --help

Build

$ make

Once MyPaint is built, you can run the test suite and/or install it.

Test

$ make check

This runs all the unit tests.

Install

$ make install

Uninstall libmypaint with make uninstall.

Contributing

The MyPaint project welcomes and encourages participation by everyone. We want our community to be skilled and diverse, and we want it to be a community that anybody can feel good about joining. No matter who you are or what your background is, we welcome you.

Please note that MyPaint is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Please see the file CONTRIBUTING.md for details of how you can begin contributing.

Making releases

The distribution release can be generated with:

$ make dist

And it should be checked before public release with:

$ make distcheck

Localization

Contribute translations here: https://hosted.weblate.org/engage/mypaint/.

The list of languages is maintained in po/LINGUAS. Currently this file lists all the languages we have translations for. It can be regenerated with:

$ ls po/*.po | sed 's$^.*po/\([^.]*\).po$\1$' | sort > po/LINGUAS

You can also disable languages by removing them from the list if needed.

A list of files where localizable strings can be found is maintained in po/POTFILES.in.

Strings update

You can update the .po files when translated strings in the code change using:

$ cd po && make update-po

When the results of this are pushed, Weblate translators will see the new strings immediately.

Documentation

Further documentation can be found in the libmypaint wiki: https://github.com/mypaint/libmypaint/wiki.