mypaint/libmypaint

`mypaint_tiled_surface_get_alpha()` is missing from the generated .so on Linux

define-private-public opened this issue · 4 comments

I'm working on a C# binding at the moment, and was starting work on the TileSurface object/class/thingy. When I tried to call mypaint_tiled_surface_get_alpha() from my C# program, I got an exception saying that it "couldn't find the DLL entry point."

It's declared in the header file: https://github.com/mypaint/libmypaint/blob/master/mypaint-tiled-surface.h#L76

Looking at where I installed the libraries, I checked the .so:

me@machine:/usr/local/lib$ strings libmypaint-1.3.so.0 | sort | uniq | grep mypaint_tiled_surface | grep alpha
me@machine:/usr/local/lib$ strings libmypaint-1.3.so.0 | sort | uniq | grep mypaint_tiled_surface
mypaint_tiled_surface_begin_atomic
mypaint_tiled_surface_destroy
mypaint_tiled_surface_end_atomic
mypaint_tiled_surface_init
mypaint_tiled_surface_set_symmetry_state
mypaint_tiled_surface_tile_request_end
mypaint_tiled_surface_tile_request_start

Looks like it's not there.

Checking the source file for tiled_surface, looks like that function hasn't been filled in there.

I think that get_alpha function should just be removed. All it did was call get_color and return the alpha component. Must have been deemed unnecessary at some point but not fully removed.

Just looked into this. It was never implemented. There is a fair bit of unused stuff in libmypaint - from half-begun or half-finished projects (most of them 6+ years old).

Implemented in 227d665 for the upcoming 1.5.0 release. Will probably be removed for 2.0.0 (it is entirely redundant, and was probably added/exposed by accident).