mypaint:libmypaint.git
3 years agoappveyor: Add initial CI config for Windows
Jon Nordby [Fri, 18 Jul 2014 14:13:12 +0000 (16:13 +0200)]
appveyor: Add initial CI config for Windows

3 years agoTravis: Also run tests
Jon Nordby [Sun, 13 Jul 2014 17:50:25 +0000 (19:50 +0200)]
Travis: Also run tests

3 years agoMerge pull request #3 from Jehan/master
Jon Nordby [Sun, 13 Jul 2014 17:33:34 +0000 (19:33 +0200)]
Merge pull request #3 from Jehan/master

libmypaint-gegl bugfixes

3 years agoAdd Travis CI build status to README
Jon Nordby [Sun, 13 Jul 2014 17:31:39 +0000 (19:31 +0200)]
Add Travis CI build status to README

3 years agoFix compatibility with json-c <= 0.10
Jon Nordby [Sun, 13 Jul 2014 17:04:58 +0000 (19:04 +0200)]
Fix compatibility with json-c <= 0.10

Ubuntu 12.04LTS has 0.9.x, which is still commonly used.
Fixes #1

3 years agoFixing broken gegl_buffer_set() call in libmypaint-gegl.
Jehan [Sun, 13 Jul 2014 16:58:37 +0000 (16:58 +0000)]
Fixing broken gegl_buffer_set() call in libmypaint-gegl.

3 years agoTravis: Install json-c dependency from repos
Jon Nordby [Sun, 13 Jul 2014 17:01:37 +0000 (19:01 +0200)]
Travis: Install json-c dependency from repos

3 years agoConvert README file to Markdown
Jon Nordby [Sun, 13 Jul 2014 16:54:35 +0000 (18:54 +0200)]
Convert README file to Markdown

Looks better on github

3 years agoUpdate README, add initial Travis CI configuration
Jon Nordby [Sun, 13 Jul 2014 16:49:09 +0000 (18:49 +0200)]
Update README, add initial Travis CI configuration

3 years agolibmypaint-gegl name error in pkg-config file.
Jehan [Sat, 12 Jul 2014 16:04:45 +0000 (16:04 +0000)]
libmypaint-gegl name error in pkg-config file.

3 years agoAdd help output
Andrew Chadwick [Wed, 2 Jul 2014 22:20:12 +0000 (23:20 +0100)]
Add help output

Now running with `scons -h` will reveal options.

3 years agoExpose the ability to compile brushlib as a shared object
Chloride Cull [Tue, 1 Jul 2014 22:09:30 +0000 (00:09 +0200)]
Expose the ability to compile brushlib as a shared object

For some reason this was hidden away, and forced to false if
introspection wasn't enabled.

3 years agorename some variables, update docu
Martin Renold [Tue, 24 Jun 2014 15:52:30 +0000 (17:52 +0200)]
rename some variables, update docu

It was called "dist" but the distance is actually measured in dabs, so
call it "dabs" now. Update PNG accordingly.

3 years agoFix missing brushdabs with "slow_tracking_per_dab"
Martin Renold [Tue, 24 Jun 2014 14:15:08 +0000 (16:15 +0200)]
Fix missing brushdabs with "slow_tracking_per_dab"

Fix a glitch where individual brush dabs are skipped if the
"slow_tracking_per_dab" setting is used.

https://github.com/mypaint/mypaint/issues/2

The glitch was visible best with brushes that make smooth strokes that are
not fully opaque.

The filter for "slow_tracking_per_dab" was always updating as if the
brush had been moved forward by a full dab. However the code is also
called to move the brush forward by less than one dab. As a result the
filter did catch up the brush position too fast at motion events.

This changes existing brushes slightly. For the brushes I tested the
change was either a subtle improvement or not perceivable at all.
It seems unlikely that a brush relied on this bug for getting roughness.

List of MyPaint stock brushes using "slow_tracking_per_dab":

