Commit Graph

218 Commits

Author SHA1 Message Date
John Cupitt 5569022dbd use G_GNUC_* attribute system
Instead of our own compiler attr thing.

see https://github.com/libvips/libvips/issues/2871
2022-09-23 14:37:35 +01:00
Kleis Auke Wolthuizen 07edfe37b1
Improve symbol visibility (#2688)
* Improve symbol visibility

* Decorate required internal symbols with VIPS_API

* Remove a couple of stray header decls

* Incorporate review comment

- Ensure symbol visibility is also set on static libraries.
- Prefer to use `cc.has_function_attribute('visibility:hidden')`.

* Don't export internal deprecated symbols

* Move deprecated symbols to vips7compat.h

* `IM_FORMAT_H` -> `VIPS_FORMAT_H`

* Move `vips_window_ref` compat stub to `vips7compat.c`

* Disable deprecation warnings internally

* `vips_image_get_kill` -> `vips_image_iskilled`

* Ensure API compatibility

* Add missing include directives

* Move `vips__init` decl to vips7compat

* Move `vips__get_sizeof_vipsobject` to vips7compat

* Fix introspection build

* Fix 2 introspection warnings

* Ensure compatibility with vipsdisp

/usr/bin/ld: tilesource.o: in function `tile_source_new_from_source':
vipsdisp/tilesource.c:1627: undefined reference to `vips__region_no_ownership'
2022-04-16 10:58:55 +01:00
Kleis Auke Wolthuizen 330ebf3cd7
Mosaicing fixes and improvements (#2705)
* Fix segv in `vips_mosaic1`

* Fix ref handling in `rotjoin_search`

* Pass `oarea` to `vips_affine` as `VipsArrayInt` instead

* Flip X/Y positions in `vips__coeff`

* Fix `-Wunused-but-set-variable` warning

* Deprecate unused mosaicing arguments

* Remove a couple of stray header decls
2022-03-03 20:10:20 +00:00
Kleis Auke Wolthuizen a0f9cd95e0
Ensure compatibility with nip2 (#2704)
nip2 uses the `VIPS_EXEEXT` definition.
2022-03-03 18:51:33 +00:00
Kleis Auke Wolthuizen f11b58ff6c
Remove `VIPS_EXEEXT` and `VIPS_SONAME` definitions (#2694)
And the corresponding `soname.h` header.
2022-02-27 15:27:37 +00:00
Kleis Auke Wolthuizen 1044dd46eb
Move vips__ink_to_vector and im__vector_to_ink to compat (#2488)
It was only used by getpoint in vips8, which is simpler to inline.
2021-10-20 13:00:01 +01:00
Kleis Auke Wolthuizen 4c263a36e9 Don't run sinkscreen thread in threadpool
Since threads on Windows can be terminated prior to the execution
of the atexit registered functions (i.e. vips_shutdown), causing
a surprising deadlock. This thread is never recycled, so it should
be fine.

Reverts commit d1b4d12388 partially.
2021-06-07 14:39:47 +02:00
Kleis Auke Wolthuizen d1b4d12388 Move sink_disc and sink_screen threads to threadpool
And deprecate the vips_g_thread_new and vips_g_thread_join
functions.
2021-05-03 13:21:45 +02:00
John Cupitt 58b6d73a70 deprecate vips_popen()
it didn't work well on win, and we no longer use it anyway
2020-07-27 15:21:59 +01:00
Kleis Auke Wolthuizen 9226303b1c Add missing vips7 compat wrappers
For im_{lr,tb}mosaic and im_correl.
2020-07-13 15:38:09 +02:00
John Cupitt 0803de07e7 move vips__lr|tbmerge to private API 2020-07-01 17:31:25 +01:00
Kleis Auke Wolthuizen c3da8ee583 Convert the mosaicing directory to vips8 2020-06-18 14:36:46 +02:00
John Cupitt b085908558 remove vips7 stuff from API
You must now include vips7 support explicitly with

	#include <vips/vips7compat.h>

in your code just after including `vips.h`.

The old vips7 names, such as `Rect`, were starting to cause problems
with other packages like opencv.
2018-05-16 15:08:21 +01:00
John Cupitt 24c07cfde2 revert an accidental ABI break
the new window manager code in 8.6.1 changed the prototype of an internal
function which was visible in the public API

this patch renames the function, adds it to an internal header instead,
and adds a stub for the old prototype

see https://github.com/jcupitt/libvips/issues/854
2018-01-12 11:56:17 +00:00
John Cupitt 77287a938f fix misspelling of IPTC as IPCT
the letters have been accidentally swapped for years

add a compat macro so older code still works
2017-12-31 10:23:27 +00:00
John Cupitt 1615cb41e1 remove old compat macro
thanks benjamin!
2017-06-13 07:31:14 +01:00
Lovell Fuller 0cac224431 Replace use of "Duff's device" with for-loop to allow compiler to optimise.
Reduces CPU instruction count of conv_gen function by ~30%.
Improves performance of convolution operation by 20-25%.
2016-01-25 21:17:41 +00:00
John Cupitt dbdcf91171 remove some stray decls
see https://github.com/jcupitt/libvips/issues/288

version bump as well
2015-05-04 19:41:08 +01:00
John Cupitt 7495690cd6 remove vips__image_sizeof_bandformat
we had main API macros which used an array behind the scenes,
vips__image_sizeof_bandformat[]. Swap this for a function,
vips_format_sizeof(), to help DLLs.

the array symbol is still there for compatibility
2015-04-20 14:18:17 +01:00
John Cupitt 29d073c04c now compiles cleanly with -Wstrict-prototypes
some downstream packages were seeing lots of spurious warnings
2015-01-21 09:02:56 +00:00
John Cupitt dda412c85f add command-line option parsing to python 2014-11-18 11:29:32 +00:00
John Cupitt 394149e9e8 fix all docs warnings 2014-11-17 10:32:40 +00:00
John Cupitt ca2ae681cd add --with-gmic configure option 2014-10-07 14:54:53 +01:00
John Cupitt 6f8b5c6745 bring the rest of the API into python 2014-09-05 23:18:16 +01:00
John Cupitt 92570b119c python new_from_memory()/write_to_memory() done 2014-09-05 12:54:07 +01:00
John Cupitt f8f288c1a6 vips_init() comes back
we need a public function for bindings
2014-08-29 13:51:03 +01:00
John Cupitt a70da5b2d9 Merge remote-tracking branch 'origin/7.40' 2014-08-18 17:41:17 +01:00
John Cupitt 1abcc1eae4 rename vips_init() as VIPS_INIT()
stops a deprecation warning from gtk-doc

vips_init() is now a compat macro
2014-08-18 15:27:10 +01:00
John Cupitt 32a8fe117e start working on --disable-deprecated
need to move im_conv() etc to classes to finish this
2014-07-25 18:06:52 +01:00
John Cupitt cdecee2705 more vips7 compat fixes
thanks steve
2014-07-16 09:40:26 +01:00
John Cupitt df289f1bea better im_openout() compat 2014-07-15 22:00:45 +01:00
John Cupitt 170efb1452 redo im_*merge1() as classes 2014-05-28 18:15:20 +01:00
John Cupitt adfda3cf14 redo im_*mosaic1() as classes 2014-05-28 15:15:06 +01:00
John Cupitt b8886fc209 wrap im_remosaic() as a class 2014-05-27 15:18:19 +01:00
John Cupitt 781a7d4dc9 wrap im_global_balance*() as a class 2014-05-26 15:02:15 +01:00
John Cupitt 246525e649 more hackery 2014-05-26 11:24:46 +01:00
John Cupitt be6503e47a definition oops 2014-05-18 11:19:09 +01:00
John Cupitt 22d525d54f export a better cache operator for nip2 2014-05-10 14:00:01 +01:00
John Cupitt 1a3c62851e move some junk to deprecated/ 2014-05-06 22:01:20 +01:00
John Cupitt 025e56c894 im_label_regions() is a class 2014-02-11 14:55:31 +00:00
John Cupitt f4e970fb72 im_draw_smudge() done 2014-02-11 13:28:13 +00:00
John Cupitt 25fbe71c74 do im_read_point() / im_draw_point() 2014-02-10 21:54:54 +00:00
John Cupitt 33551fbf4c im_draw_rect() is a class 2014-02-10 11:07:00 +00:00
John Cupitt 495a6c7af1 im_draw_image() is a class 2014-02-09 19:38:53 +00:00
John Cupitt da6de1f10e im_draw_mask() is now a class 2014-02-07 17:15:21 +00:00
John Cupitt 95a9c52138 start line draw
line is working, doing a line_mask subclass
2014-02-06 14:46:45 +00:00
John Cupitt de0448b53d undeprecate VIPS_MASK_*
ruby-vips was using them, thanks ahacking
2014-02-04 09:11:43 +00:00
John Cupitt 5983833caa deprecate im_zerox(), not very useful
morph now done
2014-01-17 18:03:46 +00:00
John Cupitt cd7fcf5cfe redo im_rank() as a class 2014-01-17 14:44:25 +00:00
John Cupitt cb96ed814e redo im_cntlines() as a class 2014-01-17 11:18:05 +00:00