Commit Graph

189 Commits

Author SHA1 Message Date
John Cupitt a12be84098 fix make clean
we had an error in the docy bits of c++
2021-01-02 15:04:42 +00:00
John Cupitt fd0a0905ff note VImage::new_from_memory_steal() in ChangeLog
plus doxy commnets etc., see https://github.com/libvips/libvips/pull/1758/
2020-09-24 10:44:49 +01:00
John Cupitt 25bd6cce6f
Merge branch 'master' into master 2020-09-24 10:31:01 +01:00
John Cupitt 5faf9a6326 typo in recent cpp API improvements
We had G_VALUE_TYPE instead of G_OBJECT_TYPE, oops. Thanks @lovell.

see https://github.com/libvips/libvips/pull/1812
2020-09-14 13:10:00 +01:00
John Cupitt c501e024dc integrate new C++ docs in main docs 2020-09-09 12:49:48 +01:00
John Cupitt 875c0fdf3c finish C++ doc comments 2020-09-09 11:13:22 +01:00
John Cupitt a08eb1cc64 don't add generated latex to repo 2020-09-09 08:56:26 +01:00
John Cupitt 6357fd5651 more C++ docs 2020-09-07 19:26:51 +01:00
John Cupitt 3fcaf1ea06 add some more C++ docs 2020-09-07 18:02:50 +01:00
John Cupitt b42f72cd56 add a README.md for cpp 2020-09-06 17:47:46 +01:00
John Cupitt fa84d297dd note how to list interpolators 2020-08-20 07:05:13 +01:00
John Cupitt 409301a200 improve C++ API
Make VObject inheritance public, so we can have a single set() for all
VObject-derived types.
2020-08-19 15:08:28 +01:00
John Cupitt 99313edb68 fix some unknown types
We were missing VipsInterpolate and guint64. Add guint64 set() as well.

see 636e265477 (commitcomment-41589463)
2020-08-19 14:36:50 +01:00
John Cupitt d4c20e6d1c a few more doc comments 2020-08-18 01:28:40 +01:00
John Cupitt 5e985ad187 add doc comments for VError and VInterpolate 2020-08-17 19:16:03 +01:00
John Cupitt 636e265477 revise cpp codegen again
use f'' strings, polish formatting
2020-08-17 18:07:11 +01:00
John Cupitt 6cabb3e301 add doxygen to the build system
configure tests for it, make runs it, make install copies the generated
html
2020-08-17 17:54:42 +01:00
John Cupitt c7bab32109 add optional params to doc strings 2020-08-17 14:11:17 +01:00
John Cupitt 0d9dce4326 move vips-operators.h into the header
doxy hates #include inside classes
2020-08-17 10:58:49 +01:00
John Cupitt dfaabfc951 experiment with doxygen for C++ docs 2020-08-17 09:35:51 +01:00
Kyle Schwarz 557bc5f6b4 Don't check g_signal_connect()'s return 2020-08-02 10:16:55 -04:00
Kyle Schwarz fe815ff587 Add C++ bindings for new_from_memory_steal()
new_from_memory_steal() will create a new image with the input
buffer and will "move" the data into the image. The buffer is then
managed by the image, and will be freed when it goes out of scope.
2020-08-01 21:58:14 -04:00
John Cupitt 105e56939a update cplusplus API for 8.10 2020-07-05 22:38:08 +01:00
Kleis Auke Wolthuizen e5323b070b Update C++ binding and function list 2020-06-18 14:45:14 +02:00
John Cupitt 9ea91810bb revise docs for _inplace
We call vips_image_inplace() automatically now, so there's no need for
clients to use this.

see https://github.com/libvips/libvips/issues/1610
2020-04-16 12:09:07 +01:00
John Cupitt 78f927e606 revide comments in cpp binding 2020-03-27 11:42:58 +00:00
jaubourg 28b4c918b6 allow null image as source for assignment and copy constructor: fixes #1595 2020-03-27 02:46:57 +01:00
Kleis Auke Wolthuizen 31bf0e3cb7 Update function list for stream -> source rename 2020-01-01 12:28:18 +01:00
John Cupitt 95444d0849 rename stuff in the C++ API for stream -> source 2019-12-30 17:49:41 +00:00
John Cupitt 4c5873809f experiment with renaming stream
rename as VipsConnection, VipsSource, VipsTarget etc.