classic/brush.myb
classic/calligraphy.myb
classic/ink_eraser.myb
classic/pen.myb
classic/slow_ink.myb
deevad/2B_pencil.myb
deevad/fill.myb
deevad/large_hard_eraser.myb
deevad/pen.myb
deevad/pen-note.myb
deevad/rough.myb
deevad/thin_hard_eraser.myb
experimental/glow.myb
experimental/irregular_ink.myb
experimental/subtle_pencil.myb
ramon/100%_Opaque.myb
ramon/Delayed_.myb
ramon/Hard_Eraser.myb
ramon/Marker.myb
ramon/PenBrush.myb

3 years agominor cleanup
Martin Renold [Tue, 24 Jun 2014 13:42:27 +0000 (15:42 +0200)]
minor cleanup

use hypotf() instead of sqrt()

3 years agoFix build failure due to deprecations
Andrew Chadwick [Thu, 19 Jun 2014 23:13:06 +0000 (00:13 +0100)]
Fix build failure due to deprecations

json_object_object_get() is deprecated now, and produces warnings.
Treating warnings as errors was causing independent building to break.
Use json_object_object_get_ex() instead - it's been advised since
json-c 0.10 at least.

3 years agobuild: rm products from tree, fix .gitignore
Andrew Chadwick [Thu, 19 Jun 2014 23:07:01 +0000 (00:07 +0100)]
build: rm products from tree, fix .gitignore

* Remove products of the build from the tree
* Fix typo in the .gitignore lines which refer to them
  - remnant of the pre-submodule era, I guess

All in the name of making cleanup cleaner for use as a submodule.

3 years agobuild: use new name for libjson-c
Andrew Chadwick [Thu, 19 Jun 2014 22:19:39 +0000 (23:19 +0100)]
build: use new name for libjson-c

libjson-c changed its install name a while back to avoid clashes with other
implementations: https://github.com/json-c/json-c/commit/30dd367c

We can probably just change our pkg_deps now to use the new name, since the
new version is available for Debian stable via backports, and in the most
recent Ubuntu LTS.

https://gna.org/bugs/?20817

(Thanks, akbjker)

3 years agotests: Build lib into top source dir, not above
Jon Nordby [Tue, 8 Apr 2014 23:52:03 +0000 (01:52 +0200)]
tests: Build lib into top source dir, not above

3 years agoBuild: put artifacts in this directory, not the one above
Jon Nordby [Mon, 7 Apr 2014 19:03:57 +0000 (21:03 +0200)]
Build: put artifacts in this directory, not the one above

3 years agotests: Also build with -Wstrict-prototypes
Jon Nordby [Tue, 8 Apr 2014 22:49:13 +0000 (00:49 +0200)]
tests: Also build with -Wstrict-prototypes

3 years agoBuild with -Wstrict-prototypes -Werror
Jon Nordby [Tue, 8 Apr 2014 21:41:04 +0000 (23:41 +0200)]
Build with -Wstrict-prototypes -Werror

3 years agogegl: Automatically choose between generic and fast-paths in surface
Jon Nordby [Mon, 7 Apr 2014 19:01:38 +0000 (21:01 +0200)]
gegl: Automatically choose between generic and fast-paths in surface

3 years agogegl: Add support for arbitrary GeglBuffers
Jon Nordby [Sun, 6 Apr 2014 23:11:27 +0000 (01:11 +0200)]
gegl: Add support for arbitrary GeglBuffers

When we do not create the buffer ourselves to be exactly the native
format for MyPaintTiledSurface (15bit premult RGBA packet in 16bit),
we cannot use the existing zero-copy GeglIterator fast-paths
and must intead use gegl_buffer_get/set()
For now multi-threading is disabled when using the generic path.

3 years agoFix a compile warning about function signature mismatch
Jon Nordby [Mon, 7 Apr 2014 18:54:48 +0000 (20:54 +0200)]
Fix a compile warning about function signature mismatch

3 years agoInstall brushsettings.json/.py under libmypaint instead of mypaint
Jon Nordby [Sun, 6 Apr 2014 12:44:46 +0000 (14:44 +0200)]
Install brushsettings.json/.py under libmypaint instead of mypaint

3 years agoUpdate generated headers
Jon Nordby [Sun, 6 Apr 2014 12:44:33 +0000 (14:44 +0200)]
Update generated headers

3 years agoAdd SConstruct file, for building with scons
Jon Nordby [Sun, 6 Apr 2014 08:41:08 +0000 (10:41 +0200)]
Add SConstruct file, for building with scons

Basically replicates the the brushlib_only build that
was possible from the scons in MyPaint repo.
Install of the library/files is currently missing.

3 years agoMake it clear that libmypaint is under the ISC license, not GPL
Jon Nordby [Sat, 5 Apr 2014 16:45:58 +0000 (18:45 +0200)]
Make it clear that libmypaint is under the ISC license, not GPL

The library was relicensed a while back, see
https://gitorious.org/mypaint/mypaint/commits/e13c2af9dbdd340d35363445a8e44a3e39cd5044
One author of code in these files did not respond to the email request
to relicense some parts, but the original patch was intended to go into
the ISC licensed parts
https://www.mail-archive.com/mypaint-discuss@gna.org/msg00754.html

3 years agoAdd .gitignore file
Jon Nordby [Sat, 5 Apr 2014 16:05:36 +0000 (18:05 +0200)]
Add .gitignore file

3 years agobrushlib: Fix GEGL Python example
Jon Nordby [Sat, 5 Apr 2014 15:14:49 +0000 (17:14 +0200)]
brushlib: Fix GEGL Python example

Was out of date with GEGL and GEGL-GTK APIs, and crashing
due to a GI issue in libmypaint.

3 years agoRevert "brushlib: Return MyPaintRectangle from mypaint_surface_end_atomic(), not...
Jon Nordby [Sat, 5 Apr 2014 15:13:25 +0000 (17:13 +0200)]
Revert "brushlib: Return MyPaintRectangle from mypaint_surface_end_atomic(), not pointer [API]"

This crashes when used with GObject Introspection, so instead use
an optional out-param for the invalidated rectangle.

3 years agobrushlib: new tilt calculation
Brien Dieterle [Sat, 15 Mar 2014 10:47:45 +0000 (11:47 +0100)]
brushlib: new tilt calculation

Tilt value did vary (incorrectly) with ascension.

https://gna.org/bugs/?21735

Quote from http://sourceforge.net/p/linuxwacom/mailman/linuxwacom-devel/?viewmonth=201203

"GIMP, Inkscape, and MyPaint all treat the values they get from GTK as
the normalized length of the tool's projection along the corresponding
axis (they take the arctangent of the values to get an azimuth). While
GTK doesn't explicitly state that this is what applications receive,
its a reasonable reading of their documentation: "tilt attributes
range from -1.0 to 1.0 ... representing the maximum tilt to the left
or up ... [and] to the right or down". It looks like in practice GTK
actually only scales the tilt values it gets from X based on the
minimum and maximum. Its not what applications expect, but appears to
work well enough that nobody's bothered to file a bug."

4 years agobrushlib: Add const some more places
Jon Nordby [Fri, 11 Oct 2013 16:38:48 +0000 (18:38 +0200)]
brushlib: Add const some more places

4 years agobrushlib: Add operation_queue_peek_first/last()
Jon Nordby [Fri, 11 Oct 2013 16:36:22 +0000 (18:36 +0200)]
brushlib: Add operation_queue_peek_first/last()

4 years agobrushlib: OperationQueue only updated dirty tiles on Fifo
Jon Nordby [Fri, 11 Oct 2013 15:48:34 +0000 (17:48 +0200)]
brushlib: OperationQueue only updated dirty tiles on Fifo