see https://github.com/libvips/libvips/issues/1494#issuecomment-569498619

renamed with this script:

```

set -e

edit() {
        sed -i -E "$1" rename
}

for i in $*; do
        cp $i rename

        edit s/VIPS_STREAMOU/VIPS_TARGET_CUSTOM/g
        edit s/VIPS_STREAMO/VIPS_TARGET/g
        edit s/VIPS_STREAMIU/VIPS_SOURCE_CUSTOM/g
        edit s/VIPS_STREAMI/VIPS_SOURCE/g
        edit s/VIPS_STREAM/VIPS_CONNECTION/g

        edit s/vips_streamou/vips_target_custom/g
        edit s/vips_streamo/vips_target/g
        edit s/vips_streamiu/vips_source_custom/g
        edit s/vips_streami/vips_source/g
        edit s/vips_stream/vips_connection/g

        edit s/VipsStreamou/VipsTargetCustom/g
        edit s/VipsStreamo/VipsTarget/g
        edit s/VipsStreamiu/VipsSourceCustom/g
        edit s/VipsStreami/VipsSource/g
        edit s/VipsStream/VipsConnection/g

        # eg. VIPS_TYPE_STREAM or VIPS_IS_STREAM
        edit "s/VIPS_([A-Z]+)_STREAMOU/VIPS_\1_TARGET_CUSTOM/g"
        edit "s/VIPS_([A-Z]+)_STREAMO/VIPS_\1_TARGET/g"
        edit "s/VIPS_([A-Z]+)_STREAMIU/VIPS_\1_SOURCE_CUSTOM/g"
        edit "s/VIPS_([A-Z]+)_STREAMI/VIPS_\1_SOURCE/g"
        edit "s/VIPS_([A-Z]+)_STREAM/VIPS_\1_CONNECTION/g"

        edit s/streamou/target_custom/g
        edit s/streamo/target/g
        edit s/streamiu/source_custom/g
        edit s/streami/source/g

        # various identifiers which also change
        edit s/is_a_stream/is_a_source/g
        edit s/find_load_stream/find_load_source/g
        edit s/find_save_stream/find_save_target/g
        edit s/new_from_stream/new_from_source/g
        edit s/write_to_stream/write_to_target/g
        edit s/vips_thumbnail_stream/vips_thumbnail_source/g

        # eg. vips_webpload_stream
        edit "s/vips_([a-z]+)load_stream/vips_\1load_source/g"

        # eg. vips_webpsave_stream
        edit "s/vips_([a-z]+)save_stream/vips_\1save_target/g"

        mv rename $i
done
```
2019-12-29 21:40:21 +00:00
John Cupitt e236f19f97 add fallbacks to new_from_stream
If the stream-based loaders fail, vips_image_new_from_stream() now falls
back to the old file and buffer loaders.

The file and buffer loaders already try the stream loaders first.
2019-12-10 17:19:12 +00:00
Kleis Auke Wolthuizen 2499b38403 Update C++ binding and function list
The generators use the new Introspect class of pyvips.
2019-11-29 14:51:03 +01:00
John Cupitt 562da3e5ab rename new_from_filename as new_from_file
So VipsStreami matches VipsImage. Same for new_to_filename.
2019-11-22 17:13:20 +00:00
John Cupitt 123c52be70 revert to call-by-value for c++ API 2019-11-13 08:44:59 +00:00
John Cupitt 92521c0dc6 add options back to VInterpolate
since we might use them in the future
2019-11-12 14:03:25 +00:00
John Cupitt b8ea3f8442 update cpp interface for stream variable rename 2019-11-11 09:24:45 +00:00
John Cupitt 42b4474356 stray decl 2019-11-10 18:03:38 +00:00
Kleis Auke Wolthuizen b49910d270 Add support for streaming in the C++ binding
See: libvips/libvips#1443.
2019-11-10 13:46:29 +01:00
John Cupitt 503e83e232 update resize C++ example 2019-08-04 17:43:35 +01:00
John Cupitt 01a82646a1 experiment with minimise in insert
try minimising sub after we've passed it
2019-07-27 13:40:18 +01:00
Kleis Auke Wolthuizen 42bb8f51b9 Support std::vector within the image_get/set_array_int functions 2019-07-15 15:29:19 +02:00
Tomáš Szabo 1b54684650
Add set and get for an array of ints 2019-07-05 17:29:11 +02:00
Kleis Auke Wolthuizen 8ac6574560 Change 'char *' to 'const char *' in the C++ binding
+ some documentation improvements.
2019-04-24 16:02:52 +02:00
John Cupitt bae484ba2c remove old c++ and py interfaces
Instead, use the new(er) vips8 C++ interface, and the new(er) python
interface in pypi.