Causes problems if not recreating Fifo's when they have been emptied.
Never happens during current MyPaint usage though.

4 years agobrushlib: Return MyPaintRectangle from mypaint_surface_end_atomic(), not pointer...
Jon Nordby [Wed, 9 Oct 2013 21:08:07 +0000 (23:08 +0200)]
brushlib: Return MyPaintRectangle from mypaint_surface_end_atomic(), not pointer [API]

Returning pointers is always icky; who frees and when.

4 years agobrushlib: Rename MyPaintTiledSurfaceTileRequest, add mipmap level [API]
Jon Nordby [Sat, 13 Jul 2013 18:27:28 +0000 (20:27 +0200)]
brushlib: Rename MyPaintTiledSurfaceTileRequest, add mipmap level [API]

Now called MyPaintTileRequest. mypaint_tiled_surface_tile_request_init()
becomes mypaint_tile_request_init().
Prepare for more awareness of mipmap levels in brushlib by adding it to tile request.
For now, backends may assume that this level is always 0 when called by libmypaint.

4 years agobrushlib: Add missing extern C declarations for tilemap.h
Jon Nordby [Sun, 7 Jul 2013 01:14:27 +0000 (03:14 +0200)]
brushlib: Add missing extern C declarations for tilemap.h

4 years agobrushlib: Add missing tilemap.c include in libmypaint.c
Jon Nordby [Sat, 6 Jul 2013 00:11:44 +0000 (02:11 +0200)]
brushlib: Add missing tilemap.c include in libmypaint.c

4 years agobrushlib: Move TileMap to separate tilemap.{c,h} file
Jon Nordby [Mon, 1 Jul 2013 23:43:26 +0000 (01:43 +0200)]
brushlib: Move TileMap to separate tilemap.{c,h} file

4 years agobrushlib: Allow to store any type of pointer in TileMap
Jon Nordby [Sun, 30 Jun 2013 23:48:46 +0000 (01:48 +0200)]
brushlib: Allow to store any type of pointer in TileMap

4 years agobrushlib: Provide MYPAINT_MAX_THREADS define and request->thread_id
Jon Nordby [Mon, 1 Jul 2013 23:44:29 +0000 (01:44 +0200)]
brushlib: Provide MYPAINT_MAX_THREADS define and request->thread_id

Allows tiledsurface backends to for instance store arrays which
they can index by thread id, for lock-free access.

4 years agobrushlib: fix a examples and testing somewhat
Martin Renold [Sun, 16 Jun 2013 17:31:19 +0000 (19:31 +0200)]
brushlib: fix a examples and testing somewhat

Fix a couple of out-of-bound access mainly in fixed-tiled-surface.c.
Fix segfault due to missing file. The example is still completely
broken, but at least nothing seems to segfault any more.

4 years agobrushlib/examples: Disable broken write_ppm functionality in minimal.c
Jon Nordby [Sat, 8 Jun 2013 21:32:27 +0000 (23:32 +0200)]
brushlib/examples: Disable broken write_ppm functionality in minimal.c

4 years agogegl: Update code to work with gegl-0.3 (GEGL master)
Jon Nordby [Sat, 8 Jun 2013 21:24:12 +0000 (23:24 +0200)]
gegl: Update code to work with gegl-0.3 (GEGL master)

4 years agobrushlib: Use float literals everywhere in mypaint-tiled-surface.c
Jon Nordby [Sat, 8 Jun 2013 13:38:30 +0000 (15:38 +0200)]
brushlib: Use float literals everywhere in mypaint-tiled-surface.c

Causes single/double precision conversions. Does not actually lead
to better performance when not in inner loops, but at least we are
consistent.

4 years agobrushlib: Avoid double/single precision conversions in render_dab_mask
Jon Nordby [Sat, 8 Jun 2013 15:16:03 +0000 (17:16 +0200)]
brushlib: Avoid double/single precision conversions in render_dab_mask

render_dab_mask is about 10% faster as a result, and test-gegl-surface around 5%.

Jons-MacBook-Pro:mypaint jon$ ./brushlib/tests/test-details
render_dab_mask: 10255 ms

Jons-MacBook-Pro:mypaint jon$ ./brushlib/tests/test-details
render_dab_mask: 8846 ms

4 years agobrushlib: const correctness in mypaint-tiled-surface.c
Jon Nordby [Sat, 8 Jun 2013 14:58:43 +0000 (16:58 +0200)]
brushlib: const correctness in mypaint-tiled-surface.c

4 years agobrushlib: Add a benchmark/test for implementation details of TiledSurface
Jon Nordby [Fri, 7 Jun 2013 23:53:44 +0000 (01:53 +0200)]
brushlib: Add a benchmark/test for implementation details of TiledSurface

Useful to find exactly what is slow in previously identified hotspots.

4 years agobrushlib: Fix a linker error when building with enable_gegl=true enable_gperftool...
Jon Nordby [Sat, 8 Jun 2013 13:40:54 +0000 (15:40 +0200)]
brushlib: Fix a linker error when building with enable_gegl=true enable_gperftool=true

Also prettify output a bit.

4 years agobrushlib: Fix minimal.c example
Jon Nordby [Wed, 1 May 2013 10:55:03 +0000 (12:55 +0200)]
brushlib: Fix minimal.c example

Need to call begin/end_atomic() around modifications, and to load
sensible default values for the brush. Also tweak the dtime to
a more sensible value.

4 years agobrushlib: Add mypaint_brush_from_defaults()
Jon Nordby [Wed, 1 May 2013 10:58:52 +0000 (12:58 +0200)]
brushlib: Add mypaint_brush_from_defaults()

A brush initializes itself with null mappings for all settings,
so one cannot actually draw with such a brush.
Also fixes comment on mypaint_brush_stroke_to()

4 years agofix implicit declaration of malloc/free
Martin Renold [Sun, 5 May 2013 11:26:08 +0000 (13:26 +0200)]
fix implicit declaration of malloc/free

4 years agobrushlib: fix symmetry mode eating horiz strokes
Librarian [Sat, 20 Apr 2013 06:11:52 +0000 (13:11 +0700)]
brushlib: fix symmetry mode eating horiz strokes

Fix symmetry mode eating some mirrored brushstrokes under very specific
circumstances: https://gna.org/bugs/?20730

4 years agoSCons*: syntax support for vim
Andrew Chadwick [Sun, 21 Apr 2013 21:50:05 +0000 (22:50 +0100)]
SCons*: syntax support for vim

To encourage myself to maintain this stuff.

4 years agobrushlib: Also commit generated mypaint-config.h
Jon Nordby [Tue, 9 Apr 2013 18:17:56 +0000 (20:17 +0200)]
brushlib: Also commit generated mypaint-config.h

This one basically never changes, as it only contains the
definition of MYPAINT_TILE_SIZE which has been 64 for years.

4 years agobrushlib: Exclude "libmypaint.c" from built sources
Jon Nordby [Tue, 9 Apr 2013 17:45:57 +0000 (19:45 +0200)]
brushlib: Exclude "libmypaint.c" from built sources

Avoids multiple definitions of the same symbols.

4 years agobrushlib: Add minimal example
Jon Nordby [Tue, 9 Apr 2013 16:24:38 +0000 (18:24 +0200)]
brushlib: Add minimal example

Caveat, PPM writer has a bug atm.

4 years agobrushlib: Remove include of non-existing file in libmypaint.c
Jon Nordby [Tue, 9 Apr 2013 16:51:59 +0000 (18:51 +0200)]
brushlib: Remove include of non-existing file in libmypaint.c

The file has not been introduced yet. :)

4 years agobrushlib: Make json-c dependency opt-in
Jon Nordby [Tue, 9 Apr 2013 16:26:18 +0000 (18:26 +0200)]
brushlib: Make json-c dependency opt-in