https://pypi.org/project/pyvips
2019-04-12 16:27:28 +01:00
John Cupitt 38bd4f1be4 break lines at 80 cols in gen-operators
plus tiny cleanups
2019-02-03 13:18:22 +00:00
kleisauke 241f52fb54 Fix compatibility with Makefile
+ all operations are now provided with a C++ style comment block.
2019-02-03 12:13:04 +01:00
kleisauke de27688eea Use pyvips to generate the C++ binding 2019-02-01 21:45:12 +01:00
John Cupitt 75ebb162f9 Merge branch 'master' into add-icc-fallbacks 2019-01-12 13:58:30 +00:00
Kleis Auke Wolthuizen c397543c8e Add a std::string overload function for new_from_buffer 2019-01-11 13:53:09 +01:00
Kleis Auke Wolthuizen bd5711ef8e Add remove function to the C++ binding
To remove an item of metadata.
2019-01-10 17:39:45 +01:00
Kleis Auke Wolthuizen cd340d0ace Add missing C++ functions
The functions has_alpha() and copy_memory() were missing from the C++ binding.
2019-01-10 14:56:04 +01:00
John Cupitt b8a158b69b seems to work
added some more consts as well
2019-01-03 13:34:13 +00:00
John Cupitt 26d0e312c6 add bandand/or/eor to the cpp binding
oops, they had been dropped

thanks clcaalu

see https://github.com/libvips/libvips/issues/1165
2018-11-16 13:10:22 +00:00
Fingolfin1196 c7f828e968
Update VImage8.h
Should fix the “nullptr undeclared” issue.
2018-10-10 15:57:50 +02:00
Fingolfin1196 b0f21d2727
Update VImage8.h
VObject now has an is_null check, which is then used in VImage.
2018-10-10 15:48:23 +02:00
John Cupitt 0e3cac1a72 make cpp overloads const
all overloads are declared const now, where possible

also revised cpp examples and ran them to check

see https://github.com/jcupitt/libvips/issues/983
2018-06-11 15:24:11 +01:00
John Cupitt ca6410e1a6 make members and getters "const" in cpp api
eg. VImage::width() is now

	int VImage::width() const;

ie. it does not alter the image objects. In factr we can mark almost all
members const.

see https://github.com/jcupitt/libvips/issues/983
2018-06-11 14:30:17 +01:00
Lovell Fuller cea15b2d8f Prevent compiler warning with size_t to int cast 2018-02-03 18:05:07 +00:00
John Cupitt 10eef89a7f update c++ bindings 2017-11-26 17:45:04 +00:00
John Cupitt e179e3b11f premultiply alpha (if necessary) in affine 2017-11-18 10:59:20 +00:00
John Cupitt e52d2c9f7f add composite shortcut to cpp
two composite just two images
2017-10-06 16:56:20 +01:00
John Cupitt f0aeed1c64 regenerate cpp binding for new methods 2017-10-06 16:39:52 +01:00
John Cupitt d601c5ee19 remmove extra null check
see https://github.com/jcupitt/libvips/issues/761
2017-10-01 19:08:51 +01:00
Lovell Fuller 8bd2208e5e cplusplus: offset coords are int rather than double 2017-09-14 10:25:15 +01:00
John Cupitt 1504fb0249 use bandjoin_const from cpp 2017-04-29 10:17:38 +01:00
John Cupitt 7882602dfe C/C++ done
python next
2017-04-26 14:52:28 +01:00
John Cupitt fd6006bacb Merge branch 'master' into add-smartcrop 2017-03-13 20:41:22 +00:00
John Cupitt 8062a4b1e6 update cpp API for arg order changes
hopefully user code won't see this
2017-03-13 13:28:37 +00:00
John Cupitt d40773515c add smartcrop 2017-03-01 15:41:26 +00:00
John Cupitt b140c18a37 various tweaks to calm coverity
passes cleanly now
2017-01-20 08:55:13 +00:00
John Cupitt 2be0b97dce switch to g_warning()_/g_info()
we had vips_warn() and vips_info(), but they are a bit crappy ... switch
to g_warning() and g_info() instead