Define HAVE_JSON_C to enable.

4 years agobrushlib: Add getters to MyPaintFixedTiledSurface for height/width
Jon Nordby [Tue, 9 Apr 2013 16:26:56 +0000 (18:26 +0200)]
brushlib: Add getters to MyPaintFixedTiledSurface for height/width

4 years agobrushlib: Update TODO
Jon Nordby [Tue, 9 Apr 2013 14:25:20 +0000 (16:25 +0200)]
brushlib: Update TODO

4 years agobrushlib: Add a "libmypaint.c" that can be included directly
Jon Nordby [Tue, 9 Apr 2013 16:25:01 +0000 (18:25 +0200)]
brushlib: Add a "libmypaint.c" that can be included directly

Means people don't need to build libmypaint separately.

4 years agobrushlib: Commit generated brushsettings files
Jon Nordby [Tue, 9 Apr 2013 12:46:57 +0000 (14:46 +0200)]
brushlib: Commit generated brushsettings files

All normals builds recreates them, but this allows to build
without requiring Python. The files change very seldom,
so not a big deal to have to commit again when it happens.

4 years agobrushlib: Update gegl.py example to be a real GUI app
Jon Nordby [Mon, 21 Jan 2013 09:08:40 +0000 (10:08 +0100)]
brushlib: Update gegl.py example to be a real GUI app

4 years agoBuild: Fix missing -D before "HAVE_GETTEXT" in compile flags
Jon Nordby [Wed, 20 Feb 2013 00:50:01 +0000 (01:50 +0100)]
Build: Fix missing -D before "HAVE_GETTEXT" in compile flags

4 years agoBuild: Add option for enabling i18n for brushlib
Jon Nordby [Sun, 17 Feb 2013 23:10:41 +0000 (00:10 +0100)]
Build: Add option for enabling i18n for brushlib

Automatically enabled when building all of MyPaint.

4 years agobrushlib: Fix various compile errors under MSVC
Sebastien Leon [Sun, 17 Feb 2013 22:50:04 +0000 (23:50 +0100)]
brushlib: Fix various compile errors under MSVC

4 years agobrushlib: Fix some compile warnings
Sebastien Leon [Sun, 17 Feb 2013 22:47:08 +0000 (23:47 +0100)]
brushlib: Fix some compile warnings

4 years agobrushlib: Make gettext optional
Sebastien Leon [Sun, 17 Feb 2013 22:46:22 +0000 (23:46 +0100)]
brushlib: Make gettext optional

Use HAVE_GETTEXT to enable.

4 years agobrushlib: rewrite antialiasing approximation
mdias [Wed, 23 Jan 2013 04:48:28 +0000 (04:48 +0000)]
brushlib: rewrite antialiasing approximation

it should now handle elliptical and rotated dabs correctly

4 years agobrushlib: Add GIR files in build directory to g-ir-scanner/compiler paths
Manuel QuiƱones [Mon, 21 Jan 2013 04:03:13 +0000 (05:03 +0100)]
brushlib: Add GIR files in build directory to g-ir-scanner/compiler paths

4 years agobrushlib: Missing include of stdlib.h for size_t
Jon Nordby [Mon, 21 Jan 2013 03:57:53 +0000 (04:57 +0100)]
brushlib: Missing include of stdlib.h for size_t

4 years agobrushlib: Update gegl.py example with recent progress
Jon Nordby [Mon, 21 Jan 2013 03:16:19 +0000 (04:16 +0100)]
brushlib: Update gegl.py example with recent progress

Can now instantiate and draw onto a MyPaintGegl.TiledSurface,
and it should be possible to hook this up to a GeglGtk.View
for rendering.

4 years agobrushlib: Add GI annotations for get/set_buffer on MypaintGeglTiledSurface
Jon Nordby [Mon, 21 Jan 2013 03:15:14 +0000 (04:15 +0100)]
brushlib: Add GI annotations for get/set_buffer on MypaintGeglTiledSurface

4 years agobrushlib: Return MyPaintRectangle *, MyPaintRectangle in end_atomic() [API]
Jon Nordby [Mon, 21 Jan 2013 03:11:34 +0000 (04:11 +0100)]
brushlib: Return MyPaintRectangle *, MyPaintRectangle in end_atomic() [API]

Needed to make GBoxed wrapping of MyPaintRectangles work, and
to make end_atomic() introspectable. Also add GType registration code.

4 years agobrushlib: Fix unknown type name MyPaintSurface in MyPaintFixedTiledSurface
Jon Nordby [Mon, 21 Jan 2013 02:57:20 +0000 (03:57 +0100)]
brushlib: Fix unknown type name MyPaintSurface in MyPaintFixedTiledSurface

4 years agobrushlib: Add GType registrations of types for MyPaintGegl
Jon Nordby [Mon, 21 Jan 2013 01:44:43 +0000 (02:44 +0100)]
brushlib: Add GType registrations of types for MyPaintGegl

The GEGL based surface is now accessible in GI-based bindings, like Python.

4 years agobrushlib: Pass in needed includedirs and GI deps for MyPaintGegl introspection
Jon Nordby [Mon, 21 Jan 2013 00:36:54 +0000 (01:36 +0100)]
brushlib: Pass in needed includedirs and GI deps for MyPaintGegl introspection

Without this Gegl and MyPaint types are not resolvable by the scanner,
and files for registering GType data to brushlib/glib/ where not picked up.

4 years agobrushlib: Use refcounting for MyPaintBrush [API]
Jon Nordby [Mon, 21 Jan 2013 01:26:49 +0000 (02:26 +0100)]
brushlib: Use refcounting for MyPaintBrush [API]

Consumers should now use mypaint_brush_unref() instead of mypaint_brush_destroy()
This allows sane wrapping in GBoxed type objects.

4 years agobrushlib: Add type cast functions to get MyPaintSurface from subclass
Jon Nordby [Mon, 21 Jan 2013 01:39:24 +0000 (02:39 +0100)]
brushlib: Add type cast functions to get MyPaintSurface from subclass

There is no way with GBoxed to register inheritance, so in Python
and other GI-based languages one can call CustomSurface.interface()
to get a MyPaintSurface, for instance for passing to brush.stroke_to()

4 years agobrushlib: Use refcounting on MyPaintSurface [API]
Jon Nordby [Mon, 21 Jan 2013 01:36:11 +0000 (02:36 +0100)]
brushlib: Use refcounting on MyPaintSurface [API]

Allows sane wrapping in GBoxed types for GI (also added).
Consumers should now use mypaint_surface_unref() instead of
mypaint_surface_destroy(), and subclasses of MyPaintSurface
must always call mypaint_surface_init()

4 years agobrushlib: Add some API documentation and GI annotations to MyPaintBrush and MyPaintTi...
Jon Nordby [Sun, 20 Jan 2013 15:31:05 +0000 (16:31 +0100)]
brushlib: Add some API documentation and GI annotations to MyPaintBrush and MyPaintTiledSurface

4 years agobrushlib: Move MyPaintRectangle out to separate files
Jon Nordby [Sun, 20 Jan 2013 14:08:39 +0000 (15:08 +0100)]
brushlib: Move MyPaintRectangle out to separate files

4 years agobrushlib: Add start of a Python/GI/GEGL-based example
Jon Nordby [Sun, 20 Jan 2013 12:56:10 +0000 (13:56 +0100)]
brushlib: Add start of a Python/GI/GEGL-based example

4 years agobrushlib: Add GI annotations for mypaint_brush_get_mapping_point() [API]
Jon Nordby [Sun, 20 Jan 2013 13:00:40 +0000 (14:00 +0100)]
brushlib: Add GI annotations for mypaint_brush_get_mapping_point() [API]