see https://github.com/jcupitt/libvips/issues/544
2017-01-03 15:52:27 +00:00
John Cupitt 7d0c821a6e add tests for thumbnail 2016-11-02 13:51:09 +00:00
Lovell Fuller e1aef0445b MSVC requires __declspec first for return by reference
Ensure consistent modifier order across all exported functions
Move assignment operators to be "outside" definitions to aid export
2016-10-15 22:02:24 +01:00
John Cupitt 8503065faa regen cpp binding
need to update for the xshrink -> hshrink change
2016-08-18 16:03:33 +01:00
John Cupitt 0c7053bae1 Merge branch 'master' of github.com:jcupitt/libvips 2016-08-04 12:38:04 +01:00
John Cupitt ad046680f7 tiny polish to cpp 2016-08-04 12:37:48 +01:00
John Cupitt d78f87702d missing unref in cpp binding
operation was not unreffed if build failed
2016-07-29 15:09:53 +01:00
John Cupitt bd9cc25278 tiny 2016-07-29 10:16:33 +01:00
John Cupitt 2dc43198e4 final fixups 2016-07-24 14:47:22 +01:00
John Cupitt eb7768ff61 Merge branch 'master' into add-assignment-overloads 2016-06-11 20:15:42 +01:00
John Cupitt 83b1c33441 add tests for C++ += etc
all seems to work!
2016-06-11 20:14:48 +01:00
John Cupitt 28efdf1695 working! 2016-06-11 17:36:06 +01:00
John Cupitt 8667dd0d18 VImage::ifthenelse() fix
the prototype was missing =0 on options for scalar constant forms
2016-06-10 17:34:41 +01:00
John Cupitt 93951fd04a start adding 2016-06-10 14:57:46 +01:00
John Cupitt ad56c57830 add implementation for VImage::write()
oops, it was missing

also, change the return type from void to VImage. This makes chaining
possible, eg.:

   VImage memory = im.write( Viameg::new_memory() );
2016-06-10 14:22:08 +01:00
Henri Chain 5678f93257 Add buffer-write support for Radiance 2016-05-23 16:37:28 +02:00
John Cupitt d1e7b78bbd Merge branch 'master' of github.com:jcupitt/libvips 2016-04-17 10:24:18 +01:00
John Cupitt 567ea0c1c2 comment reformat 2016-04-17 10:22:20 +01:00
Lovell Fuller baa175c4c0 Allow MSVC to link CPP overloads introduced in da43a40 2016-04-15 22:16:29 +01:00
John Cupitt da43a4041f move cpp overloads outside class
so they are true functions and we can take their address

see https://github.com/jcupitt/libvips/issues/409
2016-03-25 06:09:07 +00:00
John Cupitt c2be771342 fix load from buffer, update APIs 2016-02-12 20:04:46 +00:00
John Cupitt 153886d2eb add svgload
load from bubffer is not working though, strange ... it seems to be
generating a 16-biit image?
2016-02-09 11:01:12 +00:00
John Cupitt 9f566fa4a9 update cplusplus binding 2016-02-08 20:26:22 +00:00
John Cupitt 8cffd136e9 finish reduce
and fix up bicubic a bit, it works better on int32 images now
2016-02-07 17:41:39 +00:00
Lovell Fuller 20ae80397d Enable compilation of vips8 C++ bindings with MSVC
Add VIPS_CPLUSPLUS_API macro to allow DLL creation
2016-01-11 17:56:02 +00:00
John Cupitt 50db131865 VImage::get_typeof() returns GType
it was int, causing some compiler warnings on some platforms.

see https://github.com/jcupitt/libvips/issues/362
2016-01-09 20:27:14 +00:00
John Cupitt bf64fde872 regen C++ interface 2016-01-09 15:08:17 +00:00
John Cupitt 66373e9b41 remove exception specs from vips8 C++ interface
We had exception specs on the C++ interface, but C++11 does not support
them and some compilers have never honoured them. Remove all specs.
Thanks Lovell.

See https://github.com/jcupitt/libvips/issues/362
2016-01-09 14:52:05 +00:00
John Cupitt ca51b46e9a docs, c++, all done 2015-11-07 20:54:00 +00:00
John Cupitt 2b2bf30fbd oops, update cpp binding 2015-10-06 22:45:37 +01:00