4 years agobrushlib: Fix getters returning "libmypaint" instead of i18n string
Jon Nordby [Sun, 20 Jan 2013 12:59:02 +0000 (13:59 +0100)]
brushlib: Fix getters returning "libmypaint" instead of i18n string

D'oh.

4 years agobrushlib: Fix missing -$version in .typelib and .gir introspection files
Jon Nordby [Sun, 20 Jan 2013 12:57:21 +0000 (13:57 +0100)]
brushlib: Fix missing -$version in .typelib and .gir introspection files

This caused GI bindings to fail to import.

4 years agobrushlib: fix approximate AA on elliptical dabs
mdias [Sat, 19 Jan 2013 12:12:28 +0000 (12:12 +0000)]
brushlib: fix approximate AA on elliptical dabs

4 years agobrushlib: Assign default implementations of begin/end_atomic in MyPaintTiledSurface
Jon Nordby [Tue, 15 Jan 2013 21:58:02 +0000 (22:58 +0100)]
brushlib: Assign default implementations of begin/end_atomic in MyPaintTiledSurface

Fixes segfault when the MyPaintTiledSurface subclass does not override
these vfuncs, like for the GEGL based surface.

4 years agobrushlib: Document dependencies in README
Jon Nordby [Tue, 15 Jan 2013 20:40:34 +0000 (21:40 +0100)]
brushlib: Document dependencies in README

4 years agotests: fix test_brushlib.py; uncompress 30sec data
Andrew Chadwick [Tue, 15 Jan 2013 04:31:35 +0000 (04:31 +0000)]
tests: fix test_brushlib.py; uncompress 30sec data

Fix segfaults due to missing files in test_brushlib.py. Brushes and input
data had moved.

For compatability with brushlib/tests/mypaint-test-surface.c, use a common
painting30sec.dat once again, uncompressed to avoid introducing a libz
dependency on brushlib. Update Python tests which make use of pylab to
refer to the uncompressed file.

Allows all tests to be run immediately after build once again.

4 years agobrushlib: allow pressure > 1.0
Martin Renold [Wed, 9 Jan 2013 20:42:17 +0000 (21:42 +0100)]
brushlib: allow pressure > 1.0

Experimental. This allows the brush to continue the pressure response
when using the "pressure gain" brush setting. Which may or may not be
desireable(?)

4 years agonew "pressure gain" brush setting
Martin Renold [Wed, 9 Jan 2013 20:24:36 +0000 (21:24 +0100)]
new "pressure gain" brush setting

Still somewhat experimental. It replaces the "hardness" setting in the
"quick brush settings" popup. (Does anyone use the hardness there?)

It's a logarithmic slider (much more natural to adjust it that way).

Ongoing discussions about this:
https://mail.gna.org/public/mypaint-discuss/2013-01/msg00009.html

4 years agobrushsettings: rename Anti-aliasing to Pixel feather
Martin Renold [Tue, 8 Jan 2013 17:14:44 +0000 (18:14 +0100)]
brushsettings: rename Anti-aliasing to Pixel feather

4 years agosnap-to-pixel brushsetting: category, tooltip
Martin Renold [Mon, 7 Jan 2013 18:01:55 +0000 (19:01 +0100)]
snap-to-pixel brushsetting: category, tooltip

4 years agobrushlib: add snap-to-pixel brush functionality
Micael Dias [Mon, 7 Jan 2013 04:43:32 +0000 (04:43 +0000)]
brushlib: add snap-to-pixel brush functionality

4 years agobrushlib: Optimize antialiasing approximation
Micael Dias [Thu, 13 Dec 2012 22:25:32 +0000 (22:25 +0000)]
brushlib: Optimize antialiasing approximation

4 years agobrushlib: Use aproximate technique for subpixel painting
Micael Dias [Sun, 2 Dec 2012 17:04:15 +0000 (17:04 +0000)]
brushlib: Use aproximate technique for subpixel painting